﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
6328	Support the homotopy() operator for the generation of symbolic jacobians for NLS	Francesco Casella	Andreas Heuermann	"Please run the MWE {{{Test1}}} in the attached package with the declarative debugger. Among the initial equations, the analytic Jacobian is generated for the first nonlinear system, but not for the second, due to the use of the homotopy operator.

Setting {{{--replaceHomotopy=actual}}}, as in {{{Test2}}}, does not change the situation. This is strange, as I would have expected this flag to actually replace all instances of {{{homotopy()}}} with their {{{actual}}} expression - isn't that the case?

Setting {{{-d=forceNLSanalyticJacobian}}}, as in {{{Test3}}}, leads to the generation of the analytic jacobian for the second system:
{{{
(residual) homotopy(sin(y2), y2) - y2 + homotopy(sin(y1), y1) + y1 = 0
(residual) -1.0 + y1 + homotopy(sin(y1), y1) + y2 + homotopy(sin(y2), y2) = 0
(jacobian) $cse3 := cos(y1)
(jacobian) $cse4 := cos(y2)
(jacobian) $res_NLSJac453_1.$pDERNLSJac453.dummyVarNLSJac453 := y1.SeedNLSJac453 + $cse3 * y1.SeedNLSJac453 + y2.SeedNLSJac453 * (1.0 + $cse4)
(jacobian) $res_NLSJac453_2.$pDERNLSJac453.dummyVarNLSJac453 := y1.SeedNLSJac453 + $cse3 * y1.SeedNLSJac453 + $cse4 * y2.SeedNLSJac453 - y2.SeedNLSJac453
}}}
however, if I am not mistaken, while the residuals correctly contain the {{{homotopy()}}} operator, the jacobian seem to be computed assuming {{{lambda = 1}}}, and is thus wrong in general.

Differentiating the homotopy operator is no big deal, as the homotopy an differentiation operators are commutative. Is it possible to implement that right away?"	enhancement	closed	critical	1.17.0	Backend	1.16.0	fixed		Karim Adbdelhak Per Östlund
