In
Simcenter STAR-CCM+ 11.04, the macro API changed for electrochemistry, simulation retrieval, server connections, co-simulation, VOF, DEM, the Segregated Time Step, material models, combustion, meshing, and morphing.
Electrochemistry: Renaming of Electrochemical Species Solver
The java class
ElectrochemicalSpeciesSolver has been renamed to
SegregatedElectrochemicalSpeciesSolver.
Within macro code, all occurrences of
ElectrochemicalSpeciesSolver must be renamed accordingly. For example:
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
import star.electrochemicalspecies.ElectrochemicalSpeciesSolver;
ElectrochemicalSpeciesSolver echemSolver =
_sim.getSolverManager()
.getSolver(ElectrochemicalSpeciesSolver.class);
|
import star.electrochemicalspecies.SegregatedElectrochemicalSpeciesSolver;
SegregatedElectrochemicalSpeciesSolver echemSolver =
_sim.getSolverManager()
.getSolver(SegregatedElectrochemicalSpeciesSolver.class);
|
Electrochemistry: Change to Default Electroneutrality Option
The new default setting for the
Electroneutrality option of the
Electrochemical Species model is
Scaling. Therefore macros which have previously set the
ElectroneutralityOption to
ENFORCED must set it to
SCALED. For example:
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
Simulation simulation_0 = getActiveSimulation();
PhysicsContinuum physicsContinuum_0 =
((PhysicsContinuum) simulation_0.getContinuumManager()
.getContinuum("Physics 1"));
ElectrochemicalSpeciesModel electrochemicalSpeciesModel_0 =
physicsContinuum_0.getModelManager()
.getModel(ElectrochemicalSpeciesModel.class);
electrochemicalSpeciesModel_0
.getElectroneutralityOption()
.setSelected(ElectroneutralityOption.Type.ENFORCED);
|
Simulation simulation_0 = getActiveSimulation();
PhysicsContinuum physicsContinuum_0 =
((PhysicsContinuum) simulation_0.getContinuumManager()
.getContinuum("Physics 1"));
ElectrochemicalSpeciesModel electrochemicalSpeciesModel_0 =
physicsContinuum_0.getModelManager()
.getModel(ElectrochemicalSpeciesModel.class);
electrochemicalSpeciesModel_0
.getElectroneutralityOption()
.setSelected(ElectroneutralityOption.Type.SCALED);
|
Simulations: New Method for Retrieval of Multiple Simulations
A new convenient method is available for retrieving a collection of simulations.
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
Set<Simulation> sl =
ApplicationManager.getSingleton()
.getApplicationAs(SimulationApplication.class, SimulationApplication.APPLICATION_TYPE).getRootObjects()
|
Collection<Simulation> sl =
SimulationApplication.getSimulations()
|
Server Connections: Upgrades to Methods
For reasons of compatibility, the methods of the previous version are still available, but marked as deprecated. It is recommended that you upgrade your macros with the methods of the current version for long-term reliability.
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
static String ServerConnection.getRshCommand()
static void ServerConnection.setRshCommand(String rshCommand)
|
String StarSettings.getSingleton()
.getGenericRemoteShellSettings()
.getRemoteShell().getCommandAndOptions()
void StarSettings.getSingleton()
.getGenericRemoteShellSettings().setRemoteShell(String)
|
static String ServerConnection.getServerCmd()
static String ServerConnection.getServerCmd(String sessionFile)
static void
ServerConnection.setServerCmd(String cmd)
|
static String ServerProcess.getServerCommand()
static String ServerProcess.getServerCommand(String sessionFile)
static void
ServerProcess.setServerCommand(String cmd)
|
static boolean ServerConnection.submitBatchJob()
static boolean ServerConnection.submitBatchJob(String command)
|
static boolean ServerProcess.isWindowsHpcServerSubmission()
static boolean ServerProcess.isWindowsHpcServerSubmission(String command)
|
static String ServerConnection.getDefaultRemoteShellOptions(String rshCmd)
|
static String RemoteShellFactory.getRemoteShell(String rshCmd).getOptions()
|
static String ServerConnection.getRemoteCommand(String host, String user, String command)
|
static ServerProcess.getRemoteCommand(String host, String user, String command)
|
static String ServerConnection.getDefaultHost()
static void ServerConnection.setDefaultHost(String host)
|
static String ServerProcess.getDefaultHost()
static void ServerProcess.setDefaultHost(String host)
|
static String ServerConnection.getDefaultUser()
static void ServerConnection.setDefaultUser(String user)
|
static String ServerProcess.getDefaultUser()
static void ServerProcess.setDefaultUser(String user)
|
static String ServerConnection.getSimFile()
static void ServerConnection.setSimFile(String file)
|
static String ServerProcess.getSimFile()
static void ServerProcess.setSimFile(String file)
|
Co-Simulation: Introduction of Explicit and Implicit Co-Simulation Models
To facilitate code reuse and enforce coupling strategies, a set of explicit and implicit co-simulation models has been implemented, resulting in changes to the macro code.
The following code examples are for Abaqus co-simulation.
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
physicsContinuum_0.enable(CoSimulationModel.class);
physicsContinuum_0.enable(AbaqusCoSimulationModel.class);
|
physicsContinuum_0.enable(CoSimulationOptionModel.class);
physicsContinuum_0.enable(AbaqusCoSimulationModel.class);
physicsContinuum_0.enable(AbaqusCoSimulationImplicitModel.class);
|
VOF: Changes Due to Compatibility with Combustion Models
The Volume of Fluid (VOF) model is now compatible with combustion models, resulting in the use of
NonReactingModel.class. For example:
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
EulerianPhase eulerianPhase =
getEulerianMultiPhaseModel().createPhase();
eulerianPhase.enable(SinglePhaseMultiComponentGasModel.class);
eulerianPhase.enable(SegregatedVofPhaseSpeciesModel.class);
|
EulerianPhase eulerianPhase =
getEulerianMultiPhaseModel().createPhase();
eulerianPhase.enable(SinglePhaseMultiComponentGasModel.class);
eulerianPhase.enable(NonReactingModel.class);
eulerianPhase.enable(SegregatedVofPhaseSpeciesModel.class);
|
DEM: Particle Size Field Function Renamed to Parcel Size
The field function
ParticleSize has been renamed to
ParcelSize. Previously the
ParticleSize field function was available only when the Discrete Element Method (DEM) continuum model was activated. Now
ParcelSize is available for both Lagrangian and DEM phases.
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
PrimitiveFieldFunction primitiveFieldFunction_1 =
((PrimitiveFieldFunction) simulation_0
.getFieldFunctionManager().getFunction("ParticleSize"));
|
PrimitiveFieldFunction primitiveFieldFunction_1 =
((PrimitiveFieldFunction) simulation_0
.getFieldFunctionManager().getFunction("ParcelSize"));
|
Segregated Time Step Model: Changes Due to Restructuring
The objects of the Segregated Time Step model have been restructured, resulting in changes to the macro code.
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
import star.casting.*;
import star.common.*;
public void execute() {
Simulation simulation_0 =
getActiveSimulation();
PhysicsContinuum physicsContinuum_0 =
((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1"));
SegregatedFluidTimeStepModel segregatedFluidTimeStepModel_0 =
physicsContinuum_0.getModelManager().getModel(SegregatedFluidTimeStepModel.class);
segregatedFluidTimeStepModel_0.setVerbose(true);
SegregatedFluidTimeStepControl segregatedFluidTimeStepControl_0 =
(SegregatedFluidTimeStepControl) ((SegregatedFluidTimeStepControlManager) segregatedFluidTimeStepModel_0.getControlManager()).createControl();
segregatedFluidTimeStepControl_0.getStartTime().setValue(0.0);
segregatedFluidTimeStepControl_0.getEndTime().setValue(0.0);
segregatedFluidTimeStepControl_0.getStartTimeStep().setValue(5.0E-5);
segregatedFluidTimeStepControl_0.getMinTimeStep().setValue(5.0E-6);
segregatedFluidTimeStepControl_0.setMaxTimeStepChangeFactor(1.5);
}
|
import star.base.neo.*;
import star.casting.*;
import star.common.*;
public void execute() {
Simulation simulation_0 =
getActiveSimulation();
PhysicsContinuum physicsContinuum_0 =
((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1"));
SegregatedFluidTimeStepModel segregatedFluidTimeStepModel_0 =
physicsContinuum_0.getModelManager().getModel(SegregatedFluidTimeStepModel.class);
segregatedFluidTimeStepModel_0.setVerboseFlag(true);
segregatedFluidTimeStepModel_0.getStartTime().setValue(0.0);
segregatedFluidTimeStepModel_0.getEndTime().setValue(0.0);
segregatedFluidTimeStepModel_0.getStartTimeStep().setValue(5.0E-5);
segregatedFluidTimeStepModel_0.getMinTimeStep().setValue(5.0E-6);
segregatedFluidTimeStepModel_0.setMaxTimeStepChangeFactors(new DoubleVector(new double[] {1.5}));
}
|
The new Segregated Time Step methods are as follows:
- SegregatedFlowTimeStepMethod
- SegregatedVofTimeStepMethod
- SegregatedEnergyTimeStepMethod
- EnthalpyMeltingTimeStepMethod
These methods are available via macro through the
getMethod function provided by the model, for example:
SegregatedFlowTimeStepMethod segregatedFlowTimeStepMethod_0 =
segregatedFluidTimeStepModel_0.getMethod(SegregatedFlowTimeStepMethod.class));
The method's shared properties are accessible through steps such as the following:
segregatedFlowTimeStepMethod_0.getMaxConditionLimit().setValue(0.6);
segregatedFlowTimeStepMethod_0.getSmoothingSteps().setValue(3.0);
Material Models: Change to Activation of Multi-Part Solid Model
Among the multi-component solid options, the Multi-Layer Solid model is now available in addition to the Multi-Part Solid model. This new option has resulted in changes to the macro code for activating the Multi-Part Solid model.
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
physicsContinuum_0.enable(MultiPartSolidModel.class);
|
physicsContinuum_0.enable(MultiComponentSolidMaterialModel.class);
physicsContinuum_0.enable(MultiPartSolidModel.class);
|
Reactions: Chemistry ADI Removed from Complex Chemistry
Chemistry ADI is not available in the current release of
STAR-CCM+.
To update your macros, remove instances of
complexChemistryModel_0.getChemistrySolverOption().setSelected(ComplexChemistrySolverOption.CADI);.
Reactions: Extension of Choice of Solvers with ISAT
ISAT is now available with the CVODE solver and the Complex Chemistry user interface has been updated, resulting in changes to the macro code for the following situations:
Activating ISAT
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
PhysicsContinuum physicsContinuum_0 =
((PhysicsContinuum) simulation_0
.getContinuumManager()
.getContinuum("Physics 1"));
ComplexChemistryCombustionModel complexChemistryModel_0 =
((ComplexChemistryCombustionModel) physicsContinuum_0.getModelManager().getModel(ComplexChemistryCombustionModel.class));
complexChemistryModel_0.getIsatOption().setSelected(IsatOrEqTsmOption.ISAT);
DarsCfdIsatCalculationMethod darsCfdIsatCalculationMethod_0 = complexChemistryModel_0.getDarsCfdIsatCalculationMethod();
darsCfdIsatCalculationMethod_0.getIsatPressureSpecificationOption().setSelected(IsatPressureSpecificationOption.CONST);
|
PhysicsContinuum physicsContinuum_0 =
((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1"));
ComplexChemistryCombustionModel complexChemistryModel_0 =
((ComplexChemistryCombustionModel) physicsContinuum_0.getModelManager().getModel(ComplexChemistryCombustionModel.class));
ChemistryAccelerationOptions chemistryAccelerationOptions_0 =
complexChemistryModel_0.getChemistryAccelerationOptions();
chemistryAccelerationOptions_0.setIsat(true);
DarsCfdIsatCalculationMethod darsCfdIsatCalculationMethod_0 = complexChemistryModel_0.getDarsCfdIsatCalculationMethod();
darsCfdIsatCalculationMethod_0.getIsatPressureSpecificationOption().setSelected(IsatPressureSpecificationOption.CONST);
|
Deactivating Clustering
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
ComplexChemistryCombustionModel complexChemistryModel_0 =
((ComplexChemistryCombustionModel) physicsContinuum_0.getModelManager().getModel(ComplexChemistryCombustionModel.class));
complexChemistryModel_0.getComplexChemistryOdeSolverOption().setSelected(OdeSolverOption.DARSCFD);
complexChemistryModel_0.setClustering(false);
|
ComplexChemistryCombustionModel complexChemistryModel_0 =
((ComplexChemistryCombustionModel) physicsContinuum_0.getModelManager().getModel(ComplexChemistryCombustionModel.class));
complexChemistryModel_0.getComplexChemistryOdeSolverOption().setSelected(OdeSolverOption.DARSCFD);
ChemistryAccelerationOptions chemistryAccelerationOptions_0 =
complexChemistryModel_0.getChemistryAccelerationOptions();
chemistryAccelerationOptions_0.setClustering(false);
|
Activating the Equilibrium Time Scale Model
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
ComplexChemistryCombustionModel complexChemistryCombustionModel_0 =
physicsContinuum_0.getModelManager().getModel(ComplexChemistryCombustionModel.class);
complexChemistryCombustionModel_0.getDarsCfdLibrary().importCase("darscfdstarccm+ch4sk30", resolveDataPath(""));
complexChemistryCombustionModel_0.getComplexChemistryOdeSolverOption().setSelected(OdeSolverOption.Type.DARSCFD);
complexChemistryCombustionModel_0.getIsatOption().setSelected(IsatOrEqTsmOption.Type.EQTSM);
|
ComplexChemistryCombustionModel complexChemistryCombustionModel_0 =
physicsContinuum_0.getModelManager().getModel(ComplexChemistryCombustionModel.class);
complexChemistryCombustionModel_0.getDarsCfdLibrary().importCase("darscfdstarccm+ch4sk30", resolveDataPath(""));
complexChemistryCombustionModel_0.getComplexChemistryOdeSolverOption().setSelected(OdeSolverOption.Type.DARSCFD);
ChemistryApproximationOptions chemistryApproximationOptions_0 =
complexChemistryCombustionModel_0.getChemistryApproximationOptions();
chemistryApproximationOptions_0.setEqTsm(true);
|
Combustion: Premixed Variants of EBU and FGM Removed
The premixed variants of the Eddy Break-Up (EBU) and Flamelet Generated Manifold (FGM) models have been discontinued. When you select Premixed Combustion > Eddy Break-Up or Premixed Combustion > Flamelet Generated Manifold,
STAR-CCM+ v11.04 uses the partially premixed variants.
The following are examples of macro code lines that have changed:
Converting Premixed EBU to EBU
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
physicsContinuum_0.enable(PebuCombustionModel.class);
physicsContinuum_0.enable(PebuReactionModel.class);
physicsContinuum_0.enable(IdealGasModel.class);
|
physicsContinuum_0.enable(EbuGasCombustionModel.class);
physicsContinuum_0.enable(SegregatedSpeciesModel.class);
physicsContinuum_0.enable(IdealGasModel.class);
|
Converting Premixed FGM (formerly known as PPVM) to FGM
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
physicsContinuum_0.enable(PpvmCombustionModel.class);
physicsContinuum_0.enable(PpvmReactionModel.class);
physicsContinuum_0.enable(PpvmIdealGasModel.class);
|
physicsContinuum_0.enable(FgmCombustionModel.class);
physicsContinuum_0.enable(FgmReactionModel.class);
physicsContinuum_0.enable(FgmIdealGasModel.class);
physicsContinuum_0.enable(FgmFiniteRateChemistryModel.class);
|
PPDF Combustion: Change to Model Selection
The choice between Adiabatic and Non-Adiabatic PPDF models has been moved down from the top level of the selection of Non-Premixed Combustion models. First, the choice between PPDF Equilibrium and Flamelet Model is presented along with other combustion models, then either Adiabatic or Non-Adiabatic PPDF models can be chosen. The latter is selected automatically, since most practical use cases are non-adiabatic. However, you can deactivate the automatic selection and choose adiabatic if needed.
The following are examples of macro code lines that have changed:
PPDF Equilibrium, Non-Adiabatic Case
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
physicsContinuum_0.enable(NonAdiabaticPpdfCombustionModel.class);
physicsContinuum_0.enable(PpdfEquilibriumModel.class);
|
physicsContinuum_0.enable(PpdfEquilibriumModel.class);
physicsContinuum_0.enable(NonAdiabaticPpdfCombustionModel.class);
|
PPDF Equilibrium, Adiabatic Case
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
physicsContinuum_0.enable(AdiabaticPpdfCombustionModel.class);
physicsContinuum_0.enable(PpdfEquilibriumModel.class);
|
physicsContinuum_0.enable(PpdfEquilibriumModel.class);
physicsContinuum_0.enable(AdiabaticPpdfCombustionModel.class);
|
PPDF Flamelet, Non-Adiabatic Case
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
physicsContinuum_0.enable(NonAdiabaticPpdfCombustionModel.class);
physicsContinuum_0.enable(PpdfFlameletModel.class);
|
physicsContinuum_0.enable(PpdfNonAdiabaticFlameletModel.class);
physicsContinuum_0.enable(NonAdiabaticPpdfCombustionModel.class);
|
PPDF Flamelet, Adiabatic Case
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
physicsContinuum_0.enable(AdiabaticPpdfCombustionModel.class);
physicsContinuum_0.enable(PpdfFlameletModel.class);
|
physicsContinuum_0.enable(PpdfAdiabaticFlameletModel.class);
physicsContinuum_0.enable(AdiabaticPpdfCombustionModel.class);
|
Meshing: Changes to Creation of Part Surfaces and Part Curves Due to Split Actions
For split actions, which are typically executed through context menus in the user interface, the order in which part surfaces and part curves are created has changed. As a result, the names that are used to refer to these entities in macros have also changed. Expect to update your macro code for meshing with new names for part surfaces and part curves.
The following are examples of macro code lines that have changed:
Part Surface > Split Non-Contiguous
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
MeshPart meshPart_0 =
((MeshPart) simulation_0.get(SimulationPartManager.class).getPart("Part"));
PartSurface partSurface_0 =
((PartSurface) meshPart_0.getPartSurfaceManager().getPartSurface("Surface"));
meshPart_0.getPartSurfaceManager().splitNonContiguousPartSurfaces(new NeoObjectVector(new Object[] {partSurface_0}));
partSurface_0.setPresentationName("Special Surface");
|
MeshPart meshPart_0 =
((MeshPart) simulation_0.get(SimulationPartManager.class).getPart("Part"));
PartSurface partSurface_0 =
((PartSurface) meshPart_0.getPartSurfaceManager().getPartSurface("Surface"));
meshPart_0.getPartSurfaceManager().splitNonContiguousPartSurfaces(new NeoObjectVector(new Object[] {partSurface_0}));
PartSurface partSurface_1 =
((PartSurface) meshPart_0.getPartSurfaceManager().getPartSurface("Surface 2"));
partSurface_1.setPresentationName("Special Surface");
|
Part Surface > Split by Part Curves
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
MeshPart meshPart_0 =
((MeshPart) simulation_0.get(SimulationPartManager.class).getPart("Part"));
PartSurface partSurface_0 =
((PartSurface) meshPart_0.getPartSurfaceManager().getPartSurface("Surface"));
PartCurve partCurve_0 =
meshPart_0.getPartCurveManager().getPartCurve("Curve");
meshPart_0.getPartSurfaceManager().splitPartSurfacesByPartCurves(new NeoObjectVector(new Object[] {partSurface_0}), new NeoObjectVector(new Object[] {partCurve_0}));
PartSurface partSurface_1 =
((PartSurface) meshPart_0.getPartSurfaceManager().getPartSurface("Surface 6"));
partSurface_1.setPresentationName("Special Surface");
|
MeshPart meshPart_0 =
((MeshPart) simulation_0.get(SimulationPartManager.class).getPart("Part"));
PartSurface partSurface_0 =
((PartSurface) meshPart_0.getPartSurfaceManager().getPartSurface("Surface"));
PartCurve partCurve_0 =
meshPart_0.getPartCurveManager().getPartCurve("Curve");
meshPart_0.getPartSurfaceManager().splitPartSurfacesByPartCurves(new NeoObjectVector(new Object[] {partSurface_0}), new NeoObjectVector(new Object[] {partCurve_0}));
PartSurface partSurface_1 =
((PartSurface) meshPart_0.getPartSurfaceManager().getPartSurface("Surface 4"));
partSurface_1.setPresentationName("Special Surface");
|
Part Surface > Split by Angle
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
MeshPart meshPart_0 =
((MeshPart) simulation_0.get(SimulationPartManager.class).getPart("Part"));
PartSurface partSurface_0 =
((PartSurface) meshPart_0.getPartSurfaceManager().getPartSurface("Surface"));
meshPart_0.getPartSurfaceManager().splitPartSurfacesByAngle(new NeoObjectVector(new Object[] {partSurface_0}), 89.0);
PartSurface partSurface_1 =
((PartSurface) meshPart_0.getPartSurfaceManager().getPartSurface("Surface 7"));
partSurface_1.setPresentationName("Special Surface");
|
MeshPart meshPart_0 =
((MeshPart) simulation_0.get(SimulationPartManager.class).getPart("Part"));
PartSurface partSurface_0 =
((PartSurface) meshPart_0.getPartSurfaceManager().getPartSurface("Surface"));
meshPart_0.getPartSurfaceManager().splitPartSurfacesByAngle(new NeoObjectVector(new Object[] {partSurface_0}), 89.0);
PartSurface partSurface_1 =
((PartSurface) meshPart_0.getPartSurfaceManager().getPartSurface("Surface 2"));
partSurface_1.setPresentationName("Special Surface");
|
Part Curve > Split Non-Contiguous
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
MeshPart meshPart_0 =
((MeshPart) simulation_0.get(SimulationPartManager.class).getPart("Part"));
PartCurve partCurve_0 =
meshPart_0.getPartCurveManager().getPartCurve("Curve");
meshPart_0.getPartCurveManager().splitNonContiguousPartCurves(new NeoObjectVector(new Object[] {partCurve_0}));
PartCurve partCurve_1 =
meshPart_0.getPartCurveManager().getPartCurve("Curve 3");
partCurve_1.setPresentationName("Special Curve");
|
MeshPart meshPart_0 =
((MeshPart) simulation_0.get(SimulationPartManager.class).getPart("Part"));
PartCurve partCurve_0 =
meshPart_0.getPartCurveManager().getPartCurve("Curve");
meshPart_0.getPartCurveManager().splitNonContiguousPartCurves(new NeoObjectVector(new Object[] {partCurve_0}));
PartCurve partCurve_1 =
meshPart_0.getPartCurveManager().getPartCurve("Curve 2");
partCurve_1.setPresentationName("Special Curve");
|
Directed Meshing: Change to Ordering of Patch Vertices and Patch Curves
During directed mesh operations, the order in which patch vertices and patch curves are created in patch meshing has changed. As a result, the names that are used to refer to these entities in macros have also changed. Expect to update your macro code for patch meshing with new patch vertex and curve names. In more complex patch meshes, consider recording entirely new macros for patch meshing. For increased robustness during pipeline-based changes to part geometry, use Auto Source Mesh rather than Patch Mesh for source mesh type.
The following are examples of macro code lines from the previous version of
Simcenter STAR-CCM+ that are obsolete:
- Code that refers to patch vertices and patch curves by name:
PatchVertex patchVertex_3 = ((PatchVertex)
directedPatchSourceMesh_0.getPatchVertexManager().getObject("PatchVertex 99"));
PatchCurve patchCurve_36 = ((PatchCurve)
directedPatchSourceMesh_0.getPatchCurveManager().getObject("PatchCurve 177"));
- Code that operates on those entities:
directedPatchSourceMesh_0.splitPatchCurve(patchCurve_31, new DoubleVector(new double[]
{-0.008895140013122065, 0.024398976690245322, -0.025}));
Directed Meshing: Change to Naming of Source Mesh Nodes
In previous versions of
Simcenter STAR-CCM+, the directed mesh operation named new source mesh nodes using either part or part collection names. Now that source mesh nodes can apply to more than one part collection, the name that is given to each source mesh node by default has also been changed. New source mesh nodes are now named after the source mesh type (Use Existing, Auto Source Mesh, or Patch Mesh), with sequence numbers added to maintain uniqueness. This naming technique is similar to the one that is used for mesh operations. Source mesh nodes can still be renamed. For an overview of changes to directed meshing in this release, see "Directed Meshing Improvements" in the list of new
Volume Mesh features.
Update your macro code when it refers to source mesh nodes by name using the old naming convention:
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
DirectedAutoSourceMesh directedAutoSourceMesh_0 = ((DirectedAutoSourceMesh)
directedMeshOperation_0.getGuidedSurfaceMeshBaseManager().
getObject("Connected Part"));
|
DirectedAutoSourceMesh directedAutoSourceMesh_0 = ((DirectedAutoSourceMesh)
directedMeshOperation_0.getGuidedSurfaceMeshBaseManager().
getObject("Auto Mesh"));
|
Morpher: Changes to Boundary Conditions
Morpher boundary conditions have been refactored, resulting in changes to the macro code.
MovingMeshOption
The class
MovingMeshOption was renamed to
MorpherSpecification.
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
boundary_0.getConditions().get(MovingMeshOption.class).
setSelected(MovingMeshOption.DISPLACEMENT);
|
boundary_0.getConditions().get(MorpherSpecification.class).
setSelected(MorpherSpecification.Type.DISPLACEMENT);
|
Changes to related elements are as follows:
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
MovingMeshOption
|
MorpherSpecification
|
FIXED
|
No changes
|
FLOATING
|
DISPLACEMENT
|
Adds
DisplacementSpecification to the Physics Condition Manager
|
GRID_VELOCITY
|
Moved to
DisplacementSpecification
|
INTERNAL
|
SOLIDSTRESS
|
IN_PLANE
|
Moved to
ConstraintSpecification
|
FIXEDPLANE
|
SLIDE_ON_SURFACE
|
RESTRAINED
|
Renamed to
CONSTRAINT.
Adds
ConstraintSpecification to the Physics Condition Manager
|
DofMorpherOption
Analogously the class
DofMorpherOption is moved to
DofMorpherSpecification.
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
import star.sixdof.DofMorpherOption;
boundary_1.getConditions().get(DofMorpherOption.class).
setSelected(DofMorpherOption.Type.SIXDOFBODY);
|
import star.sixdof.DofMorpherSpecification;
boundary_1.getConditions().get(DofMorpherSpecification.class).
setSelected(DofMorpherSpecification.Type.SIXDOFBODY);
|
MorphPlanef
The class
MorphPlanef is called now
MorpherPlaneOptions.
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
import star.morpher.MorphPlanef;
MorphPlanef morphPlanef_0 =
boundary_0.getValues().get(MorphPlanef.class);
|
import star.morpher.MorpherPlaneOptions;
MorpherPlaneOptions morphPlaneOpt_0 =
boundary_0.getValues().get(MorpherPlaneOptions.class);
morphPlaneOpt_0.getDampFactor().setValue(0.01);
|
DisplacementOption
The class
DisplacementOption is renamed to
DisplacementSpecification.
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
boundary_0.getConditions().get(DisplacementOption.class).
setSelected(DisplacementOption.Type.INCREMENTAL);
|
boundary_0.getConditions().get(DisplacementSpecification.class).
setSelected(DisplacementSpecification.Type.INCREMENTAL);
|
Changes to related elements are as follows:
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
DisplacementOption
|
DisplacementSpecification
|
TOTAL
|
No changes
|
INCREMENTAL
|
New elements
|
GRID_VELOCITY
|
SOLID_STRESS
|
INTERNAL
|
COORDINATE_OFFSET
|
ConstraintSpecification
The new class
ConstraintSpecification groups all the constraining methods that were previously located in
MovingMeshOption.
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
boundary_2.getConditions().get(MovingMeshOption.class).
setSelected(MovingMeshOption.Type.FIXEDPLANE);
|
boundary_2.getConditions().get(MorpherSpecification.class).
setSelected(MorpherSpecification.Type.CONSTRAINT);
boundary_2.getConditions().get(ConstraintSpecification.class).
setSelected(ConstraintSpecification.Type.FIXEDPLANE);
|
Changes to related elements are as follows:
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
MovingMeshOption
|
ConstraintSpecification
|
IN_PLANE
|
No changes
|
FIXEDPLANE
|
SLIDE_ON_SURFACE with
GuideSurfaceOption.Type.ExternalFile
|
SLIDE_ON_STL_SURFACE
|
SLIDE_ON_SURFACE with
GuideSurfaceOption.Type.InitialSurface
|
SLIDE_ON_INITIAL_BOUNDARY
|
SLIDE_ON_SURFACE with
GuideSurfaceOption.Type.StayPlanar
|
IN_PLANE with
PlaneConstraintSpecification.setTriangulatedPlane(true)
|
The following table contains examples of these changed elements:
Previous Release
|
Simcenter STAR-CCM+ v11.04
|
boundary_0.getConditions().get(MovingMeshOption.class).
setSelected(MovingMeshOption.Type.SLIDE_ON_SURFACE);
boundary_0.getConditions().get(GuideSurfaceSettings).getSurfaceOption().
setSelected(GuideSurfaceOption.Type.ExternalFile);
|
boundary_0.getConditions().get(MorpherSpecification.class).
setSelected(MorpherSpecification.Type.CONSTRAINT);
boundary_0.getConditions().get(MovingMeshOption.class).
setSelected(MovingMeshOption.Type.SLIDE_ON_STL_SURFACE);
|
boundary_0.getConditions().get(MovingMeshOption.class).
setSelected(MovingMeshOption.Type.SLIDE_ON_SURFACE);
boundary_0.getConditions().get(GuideSurfaceSettings).getSurfaceOption().
setSelected(GuideSurfaceOption.Type.InitialSurface);
|
boundary_0.getConditions().get(MorpherSpecification.class).
setSelected(MorpherSpecification.Type.CONSTRAINT);
boundary_0.getConditions().get(MovingMeshOption.class).
setSelected(MovingMeshOption.Type.SLIDE_ON_INITIAL_SURFACE);
|
boundary_0.getConditions().get(MovingMeshOption.class).
setSelected(MovingMeshOption.Type.SLIDE_ON_SURFACE);
boundary_0.getConditions().get(GuideSurfaceSettings).getSurfaceOption().
setSelected(GuideSurfaceOption.Type.StayPlanar);
|
boundary_0.getConditions().get(MorpherSpecification.class).
setSelected(MorpherSpecification.Type.CONSTRAINT);
boundary_0.getConditions().get(MovingMeshOption.class).
setSelected(MovingMeshOption.Type.IN_PLANE;
boundary_0.getConditions().get(PlaneConstraintSpecification.class).
setTriangulatedPlane(true);
|