Class for solving a non-linear system in a few iterations until the norm of the residuals reaches a certain tolerance or a maximun number of iterations is reached.
More...
#include <NewtonRaphson.hpp>
|
| | NewtonRaphson (std::unique_ptr< LinearSystem > &solver, std::shared_ptr< Mesh > &mesh, double tol=1E-6, unsigned int nIters=50, unsigned int flag=1, double ldFactor=0.02) |
| | Creates a Linear object. More...
|
| |
| | ~NewtonRaphson () |
| | Destroys this NewtonRaphson object. More...
|
| |
| bool | ComputeNewIncrement (std::shared_ptr< Mesh > &mesh, unsigned int i=0) |
| | Computes a new incremental solution. More...
|
| |
| const Eigen::VectorXd & | GetDisplacementIncrement () |
| | Gets the displacement increment. More...
|
| |
| void | SetLoadFactor (double factor) |
| | Set the load factor. More...
|
| |
| void | SetIntegrator (std::shared_ptr< Integrator > &integrator) |
| | Sets the integrator for this algorithm. More...
|
| |
| | Algorithm (const std::shared_ptr< Mesh > &mesh, unsigned int flag=1, double NormFactor=1.0) |
| | Creates a Algorithm object. More...
|
| |
| virtual | ~Algorithm ()=0 |
| | Destroys this Algorithm object. More...
|
| |
| void | ReverseStatesIncrements (std::shared_ptr< Mesh > &mesh) |
| | Reverse the incremental state variables to its pervious converged one in the mesh. More...
|
| |
| void | UpdateStatesIncrements (std::shared_ptr< Mesh > &mesh, const Eigen::VectorXd &dU) |
| | Update the incremental state variables in the mesh. More...
|
| |
| void | ReducedParallelResidual (const Eigen::VectorXd &Feff, double &Residual) |
| | Construct the residual vector force from each processor. More...
|
| |
| double | ComputeConvergence (const Eigen::VectorXd &Force, const Eigen::VectorXd &Delta, const Eigen::VectorXd &delta, unsigned int k) |
| | Computes convergence tests for this algorithm. More...
|
| |
Class for solving a non-linear system in a few iterations until the norm of the residuals reaches a certain tolerance or a maximun number of iterations is reached.
- See also
- Algorithm.hpp Integrator.hpp
◆ NewtonRaphson()
| NewtonRaphson::NewtonRaphson |
( |
std::unique_ptr< LinearSystem > & |
solver, |
|
|
std::shared_ptr< Mesh > & |
mesh, |
|
|
double |
tol = 1E-6, |
|
|
unsigned int |
nIters = 50, |
|
|
unsigned int |
flag = 1, |
|
|
double |
ldFactor = 0.02 |
|
) |
| |
◆ ~NewtonRaphson()
| NewtonRaphson::~NewtonRaphson |
( |
| ) |
|
◆ ComputeNewIncrement()
| bool NewtonRaphson::ComputeNewIncrement |
( |
std::shared_ptr< Mesh > & |
mesh, |
|
|
unsigned int |
i = 0 |
|
) |
| |
|
virtual |
Computes a new incremental solution.
- Parameters
-
| mesh | The finite element Mesh object. |
| i | The time step number to be solved. |
- Returns
- Whether or not the algorithm was successful.
- Note
- More details can be found at NewtonRaphson.
Implements Algorithm.
◆ GetDisplacementIncrement()
| const Eigen::VectorXd& NewtonRaphson::GetDisplacementIncrement |
( |
| ) |
|
|
virtual |
Gets the displacement increment.
- Returns
- The incremental displacement vector.
- Note
- More details can be found at NewtonRaphson.
Implements Algorithm.
◆ SetIntegrator()
| void NewtonRaphson::SetIntegrator |
( |
std::shared_ptr< Integrator > & |
integrator | ) |
|
|
virtual |
Sets the integrator for this algorithm.
- Parameters
-
| integrator | Pointer to the Integrator to obtain the effective stiffness and force. |
Implements Algorithm.
◆ SetLoadFactor()
| void NewtonRaphson::SetLoadFactor |
( |
double |
factor | ) |
|
|
virtual |
Set the load factor.
- Parameters
-
| factor | The incremental load factor. |
Implements Algorithm.
◆ dU
| Eigen::VectorXd NewtonRaphson::dU |
|
protected |
Incremental displacement.
◆ LoadFactor
| double NewtonRaphson::LoadFactor |
|
protected |
◆ nMaxIterations
| unsigned int NewtonRaphson::nMaxIterations |
|
protected |
Maximum allowed number of iterations.
◆ theIntegrator
| std::shared_ptr<Integrator> NewtonRaphson::theIntegrator |
|
protected |
The time-domain integrator.
◆ theSolver
The linear system solver.
◆ Tolerance
| double NewtonRaphson::Tolerance |
|
protected |