suanPan
NonviscousNewmark Class Reference

A NonviscousNewmark class defines a solver using Newmark algorithm. More...

#include <NonviscousNewmark.h>

Inheritance diagram for NonviscousNewmark:
Collaboration diagram for NonviscousNewmark:

Public Member Functions

 NonviscousNewmark (unsigned, double, double, cx_vec &&, cx_vec &&)
 
int initialize () override
 
void assemble_resistance () override
 
void assemble_matrix () override
 
void update_parameter (double) override
 
void commit_status () override
 
void clear_status () override
 
void print () override
 
- 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 ()
 

Additional Inherited Members

- 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 NonviscousNewmark class defines a solver using Newmark algorithm.

Using exponential function based convolution for global damping model.

Reference: 10.1016/j.ymssp.2024.111156

Author
tlc
Date
18/03/2023
Version
0.1.0

Constructor & Destructor Documentation

◆ NonviscousNewmark()

NonviscousNewmark::NonviscousNewmark ( unsigned  T,
double  A,
double  B,
cx_vec &&  M,
cx_vec &&  S 
)
explicit

Member Function Documentation

◆ assemble_matrix()

void NonviscousNewmark::assemble_matrix ( )
overridevirtual

Assemble the global effective matrix A in AX=B. For FEM applications, it is often a linear combination of stiffness, mass, damping and geometry matrices.

Reimplemented from Newmark.

Here is the call graph for this function:

◆ assemble_resistance()

void NonviscousNewmark::assemble_resistance ( )
overridevirtual

Reimplemented from Newmark.

Here is the call graph for this function:

◆ clear_status()

void NonviscousNewmark::clear_status ( )
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ commit_status()

void NonviscousNewmark::commit_status ( )
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ initialize()

int NonviscousNewmark::initialize ( )
overridevirtual

Reimplemented from Integrator.

Here is the call graph for this function:

◆ print()

void NonviscousNewmark::print ( )
overridevirtual

Reimplemented from Newmark.

◆ update_parameter()

void NonviscousNewmark::update_parameter ( double  )
overridevirtual

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

Reimplemented from Newmark.

Here is the call graph for this function:

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