Macro API Changes 11.04

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);