Pseudo-arclength continuation (PALC)
This contains information regarding pseudo-arclength continuation.
SimpleContinuation.PALC — Type
PALCData type for storing all information for PALC algorithm.
SimpleContinuation.PALC — Method
PALC(; kwargs...)Contructor for PALC algorithm.
Kwargs
predicter::AbstractPredictor: Prediction method. Default (recommended):Bordered()inner_product::AbstractInnerProduct: Inner product to use throughout. Default:StandardDotProduct()linesearch: Line search method provided byLineSearch.jl. Default:LiFukushimaLineSearch()linsolve: Linear solve algorithm provided byLinearSolve.jl. DefaultSVDFactorization()termcond: Termination condition for solvers. Default:termcond=NonlinearSolve.AbsTerminationMode()
Examples
pred = Secant() # secant predictor
alg = PALC(; predicter=pred) # all defaults except prediction methodSimpleContinuation.PALCCache — Type
PALCCache{MT<:Union{Matrix{Float64},SparseMatrixCSC{Float64,Int}}}A cache for the PALC algorithm.
This cache includes all preallocated storage required for PALC. It also contains the zero curve (solution), return code, and any special detected points.
Fields
ds::Float64: PALC step sizebr::Vector{Tuple{Vector{Float64},Float64}}: Zero curve storage, in format[(u0,λ0); (u1,λ1); ...; (un,λn)]forniterations.detected_points::Vector{Tuple{Vector{Float64},Float64, Symbol}}: Storage for any points of interest detected byFoldBifurcationDetectionCallback()or any other detection callbacks (once implemented).uλ0::Vector{Float64}: Full[u;λ]current iterateu0::Vector{Float64}: Unknownsucurrent iterate.λ0::Float64: Continuation parameterλcurrent iterate.λn::Float64: Natural continuation parameter. Only used in select instances when required.bordered_mat::MT: Bordered matrix storagebordered_b::Vector{Float64}: Storage for RHS of bordered system.δuλ0::Vector{Float64}: Storage for full tangent[δu; δλ]δu0::Vector{Float64}: Storage for tangent componentsδuδλ::Float64: Storage for tangent componentδλδuλ0_initial::Vector{Float64}: Storage for initalized tangent computed before first iteration.uλpred::Vector{Float64}: Storage for predicted pointFfun::Vector{Float64}: Storage for continuation function residuals (not including hyperplane constraint)Jfun::MT: Storage for non-square jacobian of system ∂F(u;λ)/∂[u;λ]. (not including hyperplane constraint)u_0::Vector{Float64}: Storage for regula-falsi solveru_1::Vector{Float64}: Storage for regula-falsi solveru_t::Vector{Float64}: Storage for regula-falsi solverret::Symbol: Exit condition return code.
Some information for settings
SimpleContinuation.CorrectionStepLimiter — Type
struct CorrectionStepLimiterA type to limit the step size in the correction step.
Restricts the Euclidean distance between the prediction and correction to be less than some frac of Δs at the current iteration. If the distance is larger, the correction step is rejected despite success of the Newton-Raphson solver.
Fields
frac::Float64: The fraction of the current PALC step sizeΔsthat the correction step length should be less than.
SimpleContinuation.CorrectionStepLimiter — Method
function CorrectionStepLimiter(; frac=0.1)Constructor for the correction step limiter.
Kwargs
frac::Float64: The fraction of the current PALC step sizeΔsthat the correction step length should be less than. Defaults to 0.1.