suanPan
LeeNewmarkFull Class Referencefinal

A LeeNewmarkFull class defines a solver using Newmark algorithm with Lee damping model. More...

#include <LeeNewmarkFull.h>

Inheritance diagram for LeeNewmarkFull:
Collaboration diagram for LeeNewmarkFull:

Classes

struct  Mode
 

Public Types

enum class  Type {
  T0 , T1 , T2 , T3 ,
  T4
}
 
- Public Types inherited from LeeNewmarkBase
enum class  StiffnessType { INITIAL , CURRENT , TRIAL }
 

Public Member Functions

 LeeNewmarkFull (unsigned, std::vector< Mode > &&, double, double, StiffnessType)
 
int initialize () override
 
int process_constraint () override
 
void print () override
 
- Public Member Functions inherited from LeeNewmarkBase
 LeeNewmarkBase (unsigned, double, double, StiffnessType=StiffnessType::CURRENT)
 
int update_internal (const mat &) final
 
int solve (mat &, const mat &) final
 
int solve (mat &, const sp_mat &) final
 
int solve (mat &, mat &&) final
 
int solve (mat &, sp_mat &&) final
 
vec get_force_residual () final
 
vec get_displacement_residual () final
 
void commit_status () final
 
void clear_status () final
 
void reset_status () final
 
- Public Member Functions inherited from Newmark
 Newmark (unsigned=0, double=.25, double=.5)
 
void assemble_resistance () override
 
void assemble_matrix () override
 
int update_trial_status () override
 
void update_parameter (double) override
 
void update_compatibility () const override
 update acceleration and velocity for zero displacement increment More...
 
vec from_incre_velocity (const vec &, const uvec &) override
 
vec from_incre_acceleration (const vec &, const uvec &) override
 
void print () override
 
- 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
 
void set_domain (const weak_ptr< DomainBase > &)
 
const weak_ptr< DomainBase > & get_domain () const
 
void set_time_step_switch (bool)
 
bool allow_to_change_time_step () const
 
virtual int process_load ()
 
virtual int process_criterion ()
 
virtual int process_modifier ()
 
virtual int process_load_resistance ()
 
virtual int process_constraint_resistance ()
 
void record () const
 
virtual vec get_auxiliary_residual ()
 
virtual sp_mat get_reference_load ()
 
virtual sp_mat get_auxiliary_stiffness ()
 
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_trial_displacement (const vec &)
 
void update_trial_time (double)
 
void update_incre_time (double)
 
virtual int update_incre_status ()
 
mat solve (const mat &)
 
mat solve (const sp_mat &)
 
mat solve (mat &&)
 
mat solve (sp_mat &&)
 
virtual void erase_machine_error () const
 
virtual void stage_and_commit_status ()
 
virtual void stage_status ()
 
vec from_total_velocity (const vec &, const uvec &)
 
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
 

Additional Inherited Members

- Protected Attributes inherited from LeeNewmarkBase
const uword n_block
 
const StiffnessType stiffness_type
 
bool first_iteration = true
 
bool if_iterative = false
 
vec current_internal
 
vec trial_internal
 
vec residual
 
unique_ptr< MetaMat< double > > stiffness = nullptr
 
shared_ptr< Factory< double > > factory = nullptr
 
- Protected Attributes inherited from Newmark
double C0 = 0.
 
double C1 = 0.
 
double C2 = 0.
 
double C3 = 0.
 
double C4 = 0.
 
double C5 = 0.
 

Detailed Description

A LeeNewmarkFull class defines a solver using Newmark algorithm with Lee damping model.

doi: 10.1016/j.compstruc.2020.106423 doi: 10.1016/j.compstruc.2021.106663

Author
tlc
Date
26/11/2021
Version
0.1.0

Member Enumeration Documentation

◆ Type

enum LeeNewmarkFull::Type
strong
Enumerator
T0 
T1 
T2 
T3 
T4 

Constructor & Destructor Documentation

◆ LeeNewmarkFull()

LeeNewmarkFull::LeeNewmarkFull ( unsigned  T,
std::vector< Mode > &&  M,
double  A,
double  B,
StiffnessType  ST 
)
Here is the call graph for this function:

Member Function Documentation

◆ initialize()

int LeeNewmarkFull::initialize ( )
overridevirtual

Reimplemented from LeeNewmarkBase.

Here is the call graph for this function:

◆ print()

void LeeNewmarkFull::print ( )
overridevirtual

Reimplemented from Tag.

Here is the call graph for this function:

◆ process_constraint()

int LeeNewmarkFull::process_constraint ( )
overridevirtual

The main task of this method is to apply constraints (of various forms implemented in various methods). Combinations of different types need to be considered: 1) homogeneous, 2) inhomogeneous, 3) linear, 4) nonlinear. Combinations of different methods need to be considered: 1) penalty, 2) multiplier. On exit, the global stiffness matrix should be updated, the global residual vector should be updated.

Reimplemented from Integrator.

Here is the call graph for this function:

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