@@ -1786,7 +1786,7 @@ The fields of the `HomotopyNonlinearFunction` type directly match the names of t
17861786$(FIELDS)
17871787"""
17881788struct HomotopyNonlinearFunction{iip, specialize, F, P, Q, D} < :
1789- SciMLBase. AbstractSciMLFunction {iip}
1789+ SciMLBase. AbstractNonlinearFunction {iip}
17901790 """
17911791 The polynomial function `f`. Stored as a `NonlinearFunction{iip, specialize}`. If not
17921792 provided to the constructor as a `NonlinearFunction`, it will be appropriately wrapped.
@@ -2467,6 +2467,7 @@ end
24672467
24682468(f:: ODEFunction )(args... ) = f. f (args... )
24692469(f:: NonlinearFunction )(args... ) = f. f (args... )
2470+ (f:: HomotopyNonlinearFunction )(args... ) = f. f (args... )
24702471(f:: IntervalNonlinearFunction )(args... ) = f. f (args... )
24712472(f:: IntegralFunction )(args... ) = f. f (args... )
24722473(f:: BatchIntegralFunction )(args... ) = f. f (args... )
@@ -4013,9 +4014,10 @@ function HomotopyNonlinearFunction{iip, specialize}(f;
40134014 polynomialize = __has_polynomialize (f) ? f. polynomialize : DEFAULT_POLYNOMIALIZE,
40144015 unpolynomialize = __has_unpolynomialize (f) ? f. unpolynomialize :
40154016 DEFAULT_UNPOLYNOMIALIZE,
4016- denominator = __has_denominator (f) ? f. denominator : Returns (())
4017+ denominator = __has_denominator (f) ? f. denominator : Returns (()),
4018+ kwargs...
40174019) where {iip, specialize}
4018- f = f isa NonlinearFunction ? f : NonlinearFunction {iip, specialize} (f)
4020+ f = f isa NonlinearFunction ? f : NonlinearFunction {iip, specialize} (f; kwargs ... )
40194021
40204022 if specialize === NoSpecialize
40214023 HomotopyNonlinearFunction {iip, specialize, Any, Any, Any, Any} (
@@ -4853,6 +4855,22 @@ function SymbolicIndexingInterface.observed(fn::HomotopyNonlinearFunction, sym::
48534855 SymbolicIndexingInterface. observed (symbolic_container (fn), sym)
48544856end
48554857
4858+ function Base. getproperty (x:: HomotopyNonlinearFunction , sym:: Symbol )
4859+ if hasfield (HomotopyNonlinearFunction, sym)
4860+ return getfield (x, sym)
4861+ elseif hasfield (NonlinearFunction, sym)
4862+ return getfield (getfield (x, :f ), sym)
4863+ elseif (sym == :initializeprob || sym == :update_initializeprob! ||
4864+ sym == :initializeprobmap || sym == :initializeprobpmap )
4865+ f = getfield (x, :f )
4866+ if f. initialization_data === nothing
4867+ return nothing
4868+ else
4869+ return getproperty (f. initialization_data, sym)
4870+ end
4871+ end
4872+ end
4873+
48564874function Base. getproperty (x:: AbstractSciMLFunction , sym:: Symbol )
48574875 if __has_initialization_data (x) &&
48584876 (sym == :initializeprob || sym == :update_initializeprob! ||
0 commit comments