This is defined in [fmi-description-schema].
Additionally, the Co-Simulation specific element Implementation
is defined in the next section.
If the XML file defines an FMU for Co-Simulation, element BasicCoSimulation_schema
must be present.
It is defined as:
These attributes have the following meaning (all attributes are optional with exception of modelIdentifier
):
Attribute Name | Description |
---|---|
|
Short class name according to C syntax, for example, |
|
If |
|
This flag indicates cases (especially for embedded code), where only one instance per FMU is possible.
(For multiple instantiation the default is |
|
If |
|
If |
|
If |
|
If |
|
The slave is able to interpolate [continuous] |
|
The slave is able to provide |
|
The slave can handle variable communication step size. The communication step size (parameter communicationStepSize of [fmi3DoStep]) has not to be constant for each call. |
|
The slave is able to provide access to selected variables during callback function call |
|
If |
|
If |
|
If |
|
If |
The flags have the following default values.
boolean: false
unsignedInt: 0
Note that if needsExecutionTool = true
, then it is required that the original tool is available to be executed during co-simulation.
If needsExecutionTool = false
, the slave is completely contained inside the FMU in source code or binary format (DLL/SharedObject).
The example below is the same as shown in [xml-example-model-exchange] for a Model Exchange FMU.
The only difference is the replacement of the element ModelExchange
with the element CoSimulation
(with additional attributes) and the removal of [local] variables, which are associated with continuous states
and their derivatives
.
The XML file may have the following content:
link:examples/co_simulation.xml[role=include]
The simulation master collects the information about the capability of an FMU to perform an early return by analyzing the modelDescription.xml
as defined in section [fmi-description-schema] and [fmi-for-basic-co-simulation].
In order to support the early return in [fmi3DoStep] the capability flag canReturnEarlyAfterIntermediateUpdate
in the XML should be true
.