MAST
|
the equation set is: the N-R updates are calculated such that
This equation is solved using Schur-factorization so that the disciplinary linear solver can be used. More...
#include <continuation_solver_base.h>
Public Member Functions | |
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 | initialize (Real dp)=0 |
initializes the data structure based on initial load step dp . More... | |
virtual void | solve () |
solves for the next load step More... | |
Public Attributes | |
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... | |
Protected Member Functions | |
virtual void | _solve_NR_iterate (libMesh::NumericVector< Real > &X, MAST::Parameter &p)=0 |
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) |
virtual Real | _g (const libMesh::NumericVector< Real > &X, const MAST::Parameter &p)=0 |
virtual void | _save_iteration_data ()=0 |
method saves any data for possible resuse if the solution step is restarted More... | |
virtual void | _reset_iterations ()=0 |
method resets any data if a soltion step is restarted More... | |
Protected Attributes | |
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 |
the equation set is: the N-R updates are calculated such that
This equation is solved using Schur-factorization so that the disciplinary linear solver can be used.
Definition at line 53 of file continuation_solver_base.h.
MAST::ContinuationSolverBase::ContinuationSolverBase | ( | ) |
Definition at line 37 of file continuation_solver_base.cpp.
|
virtual |
Definition at line 59 of file continuation_solver_base.cpp.
|
protectedpure virtual |
Implemented in MAST::PseudoArclengthContinuationSolver, and MAST::ArclengthContinuationSolver.
|
protected |
Definition at line 570 of file continuation_solver_base.cpp.
|
protectedpure virtual |
method resets any data if a soltion step is restarted
Implemented in MAST::PseudoArclengthContinuationSolver, and MAST::ArclengthContinuationSolver.
|
protectedpure virtual |
method saves any data for possible resuse if the solution step is restarted
Implemented in MAST::PseudoArclengthContinuationSolver, and MAST::ArclengthContinuationSolver.
|
protected |
solves for the linear system of equation as a monolithic system
dX
and dp
are returned from the solution
Definition at line 184 of file continuation_solver_base.cpp.
|
protectedpure virtual |
Implemented in MAST::PseudoArclengthContinuationSolver, and MAST::ArclengthContinuationSolver.
|
protected |
solves for the linear system of equation using Schur factorization.
dX
and dp
are returned from the solution
Definition at line 421 of file continuation_solver_base.cpp.
void MAST::ContinuationSolverBase::clear_assembly_and_load_parameters | ( | ) |
clears the assembly object from this solver
Definition at line 82 of file continuation_solver_base.cpp.
|
pure virtual |
initializes the data structure based on initial load step dp
.
must be called before solve().
Implemented in MAST::PseudoArclengthContinuationSolver, and MAST::ArclengthContinuationSolver.
void MAST::ContinuationSolverBase::set_assembly_and_load_parameter | ( | MAST::AssemblyElemOperations & | elem_ops, |
MAST::AssemblyBase & | assembly, | ||
MAST::Parameter & | p | ||
) |
sets the assembly object for this solver
Definition at line 67 of file continuation_solver_base.cpp.
|
virtual |
solves for the next load step
Definition at line 93 of file continuation_solver_base.cpp.
|
protected |
Definition at line 224 of file continuation_solver_base.h.
|
protected |
Definition at line 223 of file continuation_solver_base.h.
|
protected |
Definition at line 221 of file continuation_solver_base.h.
|
protected |
Definition at line 225 of file continuation_solver_base.h.
|
protected |
Definition at line 228 of file continuation_solver_base.h.
|
protected |
Definition at line 228 of file continuation_solver_base.h.
|
protected |
Definition at line 233 of file continuation_solver_base.h.
|
protected |
Definition at line 228 of file continuation_solver_base.h.
Real MAST::ContinuationSolverBase::abs_tol |
Absolute tolerance for the solver.
Default is 1.e-8;
Definition at line 97 of file continuation_solver_base.h.
Real MAST::ContinuationSolverBase::arc_length |
arc length that the solver is required to satisfy for the update.
Definition at line 109 of file continuation_solver_base.h.
unsigned int MAST::ContinuationSolverBase::max_it |
Maximum number of Newton-Raphson iterations for the solver.
Default is 20.
Definition at line 91 of file continuation_solver_base.h.
Real MAST::ContinuationSolverBase::max_step |
maximum step size allowed with adaptivity
Definition at line 121 of file continuation_solver_base.h.
Real MAST::ContinuationSolverBase::min_step |
minimum step size allowed with adaptivity
Definition at line 115 of file continuation_solver_base.h.
Real MAST::ContinuationSolverBase::rel_tol |
Relative tolerance for the solver.
Default is 1.e-8;
Definition at line 103 of file continuation_solver_base.h.
bool MAST::ContinuationSolverBase::schur_factorization |
flag to use Schur-factorizaiton (default) or monolithic solver
Definition at line 141 of file continuation_solver_base.h.
unsigned int MAST::ContinuationSolverBase::step_desired_iters |
desired N-R iterations per load-step.
Step-size is chanegd if actual number of N-R iterates is different from this value using the expression , where, p is the exponent.
Definition at line 136 of file continuation_solver_base.h.
Real MAST::ContinuationSolverBase::step_size_change_exponent |
exponent used in step size update.
Definition at line 127 of file continuation_solver_base.h.