Skip to content

Commit 8d050ef

Browse files
authored
Return partial derivative for fixed parameter (#651)
in Initialization Mode fixes #646
1 parent 31d7d40 commit 8d050ef

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

VanDerPol/model.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ Status getDerivatives(ModelInstance *comp, double dx[], size_t nx) {
102102
return OK;
103103
}
104104

105+
#if FMI_VERSION > 1
105106
Status getPartialDerivative(ModelInstance *comp, ValueReference unknown, ValueReference known, double *partialDerivative) {
106107

107108
if (unknown == vr_der_x0 && known == vr_x0) {
@@ -112,12 +113,15 @@ Status getPartialDerivative(ModelInstance *comp, ValueReference unknown, ValueRe
112113
*partialDerivative = -2 * M(x0) * M(x1) * M(mu) - 1;
113114
} else if (unknown == vr_der_x1 && known == vr_x1) {
114115
*partialDerivative = M(mu) * (1 - M(x0) * M(x0));
116+
} else if (unknown == vr_der_x1 && known == vr_mu && comp->state == InitializationMode) {
117+
*partialDerivative = (1 - M(x0) * M(x0)) * M(x1);
115118
} else {
116119
*partialDerivative = 0;
117120
}
118121

119122
return OK;
120123
}
124+
#endif
121125

122126
Status eventUpdate(ModelInstance *comp) {
123127

0 commit comments

Comments
 (0)