conatus.expert.NLBVPContinuation

class conatus.expert.NLBVPContinuation(solver, parameter=None, settings=None, eigen=None, marginal_tol=None)[source]

Bases: object

Pseudo-arclength continuation of solver.problem in the parameter parameter (param: its deprecated former name, v0.1).

settings are the explicit continuation settings (no defaults); G_p is computed by the declared central finite difference settings.dp_fd (the Newton system is rebuilt at p ± dp). eigen(coeffs, p) -> growth rates (optional) gives the stability of each branch point, e.g. the eigenvalues of the linearized IVP (linearize + eigenvalues): an NLBVP has no time derivative, so its own Jacobian cannot provide growth rates (see __init__).

Parameters:
  • solver (NewtonSolver)

  • parameter (str | None)

  • settings (ContinuationSettings | None)

  • eigen (Callable[[Mapping[str, np.ndarray], float], np.ndarray] | None)

  • marginal_tol (float | None)

coeffs_of(x)[source]

Coefficient arrays (per variable) of the packed vector x.

Parameters:

x (ndarray)

Return type:

dict[str, ndarray]

vector_of(coeffs, p)[source]

Packed vector of the coefficients at parameter p (fixes the layout).

Parameters:
  • coeffs (Mapping[str, ndarray])

  • p (float)

Return type:

ndarray

run(start, p0, direction=1.0, p_bounds=None)[source]

Continue from the converged coefficients start at p0 (see PseudoArclength.run).

Parameters:
  • start (Mapping[str, ndarray])

  • p0 (float)

  • direction (float)

  • p_bounds (tuple[float, float] | None)

Return type:

Branch

explain()[source]

Residual, G_p, norm, stability and rank-report settings.

Return type:

str