31 #ifndef _ALGORITHM_HPP_ 32 #define _ALGORITHM_HPP_ 37 #include <Eigen/Dense> 38 #include <Eigen/SparseCore> 77 virtual void SetIntegrator(std::shared_ptr<Integrator> &integrator) = 0;
115 double ComputeConvergence(
const Eigen::VectorXd &Force,
const Eigen::VectorXd &Delta,
const Eigen::VectorXd &delta,
unsigned int k);
Virtual class for defining how the solution between two steps is going to be carried out...
Definition: Algorithm.hpp:52
void ReducedParallelResidual(const Eigen::VectorXd &Feff, double &Residual)
Construct the residual vector force from each processor.
unsigned int flag
Convergence test to be performed.
Definition: Algorithm.hpp:124
void ReverseStatesIncrements(std::shared_ptr< Mesh > &mesh)
Reverse the incremental state variables to its pervious converged one in the mesh.
This file contains the "Load Combination" class declarations, which defines how the loads are going t...
virtual ~Algorithm()=0
Destroys this Algorithm object.
Class for defining how the static/dynamic analysis between two steps is going to be performed...
Definition: Integrator.hpp:53
Eigen::SparseMatrix< double > Total2FreeMatrix
Operator that enforced restrain/constraint.
Definition: Algorithm.hpp:120
void UpdateStatesIncrements(std::shared_ptr< Mesh > &mesh, const Eigen::VectorXd &dU)
Update the incremental state variables in the mesh.
This file contains the "Mesh object" declarations, which stores nodes, materials, elements...
Algorithm(const std::shared_ptr< Mesh > &mesh, unsigned int flag=1, double NormFactor=1.0)
Creates a Algorithm object.
virtual const Eigen::VectorXd & GetDisplacementIncrement()=0
Gets the displacement increment.
virtual void SetLoadFactor(double factor)=0
Set the load factor.
double ComputeConvergence(const Eigen::VectorXd &Force, const Eigen::VectorXd &Delta, const Eigen::VectorXd &delta, unsigned int k)
Computes convergence tests for this algorithm.
virtual void SetIntegrator(std::shared_ptr< Integrator > &integrator)=0
Sets the integrator for this algorithm.
virtual bool ComputeNewIncrement(std::shared_ptr< Mesh > &mesh, unsigned int i)=0
Computes a new incremental solution.
double NormFactor
Relative Unbalanced Factor.
Definition: Algorithm.hpp:127