Macro API Changes 10.04

In Simcenter STAR-CCM+ 10.04, the macro API changed for battery modeling, aeroacoustics, finite-volume solid stress, granular particle phases, motions, pressure boundaries, and meshing.

Battery Modeling: Update to Circuit Solver for Multiple Circuits

The Circuit Solver has been updated to support multiple circuits. This added capability results in new macro code.

Previous Release Simcenter STAR-CCM+ v10.04
protected void setCircuit(Simulation sim)
{
CircuitTool circuitTool = sim.get(CircuitTool.class);
CircuitSolver circuitSolver = circuitTool.getCircuitSolver();
ScalarCircuitElement circuitElementR =
circuitSolver.getElements().createCircuitElement(ScalarCircuitElement.class);
circuitElementR.getLoadOption().setSelected(LoadOption.RESISTANCE);
protected void setCircuit(Simulation sim)
{
CircuitManager cMgr = sim.get(CircuitManager.class);
Circuit circuit = cMgr.getObject("Circuit 1");
ScalarCircuitElement circuitElementR =
circuit.getElements().createCircuitElement(ScalarCircuitElement.class);
circuitElementR.getLoadOption().setSelected(LoadOption.RESISTANCE);

Aeroacoustics Modeling: Changes to the Curle and Proudman Models

You can now select the Curle and Proudman aeroacoustics models simultaneously. This added capability results in new macro code.

Previous Release Simcenter STAR-CCM+ v10.04
continuum.enable(CurleModel.class);
continuum.enable(ProudmanModel.class);
continuum.enable(BroadbandNoiseModel.class);
continuum.enable(CurleModel.class);
continuum.enable(BroadbandNoiseModel.class);
continuum.enable(ProudmanModel.class);

Finite-Volume Solid Stress: Field Function Name Changes

Certain field functions that relate to finite-volume solid stress have been renamed. Use the new field function names in your macros.

Previous Release Simcenter STAR-CCM+ v10.04
PrimitiveFieldFunction primitiveFieldFunction_1 =
((PrimitiveFieldFunction) simulation_0.getFieldFunctionManager().getFunction("Solid Stress Displacement"));
PrimitiveFieldFunction primitiveFieldFunction_1 =
((PrimitiveFieldFunction) simulation_0.getFieldFunctionManager().getFunction("Solid Stress Velocity"));
PrimitiveFieldFunction primitiveFieldFunction_1 =
((PrimitiveFieldFunction) simulation_0.getFieldFunctionManager().getFunction("Solid Stress Acceleration"));
PrimitiveFieldFunction primitiveFieldFunction_1 =
((PrimitiveFieldFunction) simulation_0.getFieldFunctionManager().getFunction("Displacement"));
PrimitiveFieldFunction primitiveFieldFunction_1 =
((PrimitiveFieldFunction) simulation_0.getFieldFunctionManager().getFunction("Solid Velocity"));
PrimitiveFieldFunction primitiveFieldFunction_1 =
((PrimitiveFieldFunction) simulation_0.getFieldFunctionManager().getFunction("Acceleration"));

Granular Particle Phases: Turbulence Available

The Standard K-Epsilon Two-Layer phase model is now available with the granular particle phase. When you set up a granular particle phase, make an explicit choice between the Laminar and Turbulent viscous regimes.

Previous Release Simcenter STAR-CCM+ v10.04
EulerianPhase eulerianPhase_1 = 
      eulerianMultiPhaseModel_1.createPhase();
    eulerianPhase_1.setPresentationName("Particle");
    eulerianPhase_1.enable(SinglePhaseParticleModel.class);
    eulerianPhase_1.enable(EulerianPhaseLaminarModel.class);
    eulerianPhase_1.enable(ConstantDensityModel.class);
EulerianPhase eulerianPhase_1 = 
      eulerianMultiPhaseModel_1.createPhase();
    eulerianPhase_1.setPresentationName("Particle");
    eulerianPhase_1.enable(SinglePhaseParticleModel.class);
    EulerianPhaseTurbulentModel eulerianPhaseTurbulentModel_0 = 
      eulerianPhase_1.getModelManager().getModel(EulerianPhaseTurbulentModel.class);
    eulerianPhase_1.disableModel(eulerianPhaseTurbulentModel_0);
    eulerianPhase_1.enable(EulerianPhaseLaminarModel.class);
    eulerianPhase_1.enable(ConstantDensityModel.class);

Motions: Change in Specification of Morpher Displacement

In cases with a morpher motion, the morpher displacement option is now selected in the properties of a boundary Physics Conditions manager node. This change in the user interface results in new macro code.

Previous Release Simcenter STAR-CCM+ v10.04
package macro;
import java.util.*;
import star.morpher.*;
import star.common.*;
import star.base.neo.*;
public class make_total_old extends StarMacro {
  public void execute() {
    execute0();
  }
  private void execute0() {
    Simulation simulation_0 = 
      getActiveSimulation();
    Region region_0 = 
      simulation_0.getRegionManager().getRegion("Block");
    Boundary boundary_0 = 
      region_0.getBoundaryManager().getBoundary("Block Surface");
    boundary_0.getConditions().get(MovingMeshOption.class).setSelected(MovingMeshOption.TOTAL_DISPLACEMENT);
    TotalDisplacementProfile totalDisplacementProfile_0 = 
      boundary_0.getValues().get(TotalDisplacementProfile.class);
    // Set total
    totalDisplacementProfile_0.setTotalDisplacement(true);
    // Set incremental
    totalDisplacementProfile_0.setTotalDisplacement(false);
  }
}
package macro;
import java.util.*;
import star.morpher.*;
import star.common.*;
import star.base.neo.*;
public class make_total_new extends StarMacro {
  public void execute() {
    execute0();
  }
  private void execute0() {
    Simulation simulation_0 = 
      getActiveSimulation();
    Region region_0 = 
      simulation_0.getRegionManager().getRegion("Block");
    Boundary boundary_0 = 
      region_0.getBoundaryManager().getBoundary("Block Surface");
    boundary_0.getConditions().get(MovingMeshOption.class).setSelected(MovingMeshOption.DISPLACEMENT);
    // Set total
    boundary_0.getConditions().get(DisplacementOption.class).setSelected(DisplacementOption.TOTAL);
    // Set incremental
    boundary_0.getConditions().get(DisplacementOption.class).setSelected(DisplacementOption.INCREMENTAL);
  }
}

Pressure Boundaries: Redesign of Options

The interface for pressure boundary specification has been improved, resulting in changes to the macro code.

Previous Release Simcenter STAR-CCM+ v10.04
boundary_1.getConditions().get(ReversedFlowPressureOption.class).setSelected(ReversedFlowPressureOption.STATIC);
boundary_0.getConditions().get(InletBoundaryPressureJumpOption.class).setSelected(InletBoundaryPressureJumpOption.FAN);
boundary_1.getConditions().get(BackflowSpecification.class).getReversedFlowPressureOption().setSelected(ReversedFlowPressureOption.STATIC);
boundary_0.getConditions().get(PressureBoundaryOption.class).setSelected(PressureBoundaryOption.PRESSURE_JUMP);
boundary_0.getConditions().get(InletBoundaryPressureJumpOption.class).setSelected(InletBoundaryPressureJumpOption.FAN);

Meshing: Surface Growth Rate in Surface Remesher

If you are customizing the surface growth rate of the Surface Remesher, update your macro code. However, you can use the old macro code for the surface growth rate of the Trimmer Mesher.

Previous Release Simcenter STAR-CCM+ v10.04
SurfaceCustomMeshControl surfaceCustomMeshControl_0 = autoMeshOperation_0.getCustomMeshControls().createSurfaceControl();
surfaceCustomMeshControl_0.getCustomConditions().get(PartsSurfaceGrowthRateOption.class).setSelected(PartsSurfaceGrowthRateOption.CUSTOM_VALUES);
SurfaceCustomMeshControl surfaceCustomMeshControl_0 = autoMeshOperation_0.getCustomMeshControls().createSurfaceControl();
surfaceCustomMeshControl_0.getCustomConditions().get(PartsResurfacerSurfaceGrowthRateOption.class).setSelected(PartsResurfacerSurfaceGrowthRateOption.CUSTOM_VALUES);

Derived Parts: Change to Displayer Method

The method partDisplayer_0.getParts().addParts(planeSection_1) has been changed to partDisplayer_0.getInputParts().add(planeSection_1). Modify your existing macros accordingly.