suanPan
LeeNewmarkBase Class Referenceabstract

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

#include <LeeNewmarkBase.h>

Inheritance diagram for LeeNewmarkBase:
Collaboration diagram for LeeNewmarkBase:

Public Types

enum class  StiffnessType { INITIAL , CURRENT , TRIAL }
 

Public Member Functions

 LeeNewmarkBase (unsigned, double, double, StiffnessType=StiffnessType::CURRENT)
 
int initialize () override
 
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
 
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 ImplicitIntegrator
constexpr IntegratorType type () const override
 
bool time_independent_matrix () const 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 ()
 

Protected Member Functions

virtual uword get_total_size () const =0
 
virtual void update_stiffness () const =0
 
virtual void update_residual () const =0
 
int erase_top_left_block () const
 

Protected Attributes

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 LeeNewmarkBase class defines a solver using Newmark algorithm with Lee damping model.

Author
tlc
Date
27/12/2020
Version
0.1.0

Member Enumeration Documentation

◆ StiffnessType

enum class LeeNewmarkBase::StiffnessType
strong
Enumerator
INITIAL 
CURRENT 
TRIAL 

Constructor & Destructor Documentation

◆ LeeNewmarkBase()

LeeNewmarkBase::LeeNewmarkBase ( unsigned  T,
double  A,
double  B,
StiffnessType  ST = StiffnessType::CURRENT 
)
explicit

Member Function Documentation

◆ clear_status()

void LeeNewmarkBase::clear_status ( )
finalvirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ commit_status()

void LeeNewmarkBase::commit_status ( )
finalvirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ erase_top_left_block()

int LeeNewmarkBase::erase_top_left_block ( ) const
protected
Here is the caller graph for this function:

◆ get_displacement_residual()

vec LeeNewmarkBase::get_displacement_residual ( )
finalvirtual

Assemble the global residual vector in displacement-controlled solving schemes. Apart from the global resistance and external load vectors, the reference load vector shall also be considered.

Reimplemented from Integrator.

Here is the call graph for this function:

◆ get_force_residual()

vec LeeNewmarkBase::get_force_residual ( )
finalvirtual

Assemble the global residual vector in load-controlled solving schemes.

Reimplemented from Integrator.

Here is the call graph for this function:

◆ get_total_size()

virtual uword LeeNewmarkBase::get_total_size ( ) const
protectedpure virtual
Here is the caller graph for this function:

◆ initialize()

int LeeNewmarkBase::initialize ( )
overridevirtual

Reimplemented from Integrator.

Reimplemented in LeeNewmarkFull.

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

◆ reset_status()

void LeeNewmarkBase::reset_status ( )
finalvirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ solve() [1/4]

int LeeNewmarkBase::solve ( mat &  X,
const mat &  B 
)
finalvirtual

Reimplemented from Integrator.

Here is the caller graph for this function:

◆ solve() [2/4]

int LeeNewmarkBase::solve ( mat &  X,
const sp_mat &  B 
)
finalvirtual

Reimplemented from Integrator.

◆ solve() [3/4]

int LeeNewmarkBase::solve ( mat &  X,
mat &&  B 
)
finalvirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ solve() [4/4]

int LeeNewmarkBase::solve ( mat &  X,
sp_mat &&  B 
)
finalvirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ update_internal()

int LeeNewmarkBase::update_internal ( const mat &  )
finalvirtual

Some algorithms solve a system which differs from the original one. The size of the problem changes thus the computed increment contains additional internal quantities. This method updates internal quantities stored in those integrators.

Reimplemented from Integrator.

◆ update_residual()

virtual void LeeNewmarkBase::update_residual ( ) const
protectedpure virtual

◆ update_stiffness()

virtual void LeeNewmarkBase::update_stiffness ( ) const
protectedpure virtual

Member Data Documentation

◆ current_internal

vec LeeNewmarkBase::current_internal
protected

◆ factory

shared_ptr<Factory<double> > LeeNewmarkBase::factory = nullptr
protected

◆ first_iteration

bool LeeNewmarkBase::first_iteration = true
protected

◆ if_iterative

bool LeeNewmarkBase::if_iterative = false
protected

◆ n_block

const uword LeeNewmarkBase::n_block
protected

◆ residual

vec LeeNewmarkBase::residual
mutableprotected

◆ stiffness

unique_ptr<MetaMat<double> > LeeNewmarkBase::stiffness = nullptr
protected

◆ stiffness_type

const StiffnessType LeeNewmarkBase::stiffness_type
protected

◆ trial_internal

vec LeeNewmarkBase::trial_internal
protected

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