Macro API Changes 2020.1

In Simcenter STAR-CCM+ 2020.1, the macro API changed for finite element models, motion, coupled flow, adjoint, reacting flows, DFBI, electromagnetics, multiphase, and co-simulation.

Finite Element Models: End of PARDISO Solver Method

For the Sparse Direct Solver > Direct Solver Option, the PARDISO option of the Method property has been removed. You now have a choice between the MUMPS and HYBRID MUMPS options.

Any simulation file saved in a previous version of Simcenter STAR-CCM+ with the PARDISO option automatically switches to the MUMPS option when opened in the current version.

This change has resulted in changes to the macro code. To update your macros, replace instances of DirectSolverOption.Type.PARDISO with either DirectSolverOption.Type.MUMPS or DirectSolverOption.Type.HYBRID_MUMPS. The following example shows replacement with DirectSolverOption.Type.MUMPS:

Previous Release Simcenter STAR-CCM+ 2020.1
Simulation simulation_0 = 
  getActiveSimulation();
FiniteElementStressSolver finiteElementStressSolver_0 = 
  ((FiniteElementStressSolver) simulation_0.getSolverManager().getSolver(FiniteElementStressSolver.class));
FeSolidStressSolverMethods feSolidStressSolverMethods_0 = 
  finiteElementStressSolver_0.getSolverMethods();
MumpsPardisoDirectSolver mumpsPardisoDirectSolver_0 = 
  feSolidStressSolverMethods_0.getMethod(MumpsPardisoDirectSolver.class);
SparseSolverProperties sparseSolverProperties_0 = 
  mumpsPardisoDirectSolver_0.getSparseSolverProperties();
sparseSolverProperties_0.getDirectSolverOption().setSelected(DirectSolverOption.Type.PARDISO);
Simulation simulation_0 = 
  getActiveSimulation();
FiniteElementStressSolver finiteElementStressSolver_0 = 
  ((FiniteElementStressSolver) simulation_0.getSolverManager().getSolver(FiniteElementStressSolver.class));
FeSolidStressSolverMethods feSolidStressSolverMethods_0 = 
  finiteElementStressSolver_0.getSolverMethods();
MumpsPardisoDirectSolver mumpsPardisoDirectSolver_0 = 
  feSolidStressSolverMethods_0.getMethod(MumpsPardisoDirectSolver.class);
SparseSolverProperties sparseSolverProperties_0 = 
  mumpsPardisoDirectSolver_0.getSparseSolverProperties();
sparseSolverProperties_0.getDirectSolverOption().setSelected(DirectSolverOption.Type.MUMPS);

Motion: Change to Point Sets for Morphing

The Control Point List (among region Physics Values) has been removed. Use Point Sets in the simulation tree from now on. This modification has resulted in changes to the macro code.

Previous Release Simcenter STAR-CCM+ 2020.1
Simulation sim = getActiveSimulation();
Region region_0 =
  sim.getRegionManager().getRegion("Block");
FileTable fileTable_0 = 
  ((FileTable) sim.getTableManager().getTable("control_points"));
ControlPointList controlPointList_0 =
  region_0.getValues().get(ControlPointList.class);
controlPointList_0.setTable(fileTable_0);
controlPointList_0.setX0Data("column0");
controlPointList_0.setY0Data("column1");
controlPointList_0.setZ0Data("column2");
controlPointList_0.setX1Data("column3");
controlPointList_0.setY1Data("column4");
controlPointList_0.setZ1Data("column5");
Simulation sim = getActiveSimulation();
FileTable fileTable_0 = 
  ((FileTable) sim.getTableManager().getTable("control_points"));
PointSet pointSet_0 =
  sim.get(PointSetManager.class).createTablePointSet("Table Point Set", fileTable_0, "X", "Y", "Z");
PointSetMotionSpecification pointSetMotionSpecification_0 =
  pointSet_0.getValues().get(PointSetMotionSpecification.class);
MorphingMotion morphingMotion_0 =
  ((MorphingMotion) simulation_0.get(MotionManager.class).getObject("Morphing"));
pointSetMotionSpecification_0.setMotion(morphingMotion_0);
pointSet_0.getConditions().get(DisplacementSpecification.class).setSelected(DisplacementSpecification.Type.TARGET_POSITION);
TargetPositionProfile targetPositionProfile_0 =
  pointSet_0.getValues().get(TargetPositionProfile.class);
targetPositionProfile_0.setMethod(XyzTabularVectorProfileMethod.class);
targetPositionProfile_0.getMethod(XyzTabularVectorProfileMethod.class).setTable(fileTable_0);
targetPositionProfile_0.getMethod(XyzTabularVectorProfileMethod.class).setXData("X");
targetPositionProfile_0.getMethod(XyzTabularVectorProfileMethod.class).setYData("Y");
targetPositionProfile_0.getMethod(XyzTabularVectorProfileMethod.class).setZData("Z");
targetPositionProfile_0.getMethod(XyzTabularVectorProfileMethod.class).setXData("XT");
targetPositionProfile_0.getMethod(XyzTabularVectorProfileMethod.class).setYData("YT");
targetPositionProfile_0.getMethod(XyzTabularVectorProfileMethod.class).setZData("ZT");

Coupled Flow: Changes to Solver and Model

The Coupled Implicit Solver now has a new, consolidated method for controlling CFL. The CFL Control Method property of this solver node activates a corresponding sub-node with the same name as your choice. In conjunction with adding the new method for controlling CFL, some of the former user interface elements have been removed. These changes have resulted in changes to the macro code. These changes are extensive, so be sure to check your setup when restoring old simulation files in the current version. You are advised to exercise caution when using old macros for the Coupled Implicit Solver. While examples of some code changes are provided below, consider recording entirely new macros for the setup of this solver.

Code that should be replaced

The following classes and all their functions have been removed:

  • star.common.ExpertDriver
  • star.common.ExpertDriverOption
  • star.common.NoExpertDriver
  • star.common.SolutionDriverManager
  • star.common.ExpertDriverCoupledSolver

The field functions CFL, NoAMGCyclesED, and UrfED are deprecated. Use the Reports functionality instead of field functions.

The RampCalculator functionality for the Coupled Implicit Solver is now inoperative. Use the Linear Ramp CFL macros as shown in the following examples:

Previous Release Simcenter STAR-CCM+ 2020.1
coupledImplicitSolver_0.getRampCalculatorManager().getRampCalculatorOption().setSelected(RampCalculatorOption.Type.LINEAR_RAMP);
courantNumberController_0.getCourantNumberControlOption().setSelected(CourantNumberControlOption.Type.LINEAR_RAMP_CFL);
LinearRampCalculator linearRampCalculator_0 =
      ((LinearRampCalculator) coupledImplicitSolver_0.getRampCalculatorManager().getCalculator());
    linearRampCalculator_0.setEndIteration(15);
LinearRampCourantNumberControl linearRampCourantNumberControl_0 =
      ((LinearRampCourantNumberControl) courantNumberController_0.getCourantNumberControl());
    linearRampCourantNumberControl_0.setEndIteration(15);
CoupledImplicitSolver::setCFL(double newValue)
// If the new default Automatic CFL setting is enabled, this function does nothing. Otherwise it retains its old behavior and sets the Target CFL for the Linear Ramp, the Expert Driver CFL, or the actual value for the Constant CFL.
// Constant CFL:
courantNumberController_0.getCourantNumberControlOption().setSelected(CourantNumberControlOption.Type.CONSTANT_CFL);
ConstantCourantNumberControl constantCourantNumberControl_0 =
  ((ConstantCourantNumberControl) courantNumberController_0.getCourantNumberControl());
constantCourantNumberControl_0.getCFLQuantity().setValue(100.0);
// Linear Ramp CFL:
courantNumberController_0.getCourantNumberControlOption().setSelected(CourantNumberControlOption.Type.LINEAR_RAMP_CFL);
linearRampCourantNumberControl_0.getCFLQuantity().setValue(100.0);

The new solver property Velocity Corrections Limiting is on by default, making available functionality that, in previous releases, required activation of the Expert Driver.

Examples of new CFL settings for the Coupled Implicit Solver

Set a constant CFL value of 25:

Previous Release Simcenter STAR-CCM+ 2020.1
Simulation simulation_0 =
  getActiveSimulation();
CoupledImplicitSolver coupledImplicitSolver_0 =
  ((CoupledImplicitSolver) simulation_0.getSolverManager().getSolver(CoupledImplicitSolver.class));
coupledImplicitSolver_0.setCFL(25.0);
Simulation simulation_0 =
  getActiveSimulation();
CoupledImplicitSolver coupledImplicitSolver_0 =
  ((CoupledImplicitSolver) simulation_0.getSolverManager().getSolver(CoupledImplicitSolver.class));
CourantNumberController courantNumberController_0 =
  coupledImplicitSolver_0.getCourantNumberController();
courantNumberController_0.getCourantNumberControlOption().setSelected(CourantNumberControlOption.Type.CONSTANT_CFL);
ConstantCourantNumberControl constantCourantNumberControl_0 =
  ((ConstantCourantNumberControl) courantNumberController_0.getCourantNumberControl());
constantCourantNumberControl_0.getCFLQuantity().setValue(25.0);

Set a Linear Ramp CFL with initial value 1.0, starting from iteration 10 to 100, with a final CFL of 500:

Previous Release Simcenter STAR-CCM+ 2020.1
coupledImplicitSolver_0.getRampCalculatorManager().getRampCalculatorOption().setSelected(RampCalculatorOption.Type.LINEAR_RAMP);
LinearRampCalculator linearRampCalculator_0 =
      ((LinearRampCalculator) coupledImplicitSolver_0.getRampCalculatorManager().getCalculator());
    linearRampCalculator_0.setInitialRampValue(1.0);
    linearRampCalculator_0.setStartIteration(10);
    linearRampCalculator_0.setEndIteration(100);
    coupledImplicitSolver_0.setCFL(500.0);
courantNumberController_0.getCourantNumberControlOption().setSelected(CourantNumberControlOption.Type.LINEAR_RAMP_CFL);
LinearRampCourantNumberControl linearRampCourantNumberControl_0 =
  ((LinearRampCourantNumberControl) courantNumberController_0.getCourantNumberControl());
linearRampCourantNumberControl_0.setInitialRampValue(1.0);
linearRampCourantNumberControl_0.setStartIteration(10);
linearRampCourantNumberControl_0.setEndIteration(100);
linearRampCourantNumberControl_0.getCFLQuantity().setValue(500.0);

Activate the Expert Driver, and set a Linear Ramp CFL with initial value 1.0, starting from iteration 10 to 100, with a final CFL of 75, Target AMG Cycles at 8, and CFL Recovery Rate at 1.5:

Previous Release Simcenter STAR-CCM+ 2020.1
coupledImplicitSolver_0.getSolutionDriverManager().getExpertDriverOption().setSelected(ExpertDriverOption.Type.EXPERT_DRIVER);
 ExpertDriverCoupledSolver expertDriverCoupledSolver_0 =
      ((ExpertDriverCoupledSolver) coupledImplicitSolver_0.getSolutionDriverManager().getDriver());
    expertDriverCoupledSolver_0.setInitialRampValue(1.0);
    expertDriverCoupledSolver_0.setStartIteration(10);
    expertDriverCoupledSolver_0.setEndIteration(100);
    coupledImplicitSolver_0.setCFL(75.0);
    expertDriverCoupledSolver_0.setAmgNrCyclesForCflLimiting(8);
    expertDriverCoupledSolver_0.setCflRecoveryRate(1.5);
courantNumberController_0.getCourantNumberControlOption().setSelected(CourantNumberControlOption.Type.EXPERT_DRIVER);
    ExpertDriverCourantNumberControl expertDriverCourantNumberControl_0 =
      ((ExpertDriverCourantNumberControl) courantNumberController_0.getCourantNumberControl());
    expertDriverCourantNumberControl_0.setInitialRampValue(1.0);
    expertDriverCourantNumberControl_0.setStartIteration(10);
    expertDriverCourantNumberControl_0.setEndIteration(100);
    expertDriverCourantNumberControl_0.getCFLQuantity().setValue(75.0);
    expertDriverCourantNumberControl_0.setAmgNrCyclesForCflLimiting(8);
    expertDriverCourantNumberControl_0.setCflRecoveryRate(1.5);

Transfer of explicit relaxation from the Coupled Flow model to the Coupled Implicit Solver

Explicit relaxation has been transferred from the Coupled Flow continuum model node to the Coupled Implicit Solver node. The solver's new Explicit Relaxation Method property gives you a choice of methods which activates a corresponding sub-node.

  • CoupledFlowModel::getExplicitRelaxation() has been deprecated (scheduled for removal in a future release).
  • CoupledFlowModel::getActiveExplicitRelaxation() has been deprecated.
  • CoupledFlowModel::setExplicitRelaxation() has been deprecated, except that it sets the explicit relaxation only if CoupledImplicitSolver is using the Constant explicit relaxation option.
  • CoupledImplicitSolver::getExpertDriverManager() has been removed.

The following is an example of explicit relaxation settings for the Coupled Implicit Solver, setting constant explicit relaxation to 0.5:

Previous Release Simcenter STAR-CCM+ 2020.1
PhysicsContinuum physicsContinuum_0 =
 ((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1"));
 CoupledFlowModel coupledFlowModel_0 =
 physicsContinuum_0.getModelManager().getModel(CoupledFlowModel.class);
 coupledFlowModel_0.setExplicitRelaxation(0.5);
ExplicitRelaxationController explicitRelaxationController_0 =
 coupledImplicitSolver_0.getExplicitRelaxationController();
 explicitRelaxationController_0.getExplicitRelaxationControlOption().setSelected(ExplicitRelaxationControlOption.Type.NONE);
 explicitRelaxationController_0.getExplicitRelaxationControlOption().setSelected(ExplicitRelaxationControlOption.Type.CONSTANT_URF);
 ConstantExplicitRelaxationControl constantExplicitRelaxationControl_0 =
 ((ConstantExplicitRelaxationControl) explicitRelaxationController_0.getExplicitRelaxationControl());
 constantExplicitRelaxationControl_0.getUrfQuantity().setValue(0.5);

Adjoint: Changes to Surface Sensitivity

To improve the smoothing of surface sensitivity, the option that activates smoothing has moved from the Surface Sensitivity solver to the Surface Sensitivity continuum model, and is available as the Surface Sensitivity Filtering option. This change has resulted in changes to the macro code.

Previous Release Simcenter STAR-CCM+ 2020.1
AdjointSolver adjointSolver_0 =
  ((AdjointSolver) simulation_0.getSolverManager().getSolver(AdjointSolver.class));
SurfaceSensitivitySolver surfaceSensitivitySolver_0 =
  ((SurfaceSensitivitySolver) adjointSolver_0.getAdjointSolverManager().getSolver(SurfaceSensitivitySolver.class));
surfaceSensitivitySolver_0.setEpsilon(1.0);
SurfaceSensitivityModel surfaceSensitivityModel_0 =
  physicsContinuum_0.getModelManager().getModel(SurfaceSensitivityModel.class);
surfaceSensitivityModel_0.setSurfaceSensitivityFilteringEnabled(true);
surfaceSensitivityModel_0.getSurfaceSensitivityGlobalFilterRadius().setValue(0.01);

Reacting Flows: Change to Removal of Reaction Components

Removal of a reaction component must now specify the host continuum of the component that is being removed. In the example below, ("O-- (Electrochemical Species Mixture)") becomes ("O-- (elyte: Electrochemical Species Mixture)").

Previous Release Simcenter STAR-CCM+ 2020.1
ReactionComponentMixture component = 
      ((ReactionComponentMixture) reaction.getProducts().getProduct("O--  (Electrochemical Species Mixture)"));
    reaction.getProducts().removeReactionComponent(component);
ReactionComponentMixture component = 
      ((ReactionComponentMixture) reaction.getProducts().getProduct("O--  (elyte: Electrochemical Species Mixture)"));
    reaction.getProducts().removeReactionComponent(component);

DFBI: Changes to Six DOF Morpher Specification

For cases with the 6-DOF Mesh Morpher and displacements added on top of the DFBI body motion, the method Six DOF Body plus Displacement within the Six DOF Morpher Specification boundary physics condition node has been discontinued. It has been replaced by the Six DOF Body method.

Previous versions of Simcenter STAR-CCM+ allowed for the specification of incremental displacements on top of the DFBI body motion. In Simcenter STAR-CCM+ 2020.1, this is extended to total displacements as well. Since most structural solvers typically provide total displacements, the ability to specify total displacements on the DFBI body surface is a significant improvement for these types of simulation.

As part of this modification, the meaning of the coordinate system within the Morpher Incremental Linear Displacement boundary physics value node has changed. If the displacement is defined in the body coordinate system, that coordinate system needs to be selected here. In previous versions, the laboratory coordinate system had to be selected.

These changes have resulted in changes to the macro code.

Previous Release Simcenter STAR-CCM+ 2020.1
boundary_0.getConditions().get(DofMorpherSpecification.class).setSelected(DofMorpherSpecification.Type.SIXDOFBODYPLUSDISPL);
IncrementalDisplacementProfile incrementalDisplacementProfile_0 = 
  boundary_0.getValues().get(IncrementalDisplacementProfile.class);
incrementalDisplacementProfile_0.setMethod(FunctionVectorProfileMethod.class);
UserFieldFunction userFieldFunction_0 = 
  ((UserFieldFunction) simulation_0.getFieldFunctionManager().getFunction("Displacement_0"));
incrementalDisplacementProfile_0.getMethod(FunctionVectorProfileMethod.class).setFieldFunction(userFieldFunction_0);
boundary_0.getConditions().get(DofMorpherSpecification.class).setSelected(DofMorpherSpecification.Type.SIXDOFBODY);
boundary_0.getConditions().get(DeformationSpecification.class).setSelected(DeformationSpecification.Type.USERDEFINED);
boundary_0.getConditions().get(DisplacementSpecification.class).setSelected(DisplacementSpecification.Type.INCREMENTAL);
IncrementalDisplacementProfile incrementalDisplacementProfile_0 = 
  boundary_0.getValues().get(IncrementalDisplacementProfile.class);
incrementalDisplacementProfile_0.setMethod(FunctionVectorProfileMethod.class);
UserFieldFunction userFieldFunction_0 = 
  ((UserFieldFunction) simulation_0.getFieldFunctionManager().getFunction("Displacement_0"));
incrementalDisplacementProfile_0.getMethod(FunctionVectorProfileMethod.class).setFieldFunction(userFieldFunction_0);
LabCoordinateSystem labCoordinateSystem_0 = 
  simulation_0.getCoordinateSystemManager().getLabCoordinateSystem();
CartesianCoordinateSystem cartesianCoordinateSystem_0 = 
  ((CartesianCoordinateSystem) labCoordinateSystem_0.getLocalCoordinateSystemManager().getObject("Body-CSys"));
incrementalDisplacementProfile_0.setCoordinateSystem(cartesianCoordinateSystem_0);

Electromagnetics

Changes to Material Property Tensors

For specifying Permittivity of the material, the available tensors have been improved to simplify the workflow, and renamed to be consistent with other models.

Previous Release Simcenter STAR-CCM+ 2020.1
CompositeSymmetricTensorProfileMethod
AnisotropicTensorProfileMethod
PrincipalTensorProfileMethod
OrthotropicTensorProfileMethod
AxisymmetricTensorProfileMethod
TransverseIsotropicTensorProfileMethod

To use legacy methods, update your macros as shown in the following example for the AnisotropicElectricalConductivityProperty. The essential line in the code for Simcenter STAR-CCM+ 2020.1 is anisotropicElectricalConductivityMethodWithValues_0.setLegacyMethodAvailability(true);.

Previous Release Simcenter STAR-CCM+ 2020.1
physicsContinuum_0.enable(SolidModel.class);
physicsContinuum_0.enable(ElectromagnetismModel.class);
physicsContinuum_0.enable(ElectrodynamicsPotentialModel.class);
Region region_0 = 
  simulation_0.getRegionManager().createEmptyRegion();
solid_0.getMaterialProperties().getMaterialProperty(ElectricalConductivityProperty.class).setMethod(AnisotropicElectricalConductivityMethod.class);
AnisotropicElectricalConductivity anisotropicElectricalConductivity_0 = 
  region_0.getValues().get(AnisotropicElectricalConductivity.class);
ScalarProfile scalarProfile_0 = 
  anisotropicElectricalConductivity_0.getMethod(PrincipalTensorProfileMethodWithAxes.class).getProfile(0);
scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(1.0);
physicsContinuum_0.enable(SolidModel.class);
physicsContinuum_0.enable(ElectromagnetismModel.class);
physicsContinuum_0.enable(ElectrodynamicsPotentialModel.class);
Region region_0 = 
  simulation_0.getRegionManager().createEmptyRegion();
SolidModel solidModel_0 = 
  physicsContinuum_0.getModelManager().getModel(SolidModel.class);
Solid solid_0 = 
  ((Solid) solidModel_0.getMaterial());
solid_0.getMaterialProperties().getMaterialProperty(ElectricalConductivityProperty.class).setMethod(AnisotropicElectricalConductivityMethodWithValues.class);
AnisotropicElectricalConductivityMethodWithValues anisotropicElectricalConductivityMethodWithValues_0 = 
  ((AnisotropicElectricalConductivityMethodWithValues) solid_0.getMaterialProperties().getMaterialProperty(ElectricalConductivityProperty.class).getMethod());
anisotropicElectricalConductivityMethodWithValues_0.setLegacyMethodAvailability(true);
solid_0.getMaterialProperties().getMaterialProperty(ElectricalConductivityProperty.class).setMethod(AnisotropicElectricalConductivityMethod.class);
AnisotropicElectricalConductivity anisotropicElectricalConductivity_0 = 
  region_0.getValues().get(AnisotropicElectricalConductivity.class);
ScalarProfile scalarProfile_0 = 
  anisotropicElectricalConductivity_0.getMethod(PrincipalTensorProfileMethodWithAxes.class).getProfile(0);
scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(1.0);

Use equivalent code for the AnisotropicPermeabilityProperty and AnisotropicPermittivityProperty.

Changes to Specified Temperature Model

To extend compatibility of the Specified Temperature model with other models, the Finite Element and Finite Volume variants of the model have been combined, resulting in changes to the macro code.

In previous releases of Simcenter STAR-CCM+, when using the Finite Element Specified Temperature model it was possible to initialize a simulation without fully specifying the initial conditions. In Simcenter STAR-CCM+ 2020.1 this action is no longer allowed. Before initializing, make selections for all properties of the Specified Temperature initial conditions, otherwise an error message appears.

Imports

Previous Release Simcenter STAR-CCM+ 2020.1
import star.solidstress.FeSpecifiedTemperatureModel
import star.solidstress.SpecifiedTemperatureModel
import star.solidstress.FvSpecifiedTemperatureModel

Class names

Previous Release Simcenter STAR-CCM+ 2020.1
FeSpecifiedTemperatureModel.class
SpecifiedTemperatureModel.class
FvSpecifiedTemperatureModel.class

Multiphase

Changes to Film Stripping

Due to restructuring, the phase interaction parameters Stripped Liquid Volume Fraction Limit and Friction Velocity Scaling Factor have been moved from the Reference Values of a phase interaction to the properties of the Stripping phase model node.

Update your macro codes for these parameters as follows:

FrictionVelocityScalingFactor

Previous Release Simcenter STAR-CCM+ 2020.1
phaseInteraction_1.get(ReferenceValueManager.class).get(FrictionVelocityScalingFactor.class).setValue(<value>);
phaseInteraction_1.getModelManager().getModel(FilmStrippingEMPModel.class).getFrictionVelocityScalingFactor().setValue(<value>);

StrippingVolumeFractionLimit

Previous Release Simcenter STAR-CCM+ 2020.1
phaseInteraction_1.get(ReferenceValueManager.class).get(StrippingVolumeFractionLimit.class).setValue(<value>);
phaseInteraction_1.getModelManager().getModel(FilmStrippingEMPModel.class).getStrippingVolumeFractionLimit().setValue(<value>);

Change to Contact Angle in VOF and Fluid Film

The default setting for the Contact Angle physics value node, which becomes available when the Surface Tension phase interaction model is activated for a Fluid Film or VOF phase interaction, has been changed from 0 to 90 degrees.

If your simulation from a previous version of Simcenter STAR-CCM+ uses the former default setting of zero, then modify your macro code as shown in the following example to restore that value. Macros that specify a non-default contact angle do not require an update.

Simulation simulation_0 = getActiveSimulation();
Region region_0 = simulation_0.getRegionManager().getRegion("Region 1");
Boundary boundary_0 = region_0.getBoundaryManager().getBoundary("Boundary 1");
PhaseConditions phaseConditions_0 = ((PhaseConditions) boundary_0.get(PhaseConditionsManager.class).getPhaseConditions("Phase Interaction 1"));
ContactAngleProfile contactAngleProfile_0 = phaseConditions_0.getPhaseValueManager().get(ContactAngleProfile.class);

contactAngleProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(0.0); // recover the old default value of 0

Co-Simulation: Changes to External Continuum Links

To simplify user interaction with external continua in co-simulation, the feature has been refactored, resulting in changes to the macro code for the import action.

Previous Release Simcenter STAR-CCM+ 2020.1
import star.cosimulation.common.ExternalContinua;
import star.cosimulation.common.ExternalContinuumModel;
import star.cosimulation.link.common.ExternalContinua;
import star.cosimulation.link.common.ExternalContinuumModel;