Skip to content
OFFICIAL SS DOCUMENTATION

SS.Multiphysics 1.4.0

Typed coupled models, conservative nonmatching 1D/2D field transfer, coupled block Jacobians, nonlinear spatial electrothermal/thermoelastic solution, retrying transactional transient advancement, conservation audits, checkpointed monolithic and partitioned solution, and qualified reference formulations
API 1.4.0
MIT
source

Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0

Dependencies: SS.CFD >=1.0.0 <2.0.0, SS.Electromagnetics >=1.0.0 <2.0.0, SS.Fluids >=1.0.0 <2.0.0, SS.HeatTransfer >=1.0.0 <2.0.0, SS.LinearAlgebra >=1.1.0 <2.0.0, SS.Numerics >=1.0.0 <2.0.0, SS.StructuralMechanics >=1.0.0 <2.0.0

Public API

Public signature
export function advanceMonolithic(CoupledSystem system, double[] initial, TimeControls time, SolverControls options) -> TransientSolution

Parameters: system: CoupledSystem, initial: double[], time: TimeControls, options: SolverControls


Public signature
export function advancePartitioned(PartitionedSystem system, double[] initial, TimeControls time, SolverControls options) -> TransientSolution

Parameters: system: PartitionedSystem, initial: double[], time: TimeControls, options: SolverControls


Public signature
export function advanceSpatialThermoelastic(SpatialThermoelasticProblem problem, SpatialThermoelasticCheckpoint initial, double endTime, double timeStep, int maximumSteps, SolverControls options)->SpatialThermoelasticResult

Parameters: problem: SpatialThermoelasticProblem, initial: SpatialThermoelasticCheckpoint, endTime: double, timeStep: double, maximumSteps: int, options: SolverControls


Public signature
export function advanceSpatialThermoelasticPartitioned(SpatialThermoelasticProblem problem, SpatialThermoelasticCheckpoint initial, double endTime, double timeStep, int maximumSteps, SolverControls options)->SpatialThermoelasticResult

Parameters: problem: SpatialThermoelasticProblem, initial: SpatialThermoelasticCheckpoint, endTime: double, timeStep: double, maximumSteps: int, options: SolverControls


Public signature
export function advanceTransientCoupled2D(double startTime, double endTime, double timeStep, int maximumSteps, int maximumRetries, double[] thermalX, double[] thermalY, double[] structuralX, double[] structuralY, double[] initialTemperatures, double[] initialDisplacements, double ambientTemperature, double jouleHeating, double electricalTemperatureCoefficient, double thermalLoss, double thermalExpansion, double mechanicalStiffness, SolverControls options)->TransientCoupled2DResult

Parameters: startTime: double, endTime: double, timeStep: double, maximumSteps: int, maximumRetries: int, thermalX: double[], thermalY: double[], structuralX: double[], structuralY: double[], initialTemperatures: double[], initialDisplacements: double[], ambientTemperature: double, jouleHeating: double, electricalTemperatureCoefficient: double, thermalLoss: double, thermalExpansion: double, mechanicalStiffness: double, options: SolverControls


Public signature
export function assembleCoupledBlockJacobian2D(double[] firstResidual, double[] secondResidual, double[] firstFirst, double[] firstSecond, double[] secondFirst, double[] secondSecond)->CoupledBlockJacobian2D

Parameters: firstResidual: double[], secondResidual: double[], firstFirst: double[], firstSecond: double[], secondFirst: double[], secondSecond: double[]


Public signature
export function assembleSpatialThermoelastic(SpatialThermoelasticProblem problem, double[] previousTemperatures, double[] state, double timeStep)->SpatialThermoelasticAssembly

Parameters: problem: SpatialThermoelasticProblem, previousTemperatures: double[], state: double[], timeStep: double


Public signature
export function boundary(string name, PhysicalField target, string kind, int[] entities, double[] values, string unitSymbol) -> BoundaryCondition

Parameters: name: string, target: PhysicalField, kind: string, entities: int[], values: double[], unitSymbol: string


Public signature
export record BoundaryCondition(public string name, public string field, public string kind, public int[] entities, public double[] values, public string unitSymbol)

Parameters: name: string, field: string, kind: string, entities: int[], values: double[], unitSymbol: string


Public signature
export function conservationAuditCoupled2D(double[] thermalInputs, double[] thermalOutputs, double[] mechanicalInputs, double[] mechanicalOutputs, double[] interfaceSent, double[] interfaceReceived, double tolerance)->CoupledConservationAudit

Parameters: thermalInputs: double[], thermalOutputs: double[], mechanicalInputs: double[], mechanicalOutputs: double[], interfaceSent: double[], interfaceReceived: double[], tolerance: double


Public signature
export record ConstitutiveRelation(public string name, public string inputField, public string outputField, public string description)

Parameters: name: string, inputField: string, outputField: string, description: string


Public signature
export function controls(double absoluteTolerance, double relativeTolerance, int maximumIterations, double relaxation, double divergenceFactor) -> SolverControls

Parameters: absoluteTolerance: double, relativeTolerance: double, maximumIterations: int, relaxation: double, divergenceFactor: double


Public signature
export record CoupledBlockJacobian2D(public double[] residual, public double[] jacobian, public int firstSize, public int secondSize, public double maximumMagnitude, public bool valid)

Parameters: residual: double[], jacobian: double[], firstSize: int, secondSize: int, maximumMagnitude: double, valid: bool


Public signature
export record CoupledConservationAudit(public double thermalResidual, public double mechanicalResidual, public double interfaceResidual, public double totalResidual, public bool conserved, public string diagnostic)

Parameters: thermalResidual: double, mechanicalResidual: double, interfaceResidual: double, totalResidual: double, conserved: bool, diagnostic: string


Public signature
export record CoupledModel(public string name, public PhysicalDomain[] domains, public PhysicalField[] fields, public GoverningEquation[] equations, public ConstitutiveRelation[] relations, public BoundaryCondition[] boundaries, public InterfaceCondition[] interfaces)

Parameters: name: string, domains: PhysicalDomain[], fields: PhysicalField[], equations: GoverningEquation[], relations: ConstitutiveRelation[], boundaries: BoundaryCondition[], interfaces: InterfaceCondition[]


Public signature
export record CoupledSolution(public double[] values, public double[] residualHistory, public double[] conservationHistory, public int iterations, public bool converged, public string diagnostic, public string strategy)

Parameters: values: double[], residualHistory: double[], conservationHistory: double[], iterations: int, converged: bool, diagnostic: string, strategy: string


Public signature
export interface CoupledSystem

Public signature
export function domain(string name, int spatialDimensions, double measure, string measureUnit, int nodeCount) -> PhysicalDomain

Parameters: name: string, spatialDimensions: int, measure: double, measureUnit: string, nodeCount: int


Public signature
export function electroThermalConductor(K ambient, K referenceTemperature, voltage appliedVoltage, m conductorLength, area crossSection, resistivity referenceResistivity, double resistivityTemperatureCoefficient, heatTransferCoefficient convection, area coolingArea, heatRate eddyLossAtReference, SolverControls options) -> ElectroThermalResult

Parameters: ambient: K, referenceTemperature: K, appliedVoltage: voltage, conductorLength: m, crossSection: area, referenceResistivity: resistivity, resistivityTemperatureCoefficient: double, convection: heatTransferCoefficient, coolingArea: area, eddyLossAtReference: heatRate, options: SolverControls


Public signature
export record ElectroThermalResult(public K temperature, public A current, public W jouleLoss, public W eddyLoss, public double energyBalance, public int iterations, public bool converged, public string diagnostic)

Parameters: temperature: K, current: A, jouleLoss: W, eddyLoss: W, energyBalance: double, iterations: int, converged: bool, diagnostic: string


Public signature
export function equation(string name, PhysicalField unknown, string residualUnit, bool transient) -> GoverningEquation

Parameters: name: string, unknown: PhysicalField, residualUnit: string, transient: bool


Public signature
export function field(string name, PhysicalDomain owner, string unitSymbol, int components, double[] values, string conservedQuantity) -> PhysicalField

Parameters: name: string, owner: PhysicalDomain, unitSymbol: string, components: int, values: double[], conservedQuantity: string


Public signature
export function fieldResidual(double[] current, double[] target) -> double[]

Parameters: current: double[], target: double[]


Public signature
export record FieldTransfer2D(public double[] values, public double[] sourceIntegrals, public double[] targetIntegrals, public double[] relativeConservationErrors, public double maximumDistance, public int components, public bool conservative)

Parameters: values: double[], sourceIntegrals: double[], targetIntegrals: double[], relativeConservationErrors: double[], maximumDistance: double, components: int, conservative: bool


Public signature
export function flexibleChannelFsi(m channelLength, m width, m initialGap, dynamicViscosity viscosity, volumetricFlow prescribedFlow, wallStiffness complianceStiffness, density fluidDensity, arealMass wallArealMass, SolverControls options) -> FsiResult

Parameters: channelLength: m, width: m, initialGap: m, viscosity: dynamicViscosity, prescribedFlow: volumetricFlow, complianceStiffness: wallStiffness, fluidDensity: density, wallArealMass: arealMass, options: SolverControls


Public signature
export function fsiPistonStep(m previousDisplacement, velocity previousVelocity, Pa appliedPressure, area interfaceArea, kg structuralMass, kg fluidAddedMass, springStiffness stiffness, viscousDamping damping, s timeStep) -> FsiStepResult

Parameters: previousDisplacement: m, previousVelocity: velocity, appliedPressure: Pa, interfaceArea: area, structuralMass: kg, fluidAddedMass: kg, stiffness: springStiffness, damping: viscousDamping, timeStep: s


Public signature
export record FsiResult(public m displacement, public m interfaceGap, public Pa pressureDrop, public volumetricFlow flowRate, public double tractionError, public double kinematicError, public double interfaceWorkError, public double addedMassRatio, public int iterations, public bool converged, public string diagnostic)

Parameters: displacement: m, interfaceGap: m, pressureDrop: Pa, flowRate: volumetricFlow, tractionError: double, kinematicError: double, interfaceWorkError: double, addedMassRatio: double, iterations: int, converged: bool, diagnostic: string


Public signature
export record FsiStepResult(public m displacement, public velocity interfaceVelocity, public acceleration interfaceAcceleration, public Pa fluidPressure, public Pa structuralTraction, public double tractionError, public double kinematicError, public double interfaceWorkError, public double addedMassRatio, public bool converged, public string diagnostic)

Parameters: displacement: m, interfaceVelocity: velocity, interfaceAcceleration: acceleration, fluidPressure: Pa, structuralTraction: Pa, tractionError: double, kinematicError: double, interfaceWorkError: double, addedMassRatio: double, converged: bool, diagnostic: string


Public signature
export record GoverningEquation(public string name, public string field, public string residualUnit, public bool transient)

Parameters: name: string, field: string, residualUnit: string, transient: bool


Public signature
export function interfaceCondition(string name, PhysicalField source, PhysicalField target, string kind, bool conservative) -> InterfaceCondition

Parameters: name: string, source: PhysicalField, target: PhysicalField, kind: string, conservative: bool


Public signature
export record InterfaceCondition(public string name, public string sourceField, public string targetField, public string kind, public bool conservative)

Parameters: name: string, sourceField: string, targetField: string, kind: string, conservative: bool


Public signature
export function model(string name, PhysicalDomain[] domains, PhysicalField[] fields, GoverningEquation[] equations, ConstitutiveRelation[] relations, BoundaryCondition[] boundaries, InterfaceCondition[] interfaces) -> CoupledModel

Parameters: name: string, domains: PhysicalDomain[], fields: PhysicalField[], equations: GoverningEquation[], relations: ConstitutiveRelation[], boundaries: BoundaryCondition[], interfaces: InterfaceCondition[]


Public signature
export record ModelValidation(public bool valid, public string diagnostic)

Parameters: valid: bool, diagnostic: string


Public signature
export record NonlinearSpatialCoupling2DResult(public double[] temperatures, public double[] displacements, public double[] residualHistory, public int iterations, public bool converged, public string diagnostic)

Parameters: temperatures: double[], displacements: double[], residualHistory: double[], iterations: int, converged: bool, diagnostic: string


Public signature
export function nonMatchingFieldTransfer2D(double[] sourceX, double[] sourceY, double[] sourceValues, double[] sourceWeights, double[] targetX, double[] targetY, double[] targetWeights, int components, bool conservative)->FieldTransfer2D

Parameters: sourceX: double[], sourceY: double[], sourceValues: double[], sourceWeights: double[], targetX: double[], targetY: double[], targetWeights: double[], components: int, conservative: bool


Public signature
export interface PartitionedSystem

Public signature
export record PhysicalDomain(public string name, public int spatialDimensions, public double measure, public string measureUnit, public int nodeCount)

Parameters: name: string, spatialDimensions: int, measure: double, measureUnit: string, nodeCount: int


Public signature
export record PhysicalField(public string name, public string domain, public string unitSymbol, public int components, public double[] values, public string conservedQuantity)

Parameters: name: string, domain: string, unitSymbol: string, components: int, values: double[], conservedQuantity: string


Public signature
export function relation(string name, PhysicalField input, PhysicalField output, string description) -> ConstitutiveRelation

Parameters: name: string, input: PhysicalField, output: PhysicalField, description: string


Public signature
export function relaxedField(double[] current, double[] target, double relaxation) -> double[]

Parameters: current: double[], target: double[], relaxation: double


Public signature
export function solveMonolithic(CoupledSystem system, double[] initial, double time, SolverControls options) -> CoupledSolution

Parameters: system: CoupledSystem, initial: double[], time: double, options: SolverControls


Public signature
export function solveNonlinearSpatialCoupling2D(double[] thermalX, double[] thermalY, double[] structuralX, double[] structuralY, double[] initialTemperatures, double[] initialDisplacements, double ambientTemperature, double jouleHeating, double electricalTemperatureCoefficient, double thermalLoss, double thermalExpansion, double mechanicalStiffness, SolverControls options)->NonlinearSpatialCoupling2DResult

Parameters: thermalX: double[], thermalY: double[], structuralX: double[], structuralY: double[], initialTemperatures: double[], initialDisplacements: double[], ambientTemperature: double, jouleHeating: double, electricalTemperatureCoefficient: double, thermalLoss: double, thermalExpansion: double, mechanicalStiffness: double, options: SolverControls


Public signature
export function solvePartitioned(PartitionedSystem system, double[] initial, double time, SolverControls options) -> CoupledSolution

Parameters: system: PartitionedSystem, initial: double[], time: double, options: SolverControls


Public signature
export record SolverControls(public double absoluteTolerance, public double relativeTolerance, public int maximumIterations, public double relaxation, public double divergenceFactor)

Parameters: absoluteTolerance: double, relativeTolerance: double, maximumIterations: int, relaxation: double, divergenceFactor: double


Public signature
export function spatialInterfaceFlux(SpatialThermoelasticProblem problem, double[] temperatures, double[] displacements)->SpatialInterfaceFlux

Parameters: problem: SpatialThermoelasticProblem, temperatures: double[], displacements: double[]


Public signature
export record SpatialInterfaceFlux(public double leftOutwardFlux, public double rightOutwardFlux, public double netOutwardFlux, public double integratedSource, public double balanceError, public double transferConservationError)

Parameters: leftOutwardFlux: double, rightOutwardFlux: double, netOutwardFlux: double, integratedSource: double, balanceError: double, transferConservationError: double


Public signature
export record SpatialThermoelasticAssembly(public double[] residual, public double[] jacobian, public int thermalNodes, public int structuralNodes, public double energyResidual)

Parameters: residual: double[], jacobian: double[], thermalNodes: int, structuralNodes: int, energyResidual: double


Public signature
export function spatialThermoelasticCheckpoint(double time, double[] temperatures, double[] displacements, int committedSteps)->SpatialThermoelasticCheckpoint

Parameters: time: double, temperatures: double[], displacements: double[], committedSteps: int


Public signature
export record SpatialThermoelasticCheckpoint(public double time, public double[] temperatures, public double[] displacements, public int committedSteps)

Parameters: time: double, temperatures: double[], displacements: double[], committedSteps: int


Public signature
export function spatialThermoelasticProblem(double[] thermalCoordinates, double[] structuralCoordinates, double referenceTemperature, double leftTemperature, double rightTemperature, double thermalDiffusivity, double conductivityNonlinearity, double heatSource, double displacementHeating, double thermalExpansion, double elasticModulus, double modulusTemperatureCoefficient, double endLoad)->SpatialThermoelasticProblem

Parameters: thermalCoordinates: double[], structuralCoordinates: double[], referenceTemperature: double, leftTemperature: double, rightTemperature: double, thermalDiffusivity: double, conductivityNonlinearity: double, heatSource: double, displacementHeating: double, thermalExpansion: double, elasticModulus: double, modulusTemperatureCoefficient: double, endLoad: double


Public signature
export record SpatialThermoelasticProblem(public double[] thermalCoordinates, public double[] structuralCoordinates, public double referenceTemperature, public double leftTemperature, public double rightTemperature, public double thermalDiffusivity, public double conductivityNonlinearity, public double heatSource, public double displacementHeating, public double thermalExpansion, public double elasticModulus, public double modulusTemperatureCoefficient, public double endLoad)

Parameters: thermalCoordinates: double[], structuralCoordinates: double[], referenceTemperature: double, leftTemperature: double, rightTemperature: double, thermalDiffusivity: double, conductivityNonlinearity: double, heatSource: double, displacementHeating: double, thermalExpansion: double, elasticModulus: double, modulusTemperatureCoefficient: double, endLoad: double


Public signature
export record SpatialThermoelasticResult(public SpatialThermoelasticCheckpoint checkpoint, public double[] times, public double[][] temperatureStates, public double[][] displacementStates, public double[] residualHistory, public double[] energyHistory, public int nonlinearIterations, public bool converged, public bool rolledBack, public string diagnostic)

Parameters: checkpoint: SpatialThermoelasticCheckpoint, times: double[], temperatureStates: double[][], displacementStates: double[][], residualHistory: double[], energyHistory: double[], nonlinearIterations: int, converged: bool, rolledBack: bool, diagnostic: string


Public signature
export function thermoStructuralBar(K hot, K ambient, K referenceTemperature, m initialLength, area crossSection, Pa referenceModulus, double modulusTemperatureCoefficient, double thermalExpansion, heatConductivity referenceConductivity, double conductivityTemperatureCoefficient, heatTransferCoefficient convection, N axialLoad, SolverControls options) -> ThermoStructuralResult

Parameters: hot: K, ambient: K, referenceTemperature: K, initialLength: m, crossSection: area, referenceModulus: Pa, modulusTemperatureCoefficient: double, thermalExpansion: double, referenceConductivity: heatConductivity, conductivityTemperatureCoefficient: double, convection: heatTransferCoefficient, axialLoad: N, options: SolverControls


Public signature
export record ThermoStructuralResult(public K meanTemperature, public K surfaceTemperature, public m displacement, public W heatRate, public Pa elasticModulus, public double energyBalance, public int iterations, public bool converged, public string diagnostic)

Parameters: meanTemperature: K, surfaceTemperature: K, displacement: m, heatRate: W, elasticModulus: Pa, energyBalance: double, iterations: int, converged: bool, diagnostic: string


Public signature
export function thermoStructuralStep(K previousTemperature, m previousDisplacement, K ambient, K referenceTemperature, m initialLength, area crossSection, Pa referenceModulus, double modulusTemperatureCoefficient, double thermalExpansion, N axialLoad, kg mass, specificHeat heatCapacity, heatTransferCoefficient convection, heatRate externalHeat, viscousDamping mechanicalDamping, s timeStep, SolverControls options) -> ThermoStructuralStepResult

Parameters: previousTemperature: K, previousDisplacement: m, ambient: K, referenceTemperature: K, initialLength: m, crossSection: area, referenceModulus: Pa, modulusTemperatureCoefficient: double, thermalExpansion: double, axialLoad: N, mass: kg, heatCapacity: specificHeat, convection: heatTransferCoefficient, externalHeat: heatRate, mechanicalDamping: viscousDamping, timeStep: s, options: SolverControls


Public signature
export record ThermoStructuralStepResult(public K temperature, public m displacement, public J storedEnergyChange, public J generatedEnergy, public J rejectedEnergy, public double energyBalance, public int iterations, public bool converged, public string diagnostic)

Parameters: temperature: K, displacement: m, storedEnergyChange: J, generatedEnergy: J, rejectedEnergy: J, energyBalance: double, iterations: int, converged: bool, diagnostic: string


Public signature
export function timeControls(double startTime, double endTime, double timeStep, int maximumSteps) -> TimeControls

Parameters: startTime: double, endTime: double, timeStep: double, maximumSteps: int


Public signature
export record TimeControls(public double startTime, public double endTime, public double timeStep, public int maximumSteps)

Parameters: startTime: double, endTime: double, timeStep: double, maximumSteps: int


Public signature
export function transferLine(double[] sourceCoordinates, double[] sourceValues, double[] targetCoordinates, bool conservative) -> TransferResult

Parameters: sourceCoordinates: double[], sourceValues: double[], targetCoordinates: double[], conservative: bool


Public signature
export record TransferResult(public double[] values, public double sourceIntegral, public double targetIntegralBeforeCorrection, public double targetIntegral, public double relativeConservationError, public double maximumInterpolationDistance, public bool conservative)

Parameters: values: double[], sourceIntegral: double, targetIntegralBeforeCorrection: double, targetIntegral: double, relativeConservationError: double, maximumInterpolationDistance: double, conservative: bool


Public signature
export record TransientCoupled2DResult(public double time, public double[] temperatures, public double[] displacements, public int committedSteps, public int retries, public bool converged, public bool rolledBack, public string diagnostic)

Parameters: time: double, temperatures: double[], displacements: double[], committedSteps: int, retries: int, converged: bool, rolledBack: bool, diagnostic: string


Public signature
export record TransientSolution(public double time, public double[] values, public double[] times, public double[][] states, public int steps, public int couplingIterations, public bool converged, public string diagnostic)

Parameters: time: double, values: double[], times: double[], states: double[][], steps: int, couplingIterations: int, converged: bool, diagnostic: string


Public signature
export function validate(CoupledModel value) -> ModelValidation

Parameters: value: CoupledModel


Documentation version

Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.