MAST
|
The constraint equation is defined along the path as
where, , is the solution, is the load parameter, is the predictor based on the search direction . More...
#include <pseudo_arclength_continuation_solver.h>
Public Member Functions | |
PseudoArclengthContinuationSolver () | |
virtual | ~PseudoArclengthContinuationSolver () |
virtual void | initialize (Real dp) |
initializes the search direction using the specified load step dp . More... | |
Public Member Functions inherited from MAST::ContinuationSolverBase | |
ContinuationSolverBase () | |
virtual | ~ContinuationSolverBase () |
void | set_assembly_and_load_parameter (MAST::AssemblyElemOperations &elem_ops, MAST::AssemblyBase &assembly, MAST::Parameter &p) |
sets the assembly object for this solver More... | |
void | clear_assembly_and_load_parameters () |
clears the assembly object from this solver More... | |
virtual void | solve () |
solves for the next load step More... | |
Protected Member Functions | |
virtual void | _solve_NR_iterate (libMesh::NumericVector< Real > &X, MAST::Parameter &p) |
void | _update_search_direction (const libMesh::NumericVector< Real > &X, const MAST::Parameter &p, libMesh::SparseMatrix< Real > &jac, libMesh::NumericVector< Real > &t1_X, Real &t1_p) |
updates for the current iterate X and p , and stores these values to _t0_X and _t0_p for next computation. More... | |
virtual Real | _g (const libMesh::NumericVector< Real > &X, const MAST::Parameter &p) |
where, and . More... | |
void | _g (const libMesh::NumericVector< Real > &X, const MAST::Parameter &p, libMesh::NumericVector< Real > &t1_X, Real &t1_p, Real &g) |
where , and . More... | |
virtual void | _save_iteration_data () |
method saves any data for possible resuse if the solution step is restarted More... | |
virtual void | _reset_iterations () |
method resets any data if a solution step is restarted More... | |
Protected Member Functions inherited from MAST::ContinuationSolverBase | |
void | _solve (const libMesh::NumericVector< Real > &X, const MAST::Parameter &p, libMesh::NumericVector< Real > &f, bool update_f, libMesh::NumericVector< Real > &dfdp, bool update_dfdp, const libMesh::NumericVector< Real > &dgdX, const Real dgdp, const Real g, libMesh::NumericVector< Real > &dX, Real &dp) |
solves for the linear system of equation as a monolithic system
| |
void | _solve_schur_factorization (const libMesh::NumericVector< Real > &X, const MAST::Parameter &p, libMesh::SparseMatrix< Real > &jac, bool update_jac, libMesh::NumericVector< Real > &f, bool update_f, libMesh::NumericVector< Real > &dfdp, bool update_dfdp, libMesh::NumericVector< Real > &dXdp, bool update_dXdp, const libMesh::NumericVector< Real > &dgdX, const Real dgdp, const Real g, libMesh::NumericVector< Real > &dX, Real &dp) |
solves for the linear system of equation using Schur factorization. More... | |
Real | _res_norm (const libMesh::NumericVector< Real > &X, const MAST::Parameter &p) |
Protected Attributes | |
std::unique_ptr< libMesh::NumericVector< Real > > | _t0_X |
std::unique_ptr< libMesh::NumericVector< Real > > | _t0_X_orig |
Real | _t0_p |
Real | _t0_p_orig |
Protected Attributes inherited from MAST::ContinuationSolverBase | |
bool | _initialized |
MAST::AssemblyElemOperations * | _elem_ops |
MAST::AssemblyBase * | _assembly |
MAST::Parameter * | _p |
Real | _p0 |
Real | _X_scale |
Real | _p_scale |
std::unique_ptr< libMesh::NumericVector< Real > > | _X0 |
Additional Inherited Members | |
Public Attributes inherited from MAST::ContinuationSolverBase | |
unsigned int | max_it |
Maximum number of Newton-Raphson iterations for the solver. More... | |
Real | abs_tol |
Absolute tolerance for the solver. More... | |
Real | rel_tol |
Relative tolerance for the solver. More... | |
Real | arc_length |
arc length that the solver is required to satisfy for the update. More... | |
Real | min_step |
minimum step size allowed with adaptivity More... | |
Real | max_step |
maximum step size allowed with adaptivity More... | |
Real | step_size_change_exponent |
exponent used in step size update. More... | |
unsigned int | step_desired_iters |
desired N-R iterations per load-step. More... | |
bool | schur_factorization |
flag to use Schur-factorizaiton (default) or monolithic solver More... | |
The constraint equation is defined along the path as
where, , is the solution, is the load parameter, is the predictor based on the search direction .
Given that the predictor is defined as , with as the step size, the constraint is rewritten as
or, assuming ,
The search direction is evaluated based on:
and, is then scaled to unit norm.
Definition at line 49 of file pseudo_arclength_continuation_solver.h.
MAST::PseudoArclengthContinuationSolver::PseudoArclengthContinuationSolver | ( | ) |
Definition at line 31 of file pseudo_arclength_continuation_solver.cpp.
|
virtual |
Definition at line 39 of file pseudo_arclength_continuation_solver.cpp.
|
protectedvirtual |
where, and .
Implements MAST::ContinuationSolverBase.
Definition at line 205 of file pseudo_arclength_continuation_solver.cpp.
|
protected |
|
protectedvirtual |
method resets any data if a solution step is restarted
Implements MAST::ContinuationSolverBase.
Definition at line 259 of file pseudo_arclength_continuation_solver.cpp.
|
protectedvirtual |
method saves any data for possible resuse if the solution step is restarted
Implements MAST::ContinuationSolverBase.
Definition at line 248 of file pseudo_arclength_continuation_solver.cpp.
|
protectedvirtual |
Implements MAST::ContinuationSolverBase.
Definition at line 86 of file pseudo_arclength_continuation_solver.cpp.
|
protected |
updates for the current iterate X
and p
, and stores these values to _t0_X
and _t0_p
for next computation.
Definition at line 144 of file pseudo_arclength_continuation_solver.cpp.
|
virtual |
initializes the search direction using the specified load step dp
.
Implements MAST::ContinuationSolverBase.
Definition at line 45 of file pseudo_arclength_continuation_solver.cpp.
|
protected |
Definition at line 128 of file pseudo_arclength_continuation_solver.h.
|
protected |
Definition at line 128 of file pseudo_arclength_continuation_solver.h.
|
protected |
Definition at line 127 of file pseudo_arclength_continuation_solver.h.
|
protected |
Definition at line 127 of file pseudo_arclength_continuation_solver.h.