Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Extension regarding getDirectionalDerivatives() #645
This issue is not for clarification only but for extension of the possibilities for the use of the primitive getDirectionalDerivative(), also assuming its new name will be getDirectionalDerivatives().
The use case is the co-initialization of strongly coupled FMUs as we can see in power flow (electrical domain).
For this reason, we propose to improve the possibilities for calling the primitive getDirectionalDerivatives() in order to allow getting with one call all the derivatives of a vector of outputs with respect to a vector of inputs, not restricting the current usage.
With FMI 2.0 here are two examples of using the primitive to get all the derivatives of a vector of outputs (o1, o2, o3) with respect to all inputs (i1, i2). In both case two calls are necessary.
// Example 1: two sequential calls are required
// Example 2: two sequential calls are required
FMI 3.0 is a great opportunity to extend the possibilities for calling the getDirectionalDerivatives() and get a better batch calling for this primitive.
Of course it is still possible to use the primitive as previously. Example: