@@ -63,9 +63,19 @@ function tangent_integrator(ds::CDS{IIP}, Q0::AbstractMatrix;
6363 tanprob = ODEProblem {IIP} (tangentf, hcat (u, Q), (t0, typeof (t0)(Inf )), ds. p)
6464
6565 solver = _get_solver (diffeq)
66- return __init (tanprob, solver; DEFAULT_DIFFEQ_KWARGS... ,
67- save_everystep = false , diffeq... )
66+ return __init (tanprob, solver; DEFAULT_DIFFEQ_KWARGS... , internalnorm = _tannorm,
67+ save_everystep = false , diffeq... )
68+ end
69+
70+ function _tannorm (u:: AbstractMatrix , t)
71+ s = size (u)[1 ]
72+ x = zero (eltype (u))
73+ for i in 1 : s
74+ @inbounds x += u[i, 1 ]^ 2
75+ end
76+ return sqrt (x/ length (x))
6877end
78+ _tannorm (u:: Real , t) = abs (u)
6979
7080# Auto-diffed in-place version
7181function tangent_integrator (ds:: CDS{true, S, D, F, P, JAC, JM, true} ,
@@ -86,7 +96,7 @@ function tangent_integrator(ds::CDS{true, S, D, F, P, JAC, JM, true},
8696
8797 solver = _get_solver (diffeq)
8898 return __init (tanprob, solver; DEFAULT_DIFFEQ_KWARGS... , save_everystep = false ,
89- diffeq... )
99+ internalnorm = _tannorm, diffeq... )
90100end
91101
92102# ############################## Parallel ############################################
@@ -117,10 +127,18 @@ function parallel_integrator(ds::CDS, states; diffeq...)
117127 # if typeof(solver) ∈ STIFFSOLVERS
118128 # error("Stiff solvers can't support a parallel integrator.")
119129 # end
120- return __init (pprob, solver; DEFAULT_DIFFEQ_KWARGS... , save_everystep = false ,
121- diffeq... )
130+ if ! (typeof (ds) <: CDS{true} )
131+ return __init (pprob, solver; DEFAULT_DIFFEQ_KWARGS... , save_everystep = false ,
132+ internalnorm = _parallelnorm, diffeq... )
133+ else
134+ return __init (pprob, solver; DEFAULT_DIFFEQ_KWARGS... , save_everystep = false ,
135+ internalnorm = _tannorm, diffeq... )
136+ end
122137end
123138
139+ _parallelnorm (u:: AbstractVector , t) = @inbounds DiffEqBase. ODE_DEFAULT_NORM (u[1 ], t)
140+ _parallelnorm (u:: Real , t) = abs (u)
141+
124142# ####################################################################################
125143# Trajectory #
126144# ####################################################################################
0 commit comments