Macro API Changes 9.04

In Simcenter STAR-CCM+ 9.04, the macro API changed for the Granular Pressure model, Eulerian multiphase modeling, co-simulation, 1D coupling, STAR-Cast, and the Ffowcs Williams-Hawkings models.

Changes to the Frictional and Granular Pressure Models

In Simcenter STAR-CCM+ v9.04, the frictional model selection is done at the granular pressure model. Update your old macros as follows:

Previous Release Simcenter STAR-CCM+ v9.04

//Activating the Granular Pressure Model

PhysicsContinuum physicsContinuum_0 = 

((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1")); physicsContinuum_0.enable(GranularPressureModel.class); physicsContinuum_0.enable(GranularTemperatureProviderGroup.class); physicsContinuum_0.enable(GranularTemperatureTransportModelProvider.class);

//Activating the Granular Pressure Model

PhysicsContinuum physicsContinuum_0 = 

((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1")); physicsContinuum_0.enable(GranularPressureModel.class); physicsContinuum_0.enable(GranularTemperatureTransportModelProvider.class);

//Setting frictional regime to Modified Johnson

GranularPressureModel granularPressureModel_0 =  physicsContinuum_0.getModelManager().getModel(GranularPressureModel.class); FrictionalTheoryProvider frictionalTheoryProvider_0 = granularPressureModel_0.getFrictionalTheory(); frictionalTheoryProvider_0.getFrictionalSolidPressureOption().setSelected(FrictionalSolidPressureOption.MOD_JOHNSON);

//Setting frictional regime to Modified Johnson

PhysicsContinuum physicsContinuum_0 = 

((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1")); GranularPressureModel granularPressureModel_0 =  physicsContinuum_0.getModelManager().getModel(GranularPressureModel.class); granularPressureModel_0.getFrictionalSolidPressureOption().setSelected(FrictionalSolidPressureOption.MOD_JOHNSON);

//Setting frictional regime to Schaeffer GranularPressureModel granularPressureModel_0 = physicsContinuum_0.getModelManager().getModel(GranularPressureModel.class); FrictionalTheoryProvider frictionalTheoryProvider_0 =  granularPressureModel_0.getFrictionalTheory(); frictionalTheoryProvider_0.getFrictionalSolidPressureOption().setSelected(FrictionalSolidPressureOption.SCHAEFFER);

//Setting frictional regime to Schaeffer GranularPressureModel

GranularPressureModel granularPressureModel_0 =  physicsContinuum_0.getModelManager().getModel(GranularPressureModel.class); granularPressureModel_0.getFrictionalSolidPressureOption().setSelected(FrictionalSolidPressureOption.SCHAEFFER);

//Setting angle property on Schaeffer model

SchaefferFrictionalMethod schaefferFrictionalMethod_0 =  frictionalTheoryProvider_0.getFrictionalMethod(); schaefferFrictionalMethod_0.getAngInternalFriction().setValue(26.0);

//Setting angle property on Schaeffer model

SchaefferFrictionalMethod schaefferFrictionalMethod_0 =  granularPressureModel_0.getFrictionalMethod(); schaefferFrictionalMethod_0.getAngInternalFriction().setValue(26.0);

Changes to the Eulerian Multi Phase Interaction Length Scale and Interaction Area Density

In Simcenter STAR-CCM+ v9.04, the different interaction length scale (ILS) models are consolidated into a single model. Similarly, the different interaction area density (IAD) models are consolidated into one model. The previous ILS and IAD models are now made available as ILS and IAD methods. The constant interaction length scale method is set as the default ILS method with a value of 0.001 m while the symmetric interaction area density method is set as the default IAD method.

Previous Release Simcenter STAR-CCM+ v9.04

//Selecting Interaction Length Scale as Constant and setting its value to 1.0E-4

eulerianPhaseInteraction_0.enable(ConstantInteractionLengthScaleModel.class);

ConstantInteractionLengthScaleModel constantInteractionLengthScaleModel_0 =

eulerianPhaseInteraction_0.getModelManager().getModel(ConstantInteractionLengthScaleModel.class);

constantInteractionLengthScaleModel_0.getInteractionLengthScale().setValue(1.0E-4);

//Selecting Symmetric Interaction Area Density

eulerianPhaseInteraction_0.enable(SymmetricInteractionAreaDensityModel.class);

//Selecting Interaction Length Scale as Constant and setting its value to 1.0E-4

eulerianPhaseInteraction_0.enable(EulerianInteractionLengthScaleModel.class);

EulerianInteractionLengthScaleModel eulerianInteractionLengthScaleModel_0 =

eulerianPhaseInteraction_0.getModelManager().getModel(EulerianInteractionLengthScaleModel.class);

ConstantInteractionCoefficientMethod constantInteractionCoefficientMethod_0 =

eulerianInteractionLengthScaleModel_0.getEulerianInteractionLengthScale().getMethod(ConstantInteractionCoefficientMethod.class);

constantInteractionCoefficientMethod_0.getQuantity().setValue(1.0E-4);

//Selecting Symmetric Interaction Area Density (default)

eulerianPhaseInteraction_0.enable(InteractionAreaDensityModel.class);

//Using a Field Function as Interaction Length Scale

eulerianPhaseInteraction_0.enable(ConstantInteractionLengthScaleModel.class);

ConstantInteractionLengthScaleModel constantInteractionLengthScaleModel_0 =

phaseInteraction_0.getModelManager().getModel(ConstantInteractionLengthScaleModel.class);

phaseInteraction_0.disableModel(constantInteractionLengthScaleModel_0);

phaseInteraction_0.enable(UserDefinedInteractionLengthScaleModel.class);

UserDefinedInteractionLengthScaleModel userDefinedInteractionLengthScaleModel_0 =

phaseInteraction_0.getModelManager().getModel(UserDefinedInteractionLengthScaleModel.class);

InteractionLengthScaleProfile interactionLengthScaleProfile_0 =

userDefinedInteractionLengthScaleModel_0.getInteractionLengthScaleProfile();

UserFieldFunction userFieldFunction_0 =

((UserFieldFunction) simulation_0.getFieldFunctionManager().getFunction(desiredFunctionName));

interactionLengthScaleProfile_0.getMethod(FunctionScalarProfileMethod.class).setFieldFunction(userFieldFunction_0);

//Using a Field Function as Interaction Length Scale

eulerianPhaseInteraction_0.enable(EulerianInteractionLengthScaleModel.class);

EulerianInteractionLengthScaleModel eulerianInteractionLengthScaleModel_0 =

phaseInteraction_0.getModelManager().getModel(EulerianInteractionLengthScaleModel.class);

eulerianInteractionLengthScaleModel_0.getEulerianInteractionLengthScale().setMethod(FunctionInteractionCoefficientMethod.class);

FunctionInteractionCoefficientMethod functionInteractionCoefficientMethod_0 =

eulerianInteractionLengthScaleModel_0.getEulerianInteractionLengthScale().getMethod(FunctionInteractionCoefficientMethod.class);

UserFieldFunction userFieldFunction_0 =

((UserFieldFunction) simulation_0.getFieldFunctionManager().getFunction(desiredFunctionName));

functionInteractionCoefficientMethod_0.setFieldFunction(userFieldFunction_0);

//Selecting Spherical Particle Interaction Area Density

phaseInteraction_0.enable(SymmetricInteractionAreaDensityModel.class);

SymmetricInteractionAreaDensityModel symmetricInteractionAreaDensityModel_0 =

phaseInteraction_0.getModelManager().getModel(SymmetricInteractionAreaDensityModel.class);

phaseInteraction_0.disableModel(symmetricInteractionAreaDensityModel_0);

phaseInteraction_0.enable(SphericalParticleInteractionAreaDensityModel.class);

//Selecting Spherical Particle Interaction Area Density

phaseInteraction_0.enable(InteractionAreaDensityModel.class);

InteractionAreaDensityModel interactionAreaDensityModel_0 =

phaseInteraction_0.getModelManager().getModel(InteractionAreaDensityModel.class);

interactionAreaDensityModel_0.getInteractionAreaDensity().setMethod(SphericalParticleInteractionAreaDensityMethod.class);

Changes to the Eulerian Multi Phase Flow Profiles and Flow Options

In Simcenter STAR-CCM+ v9.04, EMP velocity and volume-fraction profiles that are used to set initial conditions, boundary conditions, mass, and momentum source have been migrated to each individual phase.

Previous Release Simcenter STAR-CCM+ v9.04

//Setting the Initial conditions for velocity and volume fraction

MultiPhaseVelocityProfile multiPhaseVelocityProfile_0 =

physicsContinuum_0.getInitialConditions().get(MultiPhaseVelocityProfile.class);

VectorProfile vectorProfile_0 =

multiPhaseVelocityProfile_0.getMethod(CompositeArrayVectorProfileMethod.class).getProfile(0);

vectorProfile_0.getMethod(ConstantVectorProfileMethod.class).getQuantity().setComponents(2.02, 0.0, 0.0);

VectorProfile vectorProfile_1 =

multiPhaseVelocityProfile_0.getMethod(CompositeArrayVectorProfileMethod.class).getProfile(1);

vectorProfile_1.getMethod(ConstantVectorProfileMethod.class).getQuantity().setComponents(2.0, 0.0, 0.0);

VolumeFractionProfile volumeFractionProfile_0 =

physicsContinuum_0.getInitialConditions().get(VolumeFractionProfile.class);

volumeFractionProfile_0.getMethod(ConstantArrayProfileMethod.class).getQuantity().setArray(new DoubleVector(new double[]

{0.999, 0.0010}));

//Setting the Initial conditions for velocity and volume fraction

VelocityProfile velocityProfile_0 =

eulerianPhase_0.get(ContinuumInitialConditionManager.class).get(VelocityProfile.class);

velocityProfile_0.getMethod(ConstantVectorProfileMethod.class).getQuantity().setComponents(2.02, 0.0, 0.0);

VelocityProfile velocityProfile_1 =

eulerianPhase_1.get(ContinuumInitialConditionManager.class).get(VelocityProfile.class);

velocityProfile_1.getMethod(ConstantVectorProfileMethod.class).getQuantity().setComponents(2.0, 0.0, 0.0);

ScalarVolumeFractionProfile scalarVolumeFractionProfile_0 =

eulerianPhase_0.get(ContinuumInitialConditionManager.class).get(ScalarVolumeFractionProfile.class);

scalarVolumeFractionProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(0.999);

ScalarVolumeFractionProfile scalarVolumeFractionProfile_1 =

eulerianPhase_1.get(ContinuumInitialConditionManager.class).get(ScalarVolumeFractionProfile.class);

scalarVolumeFractionProfile_1.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(0.0010);

//Setting boundary conditions for two-phases (Water and Steam)

MultiPhaseVelocityMagnitudeProfile multiPhaseVelocityMagnitudeProfile_0 =

boundary_1.getValues().get(MultiPhaseVelocityMagnitudeProfile.class);

multiPhaseVelocityMagnitudeProfile_0.getMethod(ConstantArrayProfileMethod.class).getQuantity().setArray(new DoubleVector(new double[] {2.0, 2.0}));

VolumeFractionProfile volumeFractionProfile_1 =

boundary_1.getValues().get(VolumeFractionProfile.class);

volumeFractionProfile_1.getMethod(ConstantArrayProfileMethod.class).getQuantity().setArray(new DoubleVector(new double[] {0.999, 0.0010}));

//Setting boundary conditions for two-phases (Water and Steam)

PhaseConditions phaseConditions_0 =

((PhaseConditions) boundary_1.get(PhaseConditionsManager.class).getPhaseConditions("Water"));

PhaseConditions phaseConditions_1 =

((PhaseConditions) boundary_1.get(PhaseConditionsManager.class).getPhaseConditions("Steam"));

VelocityMagnitudeProfile velocityMagnitudeProfile_0 =

phaseConditions_0.getPhaseValueManager().get(VelocityMagnitudeProfile.class);

velocityMagnitudeProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(2.0);

VelocityMagnitudeProfile velocityMagnitudeProfile_1 =

phaseConditions_1.getPhaseValueManager().get(VelocityMagnitudeProfile.class);

velocityMagnitudeProfile_1.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(2.0);

ScalarVolumeFractionProfile scalarVolumeFractionProfile_2 =

phaseConditions_0.getPhaseValueManager().get(ScalarVolumeFractionProfile.class);

scalarVolumeFractionProfile_2.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(0.999);

ScalarVolumeFractionProfile scalarVolumeFractionProfile_3 =

phaseConditions_1.getPhaseValueManager().get(ScalarVolumeFractionProfile.class);

scalarVolumeFractionProfile_3.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(0.0010);

//Turning on mass and momentum user-source options

MultiPhaseMassUserSourceOption multiPhaseMassUserSourceOption_0 =

region_0.getConditions().get(MultiPhaseMassUserSourceOption.class);

multiPhaseMassUserSourceOption_0.setUserSourceOption(true);

MultiPhaseMomentumUserSourceOption multiPhaseMomentumUserSourceOption_1 =

region_0.getConditions().get(MultiPhaseMomentumUserSourceOption.class);

multiPhaseMomentumUserSourceOption_1.setUserSourceOption(true);

//Turning on mass and momentum user-source options

MassUserSourceOption massUserSourceOption_0 =

phaseConditions_0.getPhaseConditionManager().get(MassUserSourceOption.class);

massUserSourceOption_0.setUserSourceOption(true);

MassUserSourceOption massUserSourceOption_1 =

phaseConditions_1.getPhaseConditionManager().get(MassUserSourceOption.class);

massUserSourceOption_1.setUserSourceOption(true);

phaseConditions_0.getPhaseConditionManager().get(MomentumUserSourceOption.class).setSelected(MomentumUserSourceOption.SPECIFIED);

phaseConditions_1.getPhaseConditionManager().get(MomentumUserSourceOption.class).setSelected(MomentumUserSourceOption.SPECIFIED);

//Setting the field-functions as mass and momentum user source

MultiPhaseMassUserSource multiPhaseMassUserSource_0 =

region_0.getValues().get(MultiPhaseMassUserSource.class);

multiPhaseMassUserSource_0.setMethod(CompositeArrayProfileMethod.class);

MultiPhaseMassUserSourceVolumeFractionDerivative multiPhaseMassUserSourceVolumeFractionDerivative_0 =

region_0.getValues().get(MultiPhaseMassUserSourceVolumeFractionDerivative.class);

multiPhaseMassUserSourceVolumeFractionDerivative_0.setMethod(CompositeArrayProfileMethod.class);

//Setting the field-functions as mass and momentum user source

MassUserSource massUserSource_0 =

phaseConditions_0.getPhaseValueManager().get(MassUserSource.class);

massUserSource_0.setMethod(FunctionScalarProfileMethod.class);

MassUserSource massUserSource_1 =

phaseConditions_1.getPhaseValueManager().get(MassUserSource.class);

massUserSource_1.setMethod(FunctionScalarProfileMethod.class);

MassUserSourceVolumeFractionDerivative massUserSourceVolumeFractionDerivative_0 =

phaseConditions_0.getPhaseValueManager().get(MassUserSourceVolumeFractionDerivative.class);

massUserSourceVolumeFractionDerivative_0.setMethod(FunctionScalarProfileMethod.class);

Similarly, replace the old class names that are listed in the following table with their updated equivalents:

Previous Release Simcenter STAR-CCM+ v9.04

MultiPhaseVelocityProfile

VelocityProfile

VolumeFractionProfile

ScalarVolumeFractionProfile

MultiPhaseMassUserSourceOption

MassUserSourceOption

MultiPhaseMassUserSource

MassUserSource

MultiPhaseMomentumUserSourceOption

MomentumUserSourceOption

MultiPhaseMomentumUserSource

MomentumUserSource

MultiPhaseMomentumUserSourceJacobianVector 

MomentumUserSourceJacobianVector 

MultiPhaseMassUserSourceVolumeFractionDerivative 

MassUserSourceVolumeFractionDerivative

Changes to the Simcenter STAR-CCM+ Co-Simulation API due to the Introduction of the Implicit Model and Solver

In Simcenter STAR-CCM+ v9.04, the StarccmplusCoSimulationImplicitUnsteadyModel model and StarccmplusCoSimulationImplicitUnsteadySolver solver are introduced for Simcenter STAR-CCM+ co-simulation.

To accommodate these changes, the previous StarccmplusCoSimulationModel model has been renamed to StarccmplusCoSimulationExplicitUnsteadyModel for transient simulations and StarccmplusCoSimulationSteadyModel for steady simulations.

For transient simulations, the previous StarccmplusCoSimulationUnsteadySolver solver has been renamed to StarccmplusCoSimulationExplicitUnsteadySolver. If your simulation contains an older model or solver, these will be updated to use the renamed variants.

Previous Release Simcenter STAR-CCM+ v9.04

PhysicsContinuum physicsContinuum_0 = 

      ((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1"));

physicsContinuum_0.enable(CoSimulationModel.class);

physicsContinuum_0.enable(StarccmplusCoSimulationModel.class);

StarccmplusCoSimulationUnsteadySolver starccmplusCoSimulationUnsteadySolver_0 =          ((StarccmplusCoSimulationUnsteadySolver) simulation_0.getSolverManager().getSolver(StarccmplusCoSimulationUnsteadySolver.class));

((ConstantNegotiationMethod) starccmplusCoSimulationUnsteadySolver_0.getNegotiationMethodManager().getMethod()).getConstantTimeStep().setValue(10.0);

PhysicsContinuum physicsContinuum_0 = 

      ((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1"));

physicsContinuum_0.enable(CoSimulationModel.class);

physicsContinuum_0.enable(StarccmplusCoSimulationExplicitUnsteadyModel.class);

StarccmplusCoSimulationExplicitUnsteadySolver starccmplusCoSimulationExplicitUnsteadySolver_0 = 

((StarccmplusCoSimulationExplicitUnsteadySolver) simulation_0.getSolverManager().getSolver(StarccmplusCoSimulationExplicitUnsteadySolver.class));

((ConstantNegotiationMethod) starccmplusCoSimulationExplicitUnsteadySolver_0.getNegotiationMethodManager().getMethod()).getConstantTimeStep().setValue(10.0);

PhysicsContinuum physicsContinuum_0 = 

      ((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1"));

physicsContinuum_0.enable(CoSimulationModel.class);

physicsContinuum_0.enable(StarccmplusCoSimulationModel.class);

StarccmplusCoSimulationSteadySolver starccmplusCoSimulationSteadySolver_0 = 

 ((StarccmplusCoSimulationSteadySolver) simulation_0.getSolverManager().getSolver(StarccmplusCoSimulationSteadySolver.class));

NumIterationsPerExchange numIterationsPerExchange_0 = 

starccmplusCoSimulationSteadySolver_0.getNumIterationsPerExchange();

numIterationsPerExchange_0.setNumIterationsPerExchange(10);

PhysicsContinuum physicsContinuum_0 = 

      ((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1"));

physicsContinuum_0.enable(CoSimulationModel.class);

physicsContinuum_0.enable(StarccmplusCoSimulationSteadyModel.class);

StarccmplusCoSimulationSteadySolver starccmplusCoSimulationSteadySolver_0 = 

((StarccmplusCoSimulationSteadySolver) simulation_0.getSolverManager().getSolver(StarccmplusCoSimulationSteadySolver.class));

NumIterationsPerExchange numIterationsPerExchange_0 = 

starccmplusCoSimulationSteadySolver_0.getNumIterationsPerExchange();

numIterationsPerExchange_0.setNumIterationsPerExchange(10);

Changes to How Zones are Assigned to Boundaries in 1D Coupling

In Simcenter STAR-CCM+ v9.04, zones are set using an object selector dialog. In previous versions, you selected boundaries for the zones using a drop-down menu. Any macros that refer to the old selection method for the boundaries must be updated as follows:

Previous Release Simcenter STAR-CCM+ v9.04

OlgaZone olgaZone_1 = 

      ((OlgaZone) olga5Node_0.getOlgaZoneManager().getObject("Zone 1"));

Boundary boundary_0 = 

region_0.getBoundaryManager().getBoundary("Inlet");

olgaZone_1.setCcmBoundary(boundary_0);

OlgaZone olgaZone_1 = 

      ((OlgaZone) olga5Node_0.getOlgaZoneManager().getObject("Zone 1"));

Boundary boundary_0 = 

region_0.getBoundaryManager().getBoundary("Inlet”);

olgaZone_1.getCcmBoundaryPartGroup().setObjects(boundary_0);

Changes to the Dendrite Arm Spacing models in STAR-Cast

In Simcenter STAR-CCM+ v9.04, the Primary Dendrite Arm Spacing material property is transformed into the Primary Dendrite Arm Spacing model. Similarly, the Secondary Dendrite Arm Spacing material property is transformed to the Secondary Dendrite Arm Spacing/Secondary Dendrite Arm Spacing (LST)/Secondary Dendrite Arm Spacing (CR) models. Any old macros that contain these functions must be updated as follows:

Previous Release Simcenter STAR-CCM+ v9.04

package macro;

import java.util.*;

import star.common.*;

import star.casting.*;

public class castingModel extends StarMacro {

public void execute() {

execute0();

}

private void execute0() {

Simulation simulation_0 = 

getActiveSimulation();

PhysicsContinuum physicsContinuum_0 = 

      ((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1"));

EulerianMultiPhaseModel eulerianMultiPhaseModel_0 = 

physicsContinuum_0.getModelManager().getModel(EulerianMultiPhaseModel.class);

EulerianPhase eulerianPhase_0 = 

      ((EulerianPhase) eulerianMultiPhaseModel_0.getPhaseManager().getPhase("Phase 1"));

eulerianPhase_0.enable(CriteriaFunctionModel.class);

}

}

package macro;

import java.util.*;

import star.material.*;

import star.common.*;

import star.casting.*;

public class castingModel extends StarMacro {

public void execute() {

execute0();

}

private void execute0() {

Simulation simulation_0 = 

getActiveSimulation();

PhysicsContinuum physicsContinuum_0 = 

      ((PhysicsContinuum) simulation_0.getContinuumManager().getContinuum("Physics 1"));

EulerianMultiPhaseModel eulerianMultiPhaseModel_0 = 

physicsContinuum_0.getModelManager().getModel(EulerianMultiPhaseModel.class);

EulerianPhase eulerianPhase_0 = 

      ((EulerianPhase) eulerianMultiPhaseModel_0.getPhaseManager().getPhase("Phase 1"));

eulerianPhase_0.enable(CriteriaFunctionModel.class);

eulerianPhase_0.enable(PrimaryDendriteArmSpacingModel.class);

eulerianPhase_0.enable(SecondaryDendriteArmSpacingModel.class);

eulerianPhase_0.enable(SecondaryDendriteArmSpacingLSTModel.class);

}

}

Changes to the Ffowcs Williams-Hawkings Models

The Far-field Density and Far-field Sound Speed properties have moved from being properties of the On-the-Fly FW-H model to the FW-H Receivers manager. As a result, any old macros that sets these properties explicitly, rather than by default, will fail to compile.

Previous Release Simcenter STAR-CCM+ v9.04

FwhModel fwhModel_0 =

physicsContinuum_0.getModelManager().getModel(FwhModel.class);

fwhModel_0.getRhoFarField().setValue(1.225);

fwhModel_0.getSoundSpeedFarField().setValue(340.0);

simulation_0.get(ReceiverManager.class).getFarFieldDensity().setValue(1.225);

simulation_0.get(ReceiverManager.class).getFarFieldSoundSpeed().setValue(340.0); 

The Acoustic Correlation Length has moved from being a property located on the Reference Values node, for two-dimensional simulations when On-The-Fly FW-H Models and Post FW-H Models are enabled, to the FW-H Receivers manager (for On-the-Fly FW-H Model) and Post FW-H Receivers manager (for Post FW-H Model) respectively. As a result, any old macros that sets this property explicitly, rather than by default, will fail to compile.

Previous Release Simcenter STAR-CCM+ v9.04

continuum.getReferenceValues().get(AcousticCorrelationLengthRV.class).setValue(0.19); 

simulation_0.get(ReceiverManager.class).getAcousticCorrelationLength().setValue(0.19);

simulation_0.get(FwhPostProcessingReceiverManager.class).getAcousticCorrelationLength().setValue(0.19);

The Far-field Density and Far-field Sound Speed properties have moved from being properties of the Post FW-H model to the Post FW-H Receivers manager. As a result, any old macros that sets these properties explicitly, rather than by default, will fail to compile.

Previous Release Simcenter STAR-CCM+ v9.04

FwhCollectTrnPostProcessingModel

fwhCollectTrnPostProcessingModel_0 =

physicsContinuum_0.getModelManager().getModel(FwhCollectTrnPostProcessingModel.class);

fwhCollectTrnPostProcessingModel_0.getRhoFarField().setValue(1.225);

fwhCollectTrnPostProcessingModel_0.getSoundSpeedFarField().setValue(340.0);

simulation_0.get(FwhPostProcessingReceiverManager.class).getFarFieldDensity().setValue(1.225);

simulation_0.get(FwhPostProcessingReceiverManager.class).getFarFieldSoundSpeed().setValue(340.0)