FMIImport.fmi2ValueReferenceFormatType

Union of (wildcard for) all ways to describe and pass a fmi2ValueReference (e.g. String, Int64, Array, fmi2ValueReference, ...)

FMIImport.fmi3ValueReferenceFormatType

Union of (wildcard for) all ways to describe and pass a fmi3ValueReference (e.g. String, Int64, Array, fmi3ValueReference, ...)

FMIImport.lk_fmi2FreeInstanceConstant
fmi2FreeInstance!(c::FMU2Component; popComponent::Bool = true)

Disposes the given instance, unloads the loaded model, and frees all the allocated memory and other resources that have been allocated by the functions of the FMU interface. If a null pointer is provided for “c”, the function call is ignored (does not have an effect).

Removes the component from the FMUs component list.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • nothing

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions

See Also fmi2FreeInstance!.

FMICore.fmi2CancelStepMethod
fmi2CancelStep(c::FMU2Component)

Can be called if fmi2DoStep returned fmi2Pending in order to stop the current asynchronous execution.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.104]: 4.2.2 Computation

See also fmi2DoStep.

FMICore.fmi2CompletedIntegratorStep!Method
fmi2CompletedIntegratorStep!(c::FMU2Component,
                                noSetFMUStatePriorToCurrentPoint::fmi2Boolean,
                                enterEventMode::Ref{fmi2Boolean},
                                terminateSimulation::Ref{fmi2Boolean})

This function must be called by the environment after every completed step of the integrator provided the capability flag completedIntegratorStepNotNeeded = false.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • noSetFMUStatePriorToCurrentPoint::fmi2Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi2True if fmi2SetFMUState will no longer be called for time instants prior to current time in this simulation run.
  • enterEventMode::Ref{fmi2Boolean}: Argument enterEventMode points to the return value (fmi2Boolean) which signals to the environment if the FMU shall call fmi2EnterEventMode. fmi2Boolean is an alias type for Boolean data type.
  • terminateSimulation::Ref{fmi2Boolean}: Argument terminateSimulation points to the return value (fmi2Boolean) which signals signal if the simulation shall be terminated. fmi2Boolean is an alias type for Boolean data type.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2CompletedIntegratorStep!.

FMICore.fmi2DeSerializeFMUstate!Method
fmi2DeSerializeFMUstate!(c::FMU2Component, serializedState::AbstractArray{fmi2Byte}, size::Csize_t, FMUstate::Ref{fmi2FMUstate})

Deserializes the byte vector serializedState of length size, constructs a copy of the FMU state and stores the FMU state in the given address of the reference FMUstate, the pointer to this copy.

Arguments

  • str::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • state::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.
  • serialzedState::AbstractArray{fmi2Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.
  • size::Csize_t: Argument size defines the length of the serialized vector.
  • FMUstate::Ref{fmi2FMUstate}: Argument FMUstate is an object that safely references data of type fmi3FMUstate which is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State

See also fmi2DeSerializeFMUstate!.

FMICore.fmi2DoStepFunction
fmi2DoStep(c::FMU2Component, 
                communicationStepSize::Union{Real, Nothing} = nothing; 
                currentCommunicationPoint::Union{Real, Nothing} = nothing,
                noSetFMUStatePriorToCurrentPoint::Bool = true)

Does one step in the CoSimulation FMU

Arguments

  • C::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • communicationStepSize::Union{Real, Nothing} = nothing: Argument communicationStepSize contains a value of type Real or Nothing , if no argument is passed the default value nothing is used. communicationStepSize defines the communiction step size.

Keywords

  • currentCommunicationPoint::Union{Real, Nothing} = nothing: Argument currentCommunicationPoint contains a value of type Real or type Nothing. If no argument is passed the default value nothing is used. currentCommunicationPoint defines the current communication point of the master.
  • noSetFMUStatePriorToCurrentPoint::Bool = true: Argument noSetFMUStatePriorToCurrentPoint contains a value of type Boolean. If no argument is passed the default value true is used. noSetFMUStatePriorToCurrentPoint indicates whether fmi2SetFMUState is no longer called for times before the currentCommunicationPoint in this simulation run Simulation run.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.104]: 4.2.2 Computation

See also fmi2DoStep.

FMICore.fmi2DoStepMethod
fmi2DoStep(c::FMU2Component, 
                currentCommunicationPoint::fmi2Real, 
                communicationStepSize::fmi2Real, 
                noSetFMUStatePriorToCurrentPoint::fmi2Boolean)

The computation of a time step is started.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • currentCommunicationPoint::fmi2Real: Argument currentCommunicationPoint contains a value of type fmi2Real which is a identifier for a variable value . currentCommunicationPoint defines the current communication point of the master.
  • communicationStepSize::fmi2Real: Argument communicationStepSize contains a value of type fmi2Real which is a identifier for a variable value. communicationStepSize defines the communiction step size.

noSetFMUStatePriorToCurrentPoint::Bool = true: Argument noSetFMUStatePriorToCurrentPoint contains a value of type Boolean. If no argument is passed the default value true is used. noSetFMUStatePriorToCurrentPoint indicates whether fmi2SetFMUState is no longer called for times before the currentCommunicationPoint in this simulation run Simulation run.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.104]: 4.2.2 Computation

See also fmi2DoStep.

FMICore.fmi2EnterContinuousTimeModeMethod
fmi2EnterContinuousTimeMode(c::FMU2Component; soft::Bool=false)

The model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2EnterContinuousTimeMode.

FMICore.fmi2EnterEventModeMethod
fmi2EnterEventMode(c::FMU2Component; soft::Bool=false)

The model enters Event Mode from the Continuous-Time Mode and discrete-time equations may become active (and relations are not “frozen”).

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2EnterEventMode.

FMICore.fmi2EnterInitializationModeMethod
fmi2EnterInitializationMode(c::FMU2Component)

Informs the FMU to enter Initialization Mode. Before calling this function, all variables with attribute <ScalarVariable initial = "exact" or "approx"> can be set with the “fmi2SetXXX” functions (the ScalarVariable attributes are defined in the Model Description File, see section 2.2.7). Setting other variables is not allowed. Furthermore, fmi2SetupExperiment must be called at least once before calling fmi2EnterInitializationMode, in order that startTime is defined.

Arguments

  • c::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU

See also fmi2EnterInitializationMode.

FMICore.fmi2ExitInitializationModeMethod
fmi2ExitInitializationMode(c::FMU2Component)

Informs the FMU to exit Initialization Mode.

Arguments

  • c::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU

See also fmi2EnterInitializationMode.

FMICore.fmi2FreeFMUstate!Method
fmi2FreeFMUstate!(c::FMU2Component, state::fmi2FMUstate)

Free the memory for the allocated FMU state

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • state::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.

Returns

  • Return singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State

See also fmi2FreeFMUstate!.

FMICore.fmi2FreeFMUstate!Method
fmi2FreeFMUstate!(c::FMU2Component, FMUstate::Ref{fmi2FMUstate})

Frees all memory and other resources allocated with the fmi2GetFMUstate call for this FMUstate.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • FMUstate::Ref{fmi2FMUstate}: Argument FMUstate is an object that safely references data of type fmi3FMUstate which is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State

See also fmi2FreeFMUstate!.

FMICore.fmi2GetBoolean!Method
fmi2GetBoolean!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Boolean})

Writes the boolean values of an array of variables in the given field

fmi2GetBoolean! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • value::AbstractArray{fmi2Boolean}: Argument values is an array with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetBoolean!.

FMICore.fmi2GetBoolean!Method
fmi2GetBoolean!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2Boolean})

Writes the boolean values of an array of variables in the given field

fmi2GetBoolean! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • str::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • str::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • str::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • vr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi2Boolean}: Argument value is an array with the actual values of these variables

Returns

  • Return singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetBoolean!.

FMICore.fmi2GetBooleanStatus!Method
fmi2GetBooleanStatus!(c::FMU2Component, 
                        s::fmi2StatusKind, 
                        value::Ref{fmi2Boolean})

Informs the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • s::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.

The following status information can be retrieved from a slave:

  • fmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.
  • fmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation
  • fmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.
  • fmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.
  • value::Ref{fmi2Boolean}: Argument value points to the return value (fmi2Boolean) which was requested. fmi2Boolean is a alias type for Boolean data type.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave

See also fmi2GetBooleanStatus!.

FMICore.fmi2GetContinuousStates!Method
fmi2GetContinuousStates!(c::FMU2Component,
                            x::AbstractArray{fmi2Real},
                            nx::Csize_t)

Stores the new (continuous) state vector in x.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x::AbstractArray{fmi2Real}: Argument x contains values of type fmi2Real which is a alias type for Real data type.x is the AbstractArray which contains the Real values of the vector that represent the new state vector.
  • nx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

FMICore.fmi2GetDerivatives!Method
fmi2GetDerivatives!(c::FMU2Component,
                   derivatives::AbstractArray{fmi2Real},
                   nx::Csize_t)

Compute state derivatives at the current time instant and for the current states.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • derivatives::AbstractArray{fmi2Real}: Argument derivatives contains values of type fmi2Real which is a alias type for Real data type.derivatives is the AbstractArray which contains the Real values of the vector that represent the derivatives. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.
  • nx::Csize_t: Argument nx defines the length of vector derivatives and is provided for checking purposes

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetDerivatives!.

FMICore.fmi2GetDerivatives!Method
fmi2GetDerivatives!(c::FMU2Component, derivatives::AbstractArray{fmi2Real})

Compute state derivatives at the current time instant and for the current states.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • derivatives::Array{fmi2Real}: Stores fmi2Real values representing the derivatives for the current states. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetDerivatives!.

FMICore.fmi2GetDirectionalDerivative!Function
fmiGetDirectionalDerivative!(c::FMU2Component,
                                  vUnknown_ref::AbstractArray{fmi2ValueReference},
                                  vKnown_ref::AbstractArray{fmi2ValueReference},
                                  dvUnknown::AbstractArray,
                                  dvKnown::Union{Array{fmi2Real}, Nothing} = nothing)

Wrapper Function call to compute the partial derivative with respect to the variables vKnown_ref.

Computes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns.The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)

  • v_unknown: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknowns> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Outputs> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><Derivatives>).
    • Event Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Outputs> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Outputs> with type Real and variability = continuous or discrete. If <ModelStructure><Derivatives> is present, also the variables listed here as state derivatives.
  • v_known: Real input variables of function h that changes its value in the actual Mode.
  • v_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δv_unknown = (δh / δv_known) Δv_known

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vUnknown_ref::AbstracArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).
  • vKnown_ref::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).
  • dvUnknown::AbstractArray{fmi2Real}: Stores the directional derivative vector values.
  • dvKnown::Union{AbstractArray{fmi2Real}, Nothing} = nothing: If no seed vector is passed the value nothing is used. The vector values Compute the partial derivative with respect to the given entries in vector vKnown_ref with the matching evaluate of dvKnown.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.9 Getting Partial Derivatives

See also fmi2GetDirectionalDerivative!.

FMICore.fmi2GetDirectionalDerivative!Method
fmi2GetDirectionalDerivative!(c::FMU2Component,
                                   vUnknown_ref::AbstractArray{fmi2ValueReference},
                                   nUnknown::Csize_t,
                                   vKnown_ref::AbstractArray{fmi2ValueReference},
                                   nKnown::Csize_t,
                                   dvKnown::AbstractArray{fmi2Real},
                                   dvUnknown::AbstractArray{fmi2Real})

Wrapper Function call to compute the partial derivative with respect to the variables vKnown_ref.

Computes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)

  • v_unknown: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknowns> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Outputs> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><Derivatives>).
    • Event Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Outputs> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Outputs> with type Real and variability = continuous or discrete. If <ModelStructure><Derivatives> is present, also the variables listed here as state derivatives.
  • v_known: Real input variables of function h that changes its value in the actual Mode.
  • v_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δvunknown = (δh / δvknown) Δv_known

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vUnknown_ref::AbstracArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).
  • nUnknown::Csize_t: Length of the Unknown Array.
  • vKnown_ref::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).
  • nKnown::Csize_t: Length of the Known Array.
  • dvKnown::AbstractArray{fmi2Real}:The vector values Compute the partial derivative with respect to the given entries in vector vKnown_ref with the matching evaluate of dvKnown.
  • dvUnknown::AbstractArray{fmi2Real}: Stores the directional derivative vector values.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.9 Getting Partial Derivatives

See also fmi2GetDirectionalDerivative!.

FMICore.fmi2GetEventIndicators!Method
fmi2GetEventIndicators!(c::FMU2Component, eventIndicators::AbstractArray{fmi2Real}, ni::Csize_t)

Compute event indicators at the current time instant and for the current states.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • eventIndicators::AbstractArray{fmi2Real}: Argument eventIndicators contains values of type fmi2Real which is a alias type for Real data type.eventIndicators is the AbstractArray which contains the Real values of the vector that represent the event indicators.
  • ni::Csize_t: Argument ni defines the length of vector eventIndicators and is provided for checking purposes

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

FMICore.fmi2GetEventIndicators!Method
fmi2GetEventIndicators!(c::FMU2Component, eventIndicators::AbstractArray{fmi2Real})

Returns the event indicators of the FMU.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • eventIndicators::AbstractArray{fmi2Real}:The event indicators are in an AbstractArray represented by an array of "fmi2Real" values.

Returns

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations
FMICore.fmi2GetFMUstate!Method
fmi2GetFMUstate!(c::FMU2Component, FMUstate::Ref{fmi2FMUstate})

Makes a copy of the internal FMU state and returns a pointer to this copy.

Arguments

  • str::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • FMUstate::Ref{fmi2FMUstate}:If on entry FMUstate == NULL, a new allocation is required. If FMUstate != NULL, then FMUstate points to a previously returned FMUstate that has not been modified since.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values

See also fmi2GetFMUstate!.

FMICore.fmi2GetInteger!Method
fmi2GetInteger!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Integer})

Writes the integer values of an array of variables in the given field

fmi2GetInteger! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels, called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi2Integer}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetInteger!.

FMICore.fmi2GetInteger!Method
fmi2GetInteger!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2Integer})

Writes the integer values of an array of variables in the given field

fmi2GetInteger! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • c::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • vr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::Array{fmi2Integer}: Argument values is an array with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetInteger!.

FMICore.fmi2GetIntegerStatus!Method
fmi2GetIntegerStatus!(c::FMU2Component, 
                            s::fmi2StatusKind, 
                            value::Ref{fmi2Integer})

Informs the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • s::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.

The following status information can be retrieved from a slave:

  • fmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.
  • fmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation
  • fmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.
  • fmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.
  • value::Ref{fmi2Integer}: Argument value points to the return value (fmi2Integer) which was requested. fmi2Integer is a alias type for Integer data type.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave

See also fmi2GetIntegerStatus!.

FMICore.fmi2GetNominalsOfContinuousStates!Method
fmi2GetNominalsOfContinuousStates!(c::FMU2Component, x_nominal::AbstractArray{fmi2Real}, nx::Csize_t)

Stores the nominal values of the continuous states in x_nominal.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x_nominal::AbstractArray{fmi2Real}: Argument x_nominal contains values of type fmi2Real which is a alias type for Real data type.x_nominal is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.
  • nx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

FMICore.fmi2GetReal!Method
fmi2GetReal!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Real})

Functions to get and set values of variables idetified by their valueReference

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fm2Real}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values

See also fmi2GetReal!.

FMICore.fmi2GetReal!Method
fmi2GetReal!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2Real})

Get the values of an array of fmi2Real variables.

rites the real values of an array of variables in the given field

Arguments

  • c::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • c::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fm2Real}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetReal!.

FMICore.fmi2GetRealOutputDerivatives!Method
fmi2GetRealOutputDerivatives!(c::FMU2Component,  
                                vr::AbstractArray{fmi2ValueReference}, 
                                nvr::Csize_t, order::AbstractArray{fmi2Integer}, 
                                value::AbstractArray{fmi2Real})

Sets the n-th time derivative of real input variables.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that t define the variables whose derivatives shall be set.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • order::Array{fmi2Integer}: Argument order is an array of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.
  • values::Array{fmi2Real}: Argument values is an array with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters
FMICore.fmi2GetRealStatus!Method
fmi2GetRealStatus!(c::FMU2Component, 
                        s::fmi2StatusKind, 
                        value::Ref{fmi2Real})

Informs the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • s::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.

The following status information can be retrieved from a slave:

  • fmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.
  • fmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation
  • fmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.
  • fmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.
  • value::Ref{fmi2Real}: Argument value points to the return value (fmi2Real) which was requested. fmi2Real is a alias type for Real data type.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave

See also fmi2GetRealStatus!.

FMICore.fmi2GetStatus!Method
fmi2GetStatus!(c::FMU2Component, 
                    s::fmi2StatusKind, 
                    value::Ref{fmi2Status})

Informs the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • s::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.

The following status information can be retrieved from a slave:

  • fmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.
  • fmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation
  • fmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.
  • fmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.
  • value::Ref{fmi2Status}: The value argument points to a status flag that was requested.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave

See also fmi2GetStatus!.

FMICore.fmi2GetString!Method
fmi2GetString!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::Union{AbstractArray{Ptr{Cchar}}, AbstractArray{Ptr{UInt8}}})

Functions to get and set values of variables idetified by their valueReference

These functions are especially used to get the actual values of output variables if a model is connected with other models.

Arguments

  • str::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • value::Union{AbstractArray{Ptr{Cchar}, AbstractArray{Ptr{UInt8}}}: The value argument is an AbstractArray of values whose memory address refers to data of type Cchar or UInt8and describes a vector with the actual values of these. variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values

See also fmi2GetString!.

FMICore.fmi2GetString!Method
fmi2GetString!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2String})

Writes the string values of an array of variables in the given field

These functions are especially used to get the actual values of output variables if a model is connected with other models.

Arguments

  • str::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • str::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • str::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi2String}: Argument values is an AbstractArray with the actual values of these variables

Returns

  • Return singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetString!.

FMICore.fmi2GetStringStatus!Method
fmi2GetStringStatus!(c::FMU2Component, 
                        s::fmi2StatusKind, 
                        value::Ref{fmi2String})

Informs the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • s::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.

The following status information can be retrieved from a slave:

  • fmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.
  • fmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation
  • fmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.
  • fmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.
  • value:Ref{fmi2String}: Argument value points to the return value (fmi2String) which was requested. fmi2String is a alias type for String data type.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave

See also fmi2GetStringStatus!.

FMICore.fmi2GetTypesPlatformMethod
fmi2GetTypesPlatform(c::FMU2Component)

Returns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU. The standard header file, as documented in this specification, has fmi2TypesPlatform set to “default” (so this function usually returns “default”).

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • Returns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
FMICore.fmi2GetTypesPlatformMethod
fmi2GetTypesPlatform(fmu::FMU2)

Returns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU. The standard header file, as documented in this specification, has fmi2TypesPlatform set to “default” (so this function usually returns “default”).

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • Returns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
FMICore.fmi2GetVersionMethod
fmi2GetVersion(c::FMU2Component)

Returns the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • Returns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “2.0”

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
FMICore.fmi2GetVersionMethod
fmi2GetVersion(fmu::FMU2)

Returns the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • Returns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “2.0”

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
FMICore.fmi2NewDiscreteStates!Method
fmi2NewDiscreteStates!(c::FMU2Component, eventInfo::fmi2EventInfo)

The FMU is in Event Mode and the super dense time is incremented by this call.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • eventInfo::fmi2EventInfo*: Strut with fmi2Boolean Variables that

More detailed:

  • newDiscreteStatesNeeded::fmi2Boolean: If newDiscreteStatesNeeded = fmi2True the FMU should stay in Event Mode, and the FMU requires to set new inputs to the FMU to compute and get the outputs and to call

fmi2NewDiscreteStates again. If all FMUs return newDiscreteStatesNeeded = fmi2False call fmi2EnterContinuousTimeMode.

  • terminateSimulation::fmi2Boolean: If terminateSimulation = fmi2True call fmi2Terminate
  • nominalsOfContinuousStatesChanged::fmi2Boolean: If nominalsOfContinuousStatesChanged = fmi2True then the nominal values of the states have changed due to the function call and can be inquired with fmi2GetNominalsOfContinuousStates.
  • valuesOfContinuousStatesChanged::fmi2Boolean: If valuesOfContinuousStatesChanged = fmi2True, then at least one element of the continuous state vector has changed its value due to the function call. The new values of the states can be retrieved with fmi2GetContinuousStates. If no element of the continuous state vector has changed its value, valuesOfContinuousStatesChanged must return fmi2False.
  • nextEventTimeDefined::fmi2Boolean: If nextEventTimeDefined = fmi2True, then the simulation shall integrate at most until time = nextEventTime, and shall call fmi2EnterEventMode at this time instant. If integration is stopped before nextEventTime, the definition of nextEventTime becomes obsolete.
  • nextEventTime::fmi2Real: next event if nextEventTimeDefined=fmi2True

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2NewDiscreteStates.

FMICore.fmi2ResetMethod
fmi2Reset(c::FMU2Component; soft::Bool=false)

Is called by the environment to reset the FMU after a simulation run. The FMU goes into the same state as if fmi2Instantiate would have been called.All variables have their default values. Before starting a new run, fmi2SetupExperiment and fmi2EnterInitializationMode have to be called.

Arguments

  • c::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.3 Link: https://fmi-standard.org/
  • FMISpec2.0.3[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.3[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.3[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU

See also fmi2Terminate.

FMICore.fmi2SerializeFMUstate!Method
fmi2SerializeFMUstate!(c::FMU2Component, FMUstate::fmi2FMUstate, serialzedState::AbstractArray{fmi2Byte}, size::Csize_t)

Serializes the data which is referenced by pointer FMUstate and copies this data in to the byte vector serializedState of length size, that must be provided by the environment.

Arguments

  • str::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • state::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.
  • serialzedState::AbstractArray{fmi2Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.
  • size::Csize_t: Argument size defines the length of the serialized vector.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State

See also fmi2SerializeFMUstate.

FMICore.fmi2SerializedFMUstateSize!Method
fmi2SerializedFMUstateSize!(c::FMU2Component, FMUstate::fmi2FMUstate, size::Ref{Csize_t})

Stores the size of the byte vector in the given referenced Address, in order that FMUstate can be stored in it.

Argument

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • FMUstate::fmi2FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.
  • size::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State

See also fmi2SerializedFMUstateSize!.

FMICore.fmi2SetBooleanMethod
fmi2SetBoolean(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Boolean})

Functions to get and set values of variables idetified by their valueReference

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • value::AbstractArray{fmi2Boolean}: Argument values is an array with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetBoolean.

FMICore.fmi2SetBooleanMethod
fmi2SetBoolean(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{Bool}, Bool})

Set the values of an array of boolean variables

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{Array{Bool}, Bool}: Argument values is an array or a single value with type Boolean or any subtyp

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetBoolean!.

FMICore.fmi2SetContinuousStatesMethod
fmiSetContinuousStates(c::FMU2Component,
                             x::Union{AbstractArray{Float32},AbstractArray{Float64}})

Set a new (continuous) state vector and reinitialize chaching of variables that depend on states.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x::Union{AbstractArray{Float32},AbstractArray{Float64}}:Argument x is the AbstractArray of the vector values of Float64 or Float32.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching

See also fmi2SetContinuousStates.

FMICore.fmi2SetDebugLoggingMethod
fmi2SetDebugLogging(c::FMU2Component, logginOn::fmi2Boolean, nCategories::Unsigned, categories::Ptr{Nothing})

Control the use of the logging callback function, version independent.

Arguments

  • c::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • logginOn::fmi2Boolean: If loggingOn = fmi2True, debug logging is enabled for the log categories specified in categories, otherwise it is disabled. Type fmi2Boolean is defined as an alias Type for the C-Type Boolean and is to be used with fmi2True and fmi2False.
  • nCategories::Unsigned: Argument nCategories defines the length of the argument categories.
  • categories::Ptr{Nothing}:

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances

See also fmi2SetDebugLogging.

FMICore.fmi2SetDebugLoggingMethod
fmi2SetDebugLogging(c::FMU2Component)

Control the use of the logging callback function, version independent.

Arguments

  • c::FMU2Component: Argument c is a mutable struct representing an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances

See also fmi2SetDebugLogging.

FMICore.fmi2SetFMUstateMethod
fmi2SetFMUstate(c::FMU2Component, FMUstate::fmi2FMUstate)

Copies the content of the previously copied FMUstate back and uses it as actual new FMU state.

Arguments

  • str::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • str::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • str::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • FMUstate::fmi2FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State

See also fmi2GetFMUstate.

FMICore.fmi2SetIntegerMethod
fmi2SetInteger(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Integer})

Set the values of an array of integer variables

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels, called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi2Integer}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetInteger!.

FMICore.fmi2SetIntegerMethod
fmi2SetInteger(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{<:Integer}, <:Integer})

Set the values of an array of integer variables

Arguments

  • c::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • c::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • vr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • values::Union{Array{<:Integer}, <:Integer}: Argument values is an array or a single value with type Integer or any subtyp

Returns

  • status::fmi2Status: Return status indicates the success of the function call.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2SetInteger.

FMICore.fmi2SetRealMethod
fmi2SetReal(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Real})

Functions to get and set values of variables idetified by their valueReference

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels, called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fm2Real}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values

See also fmi2GetReal.

FMICore.fmi2SetRealMethod
fmi2SetReal(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{<:Real}, <:Real})

Set the values of an array of real variables

Arguments

  • c::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • c::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{Array{<:Real}, <:Real}: Argument values is an array with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2SetReal.

FMICore.fmi2SetRealInputDerivativesMethod
fmi2SetRealInputDerivatives(c::FMU2Component,
                                vr::AbstractArray{fmi2ValueReference},
                                nvr::Csize_t,
                                order::AbstractArray{fmi2Integer}, 
                                value::AbstractArray{fmi2Real})

Sets the n-th time derivative of real input variables.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that t define the variables whose derivatives shall be set.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • order::AbstractArray{fmi2Integer}: Argument order is an AbstractArray of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.
  • values::AbstractArray{fmi2Real}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters

See also fmi2SetRealInputDerivatives.

FMICore.fmi2SetRealInputDerivativesMethod
fmi2SetRealInputDerivatives(c::FMU2Component, 
                                vr::AbstractArray{fmi2ValueReference}, 
                                order::AbstractArray{fmi2Integer}, 
                                values::AbstractArray{fmi2Real})

Sets the n-th time derivative of real input variables.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that define the variables whose derivatives shall be set.
  • order::AbstractArray{fmi2Integer}: Argument order is an AbstractArray of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.
  • values::AbstractArray{fmi2Real}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters

See also fmi2SetRealInputDerivatives.

FMICore.fmi2SetStringMethod
fmi2SetString(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::Union{AbstractArray{Ptr{Cchar}}, AbstractArray{Ptr{UInt8}}})

Set the values of an array of string variables

For the exact rules on which type of variables fmi2SetXXX can be called see FMISpec2.0.2 section 2.2.7 , as well as FMISpec2.0.2 section 3.2.3 in case of ModelExchange and FMISpec2.0.2 section 4.2.4 in case ofCoSimulation.

Arguments

  • str::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • value::Union{AbstractArray{Ptr{Cchar}, AbstractArray{Ptr{UInt8}}}: The value argument is an AbstractArray of values whose memory address refers to data of type Cchar or UInt8and describes a vector with the actual values of these. variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values

See also fmi2GetString!.

FMICore.fmi2SetStringMethod
fmi2SetString(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{String}, String})

Set the values of an array of string variables

For the exact rules on which type of variables fmi2SetXXX can be called see FMISpec2.0.2 section 2.2.7 , as well as FMISpec2.0.2 section 3.2.3 in case of ModelExchange and FMISpec2.0.2 section 4.2.4 in case of CoSimulation.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{Array{String}, String}: Argument values is an array or a single value with type String.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.46]: 2.2.7 Definition of Model Variables
  • FMISpec2.0.2[p.46]: 3.2.3 State Machine of Calling Sequence
  • FMISpec2.0.2[p.108]: 4.2.4 State Machine of Calling Sequence from Master to Slave

See also fmi2SetString.

FMICore.fmi2SetTimeMethod
fmi2SetTime(c::FMU2Component, 
                time::fmi2Real; 
                soft::Bool=false,
                track::Bool=true,
                force::Bool=c.fmu.executionConfig.force,
                time_shift::Bool=c.fmu.executionConfig.autoTimeShift)

Set a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • time::fmi2Real: Argument time contains a value of type fmi2Real which is a alias type for Real data type. time sets the independent variable time t.

Keywords

  • soft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.

-track::Bool=true: If the Keyword track = true

  • time_shift::Bool=c.fmu.executionConfig.autoTimeShift:

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching

See also fmi2SetTime.

FMICore.fmi2SetTimeMethod
fmiSetTime(c::FMU2Component, t::Real)

Set a new time instant and re-initialize caching of variables that depend on time.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • t::Real: Argument t contains a value of type Real. t sets the independent variable time t.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching

See also fmi2SetTime

FMICore.fmi2SetupExperimentFunction
fmi2SetupExperiment(c::FMU2Component, 
                        startTime::Union{Real, Nothing} = nothing, 
                        stopTime::Union{Real, Nothing} = nothing; 
                        tolerance::Union{Real, Nothing} = nothing)

Setup the simulation but without defining all of the parameters.

Arguments

  • c::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • c::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • c::FMU2Component: Mutable struct representing an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • startTime::Union{Real, Nothing} = nothing: startTime is a real number which sets the value of starting time of the experiment. The default value is set automatically if doing nothing (default = nothing).
  • stopTime::Union{Real, Nothing} = nothing: stopTime is a real number which sets the value of ending time of the experiment. The default value is set automatically if doing nothing (default = nothing).

Keywords

  • tolerance::Union{Real, Nothing} = nothing: tolerance is a real number which sets the value of tolerance range. The default value is set automatically if doing nothing (default = nothing).

Returns

  • Returns a warning if str.state is not called in fmi2ComponentStateInstantiated.
  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2SetupExperiment.

FMICore.fmi2SetupExperimentMethod
fmi2SetupExperiment(c::FMU2Component, toleranceDefined::fmi2Boolean, tolerance::fmi2Real, startTime::fmi2Real, stopTimeDefined::fmi2Boolean, stopTime::fmi2Real)

Informs the FMU to setup the experiment. This function must be called after fmi2Instantiate and before fmi2EnterInitializationMode is called.

Arguments

  • c::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • toleranceDefined::fmi2Boolean: Arguments toleranceDefined depend on the FMU type:
    • fmuType = fmi2ModelExchange: If toleranceDefined = fmi2True, then the model is called with a numerical integration scheme where the step size is controlled by using tolerance for error estimation. In such a case, all numerical algorithms used inside the model (for example, to solve non-linear algebraic equations) should also operate with an error estimation of an appropriate smaller relative tolerance.
    • fmuType = fmi2CoSimulation: If toleranceDefined = fmi2True, then the communication interval of the slave is controlled by error estimation. In case the slave utilizes a numerical integrator with variable step size and error estimation, it is suggested to use “tolerance” for the error estimation of the internal integrator (usually as relative tolerance). An FMU for Co-Simulation might ignore this argument.
  • startTime::fmi2Real: Argument startTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed initial value of the independent variable and if the independent variable is time, startTime is the starting time of initializaton.
  • stopTimeDefined::fmi2Boolean: If stopTimeDefined = fmi2True, then stopTime is the defined final value of the independent variable and if stopTimeDefined = fmi2False, then no final value

of the independent variable is defined and argument stopTime is meaningless.

  • stopTime::fmi2Real: Argument stopTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed final value of the independent variable and if the independent variable is “time”, stopTime is the stop time of the simulation.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU

See also fmi2SetupExperiment.

FMICore.fmi2TerminateMethod
fmi2Terminate(c::FMU2Component; soft::Bool=false)

Informs the FMU that the simulation run is terminated.

Arguments

  • c::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU

See also fmi2Terminate.

FMICore.fmi3ActivateModelPartitionMethod
fmi3ActivateModelPartition(c::FMU3Instance, vr::fmi3ValueReference, activationTime::AbstractArray{fmi3Float64})

During Clock Activation Mode (see 5.2.2.) after fmi3ActivateModelPartition has been called for a calculated, tunable or changing Clock the FMU provides the information on when the Clock will tick again, i.e. when the corresponding model partition has to be scheduled the next time.

Each fmi3ActivateModelPartition call is associated with the computation of an exposed model partition of the FMU and therefore to an input Clock.

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReference: Argument vr is the value handel called "ValueReference" that define the variable that shall be inquired.
  • activationTime::AbstractArray{fmi3Float64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 5.2.2. State: Clock Activation Mode

See also fmi3ActivateModelPartition.

FMICore.fmi3CompletedIntegratorStep!Method
fmi3CompletedIntegratorStep!(c::FMU3Instance,
                                  noSetFMUStatePriorToCurrentPoint::fmi3Boolean,
                                  enterEventMode::Ref{fmi3Boolean},
                                  terminateSimulation::Ref{fmi3Boolean})

This function must be called by the environment after every completed step of the integrator provided the capability flag needsCompletedIntegratorStep == true. If enterEventMode == fmi3True, the event mode must be entered If terminateSimulation == fmi3True, the simulation shall be terminated

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • noSetFMUStatePriorToCurrentPoint::fmi3Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi3True if fmi3SetFMUState will no longer be called for time instants prior to current time in this simulation run.
  • enterEventMode::Ref{fmi3Boolean}: Argument enterEventMode points to the return value (fmi3Boolean) which signals to the environment if the FMU shall call fmi3EnterEventMode. fmi3Boolean is an alias type for Boolean data type.
  • terminateSimulation::Ref{fmi3Boolean}: Argument terminateSimulation points to the return value (fmi3Boolean) which signals signal if the simulation shall be terminated. fmi3Boolean is an alias type for Boolean data type.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3CompletedIntegratorStep!.

FMICore.fmi3DeSerializeFMUState!Method
fmi3DeSerializeFMUState!(c::FMU3Instance, serialzedState::AbstractArray{fmi3Byte}, size::Csize_t, FMUstate::Ref{fmi3FMUState})

Deserializes the byte vector serializedState of length size, constructs a copy of the FMU state and stores the FMU state in the given address of the reference FMUstate, the pointer to this copy.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • FMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.
  • serialzedState::AbstractArray{fmi3Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.
  • size::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State

See also fmi3DeSerializeFMUState!.

FMICore.fmi3DoStep!Function
fmi3DoStep!(c::FMU3Instance, currentCommunicationPoint::Union{Real, Nothing} = nothing, communicationStepSize::Union{Real, Nothing} = nothing, noSetFMUStatePriorToCurrentPoint::Bool = true,
    eventEncountered::fmi3Boolean = fmi3False, terminateSimulation::fmi3Boolean = fmi3False, earlyReturn::fmi3Boolean = fmi3False, lastSuccessfulTime::fmi3Float64 = 0.0)

The computation of a time step is started.

TODO argmuents

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • currentCommunicationPoint::Union{Real, Nothing} = nothing
  • communicationStepSize::Union{Real, Nothing} = nothing
  • noSetFMUStatePriorToCurrentPoint::Bool = true
  • eventEncountered::fmi3Boolean = fmi3False
  • terminateSimulation::fmi3Boolean = fmi3False
  • earlyReturn::fmi3Boolean = fmi3False
  • lastSuccessfulTime::fmi3Float64 = 0.0

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 4.2.1. State: Step Mode

See also fmi3DoStep!.

FMICore.fmi3DoStep!Method
fmi3DoStep!(c::FMU3Instance, currentCommunicationPoint::fmi3Float64, communicationStepSize::fmi3Float64, noSetFMUStatePriorToCurrentPoint::fmi3Boolean,
                eventEncountered::Ref{fmi3Boolean}, terminateSimulation::Ref{fmi3Boolean}, earlyReturn::Ref{fmi3Boolean}, lastSuccessfulTime::Ref{fmi3Float64})

The computation of a time step is started.

TODO argmuents

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • currentCommunicationPoint::fmi3Float64:
  • communicationStepSize::fmi3Float64:
  • noSetFMUStatePriorToCurrentPoint::fmi3Boolean:
  • eventEncountered::Ref{fmi3Boolean}:
  • terminateSimulation::Ref{fmi3Boolean}:
  • earlyReturn::Ref{fmi3Boolean}:
  • lastSuccessfulTime::Ref{fmi3Float64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 4.2.1. State: Step Mode

See also fmi3DoStep!.

FMICore.fmi3EnterConfigurationModeMethod
fmi3EnterConfigurationMode(c::FMU3Instance; soft::Bool=false)

If the importer needs to change structural parameters, it must move the FMU into Configuration Mode using fmi3EnterConfigurationMode.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3EnterConfigurationMode.

FMICore.fmi3EnterContinuousTimeModeMethod
fmi3EnterContinuousTimeMode(c::FMU3Instance; soft::Bool=false)

The model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.5. State: Event Mode

See also fmi3EnterContinuousTimeMode.

FMICore.fmi3EnterEventModeMethod
fmi3EnterEventMode(c::FMU3Instance, stepEvent::Bool, stateEvent::Bool, rootsFound::AbstractArray{fmi3Int32}, nEventIndicators::Csize_t, timeEvent::Bool)

The model enters Event Mode from the Continuous-Time Mode in ModelExchange oder Step Mode in CoSimulation and discrete-time equations may become active (and relations are not “frozen”).

TODO argmuents

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • stepEvent::Bool:
  • stateEvent::Bool:
  • rootsFound::AbstractArray{fmi3Int32}:
  • nEventIndicators::Csize_t:
  • timeEvent::Bool:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3EnterEventMode.

FMICore.fmi3EnterEventModeMethod
fmi3EnterEventMode(c::FMU3Instance, stepEvent::fmi3Boolean, stateEvent::fmi3Boolean, rootsFound::AbstractArray{fmi3Int32}, nEventIndicators::Csize_t, timeEvent::fmi3Boolean; soft::Bool=false)

The model enters Event Mode from the Continuous-Time Mode in ModelExchange oder Step Mode in CoSimulation and discrete-time equations may become active (and relations are not “frozen”).

TODO argmuents

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • stepEvent::fmi3Boolean:
  • stateEvent::fmi3Boolean:
  • rootsFound::AbstractArray{fmi3Int32}:
  • nEventIndicators::Csize_t:
  • timeEvent::fmi3Boolean:
  • soft::Bool=false:

Keywords

  • soft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3EnterEventMode.

FMICore.fmi3EnterInitializationModeFunction
fmi3EnterInitializationMode(c::FMU3Instance, startTime::Union{Real, Nothing} = nothing, stopTime::Union{Real, Nothing} = nothing; tolerance::Union{Real, Nothing} = nothing)

FMU enters Initialization mode.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • startTime::Union{Real, Nothing} = nothing: startTime is a real number which sets the value of starting time of the experiment. The default value is set automatically if doing nothing (default = nothing).
  • stopTime::Union{Real, Nothing} = nothing: stopTime is a real number which sets the value of ending time of the experiment. The default value is set automatically if doing nothing (default = nothing).

Keywords

  • tolerance::Union{Real, Nothing} = nothing: tolerance is a real number which sets the value of tolerance range. The default value is set automatically if doing nothing (default = nothing).

Returns

  • Returns a warning if str.state is not called in fmi3InstanceStateInstantiated.
  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3EnterInitializationMode.

FMICore.fmi3EnterInitializationModeMethod
fmi3EnterInitializationMode(c::FMU3Instance, toleranceDefined::fmi3Boolean,
    tolerance::fmi3Float64,
    startTime::fmi3Float64,
    stopTimeDefined::fmi3Boolean,
    stopTime::fmi3Float64)

Informs the FMU to enter Initialization Mode. Before calling this function, all variables with attribute <Datatype initial = "exact" or "approx"> can be set with the “fmi3SetXXX” functions (the ScalarVariable attributes are defined in the Model Description File, see section 2.4.7). Setting other variables is not allowed. Also sets the simulation start and stop time.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • toleranceDefined::fmi3Boolean: Arguments toleranceDefined depend on the FMU type:
    • fmuType = fmi3ModelExchange: If toleranceDefined = fmi3True, then the model is called with a numerical integration scheme where the step size is controlled by using tolerance for error estimation. In such a case, all numerical algorithms used inside the model (for example, to solve non-linear algebraic equations) should also operate with an error estimation of an appropriate smaller relative tolerance.
    • fmuType = fmi3CoSimulation: If toleranceDefined = fmi3True, then the communication interval of the slave is controlled by error estimation. In case the slave utilizes a numerical integrator with variable step size and error estimation, it is suggested to use “tolerance” for the error estimation of the internal integrator (usually as relative tolerance). An FMU for Co-Simulation might ignore this argument.
  • tolerance::fmi3Float64: Argument tolerance is the desired tolerance
  • startTime::fmi3Float64: Argument startTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed initial value of the independent variable and if the independent variable is time, startTime is the starting time of initializaton.
  • stopTimeDefined::fmi3Boolean: If stopTimeDefined = fmi3True, then stopTime is the defined final value of the independent variable and if stopTimeDefined = fmi3False, then no final value

of the independent variable is defined and argument stopTime is meaningless.

  • stopTime::fmi3Float64: Argument stopTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed final value of the independent variable and if the independent variable is “time”, stopTime is the stop time of the simulation.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3EnterInitializationMode.

FMICore.fmi3EnterStepModeMethod
fmi3EnterStepMode(c::FMU3Instance; soft::Bool=false)

This function must be called to change from Event Mode into Step Mode in Co-Simulation (see 4.2.).

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.5. State: Event Mode

See also fmi3EnterStepMode.

FMICore.fmi3EvaluateDiscreteStatesMethod
fmi3EvaluateDiscreteStates(c::FMU3Instance)

This function is called to trigger the evaluation of fdisc to compute the current values of discrete states from previous values. The FMU signals the support of fmi3EvaluateDiscreteStates via the capability flag providesEvaluateDiscreteStates.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3EvaluateDiscreteStates.

FMICore.fmi3ExitConfigurationModeMethod
fmi3ExitConfigurationMode(c::FMU3Instance; soft::Bool=false)

Exits the Configuration Mode and returns to state Instantiated.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.6. State: Configuration Mode

See also fmi3ExitConfigurationMode.

FMICore.fmi3ExitInitializationModeMethod
fmi3ExitInitializationMode(c::FMU3Instance)

Informs the FMU to exit Initialization Mode.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3ExitInitializationMode.

FMICore.fmi3FreeFMUState!Method
fmi3FreeFMUState!(c::FMU3Instance, state::fmi3FMUState)

Free the allocated memory for the FMU state.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • state::fmi3FMUState: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.

Returns

  • Return singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State
FMICore.fmi3FreeFMUState!Method
fmi3FreeFMUState!(c::FMU3Instance, FMUstate::Ref{fmi3FMUState})

Frees all memory and other resources allocated with the fmi3GetFMUstate call for this FMUstate.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • FMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State
FMICore.fmi3FreeInstance!Method
fmi3FreeInstance!(c::FMU3Instance; popInstance::Bool = true)

Disposes the given instance, unloads the loaded model, and frees all the allocated memory and other resources that have been allocated by the functions of the FMU interface. If a null pointer is provided for “c”, the function call is ignored (does not have an effect).

Removes the component from the FMUs component list.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Keywords

  • popInstance::Bool=true: If the Keyword popInstance = true the freed instance is deleted

Returns

  • nothing

Source

FMICore.fmi3GetAdjointDerivative!Function
fmi3GetAdjointDerivative!(c::FMU3Instance,
    unknowns::AbstractArray{fmi3ValueReference},
    knowns::AbstractArray{fmi3ValueReference},
    sensitivity::AbstractArray{fmi3Float64},
    seed::AbstractArray{fmi3Float64})

Wrapper Function call to compute the partial derivative with respect to the variables unknowns.

Computes the adjoint derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)

  • unknowns: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknown> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Output> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><ContinuousStateDerivative>).
    • Event Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Output> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Output> with type Real and variability = continuous or discrete. If <ModelStructure><ContinuousStateDerivative> is present, also the variables listed here as state derivatives.
  • knowns: Real input variables of function h that changes its value in the actual Mode.
  • rest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δunknowns = (δh / δknowns) Δknowns

Arguments

  • c::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • unknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).
  • knowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).
  • sensitivity::AbstractArray{fmi3Float64}: Stores the directional derivative vector values.
  • seed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.11. Getting Partial Derivatives

See also fmi3GetAdjointDerivative!.

FMICore.fmi3GetAdjointDerivative!Method
fmi3GetAdjointDerivative!(c::FMU3Instance,
            unknowns::AbstractArray{fmi3ValueReference},
            nUnknowns::Csize_t,
            knowns::AbstractArray{fmi3ValueReference},
            nKnowns::Csize_t,
            seed::AbstractArray{fmi3Float64},
            nSeed::Csize_t,
            sensitivity::AbstractArray{fmi3Float64},
            nSensitivity::Csize_t)

Wrapper Function call to compute the partial derivative with respect to the variables unknowns.

Computes the adjoint derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)

  • unknowns: vector of unknown Real variables computed in the actual Mode:
  • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknown> that have type Real.
  • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Output> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><ContinuousStateDerivative>).
  • Event Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Output> with type Real and variability = discrete.
  • Step Mode (CoSimulation): The variables listed under <ModelStructure><Output> with type Real and variability = continuous or discrete. If <ModelStructure><ContinuousStateDerivative> is present, also the variables listed here as state derivatives.
  • knowns: Real input variables of function h that changes its value in the actual Mode.
  • rest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δunknowns = (δh / δknowns) Δknowns

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • unknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).
  • nUnknowns::Csize_t:
  • knowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).
  • nKnowns::Csize_t:
  • seed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.
  • nKnowns::Csize_t:
  • sensitivity::AbstractArray{fmi3Float64}: Stores the adjoint derivative vector values.
  • nKnowns::Csize_t:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.11. Getting Partial Derivatives

See also fmi3GetAdjointDerivative!.

FMICore.fmi3GetBinary!Method
fmi3GetBinary!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, valueSizes::AbstractArray{Csize_t}, value::AbstractArray{fmi3Binary}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • valueSizes::AbstractArray{Csize_t}: Argument valueSizes defines the size of a binary element of each variable.
  • value::AbstractArray{fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetBinary!.

FMICore.fmi3GetBinary!Method
fmi3GetBinary!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Binary})

Writes the binary values of an array of variables in the given field

fmi3GetBinary! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetBinary!.

FMICore.fmi3GetBoolean!Method
fmi3GetBoolean!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Boolean}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Boolean}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetBoolean!.

FMICore.fmi3GetBoolean!Method
fmi3GetBoolean!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Boolean})

Writes the boolean values of an array of variables in the given field

fmi3GetBoolean! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3Boolean}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetBoolean!.

FMICore.fmi3GetClock!Method
fmi3GetClock!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Clock}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • value::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetClock!.

FMICore.fmi3GetClock!Method
fmi3GetClock!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Clock})

Writes the clock values of an array of variables in the given field

fmi3GetClock! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetClock!.

FMICore.fmi3GetContinuousStateDerivatives!Method
fmi3GetContinuousStateDerivatives!(c::FMU3Instance,
                        derivatives::AbstractArray{fmi3Float64},
                        nx::Csize_t)

Compute state derivatives at the current time instant and for the current states.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • derivatives::AbstractArray{fmi3Float64}: Argument derivatives contains values of type fmi3Float64 which is a alias type for Real data type.derivatives is the AbstractArray which contains the Real values of the vector that represent the derivatives. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.
  • nx::Csize_t: Argument nx defines the length of vector derivatives and is provided for checking purposes

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3GetContinuousStateDerivatives!.

FMICore.fmi3GetContinuousStateDerivatives!Method
fmi3GetContinuousStateDerivatives!(c::FMU3Instance, derivatives::Array{fmi3Float64})

Compute state derivatives at the current time instant and for the current states.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • derivatives::AbstractArray{fmi3Float64}: Argument derivatives contains values of type fmi3Float64 which is a alias type for Real data type.derivatives is the AbstractArray which contains the Real values of the vector that represent the derivatives. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3GetContinuousStateDerivatives!.

FMICore.fmi3GetContinuousStates!Method
fmi3GetContinuousStates!(c::FMU3Instance, nominals::AbstractArray{fmi3Float64}, nContinuousStates::Csize_t)

Return the states at the current time instant.

This function must be called if fmi3UpdateDiscreteStates returned with valuesOfContinuousStatesChanged == fmi3True. Not allowed in Co-Simulation and Scheduled Execution.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • nominals::AbstractArray{fmi3Float64}: Argument nominals contains values of type fmi3Float64 which is a alias type for Real data type. nominals is the AbstractArray which contains the Real values of the vector that represent the new state vector.
  • nContinuousStates::Csize_t: Argument nContinuousStates defines the length of vector nominals and is provided for checking purposes

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3GetContinuousStates!.

FMICore.fmi3GetDirectionalDerivative!Function
fmi3GetDirectionalDerivative!(c::FMU3Instance,
    unknowns::AbstractArray{fmi3ValueReference},
    knowns::AbstractArray{fmi3ValueReference},
    sensitivity::AbstractArray{fmi3Float64},
    seed::AbstractArray{fmi3Float64})

Wrapper Function call to compute the partial derivative with respect to the variables unknowns.

Computes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)

  • unknowns: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknown> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Output> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><ContinuousStateDerivative>).
    • Event Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Output> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Output> with type Real and variability = continuous or discrete. If <ModelStructure><ContinuousStateDerivative> is present, also the variables listed here as state derivatives.
  • knowns: Real input variables of function h that changes its value in the actual Mode.
  • rest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δunknowns = (δh / δknowns) Δknowns

Arguments

  • c::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • unknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).
  • knowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).
  • sensitivity::AbstractArray{fmi3Float64}: Stores the directional derivative vector values.
  • seed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.11. Getting Partial Derivatives

See also fmi3GetDirectionalDerivative!.

FMICore.fmi3GetDirectionalDerivative!Method
fmi3GetDirectionalDerivative!(c::FMU3Instance,
                                   unknowns::AbstractArray{fmi3ValueReference},
                                   nUnknowns::Csize_t,
                                   knowns::AbstractArray{fmi3ValueReference},
                                   nKnowns::Csize_t,
                                   seed::AbstractArray{fmi3Float64},
                                   nSeed::Csize_t,
                                   sensitivity::AbstractArray{fmi3Float64},
                                   nSensitivity::Csize_t)

Wrapper Function call to compute the partial derivative with respect to the variables unknowns.

Computes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)

  • unknowns: vector of unknown Real variables computed in the actual Mode:
  • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknown> that have type Real.
  • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Output> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><ContinuousStateDerivative>).
  • Event Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Output> with type Real and variability = discrete.
  • Step Mode (CoSimulation): The variables listed under <ModelStructure><Output> with type Real and variability = continuous or discrete. If <ModelStructure><ContinuousStateDerivative> is present, also the variables listed here as state derivatives.
  • knowns: Real input variables of function h that changes its value in the actual Mode.
  • rest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δunknowns = (δh / δknowns) Δknowns

Arguments

  • c::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • unknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).
  • nUnknowns::Csize_t:
  • knowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).
  • nKnowns::Csize_t:
  • seed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.
  • nKnowns::Csize_t:
  • sensitivity::AbstractArray{fmi3Float64}: Stores the directional derivative vector values.
  • nKnowns::Csize_t:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.11. Getting Partial Derivatives

See also fmi3GetDirectionalDerivative.

FMICore.fmi3GetEventIndicators!Method
fmi3GetEventIndicators!(c::FMU3Instance, eventIndicators::AbstractArray{fmi3Float64}, ni::Csize_t)

Compute event indicators at the current time instant and for the current states. EventIndicators signal Events by their sign change.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • eventIndicators::AbstractArray{fmi3Float64}: Argument eventIndicators contains values of type fmi3Float64 which is a alias type for Real data type.eventIndicators is the AbstractArray which contains the Real values of the vector that represent the event indicators.
  • ni::Csize_t: Argument ni defines the length of vector eventIndicators and is provided for checking purposes

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3GetEventIndicators!.

FMICore.fmi3GetFMUState!Method
fmi3GetFMUState!(c::FMU3Instance, FMUstate::Ref{fmi3FMUState})

Makes a copy of the internal FMU state and returns a pointer to this copy

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • FMUstate::Ref{fmi3FMUstate}:If on entry FMUstate == NULL, a new allocation is required. If FMUstate != NULL, then FMUstate points to a previously returned FMUstate that has not been modified since.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State

See also fmi3GetFMUState!.

FMICore.fmi3GetFloat32!Method
fmi3GetFloat32!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float32}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetFloat32!.

FMICore.fmi3GetFloat32!Method
fmi3GetFloat32!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Float32})

Writes the real values of an array of variables in the given field

fmi3GetFloat32! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetFloat32!.

FMICore.fmi3GetFloat64!Method
fmi3GetFloat64!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float64}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetFloat64!.

FMICore.fmi3GetFloat64!Method
fmi3GetFloat64!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Float64})

Writes the real values of an array of variables in the given field

fmi3GetFloat64! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetFloat64!.

FMICore.fmi3GetInt16!Method
fmi3GetInt16!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int16}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt16!.

FMICore.fmi3GetInt16!Method
fmi3GetInt16!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int16})

Writes the integer values of an array of variables in the given field

fmi3GetInt16! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt16!.

FMICore.fmi3GetInt32!Method
fmi3GetInt32!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int32}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt32!.

FMICore.fmi3GetInt32!Method
fmi3GetInt32!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int32})

Writes the integer values of an array of variables in the given field

fmi3GetInt32! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt32!.

FMICore.fmi3GetInt64!Method
fmi3GetInt64!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int64}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt64!.

FMICore.fmi3GetInt64!Method
fmi3GetInt64!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int64})

Writes the integer values of an array of variables in the given field

fmi3GetInt64! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt64!.

FMICore.fmi3GetInt8!Method
fmi3GetInt8!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int8}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt8!.

FMICore.fmi3GetInt8!Method
fmi3GetInt8!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int8})

Writes the integer values of an array of variables in the given field

fmi3GetInt8! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt8!.

FMICore.fmi3GetIntervalDecimal!Method
fmi3GetIntervalDecimal!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervals::AbstractArray{fmi3Float64}, qualifiers::fmi3IntervalQualifier)

fmi3GetIntervalDecimal retrieves the interval until the next clock tick.

For input Clocks it is allowed to call this function to query the next activation interval. For changing aperiodic Clock, this function must be called in every Event Mode where this clock was activated. For countdown aperiodic Clock, this function must be called in every Event Mode. Clock intervals are computed in fmi3UpdateDiscreteStates (at the latest), therefore, this function should be called after fmi3UpdateDiscreteStates. For information about fmi3IntervalQualifiers, call ?fmi3IntervalQualifier

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • intervals::AbstractArray{fmi3Float64}:
  • qualifiers::fmi3IntervalQualifier:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3GetIntervalDecimal!.

FMICore.fmi3GetIntervalFraction!Method
fmi3GetIntervalFraction!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervalCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64}, qualifiers::fmi3IntervalQualifier)

fmi3GetIntervalFraction retrieves the interval until the next clock tick.

For input Clocks it is allowed to call this function to query the next activation interval. For changing aperiodic Clock, this function must be called in every Event Mode where this clock was activated. For countdown aperiodic Clock, this function must be called in every Event Mode. Clock intervals are computed in fmi3UpdateDiscreteStates (at the latest), therefore, this function should be called after fmi3UpdateDiscreteStates. For information about fmi3IntervalQualifiers, call ?fmi3IntervalQualifier

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • intervalCounters::AbstractArray{fmi3UInt64}:
  • resolutions::AbstractArray{fmi3UInt64}:
  • qualifiers::fmi3IntervalQualifier:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3GetIntervalFraction!.

FMICore.fmi3GetNominalsOfContinuousStates!Method
fmi3GetNominalsOfContinuousStates!(c::FMU3Instance, x_nominal::AbstractArray{fmi3Float64}, nx::Csize_t)

Return the nominal values of the continuous states.

If fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x_nominal::AbstractArray{fmi3Float64}: Argument x_nominal contains values of type fmi3Float64 which is a alias type for Real data type. x_nominal is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.
  • nx::Csize_t: Argument nx defines the length of vector x_nominal and is provided for checking purposes

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3GetNominalsOfContinuousStates!.

FMICore.fmi3GetNumberOfContinuousStates!Method
fmi3GetNumberOfContinuousStates!(c::FMU3Instance, nContinuousStates::Ref{Csize_t})

This function returns the number of continuous states. This function can only be called in Model Exchange.

fmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • nContinuousStates::Ref{Csize_t}: Stores the number of continuous states returned by the function

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfContinuousStates!.

FMICore.fmi3GetNumberOfEventIndicators!Method
fmi3GetNumberOfEventIndicators!(c::FMU3Instance, nEventIndicators::Ref{Csize_t})

This function returns the number of event indicators. This function can only be called in Model Exchange.

fmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • nEventIndicators::Ref{Csize_t}: Stores the number of continuous states returned by the function

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfEventIndicators!.

FMICore.fmi3GetNumberOfVariableDependencies!Method
fmi3GetNumberOfVariableDependencies!(c::FMU3Instance, vr::fmi3ValueReference, nvr::Ref{Csize_t})

The number of dependencies of a given variable, which may change if structural parameters are changed, can be retrieved by calling fmi3GetNumberOfVariableDependencies.

This information can only be retrieved if the 'providesPerElementDependencies' tag in the ModelDescription is set.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReference: Argument vr is the value handel called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.10. Dependencies of Variables

See also fmi3GetNumberOfVariableDependencies!.

FMICore.fmi3GetOutputDerivatives!Method
fmi3GetOutputDerivatives!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nValueReferences::Csize_t, order::AbstractArray{fmi3Int32}, values::AbstractArray{fmi3Float64}, nValues::Csize_t)

Retrieves the n-th derivative of output values.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::Array{fmi3ValueReference}: Argument vr is an array of nValueReferences value handels called "ValueReference" that t define the variables whose derivatives shall be set.
  • nValueReferences::Csize_t: Argument nValueReferences defines the size of vr.
  • order::Array{fmi3Int32}: Argument order is an array of fmi3Int32 values witch specifys the corresponding order of derivative of the real input variable.
  • values::Array{fmi3Float64}: Argument values is an array with the actual values of these variables.
  • nValues::Csize_t: Argument nValues defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.12. Getting Derivatives of Continuous Outputs

See also fmi3GetOutputDerivatives!.

FMICore.fmi3GetShiftDecimal!Method
fmi3GetShiftDecimal!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, shifts::AbstractArray{fmi3Float64})

fmi3GetShiftDecimal retrieves the delay to the first Clock tick from the FMU.

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • shifts::AbstractArray{fmi3Float64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3GetShiftDecimal!.

FMICore.fmi3GetShiftFraction!Method
fmi3GetShiftFraction!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, shiftCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64})

fmi3GetShiftFraction retrieves the delay to the first Clock tick from the FMU.

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • shiftCounters::AbstractArray{fmi3UInt64}:
  • resolutions::AbstractArray{fmi3UInt64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3GetShiftFraction!.

FMICore.fmi3GetString!Method
fmi3GetString!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3String}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3String}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetString!.

FMICore.fmi3GetString!Method
fmi3GetString!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3String})

Writes the string values of an array of variables in the given field

fmi3GetString! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3String}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetString!.

FMICore.fmi3GetUInt16!Method
fmi3GetUInt16(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt16}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt16!.

FMICore.fmi3GetUInt16!Method
fmi3GetUInt16!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt16})

Writes the integer values of an array of variables in the given field

fmi3GetUInt16! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt16!.

FMICore.fmi3GetUInt32!Method
fmi3GetUInt32!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt32}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt32!.

FMICore.fmi3GetUInt32!Method
fmi3GetUInt32!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt32})

Writes the integer values of an array of variables in the given field

fmi3GetUInt32! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt32!.

FMICore.fmi3GetUInt64!Method
fmi3GetUInt64!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt64}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt64!.

FMICore.fmi3GetUInt64!Method
fmi3GetUInt64!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt64})

Writes the integer values of an array of variables in the given field

fmi3GetUInt64! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt64!.

FMICore.fmi3GetUInt8!Method
fmi3GetUInt8!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt8}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt8!.

FMICore.fmi3GetUInt8!Method
fmi3GetUInt8!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt8})

Writes the integer values of an array of variables in the given field

fmi3GetUInt8! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt8!.

FMICore.fmi3GetVariableDependencies!Method
fmi3GetVariableDependencies!(c::FMU3Instance, vr::fmi3ValueReference, elementIndiceOfDependents::AbstractArray{Csize_t}, independents::AbstractArray{fmi3ValueReference},  
    elementIndiceOfInpendents::AbstractArray{Csize_t}, dependencyKind::AbstractArray{fmi3DependencyKind}, ndependencies::Csize_t)

The actual dependencies (of type dependenciesKind) can be retrieved by calling the function fmi3GetVariableDependencies:

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReference: Argument vr is the value handel called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • elementIndiceOfDependents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the dependent variable that dependency information is provided for. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)
  • independents::AbstractArray{fmi3ValueReference}: must point to a buffer of fmi3ValueReference values of size nDependencies allocated by the calling environment. It is filled in by this function with the value reference of the independent variable that this dependency entry is dependent upon.
  • elementIndiceOfInpendents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the independent variable that this dependency entry is dependent upon. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)
  • dependencyKind::AbstractArray{fmi3DependencyKind}: must point to a buffer of dependenciesKind values of size nDependencies allocated by the calling environment. It is filled in by this function with the enumeration value describing the dependency of this dependency entry.
  • ndependencies::Csize_t: specifies the number of dependencies that the calling environment allocated space for in the result buffers, and should correspond to value obtained by calling fmi3GetNumberOfVariableDependencies.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.10. Dependencies of Variables

See also fmi3GetVariableDependencies!.

FMICore.fmi3GetVersionMethod
function fmi3GetVersion(fmu::FMU3)

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • Returns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi3Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “3.0”

Source

FMICore.fmi3GetVersionMethod
fmi3GetVersion(fmu::FMU3)

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.

Returns

  • Returns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi3Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “3.0”

Source

FMICore.fmi3ResetMethod
fmi3Reset(c::FMU3Instance; soft::Bool = false)

Is called by the environment to reset the FMU after a simulation run. The FMU goes into the same state as if fmi3InstantiateXXX would have been called.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.1. Super State: FMU State Setable

See also fmi3Reset.

FMICore.fmi3SerializeFMUState!Method
fmi3SerializeFMUState!(c::FMU3Instance, FMUstate::fmi3FMUState, serialzedState::AbstractArray{fmi3Byte}, size::Csize_t)

Serializes the data which is referenced by pointer FMUState and copies this data in to the byte vector serializedState of length size, that must be provided by the environment.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • FMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.
  • serialzedState::AbstractArray{fmi3Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.
  • size::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State

See also fmi3SerializeFMUState!.

FMICore.fmi3SerializedFMUStateSize!Method
fmi3SerializedFMUStateSize!(c::FMU3Instance, FMUstate::fmi3FMUState, size::Ref{Csize_t})

Frees all memory and other resources allocated with the fmi3GetFMUstate call for this FMUstate.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • FMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.
  • size::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State

See also fmi3SerializedFMUStateSize!.

FMICore.fmi3SetBinaryMethod
fmi3SetBinary(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, valueSizes::AbstractArray{Csize_t}, value::AbstractArray{fmi3Binary}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • valueSizes::AbstractArray{Csize_t}: Argument valueSizes defines the size of a binary element of each variable.
  • value::AbstractArray{fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetBinary.

FMICore.fmi3SetBinaryMethod
fmi3SetBinary(c::FMU3Instance, vr::fmi3ValueReferenceFormat, valueSizes::Union{AbstractArray{Csize_t}, Csize_t}, values::Union{AbstractArray{fmi3Binary}, fmi3Binary})

Set the values of an array of binary variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • valueSizes::Union{AbstractArray{Csize_t}, Csize_t}: Argument valueSizes defines the size of a binary element of each variable.
  • values::Union{AbstractArray{fmi3Binary}, fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetBinary.

FMICore.fmi3SetBooleanMethod
fmi3SetBoolean(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Boolean}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Boolean}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetBoolean.

FMICore.fmi3SetBooleanMethod
fmi3SetBoolean(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{Bool}, Bool})

Set the values of an array of boolean variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{Bool}, Bool}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetBoolean.

FMICore.fmi3SetClockMethod
fmi3SetClock(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Clock}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • value::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetClock.

FMICore.fmi3SetClockMethod
fmi3SetClock(c::FMU3Instance, vr::fmi3ValueReferenceFormat, valueSizes::Union{AbstractArray{Csize_t}, Csize_t}, values::Union{AbstractArray{fmi3Clock}, fmi3Clock})

Set the values of an array of clock variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3Clock}, fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetClock.

FMICore.fmi3SetContinuousStatesMethod
fmi3SetContinuousStates(c::FMU3Instance,
    x::AbstractArray{fmi3Float64},
    nx::Csize_t)

Set a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes

If fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x::AbstractArray{fmi3Float64}: Argument x contains values of type fmi3Float64 which is a alias type for Real data type. x is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.
  • nx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3SetContinuousStates.

FMICore.fmi3SetContinuousStatesMethod
fmi3SetContinuousStates(c::FMU3Instance, x::Union{AbstractArray{Float32}, AbstractArray{Float64}})

Set a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x::Union{AbstractArray{Float32},AbstractArray{Float64}}:Argument x is the AbstractArray of the vector values of Float64 or Float32.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3SetContinuousStates.

FMICore.fmi3SetDebugLoggingMethod
fmi3SetDebugLogging(c::FMU3Instance, logginOn::fmi3Boolean, nCategories::UInt, categories::Ptr{Nothing})

Control the use of the logging callback function, version independent.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • logginOn::fmi3Boolean: If loggingOn = fmi3True, debug logging is enabled for the log categories specified in categories, otherwise it is disabled. Type fmi3Boolean is defined as an alias Type for the C-Type Boolean and is to be used with fmi3True and fmi3False.
  • nCategories::UInt: Argument nCategories defines the length of the argument categories.
  • categories::Ptr{Nothing}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.1. Super State: FMU State Setable

See also fmi3SetDebugLogging.

FMICore.fmi3SetDebugLoggingMethod
fmi3SetDebugLogging(c::FMU3Instance)

Set the DebugLogger for the FMU.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • Returns a warning if str.state is not called in fmi3InstanceStateInstantiated.
  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.1. Super State: FMU State Setable

See also fmi3SetDebugLogging.

FMICore.fmi3SetFMUStateMethod
fmi3SetFMUState(c::FMU3Instance, FMUstate::fmi3FMUState)

Copies the content of the previously copied FMUstate back and uses it as actual new FMU state.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • FMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State

See also fmi3SetFMUState.

FMICore.fmi3SetFloat32Method
fmi3SetFloat32(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float32}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetFloat32.

FMICore.fmi3SetFloat32Method
fmi3SetFloat32(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Float32}, fmi3Float32})

Set the values of an array of real variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3Float32}, fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetFloat32.

FMICore.fmi3SetFloat64Method
fmi3SetFloat64(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float64}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetFloat64.

FMICore.fmi3SetFloat64Method
fmi3SetFloat64(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Float64}, fmi3Float64})

Set the values of an array of real variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3Float64}, fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetFloat64.

FMICore.fmi3SetInt16Method
fmi3SetInt16(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int16}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetInt16.

FMICore.fmi3SetInt16Method
fmi3SetInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int16}, fmi3Int16})

Set the values of an array of integer variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3Int16}, fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetInt16.

FMICore.fmi3SetInt32Method
fmi3SetInt32(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int32}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetInt32.

FMICore.fmi3SetInt32Method
fmi3SetInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int32}, fmi3Int32})

Set the values of an array of integer variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3Int32}, fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetInt32.

FMICore.fmi3SetInt64Method
fmi3SetInt64(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int64}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetInt64.

FMICore.fmi3SetInt64Method
fmi3SetInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int64}, fmi3Int64})

Set the values of an array of integer variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3Int64}, fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetInt64.

FMICore.fmi3SetInt8Method
fmi3SetInt8(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int8}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values
FMICore.fmi3SetInt8Method
fmi3SetInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int8}, fmi3Int8})

Set the values of an array of integer variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3Int8}, fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetInt8.

FMICore.fmi3SetIntervalDecimalMethod
fmi3SetIntervalDecimal(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervals::AbstractArray{fmi3Float64})

Sets the interval until the next clock tick

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • intervals::AbstractArray{fmi3Float64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3SetIntervalDecimal.

FMICore.fmi3SetIntervalFractionMethod
fmi3SetIntervalFraction(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervalCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64})

Sets the interval until the next clock tick. Only allowed if the attribute 'supportsFraction' is set.

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • intervalCounters::AbstractArray{fmi3UInt64}:
  • resolutions::AbstractArray{fmi3UInt64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3SetIntervalFraction.

FMICore.fmi3SetStringMethod
fmi3SetString(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3String}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3String}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetString.

FMICore.fmi3SetStringMethod
fmi3SetString(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{String}, String})

Set the values of an array of string variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{String}, String}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetString.

FMICore.fmi3SetTimeMethod
fmi3SetTime(c::FMU3Instance, time::fmi3Float64)

Set a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • time::fmi3Float64: Argument time contains a value of type fmi3Float64 which is a alias type for Real data type. time sets the independent variable time t.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3SetTime.

FMICore.fmi3SetTimeMethod
fmi3SetTime(c::FMU3Instance, time::Real)

Set a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • t::Real: Argument t contains a value of type Real which is a alias type for Real data type. time sets the independent variable time t.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3SetTime.

FMICore.fmi3SetUInt16Method
fmi3SetUInt16(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt16}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values
FMICore.fmi3SetUInt16Method
fmi3SetUInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt16}, fmi3UInt16})

Set the values of an array of integer variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3UInt16}, fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetUInt16.

FMICore.fmi3SetUInt32Method
fmi3SetInt32(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt32}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetUInt32.

FMICore.fmi3SetUInt32Method
fmi3SetUInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt32}, fmi3UInt32})

Set the values of an array of integer variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3UInt32}, fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetUInt32.

FMICore.fmi3SetUInt64Method
fmi3SetUInt64(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt64}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetUInt64.

FMICore.fmi3SetUInt64Method
fmi3SetUInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt64}, fmi3UInt64})

Set the values of an array of integer variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3UInt64}, fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetUInt64.

FMICore.fmi3SetUInt8Method
fmi3SetUInt8(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt8}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • values::AbstractArray{fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetUInt8.

FMICore.fmi3SetUInt8Method
fmi3SetUInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt8}, fmi3UInt8})

Set the values of an array of integer variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3UInt8}, fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetUInt8.

FMICore.fmi3TerminateMethod
fmi3Terminate(c::FMU3Instance; soft::Bool=false)

Informs the FMU that the simulation run is terminated.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.4. Super State: Initialized

See also fmi3Terminate.

FMICore.fmi3UpdateDiscreteStatesMethod
fmi3UpdateDiscreteStates(c::FMU3Instance, discreteStatesNeedUpdate::Ref{fmi3Boolean}, terminateSimulation::Ref{fmi3Boolean}, 
                                nominalsOfContinuousStatesChanged::Ref{fmi3Boolean}, valuesOfContinuousStatesChanged::Ref{fmi3Boolean},
                                nextEventTimeDefined::Ref{fmi3Boolean}, nextEventTime::Ref{fmi3Float64})

This function is called to signal a converged solution at the current super-dense time instant. fmi3UpdateDiscreteStates must be called at least once per super-dense time instant.

TODO Arguments

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • discreteStatesNeedUpdate::Ref{fmi3Boolean}:
  • terminateSimulation::Ref{fmi3Boolean}:
  • nominalsOfContinuousStatesChanged::Ref{fmi3Boolean}:
  • valuesOfContinuousStatesChanged::Ref{fmi3Boolean}:
  • nextEventTimeDefined::Ref{fmi3Boolean}:
  • nextEventTime::Ref{fmi3Float64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.5. State: Event Mode
FMICore.fmi3UpdateDiscreteStatesMethod
fmi3UpdateDiscreteStates(c::FMU3Instance)

This function is called to signal a converged solution at the current super-dense time instant. fmi3UpdateDiscreteStates must be called at least once per super-dense time instant.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

TODO returns

Returns

  • discreteStatesNeedUpdate
  • terminateSimulation
  • nominalsOfContinuousStatesChanged
  • valuesOfContinuousStatesChanged
  • nextEventTimeDefined
  • nextEventTime

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.3.5. State: Event Mode
FMIImport.fmi2CallbackAllocateMemoryMethod

Source: FMISpec2.0.2[p.21-22]: 2.1.5 Creation, Destruction and Logging of FMU Instances

Function that is called in the FMU if memory needs to be allocated. If attribute “canNotUseMemoryManagementFunctions = true” in <fmiModelDescription><ModelExchange / CoSimulation>, then function allocateMemory is not used in the FMU and a void pointer can be provided. If this attribute has a value of “false” (which is the default), the FMU must not use malloc, calloc or other memory allocation functions. One reason is that these functions might not be available for embedded systems on the target machine. Another reason is that the environment may have optimized or specialized memory allocation functions. allocateMemory returns a pointer to space for a vector of nobj objects, each of size “size” or NULL, if the request cannot be satisfied. The space is initialized to zero bytes [(a simple implementation is to use calloc from the C standard library)].

FMIImport.fmi2CallbackFreeMemoryMethod

Source: FMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances

Function that must be called in the FMU if memory is freed that has been allocated with allocateMemory. If a null pointer is provided as input argument obj, the function shall perform no action [(a simple implementation is to use free from the C standard library; in ANSI C89 and C99, the null pointer handling is identical as defined here)]. If attribute “canNotUseMemoryManagementFunctions = true” in <fmiModelDescription><ModelExchange / CoSimulation>, then function freeMemory is not used in the FMU and a null pointer can be provided.

FMIImport.fmi2CallbackLoggerMethod

Source: FMISpec2.0.2[p.21]: 2.1.5 Creation, Destruction and Logging of FMU Instances

Function that is called in the FMU, usually if an fmi2XXX function, does not behave as desired. If “logger” is called with “status = fmi2OK”, then the message is a pure information message. “instanceName” is the instance name of the model that calls this function. “category” is the category of the message. The meaning of “category” is defined by the modeling environment that generated the FMU. Depending on this modeling environment, none, some or all allowed values of “category” for this FMU are defined in the modelDescription.xml file via element “<fmiModelDescription><LogCategories>”, see section 2.2.4. Only messages are provided by function logger that have a category according to a call to fmi2SetDebugLogging (see below). Argument “message” is provided in the same way and with the same format control as in function “printf” from the C standard library. [Typically, this function prints the message and stores it optionally in a log file.]

FMIImport.fmi2CallbackStepFinishedMethod

Source: FMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances

Optional call back function to signal if the computation of a communication step of a co-simulation slave is finished. A null pointer can be provided. In this case the master must use fmiGetStatus(..) to query the status of fmi2DoStep. If a pointer to a function is provided, it must be called by the FMU after a completed communication step.

FMIImport.fmi2CanGetSetStateMethod
fmi2CanGetSetState(fmu::FMU2)

Returns true, if the FMU supports the getting/setting of states

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • ::Bool: Returns true, if the FMU supports the getting/setting of states.
FMIImport.fmi2CanGetSetStateMethod
fmi2CanGetSetState(md::fmi2ModelDescription)

Returns true, if the FMU supports the getting/setting of states

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU supports the getting/setting of states.
FMIImport.fmi2CanSerializeFMUstateMethod
fmi2CanSerializeFMUstate(fmu::FMU2)

Returns true, if the FMU state can be serialized

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • ::Bool: Returns true, if the FMU state can be serialized
FMIImport.fmi2CanSerializeFMUstateMethod
fmi2CanSerializeFMUstate(md::fmi2ModelDescription)

Returns true, if the FMU state can be serialized

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU state can be serialized
FMIImport.fmi2CompletedIntegratorStepMethod
fmiCompletedIntegratorStep(c::FMU2Component, noSetFMUStatePriorToCurrentPoint::fmi2Boolean)

This function must be called by the environment after every completed step

Arguments

  • C::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • noSetFMUStatePriorToCurrentPoint::fmi2Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi2True if fmi2SetFMUState will no longer be called for time instants prior to current time in this simulation run.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously
  • enterEventMode::Array{fmi2Boolean, 1}: Returns enterEventMode[1] to signal to the environment if the FMU shall call fmi2EnterEventMode
  • terminateSimulation::Array{fmi2Boolean, 1}: Returns terminateSimulation[1] to signal if the simulation shall be terminated.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2CompletedIntegratorStep.

FMIImport.fmi2DataTypeForValueReferenceMethod
fmi2DataTypeForValueReference(md::fmi2ModelDescription, vr::fmi2ValueReference)

Returns the fmi2DataType (fmi2Real, fmi2Integer, fmi2Boolean, fmi2String) for a given Valuereference vr of a given FMU-ModelDescription md

FMIImport.fmi2DeSerializeFMUstateMethod
fmi2DeSerializeFMUstate(c::FMU2Component, serializedState::AbstractArray{fmi2Byte})

Deserialize the data in the serializedState fmi2Byte field

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • serializedState::Array{fmi2Byte}: Argument serializedState contains the fmi2Byte field to be deserialized.

Returns

  • Return state is a pointer to a copy of the internal FMU state.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State

See also fmi2DeSerializeFMUstate.

FMIImport.fmi2DependenciesSupportedMethod
fmi2DependenciesSupported(md::fmi2ModelDescription)

Returns true if the FMU model description contains dependency information.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU model description contains dependency information.
FMIImport.fmi2DerivativeDependenciesSupportedMethod
fmi2DerivativeDependenciesSupported(md::fmi2ModelDescription)

Returns if the FMU model description contains dependency information for derivatives.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU model description contains dependency information for derivatives.
FMIImport.fmi2Get!Method
fmi2Get!(comp::FMU2Component, vrs::fmi2ValueReferenceFormat, dstArray::AbstractArray)

Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference and returns an array that indicates the Status.

Arguments

  • comp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • dstArray::AbstractArray: Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr (vr = vrs[i]). dstArray has the same length as vrs.

Returns

  • retcodes::Array{fmi2Status}: Returns an array of length length(vrs) with Type fmi2Status. Type fmi2Status is an enumeration and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
FMIImport.fmi2GetMethod
fmi2Get(comp::FMU2Component, vrs::fmi2ValueReferenceFormat)

Returns the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference in an array.

Arguments

  • comp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • dstArray::Array{Any,1}(undef, length(vrs)): Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr (vr = vrs[i]). dstArray is a 1-Dimensional Array that has the same length as vrs.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
FMIImport.fmi2GetBooleanMethod
fmi2GetBoolean(c::FMU2Component, vr::fmi2ValueReferenceFormat)

Get the values of an array of fmi2Boolean variables.

Arguments

  • c::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • c::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi2Boolean}: Return values is an array with the actual values of these variables.

See also fmi2GetBoolean!.

FMIImport.fmi2GetContinuousStatesMethod
fmi2GetContinuousStates(c::FMU2Component)

Return the new (continuous) state vector x

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • x::Array{fmi2Real}: Returns an array of fmi2Real values representing the new continuous state vector x.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

FMIImport.fmi2GetDeclaredTypeMethod
fmi2GetDeclaredType(md::fmi2ModelDescription, mv::fmi2ScalarVariable)

Returns the fmi2SimpleType of the corresponding model variable mv as defined in md.typeDefinitions. If mv does not have a declared type, return nothing. If mv has a declared type, but it is not found, issue a warning and return nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.
  • mv::fmi2ScalarVariable: The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.

Source

FMIImport.fmi2GetDefaultStartTimeMethod
fmi2GetDefaultStartTime(md::fmi2ModelDescription)

Returns startTime from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.startTime::Union{Real,Nothing}: Returns a real value startTime from the DefaultExperiment if defined else defaults to nothing.
FMIImport.fmi2GetDefaultStepSizeMethod
fmi2GetDefaultStepSize(md::fmi2ModelDescription)

Returns stepSize from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.stepSize::Union{Real,Nothing}: Returns a real value setpSize from the DefaultExperiment if defined else defaults to nothing.
FMIImport.fmi2GetDefaultStopTimeMethod
fmi2GetDefaultStopTime(md::fmi2ModelDescription)

Returns stopTime from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.stopTime::Union{Real,Nothing}: Returns a real value stopTime from the DefaultExperiment if defined else defaults to nothing.
FMIImport.fmi2GetDefaultToleranceMethod
fmi2GetDefaultTolerance(md::fmi2ModelDescription)

Returns tolerance from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.tolerance::Union{Real,Nothing}: Returns a real value tolerance from the DefaultExperiment if defined else defaults to nothing.
FMIImport.fmi2GetDerivateValueReferencesAndNamesMethod
fmi2GetDerivateValueReferencesAndNames(fmu::FMU2)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of derivative value references and their corresponding names.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of derivatives)

See also fmi2GetValueReferencesAndNames

FMIImport.fmi2GetDerivateValueReferencesAndNamesMethod
fmi2GetDerivateValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of derivative value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of derivatives)

See also fmi2GetValueReferencesAndNames

FMIImport.fmi2GetDerivativeNamesMethod
fmi2GetDerivativeNames(fmu::FMU2; vrs=md.derivativeValueReferences, mode=:first)

Returns names of derivatives.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Keywords

  • vrs=md.derivativeValueReferences: Additional attribute derivativeValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.derivativeValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
FMIImport.fmi2GetDerivativeNamesMethod
fmi2GetDerivativeNames(md::fmi2ModelDescription; vrs=md.derivativeValueReferences, mode=:first)

Returns names of derivatives.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.derivativeValueReferences: Additional attribute derivativeValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.derivativeValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
FMIImport.fmi2GetDerivativesMethod
fmi2GetDerivatives(c::FMU2Component)

Compute state derivatives at the current time instant and for the current states.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • derivatives::Array{fmi2Real}: Returns an array of fmi2Real values representing the derivatives for the current states. The ordering of the elements of the derivatives vector is identical to the ordering of the state

vector.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetDerivatives!.

FMIImport.fmi2GetDirectionalDerivativeFunction
fmi2GetDirectionalDerivative(c::FMU2Component,
                                  vUnknown_ref::AbstractArray{fmi2ValueReference},
                                  vKnown_ref::AbstractArray{fmi2ValueReference},
                                  dvKnown::Union{AbstractArray{fmi2Real}, Nothing} = nothing)

Wrapper Function call to compute the partial derivative with respect to the variables vKnown_ref.

Computes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns.The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)

  • v_unknown: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknowns> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Outputs> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><Derivatives>).
    • Event Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Outputs> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Outputs> with type Real and variability = continuous or discrete. If <ModelStructure><Derivatives> is present, also the variables listed here as state derivatives.
  • v_known: Real input variables of function h that changes its value in the actual Mode.
  • v_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δv_unknown = (δh / δv_known) Δv_known

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vUnknown_ref::AbstractArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).
  • vKnown_ref::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).
  • dvKnown::Union{AbstractArray{fmi2Real}, Nothing} = nothing: If no seed vector is passed the value nothing is used. The vector values Compute the partial derivative with respect to the given entries in vector vKnown_ref with the matching evaluate of dvKnown. # gehört das zu den v_rest values

Returns

  • dvUnknown::Array{fmi2Real}: Return dvUnknown contains the directional derivative vector values.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.9 Getting Partial Derivatives

See also fmi2GetDirectionalDerivative!.

FMIImport.fmi2GetDirectionalDerivativeFunction
fmi2GetDirectionalDerivative(c::FMU2Component,
                                  vUnknown_ref::fmi2ValueReference,
                                  vKnown_ref::fmi2ValueReference,
                                  dvKnown::fmi2Real = 1.0)

Direct function call to compute the partial derivative with respect to vKnown_ref.

Computes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns.The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)

  • v_unknown: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknowns> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Outputs> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><Derivatives>).
    • Event Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Outputs> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Outputs> with type Real and variability = continuous or discrete. If <ModelStructure><Derivatives> is present, also the variables listed here as state derivatives.
  • v_known: Real input variables of function h that changes its value in the actual Mode.
  • v_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δv_unknown = (δh / δv_known) Δv_known

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vUnknown_ref::fmi2ValueReference: Argument vUnknown_ref contains a value of typefmi2ValueReference which is an identifier of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).
  • vKnown_ref::fmi2ValueReference: Argument vKnown_ref contains a value of typefmi2ValueReference which is an identifier of a variable value of the model. vKnown_ref can be equated with v_known(variable described above).
  • dvKnown::fmi2Real = 1.0: If no seed value is passed the value dvKnown = 1.0 is used. Compute the partial derivative with respect to vKnown_ref with the value dvKnown = 1.0. # gehört das zu den v_rest values

Returns

  • dvUnknown::Array{fmi2Real}: Return dvUnknown contains the directional derivative vector values.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.9 Getting Partial Derivatives

See also fmi2GetDirectionalDerivative!.

FMIImport.fmi2GetDiscreteStates!Method
fmi2GetDiscreteStates!(c::FMU2Component,
                             x::Union{AbstractArray{Float32},AbstractArray{Float64}})

Set a new (discrete) state vector and reinitialize chaching of variables that depend on states.

Arguments

[ToDo]

FMIImport.fmi2GetDiscreteStatesMethod
fmi2GetDiscreteStates(c::FMU2Component,
                             x::Union{AbstractArray{Float32},AbstractArray{Float64}})

Set a new (discrete) state vector and reinitialize chaching of variables that depend on states.

Arguments

[ToDo]

FMIImport.fmi2GetEventIndicatorsMethod
fmi2GetEventIndicators(c::FMU2Component)

Returns the event indicators of the FMU

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • eventIndicators::Array{fmi2Real}:The event indicators are returned as a vector represented by an array of "fmi2Real" values.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

FMIImport.fmi2GetFMUstateMethod
fmi2GetFMUstate(c::FMU2Component)

Makes a copy of the internal FMU state and returns a pointer to this copy.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • Return state is a pointer to a copy of the internal FMU state.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State

See also fmi2GetFMUstate.

FMIImport.fmi2GetFullJacobian!Method
fmi2GetFullJacobian!(jac::AbstractMatrix{fmi2Real},
                          comp::FMU2Component,
                          rdx::AbstractArray{fmi2ValueReference},
                          rx::AbstractArray{fmi2ValueReference};
                          steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing)

Fills the jacobian over the FMU fmu for FMU value references rdx and rx, so that the function returns the jacobian ∂rdx / ∂rx.

If FMI built-in directional derivatives are supported, they are used. As fallback, directional derivatives will be sampled with central differences. No performance optimization, for an optimized version use fmi2GetJacobian!.

Arguments

  • jac::AbstractMatrix{fmi2Real}: Stores the the jacobian ∂rdx / ∂rx.
  • comp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • rdx::AbstractArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model.
  • rx::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.

Keywords

  • steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing): Step size to be used for numerical differentiation.

If nothing, a default value will be chosen automatically.

Returns

  • nothing
FMIImport.fmi2GetFullJacobianMethod
fmi2GetFullJacobian(comp::FMU2Component,
                        rdx::AbstractArray{fmi2ValueReference},
                        rx::AbstractArray{fmi2ValueReference};
                        steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing)

Builds the jacobian over the FMU fmu for FMU value references rdx and rx, so that the function returns the jacobian ∂rdx / ∂rx.

If FMI built-in directional derivatives are supported, they are used. As fallback, directional derivatives will be sampled with central differences. No performance optimization, for an optimized version use fmi2GetJacobian.

Arguments

  • comp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • rdx::AbstractArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model.
  • rx::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.

Keywords

  • steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing): If sampling is used, sampling step size can be set (for each direction individually) using optional argument steps.

Returns

  • mat::Array{fmi2Real}: Return mat contains the jacobian ∂rdx / ∂rx.

Source

See also fmi2GetFullJacobian!

FMIImport.fmi2GetGUIDMethod
fmi2GetGUID(fmu::FMU2)

Returns the tag 'guid' from the model description.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • fmu.modelDescription.guid::String: Returns the tag 'guid' from the model description.
FMIImport.fmi2GetGUIDMethod
fmi2GetGUID(md::fmi2ModelDescription)

Returns the tag 'guid' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.guid::String: Returns the tag 'guid' from the model description.
FMIImport.fmi2GetGenerationDateAndTimeMethod
fmi2GetGenerationDateAndTime(fmu::FMU2)

Returns the tag 'generationdateandtime' from the model description.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • fmu.modelDescription.generationDateAndTime::DateTime: Returns the tag 'generationdateandtime' from the model description.
FMIImport.fmi2GetGenerationDateAndTimeMethod
fmi2GetGenerationDateAndTime(md::fmi2ModelDescription)

Returns the tag 'generationdateandtime' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.generationDateAndTime::DateTime: Returns the tag 'generationdateandtime' from the model description.
FMIImport.fmi2GetGenerationToolMethod
fmi2GetGenerationTool(fmu::FMU2)

Returns the tag 'generationtool' from the model description.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • fmu.modelDescription.generationTool::Union{String, Nothing}: Returns the tag 'generationtool' from the model description.
FMIImport.fmi2GetGenerationToolMethod
fmi2GetGenerationTool(md::fmi2ModelDescription)

Returns the tag 'generationtool' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.generationTool::Union{String, Nothing}: Returns the tag 'generationtool' from the model description.
FMIImport.fmi2GetInitialMethod
fmi2GetInitial(mv::fmi2ScalarVariable)

Returns the inital entry of the corresponding model variable.

Arguments

  • fmi2GetStartValue(mv::fmi2ScalarVariable): The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.

Returns

  • mv.Real.unit: Returns the inital entry of the corresponding ScalarVariable representing a variable of the primitive type Real. Otherwise nothing is returned.

Source

FMIImport.fmi2GetInputNamesMethod
fmi2GetInputNames(fmu::FMU2; vrs=md.inputValueReferences, mode=:first)

Returns names of inputs.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Keywords

  • vrs=md.inputvalueReferences: Additional attribute inputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
FMIImport.fmi2GetInputNamesMethod
fmi2GetInputNames(md::fmi2ModelDescription; vrs=md.inputvalueReferences, mode=:first)

Returns names of inputs.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.inputvalueReferences: Additional attribute inputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
FMIImport.fmi2GetInputNamesAndStartsMethod
fmi2GetInputNamesAndStarts(fmu::FMU2)

Returns a dictionary of input variables with their starting values.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{String, Array{fmi2ValueReferenceFormat}}: Returns a dictionary that constructs a hash table with keys of type String and values of type fmi2ValueReferenceFormat. So returns a dict with ( md.modelVariables[i].name::String, starts:: Array{fmi2ValueReferenceFormat} ). (Creates a tuple (name, starts) for each i in inputIndices)

See also fmi2GetStartValue.

FMIImport.fmi2GetInputNamesAndStartsMethod
fmi2GetInputNamesAndStarts(md::fmi2ModelDescription)

Returns a dictionary of input variables with their starting values.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, Array{fmi2ValueReferenceFormat}}: Returns a dictionary that constructs a hash table with keys of type String and values of type fmi2ValueReferenceFormat. So returns a dict with ( md.modelVariables[i].name::String, starts:: Array{fmi2ValueReferenceFormat} ). (Creates a tuple (name, starts) for each i in inputIndices)

See also fmi2GetStartValue.

FMIImport.fmi2GetInputValueReferencesAndNamesMethod
fmi2GetInputValueReferencesAndNames(fmu::FMU2)

Returns a dict with (vrs, names of inputs).

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of inputs)
FMIImport.fmi2GetInputValueReferencesAndNamesMethod
fmi2GetInputValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dict with (vrs, names of inputs).

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.
  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of inputs)
FMIImport.fmi2GetIntegerMethod
fmi2GetInteger(c::FMU2Component, vr::fmi2ValueReferenceFormat)

Returns the integer values of an array of variables

Arguments

  • c::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • c::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi2Integer}: Return values is an array with the actual values of these variables.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetInteger!

FMIImport.fmi2GetJacobian!Method
fmi2GetJacobian!(jac::AbstractMatrix{fmi2Real},
                      comp::FMU2Component,
                      rdx::AbstractArray{fmi2ValueReference},
                      rx::AbstractArray{fmi2ValueReference};
                      steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing)

Fills the jacobian over the FMU fmu for FMU value references rdx and rx, so that the function stores the jacobian ∂rdx / ∂rx in an AbstractMatrix jac.

If FMI built-in directional derivatives are supported, they are used. As fallback, directional derivatives will be sampled with central differences. For optimization, if the FMU's model description has the optional entry 'dependencies', only dependent variables are sampled/retrieved. This drastically boosts performance for systems with large variable count (like CFD).

Arguments

  • jac::AbstractMatrix{fmi2Real}: A matrix that will hold the computed Jacobian matrix.
  • comp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • rdx::AbstractArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model.
  • rx::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.

Keywords

  • steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing): Step size to be used for numerical differentiation. If nothing, a default value will be chosen automatically.

Returns

  • nothing

Source

FMIImport.fmi2GetJacobianMethod
fmi2GetJacobian(comp::FMU2Component,
                    rdx::AbstractArray{fmi2ValueReference},
                    rx::AbstractArray{fmi2ValueReference};
                    steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing)

Builds the jacobian over the FMU fmu for FMU value references rdx and rx, so that the function returns the jacobian ∂rdx / ∂rx.

If FMI built-in directional derivatives are supported, they are used. As fallback, directional derivatives will be sampled with central differences. For optimization, if the FMU's model description has the optional entry 'dependencies', only dependent variables are sampled/retrieved. This drastically boosts performance for systems with large variable count (like CFD).

Arguments

  • comp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • rdx::AbstractArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model.
  • rx::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.

Keywords

  • steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing): If sampling is used, sampling step size can be set (for each direction individually) using optional argument steps.

Returns

  • mat::Array{fmi2Real}: Return mat contains the jacobian ∂rdx / ∂rx.

Source

FMIImport.fmi2GetModelIdentifierMethod
fmi2GetModelIdentifier(md::fmi2ModelDescription; type=nothing)

Returns the tag 'modelIdentifier' from CS or ME section.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • type=nothing: Defines whether a Co-Simulation or Model Exchange is present. (default = nothing)

Returns

  • md.modelExchange.modelIdentifier::String: Returns the tag modelIdentifier from ModelExchange section.
  • md.coSimulation.modelIdentifier::String: Returns the tag modelIdentifier from CoSimulation section.
FMIImport.fmi2GetModelNameMethod
function fmi2GetModelName(fmu::FMU2)

Returns the tag 'modelName' from the model description.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • fmu.modelDescription.modelName::String: Returns the tag 'modelName' from the model description.
FMIImport.fmi2GetModelNameMethod
fmi2GetModelName(md::fmi2ModelDescription)

Returns the tag 'modelName' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.modelName::String: Returns the tag 'modelName' from the model description.
FMIImport.fmi2GetModelVariableIndicesMethod
fmi2GetModelVariableIndices(md::fmi2ModelDescription; vrs=md.valueReferences)

Returns a array of indices corresponding to value references vrs

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})

Returns

  • names::Array{Integer}: Returns a array of indices corresponding to value references vrs
FMIImport.fmi2GetNamesMethod
fmi2GetNames(fmu::FMU2; vrs=md.valueReferences, mode=:first)

Returns a array of names corresponding to value references vrs.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Keywords

  • vrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
FMIImport.fmi2GetNamesMethod
fmi2GetNames(md::fmi2ModelDescription; vrs=md.valueReferences, mode=:first)

Returns a array of names corresponding to value references vrs.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
FMIImport.fmi2GetNamesAndDescriptionsMethod
fmi2GetNamesAndDescriptions(fmu::FMU2)

Returns a dictionary of variables with their descriptions.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].description::Union{String, Nothing}). (Creates a tuple (name, description) for each i in 1:length(md.modelVariables))
FMIImport.fmi2GetNamesAndDescriptionsMethod
fmi2GetNamesAndDescriptions(md::fmi2ModelDescription)

Returns a dictionary of variables with their descriptions.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].description::Union{String, Nothing}). (Creates a tuple (name, description) for each i in 1:length(md.modelVariables))
FMIImport.fmi2GetNamesAndInitialsMethod
fmi2GetNamesAndInitials(fmu::FMU2)

Returns a dictionary of variables with their initials.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{String, Cuint}: Returns a dictionary that constructs a hash table with keys of type String and values of type Cuint. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].inital::Union{fmi2Initial, Nothing}). (Creates a tuple (name,initial) for each i in 1:length(md.modelVariables))

See also fmi2GetInitial.

FMIImport.fmi2GetNamesAndInitialsMethod
fmi2GetNamesAndInitials(md::fmi2ModelDescription)

Returns a dictionary of variables with their initials.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, Cuint}: Returns a dictionary that constructs a hash table with keys of type String and values of type Cuint. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].inital::Union{fmi2Initial, Nothing}). (Creates a tuple (name,initial) for each i in 1:length(md.modelVariables))

See also fmi2GetInitial.

FMIImport.fmi2GetNamesAndUnitsMethod
fmi2GetNamesAndUnits(fmu::FMU2)

Returns a dictionary of variables with their units.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i]._Real.unit::Union{String, Nothing}). (Creates a tuple (name, unit) for each i in 1:length(md.modelVariables))

See also fmi2GetUnit.

FMIImport.fmi2GetNamesAndUnitsMethod
fmi2GetNamesAndUnits(md::fmi2ModelDescription)

Returns a dictionary of variables with their units.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i]._Real.unit::Union{String, Nothing}). (Creates a tuple (name, unit) for each i in 1:length(md.modelVariables))

See also fmi2GetUnit.

FMIImport.fmi2GetNominalsOfContinuousStatesMethod
fmi2GetNominalsOfContinuousStates(c::FMU2Component)

Return the new (continuous) state vector x

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • x::Array{fmi2Real}: Returns an array of fmi2Real values representing the new continuous state vector x.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetNominalsOfContinuousStates.

FMIImport.fmi2GetNumberOfEventIndicatorsMethod
fmi2GetNumberOfEventIndicators(fmu::FMU2)

Returns the tag 'numberOfEventIndicators' from the model description.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • fmu.modelDescription.numberOfEventIndicators::Union{UInt, Nothing}: Returns the tag 'numberOfEventIndicators' from the model description.
FMIImport.fmi2GetNumberOfEventIndicatorsMethod
fmi2GetNumberOfEventIndicators(md::fmi2ModelDescription)

Returns the tag 'numberOfEventIndicators' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.numberOfEventIndicators::Union{UInt, Nothing}: Returns the tag 'numberOfEventIndicators' from the model description.
FMIImport.fmi2GetNumberOfStatesMethod
fmi2GetNumberOfStates(fmu::FMU2)

Returns the number of states of the FMU.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • Returns the length of the fmu.modelDescription.valueReferences::Array{fmi2ValueReference} corresponding to the number of states of the FMU.
FMIImport.fmi2GetNumberOfStatesMethod
fmi2GetNumberOfStates(md::fmi2ModelDescription)

Returns the number of states of the FMU.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • Returns the length of the md.valueReferences::Array{fmi2ValueReference} corresponding to the number of states of the FMU.
FMIImport.fmi2GetOutputNamesMethod
fmi2GetOutputNames(fmu::FMU2; vrs=md.outputvalueReferences, mode=:first)

Returns names of outputs.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Keywords

  • vrs=md.outputvalueReferences: Additional attribute outputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.outputvalueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
FMIImport.fmi2GetOutputNamesMethod
fmi2GetOutputNames(md::fmi2ModelDescription; vrs=md.outputvalueReferences, mode=:first)

Returns names of outputs.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.outputvalueReferences: Additional attribute outputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.outputvalueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
FMIImport.fmi2GetOutputValueReferencesAndNamesMethod
fmi2GetOutputValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.So returns a dict with (vrs, names of outputs)
FMIImport.fmi2GetOutputValueReferencesAndNamesMethod
fmi2GetOutputValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.outputvalueReferences: Additional attribute outputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.outputvalueReferences::Array{fmi2ValueReference})

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.So returns a dict with (vrs, names of outputs)
FMIImport.fmi2GetParameterNamesMethod
fmi2GetParameterNames(fmu::FMU2; vrs=md.parameterValueReferences, mode=:first)

Returns names of parameters.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Keywords

  • vrs=md.parameterValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.parameterValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
FMIImport.fmi2GetParameterNamesMethod
fmi2GetParameterNames(md::fmi2ModelDescription; vrs=md.parameterValueReferences, mode=:first)

Returns names of parameters.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.parameterValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.parameterValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
FMIImport.fmi2GetParameterValueReferencesAndNamesMethod
fmi2GetParameterValueReferencesAndNames(fmu::FMU2)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of parameterValueReferences and their corresponding names.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of parameters).

See also fmi2GetValueReferencesAndNames.

FMIImport.fmi2GetParameterValueReferencesAndNamesMethod
fmi2GetParameterValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of parameterValueReferences and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of parameters).

See also fmi2GetValueReferencesAndNames.

FMIImport.fmi2GetRealMethod

fmi2GetReal(c::FMU2Component, vr::fmi2ValueReferenceFormat)

Get the values of an array of fmi2Real variables.

Arguments

  • c::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • c::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fm2Real}: Returns values of an array of fmi2Real variables with the dimension of fmi2ValueReferenceFormat length.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetReal.

FMIImport.fmi2GetRealOutputDerivativesMethod
fmi2GetRealOutputDerivatives(c::FMU2Component, vr::fmi2ValueReferenceFormat, order::AbstractArray{fmi2Integer})

Sets the n-th time derivative of real input variables.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that t define the variables whose derivatives shall be set.
  • order::Array{fmi2Integer}: Argument order is an array of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.

Returns

  • value::AbstactArray{fmi2Integer}: Return value is an array which represents a vector with the values of the derivatives.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters
FMIImport.fmi2GetSimpleTypeAttributeStructMethod
fmi2GetSimpleTypeAttributeStruct(st::fmi2SimpleType)

Returns the attribute structure for the simple type st. Depending on definition, this is either st.Real, st.Integer, st.String, st.Boolean or st.Enumeration.

Arguments

  • st::fmi2SimpleType: Struct which provides the information on custom SimpleTypes.

Source

FMIImport.fmi2GetSolutionDerivativeMethod
fmi2GetSolutionDerivative(solution::FMU2Solution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)

Returns the Solution values.

Arguments

  • solution::FMU2Solution: Struct contains information about the solution value, success, state and events of a specific FMU.
  • vr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • isIndex::Bool=false: Argument isIndex exists to check if vr ist the spezific solution element ("index") that equals the given fmi2ValueReferenceFormat

Return

  • If the length of the given referencees equals 1, each element myt in the collection solution.states.t is selecting the derivative of the solution states represented by indices[1] in respect to time, at time myt and returns its it.

Thus, the collect() function is taking the generator expression and returning an array of the selected derivatives.

  • If more than one reference is given, the same process takes place as before. The difference is that now more than one indice is accessed.

Source

FMIImport.fmi2GetSolutionStateMethod
fmi2GetSolutionState(solution::FMU2Solution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)

Returns the Solution state.

Arguments

  • solution::FMU2Solution: Struct contains information about the solution value, success, state and events of a specific FMU.
  • vr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • isIndex::Bool=false: Argument isIndex exists to check if vr ist the spezific solution element ("index") that equals the given fmi2ValueReferenceFormat

Return

  • If he length of the given referencees equals 1, each element u in the collection solution.states.u, it is selecting the element at the index represented by indices[1] and returns it.

Thus, the collect() function is taking the generator expression and returning an array of the selected elements.

  • If more than one reference is given, the same process takes place as before. The difference is that now more than one indice is accessed.

Source

FMIImport.fmi2GetSolutionTimeMethod
fmi2GetSolutionTime(solution::FMU2Solution)

Returns the Solution time.

Arguments

  • solution::FMU2Solution: Struct contains information about the solution value, success, state and events of a specific FMU.

Return

  • solution.states.t::tType: solution.state is a struct ODESolution with attribute t. t is the time points corresponding to the saved values of the ODE solution.
  • solution.values.t::tType: solution.value is a struct ODESolution with attribute t.t the time points corresponding to the saved values of the ODE solution.
  • If no solution time is found nothing is returned.

#Source

FMIImport.fmi2GetSolutionValueMethod
fmi2GetSolutionValue(solution::FMU2Solution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)

Returns the Solution values.

Arguments

  • solution::FMU2Solution: Struct contains information about the solution value, success, state and events of a specific FMU.
  • vr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • isIndex::Bool=false: Argument isIndex exists to check if vr ist the spezific solution element ("index") that equals the given fmi2ValueReferenceFormat

Return

  • If he length of the given referencees equals 1, each element u in the collection solution.values.saveval is selecting the element at the index represented by indices[1] and returns it.

Thus, the collect() function is taking the generator expression and returning an array of the selected elements.

  • If more than one reference is given, the same process takes place as before. The difference is that now more than one indice is accessed.

Source

FMIImport.fmi2GetStartValueFunction
fmi2GetStartValue(c::FMU2Component, vrs::fmi2ValueReferenceFormat = c.fmu.modelDescription.valueReferences)

Returns the start/default value for a given value reference.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vrs::fmi2ValueReferenceFormat = c.fmu.modelDescription.valueReferences: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • starts::fmi2ValueReferenceFormat: start/default value for a given value reference

Source

FMIImport.fmi2GetStartValueFunction
fmi2GetStartValue(md::fmi2ModelDescription, vrs::fmi2ValueReferenceFormat = md.valueReferences)

Returns the start/default value for a given value reference.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.
  • vrs::fmi2ValueReferenceFormat = md.valueReferences: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • starts::Array{fmi2ValueReferenceFormat}: start/default value for a given value reference

Source

FMIImport.fmi2GetStartValueFunction
fmi2GetStartValue(fmu::FMU2, vrs::fmi2ValueReferenceFormat = fmu.modelDescription.valueReferences)

Returns the start/default value for a given value reference.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • vrs::fmi2ValueReferenceFormat = fmu.modelDescription.valueReferences: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • starts::fmi2ValueReferenceFormat: start/default value for a given value reference

Source

FMIImport.fmi2GetStartValueMethod
fmi2GetStartValue(mv::fmi2ScalarVariable)

Returns the start/default value for a given value reference.

Arguments

  • mv::fmi2ScalarVariable: The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.

Returns

  • mv._Real.start: start/default value for a given ScalarVariable. In this case representing a variable of primitive type Real.
  • mv._Integer.start: start/default value for a given ScalarVariable. In this case representing a variable of primitive type Integer.
  • mv._Boolean.start: start/default value for a given ScalarVariable. In this case representing a variable of primitive type Boolean.
  • mv._String.start: start/default value for a given ScalarVariable. In this case representing a variable of primitive type String.
  • mv._Enumeration.start: start/default value for a given ScalarVariable. In this case representing a variable of primitive type Enumeration.

Source

FMIImport.fmi2GetStateNamesMethod
fmi2GetStateNames(fmu::FMU2; vrs=md.stateValueReferences, mode=:first)

Returns names of states.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Keywords

  • vrs=md.stateValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.stateValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
FMIImport.fmi2GetStateNamesMethod
fmi2GetStateNames(fmu::FMU2; vrs=md.stateValueReferences, mode=:first)

Returns names of states.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.stateValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.stateValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
FMIImport.fmi2GetStateValueReferencesAndNamesMethod
fmi2GetStateValueReferencesAndNames(fmu::FMU2)

Returns dict(vrs, names of states).

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of state value references and their corresponding names.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of states)
FMIImport.fmi2GetStateValueReferencesAndNamesMethod
fmi2GetStateValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of state value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of states)
FMIImport.fmi2GetStringMethod
fmi2GetString(c::FMU2Component, vr::fmi2ValueReferenceFormat)

Get the values of an array of fmi2String variables.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi2String}: Return values is an array with the actual values of these variables.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

See also fmi2GetString!.

FMIImport.fmi2GetUnitMethod
fmi2GetUnit(md::fmi2ModelDescription, mv::fmi2ScalarVariable)

Returns the unit of the corresponding model variable mv as a fmi2Unit if it is defined in md.unitDefinitions.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.
  • mv::fmi2ScalarVariable: The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.

Source

FMIImport.fmi2GetUnitMethod
fmi2GetUnit(mv::fmi2ScalarVariable)

Returns the unit entry (a string) of the corresponding model variable.

Arguments

  • fmi2GetStartValue(mv::fmi2ScalarVariable): The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.

Returns

  • mv.Real.unit: Returns the unit entry of the corresponding ScalarVariable representing a variable of the primitive type Real. Otherwise nothing is returned.

Source

FMIImport.fmi2GetUnitMethod
fmi2GetUnit(st::fmi2SimpleType)

Returns the unit entry (a string) of the corresponding simple type st if it has the attribute Real and nothing otherwise.

Source

FMIImport.fmi2GetValueReferencesAndNamesMethod
fmi2GetValueReferencesAndNames(fmu::FMU2)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.
FMIImport.fmi2GetValueReferencesAndNamesMethod
fmi2GetValueReferencesAndNames(md::fmi2ModelDescription; vrs=md.valueReferences)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.
FMIImport.fmi2GetVariableNamingConventionMethod
fmi2GetVariableNamingConvention(fmu::FMU2)

Returns the tag 'varaiblenamingconvention' from the model description.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • fmu.modelDescription.variableNamingConvention::Union{fmi2VariableNamingConvention, Nothing}: Returns the tag 'variableNamingConvention' from the model description.
FMIImport.fmi2GetVariableNamingConventionMethod
fmi2GetVariableNamingConvention(md::fmi2ModelDescription)

Returns the tag 'varaiblenamingconvention' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.variableNamingConvention::Union{fmi2VariableNamingConvention, Nothing}: Returns the tag 'variableNamingConvention' from the model description.
FMIImport.fmi2Instantiate!Method
fmi2Instantiate!(fmu::FMU2;
                    instanceName::String=fmu.modelName,
                    type::fmi2Type=fmu.type,
                    pushComponents::Bool = true,
                    visible::Bool = false,
                    loggingOn::Bool = fmu.executionConfig.loggingOn,
                    externalCallbacks::Bool = fmu.executionConfig.externalCallbacks,
                    logStatusOK::Bool=true,
                    logStatusWarning::Bool=true,
                    logStatusDiscard::Bool=true,
                    logStatusError::Bool=true,
                    logStatusFatal::Bool=true,
                    logStatusPending::Bool=true)

Create a new instance of the given fmu, adds a logger if logginOn == true.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Keywords

  • instanceName::String=fmu.modelName: Name of the instance
  • type::fmi2Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present
  • pushComponents::Bool = true: Defines if the fmu components should be pushed in the application.
  • visible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)
  • loggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)
  • externalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi2CallbackFunctions, this may improve readability of logging messages (default=false)
  • logStatusOK::Bool=true whether to log status of kind fmi2OK (default=true)
  • logStatusWarning::Bool=true whether to log status of kind fmi2Warning (default=true)
  • logStatusDiscard::Bool=true whether to log status of kind fmi2Discard (default=true)
  • logStatusError::Bool=true whether to log status of kind fmi2Error (default=true)
  • logStatusFatal::Bool=true whether to log status of kind fmi2Fatal (default=true)
  • logStatusPending::Bool=true whether to log status of kind fmi2Pending (default=true)

Returns

  • Returns the instance of a new FMU component.

Source

See also fmi2Instantiate.

FMIImport.fmi2IsCoSimulationMethod
fmi2IsCoSimulation(fmu::FMU2)

Returns true, if the FMU supports co simulation

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • ::Bool: Returns true, if the FMU supports co simulation
FMIImport.fmi2IsCoSimulationMethod
fmi2IsCoSimulation(md::fmi2ModelDescription)

Returns true, if the FMU supports co simulation

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU supports co simulation
FMIImport.fmi2IsModelExchangeMethod
fmi2IsModelExchange(fmu::FMU2)

Returns true, if the FMU supports model exchange

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • ::Bool: Returns true, if the FMU supports model exchange
FMIImport.fmi2IsModelExchangeMethod
fmi2IsModelExchange(md::fmi2ModelDescription)

Returns true, if the FMU supports model exchange

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU supports model exchange
FMIImport.fmi2LoadMethod
fmi2Load(pathToFMU::String;
            unpackPath=nothing,
            type=nothing,
            cleanup=true)

Sets the properties of the fmu by reading the modelDescription.xml. Retrieves all the pointers of binary functions.

Arguments

  • pathToFMU::String: The folder path to the .fmu file.

Keywords

  • unpackPath=nothing: Via optional argument unpackPath, a path to unpack the FMU can be specified (default: system temporary directory).
  • type=nothing: Defines whether a Co-Simulation or Model Exchange is present
  • cleanup=true: The cleanup option controls whether the temporary directory is automatically deleted when the process exits.

Returns

  • Returns the instance of the FMU struct.

Source

FMIImport.fmi2LoadModelDescriptionMethod
fmi2LoadModelDescription(pathToModelDescription::String)

Extract the FMU variables and meta data from the ModelDescription

Arguments

  • pathToModelDescription::String: Contains the path to a file name that is selected to be read and converted to an XML document. In order to better extract the variables and meta data in the further process.

Returns

  • md::fmi2ModelDescription: Retuns a struct which provides the static information of ModelVariables.

Source

FMIImport.fmi2ModelVariablesForValueReferenceMethod
fmi2ModelVariablesForValueReference(md::fmi2ModelDescription, vr::fmi2ValueReference)

Returns the model variable(s) fitting the value reference.

Arguments

  • md::fmi2ModelDescription: Argument md stores all static information related to an FMU. Especially, the FMU variables and their attributes such as name, unit, default initial value, etc..
  • vr::fmi2ValueReference: Argument vr contains a value of typefmi2ValueReference which are identifiers of a variable value of the model.

Returns

  • ar::Array{fmi2ScalarVariable}: Return ar is an array of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr.

Source

See also fmi2ModelVariablesForValueReference.

FMIImport.fmi2NewDiscreteStatesMethod
fmi2NewDiscreteStates(c::FMU2Component)

Returns the next discrete states

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • eventInfo::fmi2EventInfo*: Strut with fmi2Boolean Variables

More detailed:

  • newDiscreteStatesNeeded::fmi2Boolean: If newDiscreteStatesNeeded = fmi2True the FMU should stay in Event Mode, and the FMU requires to set new inputs to the FMU to compute and get the outputs and to call

fmi2NewDiscreteStates again. If all FMUs return newDiscreteStatesNeeded = fmi2False call fmi2EnterContinuousTimeMode.

  • terminateSimulation::fmi2Boolean: If terminateSimulation = fmi2True call fmi2Terminate
  • nominalsOfContinuousStatesChanged::fmi2Boolean: If nominalsOfContinuousStatesChanged = fmi2True then the nominal values of the states have changed due to the function call and can be inquired with fmi2GetNominalsOfContinuousStates.
  • valuesOfContinuousStatesChanged::fmi2Boolean: If valuesOfContinuousStatesChanged = fmi2True, then at least one element of the continuous state vector has changed its value due to the function call. The new values of the states can be retrieved with fmi2GetContinuousStates. If no element of the continuous state vector has changed its value, valuesOfContinuousStatesChanged must return fmi2False.
  • nextEventTimeDefined::fmi2Boolean: If nextEventTimeDefined = fmi2True, then the simulation shall integrate at most until time = nextEventTime, and shall call fmi2EnterEventMode at this time instant. If integration is stopped before nextEventTime, the definition of nextEventTime becomes obsolete.
  • nextEventTime::fmi2Real: next event if nextEventTimeDefined=fmi2True

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2NewDiscreteStates.

FMIImport.fmi2ProvidesDirectionalDerivativeMethod
fmi2ProvidesDirectionalDerivative(fmu::FMU2)

Returns true, if the FMU provides directional derivatives

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • ::Bool: Returns true, if the FMU provides directional derivatives
FMIImport.fmi2ProvidesDirectionalDerivativeMethod
fmi2ProvidesDirectionalDerivative(md::fmi2ModelDescription)

Returns true, if the FMU provides directional derivatives

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU provides directional derivatives
FMIImport.fmi2ReloadMethod
fmi2Reload(fmu::FMU2)

Reloads the FMU-binary. This is useful, if the FMU does not support a clean reset implementation.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Source

FMIImport.fmi2SampleJacobianFunction
fmi2SampleJacobian(c::FMU2Component,
                        vUnknown_ref::Union{AbstractArray{fmi2ValueReference}, Symbol},
                        vKnown_ref::AbstractArray{fmi2ValueReference},
                        steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing)

This function samples the directional derivative by manipulating corresponding values (central differences).

Computes the directional derivatives of an FMU. An FMU has different modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)

  • v_unknown: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknowns> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Outputs> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><Derivatives>).
    • Event Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Outputs> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Outputs> with type Real and variability = continuous or discrete. If <ModelStructure><Derivatives> is present, also the variables listed here as state derivatives.
  • v_known: Real input variables of function h that changes its value in the actual Mode.
  • v_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes.

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δvunknown = (δh / δvknown) Δv_known

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vUnknown_ref::AbstractArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).
  • vKnown_ref::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).
  • steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing): If sampling is used, sampling step size can be set (for each direction individually) using optional argument steps.

Returns

  • dvUnkonwn::Array{fmi2Real}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(see function fmi2GetDirectionalDerivative!).

Source

See also fmi2GetDirectionalDerivative!.

FMIImport.fmi2SampleJacobianFunction
fmi2SampleJacobian(c::FMU2Component,
                        vUnknown_ref::Array{fmi2ValueReference},
                        vKnown_ref::Array{fmi2ValueReference},
                        steps::Array{fmi2Real} = ones(fmi2Real, length(vKnown_ref)).*1e-5)

This function samples the directional derivative by manipulating corresponding values (central differences).

Arguments

  • str::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • str::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • str::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vUnknown_ref::Array{fmi2ValueReference}: Argument vUnKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref is the Array of the vector values of Real input variables of function h that changes its value in the actual Mode.
  • vKnown_ref::Array{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref is the Array of the vector values of Real input variables of function h that changes its value in the actual Mode.
  • steps::Array{fmi2Real} = ones(fmi2Real, length(vKnown_ref)).*1e-5: Predefined step size vector steps, where all entries have the value 1e-5.

Returns

  • dvUnknown::Arrya{fmi2Real}: stores the samples of the directional derivative

Source

FMIImport.fmi2SampleJacobian!Function
function fmi2SampleJacobian!(mtx::Matrix{<:Real},
                                c::FMU2Component,
                                vUnknown_ref::Union{AbstractArray{fmi2ValueReference}, Symbol},
                                vKnown_ref::Union{AbstractArray{fmi2ValueReference}, Symbol},
                                steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing)

This function samples the directional derivative by manipulating corresponding values (central differences) and saves in-place.

Computes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)

  • v_unknown: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknowns> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Outputs> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><Derivatives>).
    • Event Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Outputs> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Outputs> with type Real and variability = continuous or discrete. If <ModelStructure><Derivatives> is present, also the variables listed here as state derivatives.
  • v_known: Real input variables of function h that changes its value in the actual Mode.
  • v_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δvunknown = (δh / δvknown) Δv_known

Arguments

  • mtx::Matrix{<:Real}:Output matrix to store the Jacobian. Its dimensions must be compatible with the number of unknown and known value references.
  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vUnknown_ref::AbstractArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).
  • vKnown_ref::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).
  • dvUnknown::AbstractArray{fmi2Real}: Stores the directional derivative vector values.
  • steps::Union{AbstractArray{fmi2Real}, Nothing} = nothing): Step size to be used for numerical differentiation. If nothing, a default value will be chosen automatically.

Returns

  • nothing

Source

See also fmi2GetDirectionalDerivative!.

FMIImport.fmi2SampleJacobian!Function
fmi2SampleJacobian!(c::FMU2Component,
                        vUnknown_ref::Array{fmi2ValueReference},
                        vKnown_ref::Array{fmi2ValueReference},
                        dvUnknown::AbstractArray,
                        steps::Array{fmi2Real} = ones(fmi2Real, length(vKnown_ref)).*1e-5)

This function samples the directional derivative by manipulating corresponding values (central differences) and saves in-place.

Arguments

  • str::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • str::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • str::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vUnknown_ref::Array{fmi2ValueReference}: Argument vUnKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref is the Array of the vector values of Real input variables of function h that changes its value in the actual Mode.
  • vKnown_ref::Array{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref is the Array of the vector values of Real input variables of function h that changes its value in the actual Mode.
  • dvUnknown::AbstractArray: stores the samples of the directional derivative
  • steps::Array{fmi2Real} = ones(fmi2Real, length(vKnown_ref)).*1e-5: current time stepsize

Returns

  • nothing

Source

FMIImport.fmi2SerializeFMUstateMethod
fmi2SerializeFMUstate(c::FMU2Component, state::fmi2FMUstate)

Serializes the data referenced by the pointer FMUstate and copies this data into the byte vector serializedState of length size to be provided by the environment.

Arguments

  • str::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.

More detailed: fmi2Struct = Union{FMU2, FMU2Component}

  • str::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • str::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • state::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.

Returns

  • serializedState:: Array{fmi2Byte}: Return serializedState contains the copy of the serialized data referenced by the pointer FMUstate

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State

See also fmi2SerializeFMUstate.

FMIImport.fmi2SerializedFMUstateSizeMethod
fmi2SerializedFMUstateSize(c::FMU2Component, state::fmi2FMUstate)

Returns the size of the byte vector in which the FMUstate can be stored.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • state::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.

Returns

  • Return size is an object that safely references a value of type Csize_t.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State

See also fmi2SerializedFMUstateSize.

FMIImport.fmi2SetMethod
fmi2Set(comp::FMU2Component,
            vrs::fmi2ValueReferenceFormat,
            srcArray::AbstractArray;
            filter=nothing)

Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference and returns an array that indicates the Status.

Arguments

  • comp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • srcArray::AbstractArray: Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr (vr = vrs[i]). srcArray has the same length as vrs.

Keywords

  • filter=nothing: It is applied to each ModelVariable to determine if it should be updated.

Returns

  • retcodes::Array{fmi2Status}: Returns an array of length length(vrs) with Type fmi2Status. Type fmi2Status is an enumeration and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
FMIImport.fmi2SetDiscreteStatesMethod
fmi2SetDiscreteStates(c::FMU2Component,
                             x::Union{AbstractArray{Float32},AbstractArray{Float64}})

Set a new (discrete) state vector and reinitialize chaching of variables that depend on states.

Arguments

[ToDo]

FMIImport.fmi2StringToValueReferenceMethod
fmi2StringToValueReference(fmu::FMU2, name::Union{String, AbstractArray{String}})

Returns the ValueReference or an array of ValueReferences coresponding to the variable names.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • name::Union{String, AbstractArray{String}}: Argument names contains a Strings or AbstractArray{String}. For that, the corresponding value reference is searched in the given modelDescription.

Returns

For input parameter name::Sting:

  • reference::md.stringValueReferences: Return references is an array of ValueReference coresponding to the variable name.

For input parameter name::AbstractArray{String}

  • ar::Array{fmi2ScalarVariable}: Return ar is an array of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr.

Source

See also fmi2StringToValueReference

FMIImport.fmi2StringToValueReferenceMethod
fmi2StringToValueReference(md::fmi2ModelDescription, names::AbstractArray{String})

Returns an array of ValueReferences coresponding to the variable names.

Arguments

  • md::fmi2ModelDescription: Argument md stores all static information related to an FMU. Especially, the FMU variables and their attributes such as name, unit, default initial value, etc..
  • names::AbstractArray{String}: Argument names contains a list of Strings. For each string ("variable name"), the corresponding value reference is searched in the given modelDescription.

Returns

  • vr:Array{fmi2ValueReference}: Return vr is an array of ValueReference coresponding to the variable names.

Source

See also fmi2StringToValueReference.

FMIImport.fmi2StringToValueReferenceMethod
fmi2StringToValueReference(md::fmi2ModelDescription, name::String)

Returns the ValueReference or an array of ValueReferences coresponding to the variable names.

Arguments

  • md::fmi2ModelDescription: Argument md stores all static information related to an FMU. Especially, the FMU variables and their attributes such as name, unit, default initial value, etc..
  • name::String: Argument names contains a String or a list of Strings. For each string ("variable name"), the corresponding value reference is searched in the given modelDescription.

Returns

  • reference::md.stringValueReferences: Return references is an array of ValueReference coresponding to the variable name.

Source

See also fmi2StringToValueReference

FMIImport.fmi2UnloadFunction
fmi2Unload(fmu::FMU2, cleanUp::Bool=true; secure_pointers::Bool=true)

Unload a FMU. Free the allocated memory, close the binaries and remove temporary zip and unziped FMU model description.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • cleanUp::Bool= true: Defines if the file and directory should be deleted.

Keywords

  • secure_pointers=true whether pointers to C-functions should be overwritten with dummies with Julia assertions, instead of pointing to dead memory (slower, but more user safe)
FMIImport.fmi2UnzipMethod
fmi2Unzip(pathToFMU::String; unpackPath=nothing, cleanup=true)

Create a copy of the .fmu file as a .zip folder and unzips it. Returns the paths to the zipped and unzipped folders.

Arguments

  • pathToFMU::String: The folder path to the .zip folder.

Keywords

  • unpackPath=nothing: Via optional argument unpackPath, a path to unpack the FMU can be specified (default: system temporary directory).
  • cleanup=true: The cleanup option controls whether the temporary directory is automatically deleted when the process exits.

Returns

  • unzippedAbsPath::String: Contains the Path to the uzipped Folder.
  • zipAbsPath::String: Contains the Path to the zipped Folder.

See also mktempdir.

FMIImport.fmi2ValueReferenceToStringMethod
fmi2ValueReferenceToString(fmu::FMU2, reference::Union{fmi2ValueReference, Int64})

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • reference::Union{fmi2ValueReference, Int64}: Argument references of the type fmi2ValueReference or Int64.

Return

  • md.stringValueReferences::Dict{String, fmi2ValueReference}: Returns a dictionary md.stringValueReferences that constructs a hash table with keys of type String and values of type fmi2ValueReference.

Source

FMIImport.fmi2ValueReferenceToStringMethod
fmi2ValueReferenceToString(md::fmi2ModelDescription, reference::Int64)

Arguments

  • md::fmi2ModelDescription: Argument md stores all static information related to an FMU. Especially, the FMU variables and their attributes such as name, unit, default initial value, etc..
  • reference::Int64: Argument references is a variable of the type Int64.

Return

  • md.stringValueReferences::Dict{String, fmi2ValueReference}: Returns a dictionary md.stringValueReferences that constructs a hash table with keys of type String and values of type fmi2ValueReference.

Source

FMIImport.fmi2ValueReferenceToStringMethod
fmi2ValueReferenceToString(md::fmi2ModelDescription, reference::fmi2ValueReference)

Arguments

  • md::fmi2ModelDescription: Argument md stores all static information related to an FMU. Especially, the FMU variables and their attributes such as name, unit, default initial value, etc..
  • reference::fmi2ValueReference: The argument references is a variable of the type ValueReference.

Return

  • md.stringValueReferences::Dict{String, fmi2ValueReference}: Returns a dictionary md.stringValueReferences that constructs a hash table with keys of type String and values of type fmi2ValueReference.

Source

FMIImport.fmi3CallbackClockUpdateMethod
fmi3CallbackLogger(_instanceEnvironment::Ptr{FMU3InstanceEnvironment},
    _status::Cuint,
    _category::Ptr{Cchar},
    _message::Ptr{Cchar})

A model partition of a Scheduled Execution FMU calls fmi3CallbackClockUpdate to signal that a triggered output Clock ticked or a new interval for a countdown Clock is available. fmi3CallbackClockUpdate switches the FMU itself then into the Clock Update Mode (see 5.2.3.). The callback may be called from several model partitions.

Arguments

  • _instanceEnvironment::Ptr{FMU3InstanceEnvironment}: is the instance name of the model that calls this function.

Returns

  • nothing

Source

FMIImport.fmi3CallbackIntermediateUpdateMethod
fmi3CallbackIntermediateUpdate(instanceEnvironment::Ptr{Cvoid},
    intermediateUpdateTime::fmi3Float64,
    intermediateVariableSetRequested::fmi3Boolean,
    intermediateVariableGetAllowed::fmi3Boolean,
    intermediateStepFinished::fmi3Boolean,
    canReturnEarly::fmi3Boolean,
    earlyReturnRequested::Ptr{fmi3Boolean},
    earlyReturnTime::Ptr{fmi3Float64})

When a Co-Simulation FMU provides values for its output variables at intermediate points between two consecutive communication points, and is able to receive new values for input variables at these intermediate points, the Intermediate Update Callback function is called. This is typically required when the FMU uses a numerical solver to integrate the FMU's internal state between communication points in fmi3DoStep. The callback function switches the FMU from Step Mode (see 4.2.1.) in the Intermediate Update Mode (see 4.2.2.) and returns to Step Mode afterwards. If the ModelDescription has the "providesIntermediateUpdate" flag, the Intermediate update callback function is called. That flag is ignored in ModelExchange and ScheduledExecution.

Arguments

  • instanceEnvironment::Ptr{FMU3InstanceEnvironment}: is the instance name of the model that calls this function.
  • intermediateUpdateTime::fmi3Float64: is the internal value of the independent variable [typically simulation time] of the FMU at which the callback has been called for intermediate and final steps. If an event happens or an output Clock ticks, intermediateUpdateTime is the time of event or output Clock tick. In Co-Simulation, intermediateUpdateTime is restricted by the arguments to fmi3DoStep as follows: currentCommunicationPoint ≤ intermediateUpdateTime ≤ (currentCommunicationPoint + communicationStepSize). The FMU must not call the callback function fmi3CallbackIntermediateUpdate with an intermediateUpdateTime that is smaller than the intermediateUpdateTime given in a previous call of fmi3CallbackIntermediateUpdate with intermediateStepFinished == fmi3True.
  • intermediateVariableSetRequested::fmi3Boolean: If intermediateVariableSetRequested == fmi3True, the co-simulation algorithm may provide intermediate values for continuous input variables with intermediateUpdate = true by calling fmi3Set{VariableType}. The set of variables for which the co-simulation algorithm will provide intermediate values is declared through the requiredIntermediateVariables argument to fmi3InstantiateXXX. If a co-simulation algorithm does not provide a new value for any of the variables contained in the set it registered, the last value set remains.
  • intermediateVariableGetAllowed::fmi3Boolean: If intermediateVariableGetAllowed == fmi3True, the co-simulation algorithm may collect intermediate output variables by calling fmi3Get{VariableType} for variables with intermediateUpdate = true. The set of variables for which the co-simulation algorithm can get values is supplied through the requiredIntermediateVariables argument to fmi3InstantiateXXX.
  • intermediateStepFinished::fmi3Boolean: If intermediateStepFinished == fmi3False, the intermediate outputs of the FMU that the co-simulation algorithm inquires with fmi3Get{VariableType} resulting from tentative internal solver states and may still change for the same intermediateUpdateTime [e.g., if the solver deems the tentative state to cause a too high approximation error, it may go back in time and try to re-estimate the state using smaller internal time steps]. If intermediateStepFinished == fmi3True, intermediate outputs inquired by the co-simulation algorithm with fmi3Get{VariableType} correspond to accepted internal solver step.
  • canReturnEarly::fmi3Boolean: When canReturnEarly == fmi3True the FMU signals to the co-simulation algorithm its ability to return early from the current fmi3DoStep.
  • earlyReturnRequested::Ptr{fmi3Boolean}: If and only if canReturnEarly == fmi3True, the co-simulation algorithm may request the FMU to return early from fmi3DoStep by setting earlyReturnRequested == fmi3True.
  • earlyReturnTime::Ptr{fmi3Float64}: is used to signal the FMU at which time to return early from the current fmi3DoStep, if the return value of earlyReturnRequested == fmi3True. If the earlyReturnTime is greater than the last signaled intermediateUpdateTime, the FMU may integrate up to the time instant earlyReturnTime.

Returns

  • nothing

Source

FMIImport.fmi3CallbackLoggerMethod
fmi3CallbackLogger(_instanceEnvironment::Ptr{FMU3InstanceEnvironment},
    _status::Cuint,
    _category::Ptr{Cchar},
    _message::Ptr{Cchar})

Function that is called in the FMU, usually if an fmi3XXX function, does not behave as desired. If “logger” is called with “status = fmi3OK”, then the message is a pure information message.

Arguments

  • _instanceEnvironment::Ptr{FMU3InstanceEnvironment}: is the instance name of the model that calls this function.
  • _status::Cuint: status of the message
  • _category::Ptr{Cchar}: is the category of the message. The meaning of “category” is defined by the modeling environment that generated the FMU. Depending on this modeling environment, none, some or all allowed values of “category” for this FMU are defined in the modelDescription.xml file via element “<fmiModelDescription><LogCategories>”, see section 2.4.5. Only messages are provided by function logger that have a category according to a call to fmi3SetDebugLogging (see below).
  • _message::Ptr{Cchar}: is provided in the same way and with the same format control as in function “printf” from the C standard library. [Typically, this function prints the message and stores it optionally in a log file.]

Returns

  • nothing

Source

FMIImport.fmi3CompletedIntegratorStepMethod
fmi3CompletedIntegratorStep!(c::FMU3Instance, noSetFMUStatePriorToCurrentPoint::fmi3Boolean)

This function must be called by the environment after every completed step

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • noSetFMUStatePriorToCurrentPoint::fmi3Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi3True if fmi3SetFMUState will no longer be called for time instants prior to current time in this simulation run.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably
  • enterEventMode::Array{fmi3Boolean, 1}: Returns enterEventMode[1] to signal to the environment if the FMU shall call fmi2EnterEventMode
  • terminateSimulation::Array{fmi3Boolean, 1}: Returns terminateSimulation[1] to signal if the simulation shall be terminated.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3CompletedIntegratorStep.

FMIImport.fmi3DeSerializeFMUStateMethod

fmi3SerializeFMUState(c::FMU3Instance, state::fmi3FMUState)

Serializes the data referenced by the pointer FMUstate and copies this data into the byte vector serializedState of length size to be provided by the environment.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • serializedState::Array{fmi3Byte}: Argument serializedState contains the fmi3Byte field to be deserialized.

Returns

  • Return state is a pointer to a copy of the internal FMU state.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State

See also fmi3DeSerializeFMUState.

FMIImport.fmi3Get!Method
fmi3Get!(inst::FMU3Instance, vrs::fmi3ValueReferenceFormat, dstArray::AbstractArray)

Stores the specific value of fmi3Variable containing the modelVariables with the identical fmi3ValueReference and returns an array that indicates the Status.

Arguments

  • inst::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vrs::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • dstArray::AbstractArray: Stores the specific value of fmi3Variable containing the modelVariables with the identical fmi3ValueReference to the input variable vr (vr = vrs[i]). dstArray has the same length as vrs.

Returns

  • retcodes::Array{fmi3Status}: Returns an array of length length(vrs) with Type fmi3Status. Type fmi3Status is an enumeration and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values
FMIImport.fmi3GetMethod
fmi3Get(inst::FMU3Instance, vrs::fmi3ValueReferenceFormat)

Returns the specific value of fmi3Variable containing the modelVariables with the identical fmi3ValueReference in an array.

Arguments

  • inst::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vrs::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • dstArray::Array{Any,1}(undef, length(vrs)): Stores the specific value of fmi3Variable containing the modelVariables with the identical fmi3ValueReference to the input variable vr (vr = vrs[i]). dstArray is a 1-Dimensional Array that has the same length as vrs.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values
FMIImport.fmi3GetAdjointDerivativeFunction
fmi3GetAdjointDerivative(c::FMU3Instance,
    unknowns::AbstractArray{fmi3ValueReference},
    knowns::AbstractArray{fmi3ValueReference},
    seed::AbstractArray{fmi3Float64})

Wrapper Function call to compute the partial derivative with respect to the variables unknowns.

Computes the adjoint derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)

  • unknowns: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknown> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Output> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><ContinuousStateDerivative>).
    • Event Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Output> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Output> with type Real and variability = continuous or discrete. If <ModelStructure><ContinuousStateDerivative> is present, also the variables listed here as state derivatives.
  • knowns: Real input variables of function h that changes its value in the actual Mode.
  • rest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δunknowns = (δh / δknowns) Δknowns

Arguments

  • c::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • unknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).
  • knowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).
  • seed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.

Returns

  • sensitivity::Array{fmi3Float64}: Return sensitivity contains the directional derivative vector values.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.11. Getting Partial Derivatives

See also fmi3GetAdjointDerivative.

FMIImport.fmi3GetAdjointDerivativeFunction
fmi3GetAdjointDerivative(c::FMU3Instance,
    unknowns::AbstractArray{fmi3ValueReference},
    knowns::AbstractArray{fmi3ValueReference},
    seed::fmi3Float64)

Wrapper Function call to compute the partial derivative with respect to the variables unknowns.

Computes the adjoint derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)

  • unknowns: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknown> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Output> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><ContinuousStateDerivative>).
    • Event Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Output> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Output> with type Real and variability = continuous or discrete. If <ModelStructure><ContinuousStateDerivative> is present, also the variables listed here as state derivatives.
  • knowns: Real input variables of function h that changes its value in the actual Mode.
  • rest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δunknowns = (δh / δknowns) Δknowns

Arguments

  • c::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • unknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).
  • knowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).
  • seed::fmi3Float64 = 1.0: If no seed value is passed the value seed = 1.0 is used. Compute the partial derivative with respect to knowns with the value seed = 1.0. # gehört das zu den v_rest values

Returns

  • sensitivity::Array{fmi3Float64}: Return sensitivity contains the directional derivative vector values.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.11. Getting Partial Derivatives

See also fmi3GetAdjointDerivative.

FMIImport.fmi3GetBinaryMethod
fmi3GetBinary(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3Binary variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3Binary}: returns values of an array of fmi3Binary variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetBinary.

FMIImport.fmi3GetBooleanMethod
fmi3GetBoolean(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3Boolean variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3Boolean}: returns values of an array of fmi3Boolean variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetBoolean.

FMIImport.fmi3GetClockMethod
fmi3GetClock(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3Clock variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3Clock}: returns values of an array of fmi3Clock variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetClock.

FMIImport.fmi3GetContinuousStateDerivativesMethod
fmi3GetContinuousStateDerivatives(c::FMU3Instance)

Compute state derivatives at the current time instant and for the current states.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • derivatives::Array{fmi3Float64}: Returns an array of fmi3Float64 values representing the derivatives for the current states. The ordering of the elements of the derivatives vector is identical to the ordering of the state

vector.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3GetContinuousStateDerivatives.

FMIImport.fmi3GetContinuousStatesMethod
fmi3GetContinuousStates(c::FMU3Instance)

Return the new (continuous) state vector x

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • x::Array{fmi3Float64}: Returns an array of fmi3Float64 values representing the new continuous state vector x.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3GetContinuousStates.

FMIImport.fmi3GetDirectionalDerivativeFunction
fmi3GetDirectionalDerivative(c::FMU3Instance,
    unknowns::AbstractArray{fmi3ValueReference},
    knowns::AbstractArray{fmi3ValueReference},
    seed::AbstractArray{fmi3Float64})

Wrapper Function call to compute the partial derivative with respect to the variables unknowns.

Computes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)

  • unknowns: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknown> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Output> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><ContinuousStateDerivative>).
    • Event Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Output> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Output> with type Real and variability = continuous or discrete. If <ModelStructure><ContinuousStateDerivative> is present, also the variables listed here as state derivatives.
  • knowns: Real input variables of function h that changes its value in the actual Mode.
  • rest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δunknowns = (δh / δknowns) Δknowns

Arguments

  • c::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • unknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).
  • knowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).
  • seed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.

Returns

  • sensitivity::Array{fmi3Float64}: Return sensitivity contains the directional derivative vector values.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.11. Getting Partial Derivatives

See also fmi3GetDirectionalDerivative.

FMIImport.fmi3GetDirectionalDerivativeFunction
fmi3GetDirectionalDerivative(c::FMU3Instance,
    unknowns::AbstractArray{fmi3ValueReference},
    knowns::AbstractArray{fmi3ValueReference},
    seed::fmi3Float64)

Wrapper Function call to compute the partial derivative with respect to the variables unknowns.

Computes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)

  • unknowns: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknown> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Output> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><ContinuousStateDerivative>).
    • Event Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Output> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Output> with type Real and variability = continuous or discrete. If <ModelStructure><ContinuousStateDerivative> is present, also the variables listed here as state derivatives.
  • knowns: Real input variables of function h that changes its value in the actual Mode.
  • rest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δunknowns = (δh / δknowns) Δknowns

Arguments

  • c::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • unknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).
  • knowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).
  • seed::fmi3Float64 = 1.0: If no seed value is passed the value seed = 1.0 is used. Compute the partial derivative with respect to knowns with the value seed = 1.0. # gehört das zu den v_rest values

Returns

  • sensitivity::Array{fmi3Float64}: Return sensitivity contains the directional derivative vector values.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.11. Getting Partial Derivatives

See also fmi3GetDirectionalDerivative.

FMIImport.fmi3GetEventIndicatorsMethod
fmi3GetEventIndicators(c::FMU3Instance)

Returns the event indicators of the FMU

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • eventIndicators::Array{fmi3Float64}:The event indicators are returned as a vector represented by an array of "fmi3Float64" values.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3GetEventIndicators.

FMIImport.fmi3GetFMUStateMethod
fmi3GetFMUState(c::FMU3Instance)

Makes a copy of the internal FMU state and returns a pointer to this copy.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • Return state is a pointer to a copy of the internal FMU state.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State

See also fmi3GetFMUState.

FMIImport.fmi3GetFloat32Method
fmi3GetFloat32(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3Float32 variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3Float32}: returns values of an array of fmi3Float32 variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetFloat32.

FMIImport.fmi3GetFloat64Method
fmi3GetFloat64(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3Float64 variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3Float64}: returns values of an array of fmi3Float64 variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetFloat64.

FMIImport.fmi3GetFullJacobian!Method
fmi3GetFullJacobian!(jac::Matrix{fmi3Float64},
    inst::FMU3Instance,
    rdx::AbstractArray{fmi3ValueReference},
    rx::AbstractArray{fmi3ValueReference};
    steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing)

Fills the jacobian over the FMU fmu for FMU value references rdx and rx, so that the function returns the jacobian ∂rdx / ∂rx.

If FMI built-in directional derivatives are supported, they are used. As fallback, directional derivatives will be sampled with central differences. No performance optimization, for an optimized version use fmi3GetJacobian.

Arguments

  • jac::AbstractMatrix{fmi3Float64}: Stores the the jacobian ∂rdx / ∂rx.
  • inst::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • rdx::AbstractArray{fmi3ValueReference}: Argument rdx contains values of typefmi3ValueReference which are identifiers of a variable value of the model.
  • rx::AbstractArray{fmi3ValueReference}: Argument rx contains values of type fmi3ValueReference which are identifiers of a variable value of the model.

Keywords

  • steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing): If sampling is used, sampling step size can be set (for each direction individually) using optional argument steps.

Returns

  • nothing
FMIImport.fmi3GetFullJacobianMethod
fmi3GetFullJacobian(inst::FMU3Instance,
    rdx::AbstractArray{fmi3ValueReference},
    rx::AbstractArray{fmi3ValueReference};
    steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing)

Builds the jacobian over the FMU fmu for FMU value references rdx and rx, so that the function returns the jacobian ∂rdx / ∂rx.

If FMI built-in directional derivatives are supported, they are used. As fallback, directional derivatives will be sampled with central differences. No performance optimization, for an optimized version use fmi3GetJacobian.

Arguments

  • inst::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • rdx::AbstractArray{fmi3ValueReference}: Argument rdx contains values of typefmi3ValueReference which are identifiers of a variable value of the model.
  • rx::AbstractArray{fmi3ValueReference}: Argument rx contains values of type fmi3ValueReference which are identifiers of a variable value of the model.

Keywords

  • steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing): If sampling is used, sampling step size can be set (for each direction individually) using optional argument steps.

Returns

  • mat::Array{fmi3Float64}: Return mat contains the jacobian ∂rdx / ∂rx.

Source

See also fmi3GetFullJacobian!

FMIImport.fmi3GetInitialMethod
fmi3GetInitial(mv::fmi3Variable)

Returns the inital entry of the corresponding model variable.

Arguments

  • mv::fmi3Variable: The “ModelVariables” element consists of an ordered set of “ModelVariable” elements. A “ModelVariable” represents a variable of primitive type, like a real or integer variable.

Returns

  • mv._Float.initial: Returns the inital entry of the corresponding ModelVariable representing a variable of the primitive type Real. Otherwise nothing is returned.

Source

FMIImport.fmi3GetInt16Method
fmi3GetInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3Int16 variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3Int16}: returns values of an array of fmi3Int16 variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt16.

FMIImport.fmi3GetInt32Method
fmi3GetInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3Int32 variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3Int32}: returns values of an array of fmi3Int32 variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt32.

FMIImport.fmi3GetInt64Method
fmi3GetInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3Int64 variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3Int64}: returns values of an array of fmi3Int64 variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt64.

FMIImport.fmi3GetInt8Method
fmi3GetInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3Int8 variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3Int8}: returns values of an array of fmi3Int8 variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetInt8.

FMIImport.fmi3GetJacobian!Method
function fmi3GetJacobian!(jac::AbstractMatrix{fmi3Float64},
    comp::FMU3Instance,
    rdx::AbstractArray{fmi3ValueReference},
    rx::AbstractArray{fmi3ValueReference};
    steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing)

Fills the jacobian over the FMU fmu for FMU value references rdx and rx, so that the function stores the jacobian ∂rdx / ∂rx in an AbstractMatrix jac.

If FMI built-in directional derivatives are supported, they are used. As fallback, directional derivatives will be sampled with central differences. For optimization, if the FMU's model description has the optional entry 'dependencies', only dependent variables are sampled/retrieved. This drastically boosts performance for systems with large variable count (like CFD).

Arguments

  • jac::AbstractMatrix{fmi3Float64}: Stores the the jacobian ∂rdx / ∂rx.
  • inst::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • rdx::AbstractArray{fmi3ValueReference}: Argument rdx contains values of typefmi3ValueReference which are identifiers of a variable value of the model.
  • rx::AbstractArray{fmi3ValueReference}: Argument rx contains values of type fmi3ValueReference which are identifiers of a variable value of the model.

Keywords

  • steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing): If sampling is used, sampling step size can be set (for each direction individually) using optional argument steps.

Returns

  • nothing

Source

FMIImport.fmi3GetJacobianMethod
fmi3GetJacobian(inst::FMU3Instance,
    rdx::AbstractArray{fmi3ValueReference},
    rx::AbstractArray{fmi3ValueReference};
    steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing)

Builds the jacobian over the FMU fmu for FMU value references rdx and rx, so that the function returns the jacobian ∂rdx / ∂rx.

If FMI built-in directional derivatives are supported, they are used. As fallback, directional derivatives will be sampled with central differences. For optimization, if the FMU's model description has the optional entry 'dependencies', only dependent variables are sampled/retrieved. This drastically boosts performance for systems with large variable count (like CFD).

Arguments

  • inst::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • rdx::AbstractArray{fmi3ValueReference}: Argument rdx contains values of typefmi3ValueReference which are identifiers of a variable value of the model.
  • rx::AbstractArray{fmi3ValueReference}: Argument rx contains values of type fmi3ValueReference which are identifiers of a variable value of the model.

Keywords

  • steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing): If sampling is used, sampling step size can be set (for each direction individually) using optional argument steps.

Returns

  • mat::Array{fmi3Float64}: Return mat contains the jacobian ∂rdx / ∂rx.

Source

FMIImport.fmi3GetNominalsOfContinuousStatesMethod
fmi3GetNominalsOfContinuousStates(c::FMU3Instance)

Return the nominal values of the continuous states.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • x::Array{fmi3Float64}: Returns an array of fmi3Float64 values representing the new nominals of continuous state vector x.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3GetNominalsOfContinuousStates.

FMIImport.fmi3GetNumberOfContinuousStatesMethod
fmi3GetNumberOfContinuousStates(c::FMU3Instance)

This function returns the number of continuous states. This function can only be called in Model Exchange.

fmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • size::Integer: Return size is the number of continuous states of this instance

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfContinuousStates.

FMIImport.fmi3GetNumberOfEventIndicatorsMethod
fmi3GetNumberOfEventIndicators(c::FMU3Instance)

This function returns the number of event indicators. This function can only be called in Model Exchange.

fmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • size::Integer: Return size is the number of event indicators of this instance

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfEventIndicators.

FMIImport.fmi3GetNumberOfVariableDependenciesMethod
fmi3GetNumberOfVariableDependencies(c::FMU3Instance, vr::fmi3ValueReference, nvr::Ref{Csize_t})

The number of dependencies of a given variable, which may change if structural parameters are changed, can be retrieved by calling fmi3GetNumberOfVariableDependencies.

This information can only be retrieved if the 'providesPerElementDependencies' tag in the ModelDescription is set.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::Union{fmi3ValueReference, String}: Argument vr is the value handel called "ValueReference" that define the variable that shall be inquired.

Returns

  • size::Integer: Return size is the number of variable dependencies for the given variable

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.10. Dependencies of Variables

See also fmi3GetNumberOfVariableDependencies.

FMIImport.fmi3GetOutputDerivativesMethod

fmi3GetOutputDerivatives!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nValueReferences::Csizet, order::AbstractArray{fmi3Int32}, values::AbstractArray{fmi3Float64}, nValues::Csizet)

Retrieves the n-th derivative of output values.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::Array{fmi3ValueReference}: Argument vr is an array of nValueReferences value handels called "ValueReference" that t define the variables whose derivatives shall be set.
  • order::Array{fmi3Int32}: Argument order is an array of fmi3Int32 values witch specifys the corresponding order of derivative of the real input variable.

Returns

  • value::AbstactArray{fmi3Float64}: Return value is an array which represents a vector with the values of the derivatives.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.12. Getting Derivatives of Continuous Outputs

See also fmi3GetOutputDerivatives.

FMIImport.fmi3GetStartValueFunction
fmi3GetStartValue(c::FMU3Instance, vrs::fmi3ValueReferenceFormat = c.fmu.modelDescription.valueReferences)

Returns the start/default value for a given value reference.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vrs::fmi3ValueReferenceFormat = md.valueReferences: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • first optional function: starts::Array{fmi3ValueReferenceFormat}: start/default value for a given value reference
  • second optional function:starts::fmi3ValueReferenceFormat: start/default value for a given value reference

Source

FMIImport.fmi3GetStartValueFunction
fmi3GetStartValue(md::fmi3ModelDescription, vrs::fmi3ValueReferenceFormat = md.valueReferences)

Returns the start/default value for a given value reference.

Arguments

  • md::fmi3ModelDescription: Struct which provides the static information of ModelVariables.
  • vrs::fmi3ValueReferenceFormat = md.valueReferences: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • first optional function: starts::Array{fmi3ValueReferenceFormat}: start/default value for a given value reference
  • second optional function:starts::fmi3ValueReferenceFormat: start/default value for a given value reference

Source

FMIImport.fmi3GetStartValueFunction
fmi3GetStartValue(fmu::FMU3, vrs::fmi3ValueReferenceFormat = fmu.modelDescription.valueReferences)

Returns the start/default value for a given value reference.

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.
  • vrs::fmi3ValueReferenceFormat = md.valueReferences: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • first optional function: starts::Array{fmi3ValueReferenceFormat}: start/default value for a given value reference
  • second optional function:starts::fmi3ValueReferenceFormat: start/default value for a given value reference

Source

FMIImport.fmi3GetStringMethod
fmi3GetString(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3String variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3String}: returns values of an array of fmi3String variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetString.

FMIImport.fmi3GetUInt16Method
fmi3GetUInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3UInt16 variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3UInt16}: returns values of an array of fmi3UInt16 variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt16.

FMIImport.fmi3GetUInt32Method
fmi3GetUInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3UInt32 variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3UInt32}: returns values of an array of fmi3UInt32 variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt32.

FMIImport.fmi3GetUInt64Method
fmi3GetUInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3UInt64 variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3UInt64}: returns values of an array of fmi3UInt64 variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt64.

FMIImport.fmi3GetUInt8Method
fmi3GetUInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3UInt8 variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3UInt8}: returns values of an array of fmi3UInt8 variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetUInt8.

FMIImport.fmi3GetUnitMethod
fmi3GetUnit(mv::fmi3Variable)

Returns the unit entry of the corresponding model variable.

Arguments

  • mv::fmi3Variable: The “ModelVariables” element consists of an ordered set of “ModelVariable” elements. A “ModelVariable” represents a variable of primitive type, like a real or integer variable.

Returns

  • mv._Float.unit: Returns the unit entry of the corresponding ScalarVariable representing a variable of the primitive type Real. Otherwise nothing is returned.

Source

FMIImport.fmi3GetVariableDependenciesMethod
fmi3GetVariableDependencies(c::FMU3Instance, vr::Union{fmi3ValueReference, String})

The actual dependencies (of type dependenciesKind) can be retrieved by calling the function fmi3GetVariableDependencies:

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::Union{fmi3ValueReference, String}: Argument vr is the value handel called "ValueReference" that define the variable that shall be inquired.

Returns

  • elementIndicesOfDependent::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the dependent variable that dependency information is provided for. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)
  • independents::AbstractArray{fmi3ValueReference}: must point to a buffer of fmi3ValueReference values of size nDependencies allocated by the calling environment. It is filled in by this function with the value reference of the independent variable that this dependency entry is dependent upon.
  • elementIndicesIndependents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the independent variable that this dependency entry is dependent upon. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)
  • dependencyKinds::AbstractArray{fmi3DependencyKind}: must point to a buffer of dependenciesKind values of size nDependencies allocated by the calling environment. It is filled in by this function with the enumeration value describing the dependency of this dependency entry.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.10. Dependencies of Variables

See also fmi3GetVariableDependencies!.

FMIImport.fmi3InstantiateCoSimulation!Method
fmi3InstantiateCoSimulation!(fmu::FMU3; instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks, 
    eventModeUsed::Bool = false, ptrIntermediateUpdate=nothing, logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)

Create a new coSimulation instance of the given fmu, adds a logger if logginOn == true.

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.

Keywords

  • instanceName::String=fmu.modelName: Name of the instance
  • type::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present
  • pushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.
  • visible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)
  • loggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)
  • externalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)
  • eventModeUsed::Bool = false: Defines if the FMU instance can use the event mode. (default=false)
  • ptrIntermediateUpdate=nothing: Points to a function handling intermediate Updates (defalut=nothing)
  • logStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)
  • logStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)
  • logStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)
  • logStatusError::Bool=true whether to log status of kind fmi3Error (default=true)
  • logStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)

Returns

  • Returns the instance of a new FMU coSimulation instance.

Source

See also fmi3InstantiateCoSimulation.

FMIImport.fmi3InstantiateModelExchange!Method
fmi3InstantiateModelExchange!(fmu::FMU3; instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks,
    logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)

Create a new modelExchange instance of the given fmu, adds a logger if logginOn == true.

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.

Keywords

  • instanceName::String=fmu.modelName: Name of the instance
  • type::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present
  • pushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.
  • visible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)
  • loggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)
  • externalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)
  • logStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)
  • logStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)
  • logStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)
  • logStatusError::Bool=true whether to log status of kind fmi3Error (default=true)
  • logStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)

Returns

  • Returns the instance of a new FMU modelExchange instance.

Source

See also fmi3InstantiateModelExchange.

FMIImport.fmi3InstantiateScheduledExecution!Method
fmi3InstantiateScheduledExecution!(fmu::FMU3; ptrlockPreemption::Ptr{Cvoid}, ptrunlockPreemption::Ptr{Cvoid}, instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks, 
    logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)

Create a new ScheduledExecution instance of the given fmu, adds a logger if logginOn == true.

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.

Keywords

  • ptrlockPreemption::Ptr{Cvoid}: Points to a function handling locking Preemption
  • ptrunlockPreemption::Ptr{Cvoid}: Points to a function handling unlocking Preemption
  • instanceName::String=fmu.modelName: Name of the instance
  • type::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present
  • pushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.
  • visible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)
  • loggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)
  • externalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)
  • logStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)
  • logStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)
  • logStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)
  • logStatusError::Bool=true whether to log status of kind fmi3Error (default=true)
  • logStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)

Returns

  • Returns the instance of a new FMU ScheduledExecution instance.

Source

See also fmi3InstantiateScheduledExecution.

FMIImport.fmi3LoadMethod
fmi3Load(pathToFMU::String; unpackPath=nothing, type=nothing, cleanup=true)

Sets the properties of the fmu by reading the modelDescription.xml. Retrieves all the pointers of binary functions.

Arguments

  • pathToFMU::String: The folder path to the .fmu file.

Keywords

  • unpackPath=nothing: Via optional argument unpackPath, a path to unpack the FMU can be specified (default: system temporary directory).
  • type=nothing: Defines whether a Co-Simulation or Model Exchange is present
  • cleanup=true: The cleanup option controls whether the temporary directory is automatically deleted when the process exits.

Returns

  • Returns the instance of the FMU struct.

Source

See also .

FMIImport.fmi3ReloadMethod
fmi3Reload(fmu::FMU3)

Reloads the FMU-binary. This is useful, if the FMU does not support a clean reset implementation.

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.

Source

FMIImport.fmi3SampleDirectionalDerivativeFunction
fmi3SampleDirectionalDerivative(c::FMU3Instance,
vUnknown_ref::AbstractArray{fmi3ValueReference},
vKnown_ref::AbstractArray{fmi3ValueReference},
steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing)

This function samples the directional derivative by manipulating corresponding values (central differences).

Computes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)

  • v_unknown: vector of unknown Real variables computed in the actual Mode:
  • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknown> that have type Real.
  • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Output> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><Derivatives>).
  • Event Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Output> with type Real and variability = discrete.
  • Step Mode (CoSimulation): The variables listed under <ModelStructure><Output> with type Real and variability = continuous or discrete. If <ModelStructure><ContinuousStateDerivative> is present, also the variables listed here as state derivatives.
  • v_known: Real input variables of function h that changes its value in the actual Mode.
  • v_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δvunknown = (δh / δvknown) Δv_known

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vUnknown_ref::AbstractArray{fmi3ValueReference}: Argument vUnknown_ref contains values of typefmi3ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).
  • vKnown_ref::AbstractArray{fmi3ValueReference}: Argument vKnown_ref contains values of type fmi3ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).
  • steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing): If sampling is used, sampling step size can be set (for each direction individually) using optional argument steps.

Returns

  • dvUnkonwn::Array{fmi3Float64}: Argument vUnknown_ref contains values of typefmi3ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(see function fmi3GetDirectionalDerivative!).

Source

See also fmi3GetDirectionalDerivative! ,fmi3GetDirectionalDerivative.

FMIImport.fmi3SampleDirectionalDerivativeFunction
function fmi3SampleDirectionalDerivative(c::FMU3Instance,
    vUnknown_ref::Array{fmi3ValueReference},
    vKnown_ref::Array{fmi3ValueReference},
    steps::Array{fmi3Float64} = ones(fmi3Float64, length(vKnown_ref)).*1e-5)

Wrapper for fmi3SampleDirectionalDerivative! with dvUnknown initialized with zeros

Returning dvUnknown, modified by fmi3SampleDirectionalDerivative! call.

FMIImport.fmi3SampleDirectionalDerivative!Function
fmi3SampleDirectionalDerivative!(c::FMU3Instance,
vUnknown_ref::AbstractArray{fmi3ValueReference},
vKnown_ref::AbstractArray{fmi3ValueReference},
steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing)

This function samples the directional derivative by manipulating corresponding values (central differences).

Computes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)

  • v_unknown: vector of unknown Real variables computed in the actual Mode:
  • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknown> that have type Real.
  • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Output> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><Derivatives>).
  • Event Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Output> with type Real and variability = discrete.
  • Step Mode (CoSimulation): The variables listed under <ModelStructure><Output> with type Real and variability = continuous or discrete. If <ModelStructure><ContinuousStateDerivative> is present, also the variables listed here as state derivatives.
  • v_known: Real input variables of function h that changes its value in the actual Mode.
  • v_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δvunknown = (δh / δvknown) Δv_known

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vUnknown_ref::AbstractArray{fmi3ValueReference}: Argument vUnknown_ref contains values of typefmi3ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).
  • vKnown_ref::AbstractArray{fmi3ValueReference}: Argument vKnown_ref contains values of type fmi3ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).
  • steps::Union{AbstractArray{fmi3Float64}, Nothing} = nothing): If sampling is used, sampling step size can be set (for each direction individually) using optional argument steps.

Returns

  • nothing

Source

See also fmi3GetDirectionalDerivative! ,fmi3GetDirectionalDerivative.

FMIImport.fmi3SerializeFMUStateMethod
fmi3SerializeFMUState(c::FMU3Instance, state::fmi3FMUState)

Serializes the data referenced by the pointer FMUstate and copies this data into the byte vector serializedState of length size to be provided by the environment.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • state::fmi3FMUState: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.

Returns

  • serializedState:: Array{fmi3Byte}: Return serializedState contains the copy of the serialized data referenced by the pointer FMUstate

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State

See also fmi3SerializeFMUState.

FMIImport.fmi3SerializedFMUStateSizeMethod
fmi3SerializedFMUStateSize(c::FMU3Instance, state::fmi3FMUState)

Returns the size of the byte vector in which the FMUstate can be stored.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • state::fmi3FMUState: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.

Returns

  • Return size is an object that safely references a value of type Csize_t.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State

See also fmi3SerializedFMUStateSize.

FMIImport.fmi3SetMethod
fmi3Set(inst::FMU3Instance, vrs::fmi3ValueReferenceFormat, srcArray::AbstractArray; filter=nothing)

Stores the specific value of fmi3Variable containing the modelVariables with the identical fmi3ValueReference and returns an array that indicates the Status.

Arguments

  • inst::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vrs::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • srcArray::AbstractArray: Stores the specific value of fmi3Variable containing the modelVariables with the identical fmi3ValueReference to the input variable vr (vr = vrs[i]). srcArray has the same length as vrs.

Keywords

  • filter=nothing: whether the individual values of "fmi3Variable" are to be stored

Returns

  • retcodes::Array{fmi3Status}: Returns an array of length length(vrs) with Type fmi3Status. Type fmi3Status is an enumeration and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values
FMIImport.fmi3UnloadFunction
function fmi3Unload(fmu::FMU3, cleanUp::Bool = true)

Unload a FMU. Free the allocated memory, close the binaries and remove temporary zip and unziped FMU model description.

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.
  • cleanUp::Bool= true: Defines if the file, link, or empty directory should be deleted.
FMIImport.fmi3UnzipMethod
fmi3Unzip(pathToFMU::String; unpackPath=nothing, cleanup=true)

Create a copy of the .fmu file as a .zip folder and unzips it. Returns the paths to the zipped and unzipped folders.

Arguments

  • pathToFMU::String: The folder path to the .zip folder.

Keywords

  • unpackPath=nothing: Via optional argument unpackPath, a path to unpack the FMU can be specified (default: system temporary directory).
  • cleanup=true: The cleanup option controls whether the temporary directory is automatically deleted when the process exits.

Returns

  • unzippedAbsPath::String: Contains the Path to the uzipped Folder.
  • zipAbsPath::String: Contains the Path to the zipped Folder.

See also mktempdir.

FMIImport.loadBinaryMethod
loadBinary(fmu::FMU2)

load pointers to fmus c functions from shared library handle (provided byfmu.libHandle`)

FMIImport.loadBinaryMethod
loadBinary(fmu::FMU3)

load pointers to fmus c functions from shared library handle (provided byfmu.libHandle`)