suanPan
ExplicitIntegrator Class Reference

#include <Integrator.h>

Inheritance diagram for ExplicitIntegrator:
Collaboration diagram for ExplicitIntegrator:

Public Member Functions

constexpr IntegratorType type () const override
 
const vec & get_trial_displacement () const override
 
void update_from_ninja () override
 
int solve (mat &, const mat &) override
 
int solve (mat &, const sp_mat &) override
 
int solve (mat &, mat &&) override
 
int solve (mat &, sp_mat &&) override
 
vec from_incre_velocity (const vec &, const uvec &) override
 
vec from_incre_acceleration (const vec &, const uvec &) override
 
vec from_total_acceleration (const vec &, const uvec &) override
 
 Integrator (unsigned=0)
 
 Integrator (const Integrator &)=delete
 
 Integrator (Integrator &&)=delete
 
- Public Member Functions inherited from Integrator
 Integrator (unsigned=0)
 
 Integrator (const Integrator &)=delete
 
 Integrator (Integrator &&)=delete
 
Integratoroperator= (const Integrator &)=delete
 
Integratoroperator= (Integrator &&)=delete
 
 ~Integrator () override=default
 
void set_domain (const weak_ptr< DomainBase > &)
 
shared_ptr< DomainBaseget_domain () const
 
virtual int initialize ()
 
virtual constexpr IntegratorType type () const
 
void set_time_step_switch (bool)
 
bool allow_to_change_time_step () const
 
void set_matrix_assembled_switch (bool)
 
bool matrix_is_assembled () const
 
virtual bool has_corrector () const
 
virtual bool time_independent_matrix () const
 
virtual int process_load ()
 
virtual int process_constraint ()
 
virtual int process_criterion ()
 
virtual int process_modifier ()
 
virtual int process_load_resistance ()
 
virtual int process_constraint_resistance ()
 
void record () const
 
virtual void assemble_resistance ()
 
virtual void assemble_matrix ()
 
virtual vec get_force_residual ()
 
virtual vec get_displacement_residual ()
 
virtual vec get_auxiliary_residual ()
 
virtual sp_mat get_reference_load ()
 
virtual const vec & get_trial_displacement () const
 
virtual void update_load ()
 
virtual void update_constraint ()
 
virtual void update_trial_load_factor (double)
 
virtual void update_trial_load_factor (const vec &)
 
virtual void update_from_ninja ()
 
virtual void update_trial_time (double)
 
virtual void update_incre_time (double)
 
virtual int update_trial_status ()
 
virtual int correct_trial_status ()
 
virtual int sync_status (bool)
 
virtual int update_internal (const mat &)
 
mat solve (const mat &)
 
mat solve (const sp_mat &)
 
mat solve (mat &&)
 
mat solve (sp_mat &&)
 
virtual int solve (mat &, const mat &)
 
virtual int solve (mat &, const sp_mat &)
 
virtual int solve (mat &, mat &&)
 
virtual int solve (mat &, sp_mat &&)
 
virtual void erase_machine_error (vec &) const
 
void stage_and_commit_status ()
 
virtual void stage_status ()
 
virtual void commit_status ()
 
virtual void clear_status ()
 
virtual void reset_status ()
 
virtual void update_parameter (double)
 
virtual vec from_incre_velocity (const vec &, const uvec &)
 
virtual vec from_incre_acceleration (const vec &, const uvec &)
 
virtual vec from_total_velocity (const vec &, const uvec &)
 
virtual vec from_total_acceleration (const vec &, const uvec &)
 
vec from_incre_velocity (double, const uvec &)
 
vec from_incre_acceleration (double, const uvec &)
 
vec from_total_velocity (double, const uvec &)
 
vec from_total_acceleration (double, const uvec &)
 
- Public Member Functions inherited from Tag
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&)=default
 
Tagoperator= (const Tag &)=delete
 
Tagoperator= (Tag &&)=delete
 
virtual ~Tag ()=default
 
void set_tag (unsigned) const
 
unsigned get_tag () const
 
void enable ()
 
void disable ()
 
void guard ()
 
void unguard ()
 
bool is_active () const
 
bool is_guarded () const
 
virtual void print ()
 

Member Function Documentation

◆ from_incre_acceleration()

vec ExplicitIntegrator::from_incre_acceleration ( const vec &  ,
const uvec &  encoding 
)
overridevirtual

When external loads are applied, they can be applied in forms of displacement/velocity/acceleration. The time integration methods, by default, form effective stiffness matrices in displacement domain. That is, in AX=B, A is the effective stiffness matrix and X is the displacement increment. Thus, loads in velocity/acceleration must be converted to displacement. This cannot be done arbitrarily due to compatibility issues. This method takes acceleration increment and converts it to TOTAL displacement.

Reimplemented from Integrator.

Here is the call graph for this function:

◆ from_incre_velocity()

vec ExplicitIntegrator::from_incre_velocity ( const vec &  ,
const uvec &  encoding 
)
overridevirtual

When external loads are applied, they can be applied in forms of displacement/velocity/acceleration. The time integration methods, by default, form effective stiffness matrices in displacement domain. That is, in AX=B, A is the effective stiffness matrix and X is the displacement increment. Thus, loads in velocity/acceleration must be converted to displacement. This cannot be done arbitrarily due to compatibility issues. This method takes velocity increment and converts it to TOTAL displacement.

Reimplemented from Integrator.

◆ from_total_acceleration()

vec ExplicitIntegrator::from_total_acceleration ( const vec &  total_acceleration,
const uvec &   
)
overridevirtual

Reimplemented from Integrator.

◆ get_trial_displacement()

const vec & ExplicitIntegrator::get_trial_displacement ( ) const
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ Integrator() [1/3]

Integrator::Integrator ( const Integrator )
delete

◆ Integrator() [2/3]

Integrator::Integrator ( Integrator &&  )
delete

◆ Integrator() [3/3]

Integrator::Integrator ( unsigned  T = 0)
explicit

◆ solve() [1/4]

int ExplicitIntegrator::solve ( mat &  X,
const mat &  B 
)
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ solve() [2/4]

int ExplicitIntegrator::solve ( mat &  X,
const sp_mat &  B 
)
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ solve() [3/4]

int ExplicitIntegrator::solve ( mat &  X,
mat &&  B 
)
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ solve() [4/4]

int ExplicitIntegrator::solve ( mat &  X,
sp_mat &&  B 
)
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ type()

constexpr IntegratorType ExplicitIntegrator::type ( ) const
inlineconstexproverridevirtual

Reimplemented from Integrator.

◆ update_from_ninja()

void ExplicitIntegrator::update_from_ninja ( )
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

The documentation for this class was generated from the following files: