suanPan
Loading...
Searching...
No Matches
GERKN Class Reference

Generalized Explicit Runge-Kutta-Nystrom time integration. More...

#include <GERKN.h>

Inheritance diagram for GERKN:
Collaboration diagram for GERKN:

Public Member Functions

void update_incre_time (double) override
 
int update_trial_status (bool) override
 
void commit_status () override
 
void clear_status () override
 
vec from_incre_acceleration (const vec &, const uvec &) override
 
vec from_total_acceleration (const vec &, const uvec &) override
 
- Public Member Functions inherited from ExplicitIntegrator
constexpr IntegratorType type () const override
 
void assemble_resistance () override
 
void assemble_matrix () 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
 
 Integrator (unsigned=0)
 
- Public Member Functions inherited from Integrator
 Integrator (unsigned=0)
 
void set_domain (const std::weak_ptr< DomainBase > &)
 
shared_ptr< DomainBaseget_domain () const
 
virtual int initialize ()
 
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 time_independent_matrix () const
 
int process_load ()
 
virtual int process_constraint ()
 
int process_criterion () const
 
int process_modifier () const
 
int process_load_resistance ()
 
virtual int process_constraint_resistance ()
 
void record () const
 
virtual vec get_force_residual ()
 
virtual vec get_displacement_residual ()
 
vec get_auxiliary_residual () const
 
virtual sp_mat get_reference_load ()
 
void update_load () const
 
void update_constraint () const
 
void update_trial_load_factor (double) const
 
void update_trial_load_factor (const vec &) const
 
void update_trial_time (double)
 
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 &&)
 
void erase_machine_error (vec &) const
 
void stage_and_commit_status ()
 
void stage_status () const
 
virtual void reset_status ()
 
virtual vec from_total_velocity (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 UniqueTag
 UniqueTag (const UniqueTag &)=delete
 
 UniqueTag (UniqueTag &&)=delete
 
UniqueTagoperator= (const UniqueTag &)=delete
 
UniqueTagoperator= (UniqueTag &&)=delete
 
 ~UniqueTag () override=default
 
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=default
 
- Public Member Functions inherited from Tag
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=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 ()
 

Protected Member Functions

void update_parameter (double) override
 
int process_load_impl (bool) override
 
int process_constraint_impl (bool) override
 
bool has_corrector () const override
 
int correct_trial_status () override
 

Protected Attributes

double C1 {0.}
 
double C2 {0.}
 
double UA10 {0.}
 
double UA20 {0.}
 
double UA21 {0.}
 
double UB0 {0.}
 
double UB1 {0.}
 
double UB2 {0.}
 
double VA10 {0.}
 
double VA20 {0.}
 
double VA21 {0.}
 
double VB0 {0.}
 
double VB1 {0.}
 
double VB2 {0.}
 
double AB0 {0.}
 
double AB1 {0.}
 
double AB2 {0.}
 

Detailed Description

Generalized Explicit Runge-Kutta-Nystrom time integration.

References:

  1. 10.1002/nme.7658
Author
tlc
Date
08/06/2025
Version
0.1.0

Member Function Documentation

◆ clear_status()

void GERKN::clear_status ( )
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ commit_status()

void GERKN::commit_status ( )
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ correct_trial_status()

int GERKN::correct_trial_status ( )
overrideprotectedvirtual

Correct the trial status. This method is called when the integrator has a corrector. It is used to correct the trial status after the computation. The default implementation does nothing and returns success. Override this method to implement the corrector.

Reimplemented from Integrator.

Here is the call graph for this function:

◆ from_incre_acceleration()

vec GERKN::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 ExplicitIntegrator.

Here is the call graph for this function:

◆ from_total_acceleration()

vec GERKN::from_total_acceleration ( const vec &  total_acceleration,
const uvec &  encoding 
)
overridevirtual

Reimplemented from ExplicitIntegrator.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ has_corrector()

bool GERKN::has_corrector ( ) const
overrideprotectedvirtual

Indicate whether the integrator has a corrector. Some time integration methods adopt predictor-corrector type scheme. The final committed state is different from the one used in computation. Override this method to indicate whether the integrator has a corrector. If it returns true, the correct_trial_status() method will be called thus has to be implemented.

Reimplemented from Integrator.

◆ process_constraint_impl()

int GERKN::process_constraint_impl ( bool  full)
overrideprotectedvirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ process_load_impl()

int GERKN::process_load_impl ( bool  full)
overrideprotectedvirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ update_incre_time()

void GERKN::update_incre_time ( double  T)
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ update_parameter()

void GERKN::update_parameter ( double  )
overrideprotectedvirtual

When time step changes, some parameters may need to be updated.

Reimplemented from Integrator.

Here is the caller graph for this function:

◆ update_trial_status()

int GERKN::update_trial_status ( bool  )
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

Member Data Documentation

◆ AB0

double GERKN::AB0 {0.}
protected

◆ AB1

double GERKN::AB1 {0.}
protected

◆ AB2

double GERKN::AB2 {0.}
protected

◆ C1

double GERKN::C1 {0.}
protected

◆ C2

double GERKN::C2 {0.}
protected

◆ UA10

double GERKN::UA10 {0.}
protected

◆ UA20

double GERKN::UA20 {0.}
protected

◆ UA21

double GERKN::UA21 {0.}
protected

◆ UB0

double GERKN::UB0 {0.}
protected

◆ UB1

double GERKN::UB1 {0.}
protected

◆ UB2

double GERKN::UB2 {0.}
protected

◆ VA10

double GERKN::VA10 {0.}
protected

◆ VA20

double GERKN::VA20 {0.}
protected

◆ VA21

double GERKN::VA21 {0.}
protected

◆ VB0

double GERKN::VB0 {0.}
protected

◆ VB1

double GERKN::VB1 {0.}
protected

◆ VB2

double GERKN::VB2 {0.}
protected

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