suanPan
NonlinearNM Class Referenceabstract

A NonlinearNM class. More...

#include <NonlinearNM.h>

Inheritance diagram for NonlinearNM:
Collaboration diagram for NonlinearNM:

Public Member Functions

 NonlinearNM (unsigned, double, double, bool, double, vec &&)
 
 NonlinearNM (unsigned, double, double, double, bool, double, vec &&)
 
int initialize (const shared_ptr< DomainBase > &) override
 
int update_trial_status (const vec &) override
 
vector< vec > record (OutputType) override
 
- Public Member Functions inherited from SectionNM
void initialize_history (unsigned)
 
int clear_status () override
 
int commit_status () override
 
int reset_status () override
 
void print () override
 
 Section (unsigned=0, SectionType=SectionType::D0, unsigned=0, double=0., vec &&={0., 0.})
 
 Section (const Section &)=default
 
 Section (Section &&)=delete
 
- Public Member Functions inherited from Section
 Section (unsigned=0, SectionType=SectionType::D0, unsigned=0, double=0., vec &&={0., 0.})
 
 Section (const Section &)=default
 
 Section (Section &&)=delete
 
Sectionoperator= (const Section &)=delete
 
Sectionoperator= (Section &&)=delete
 
 ~Section () override=default
 
SectionType get_section_type () const
 
double get_area () const
 
double get_linear_density () const
 
int initialize_base (const shared_ptr< DomainBase > &)
 
virtual int initialize (const shared_ptr< DomainBase > &)=0
 
void set_initialized (bool) const
 
void set_symmetric (bool) const
 
bool is_initialized () const
 
bool is_symmetric () const
 
void set_eccentricity (const vec &) const
 
const vec & get_eccentricity () const
 
virtual void set_characteristic_length (double) const
 
double get_characteristic_length () const
 
virtual const vec & get_trial_deformation () const
 
virtual const vec & get_trial_deformation_rate () const
 
virtual const vec & get_trial_resistance () const
 
virtual const mat & get_trial_stiffness () const
 
virtual const mat & get_trial_geometry () const
 
virtual const vec & get_current_deformation () const
 
virtual const vec & get_current_deformation_rate () const
 
virtual const vec & get_current_resistance () const
 
virtual const mat & get_current_stiffness () const
 
virtual const mat & get_current_geometry () const
 
virtual const mat & get_initial_stiffness () const
 
virtual const mat & get_initial_geometry () const
 
virtual unique_ptr< Sectionget_copy ()=0
 
int update_incre_status (double)
 
int update_incre_status (double, double)
 
int update_trial_status (double)
 
int update_trial_status (double, double)
 
virtual int update_incre_status (const vec &)
 
virtual int update_incre_status (const vec &, const vec &)
 
virtual int update_trial_status (const vec &)
 
virtual int update_trial_status (const vec &, const vec &)
 
virtual int clear_status ()=0
 
virtual int commit_status ()=0
 
virtual int reset_status ()=0
 
virtual std::vector< vec > record (OutputType)
 
- 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 vec compute_h (double) const =0
 
virtual vec compute_dh (double) const =0
 
virtual double compute_f (const vec &, const vec &) const =0
 
virtual vec compute_df (const vec &, const vec &) const =0
 
virtual mat compute_ddf (const vec &, const vec &) const =0
 
- Protected Member Functions inherited from SectionNM
void initialize_history (unsigned)
 
int clear_status () override
 
int commit_status () override
 
int reset_status () override
 
void print () override
 
 Section (unsigned=0, SectionType=SectionType::D0, unsigned=0, double=0., vec &&={0., 0.})
 
 Section (const Section &)=default
 
 Section (Section &&)=delete
 
- Protected Member Functions inherited from Section
 Section (unsigned=0, SectionType=SectionType::D0, unsigned=0, double=0., vec &&={0., 0.})
 
 Section (const Section &)=default
 
 Section (Section &&)=delete
 
Sectionoperator= (const Section &)=delete
 
Sectionoperator= (Section &&)=delete
 
 ~Section () override=default
 
SectionType get_section_type () const
 
double get_area () const
 
double get_linear_density () const
 
int initialize_base (const shared_ptr< DomainBase > &)
 
virtual int initialize (const shared_ptr< DomainBase > &)=0
 
void set_initialized (bool) const
 
void set_symmetric (bool) const
 
bool is_initialized () const
 
bool is_symmetric () const
 
void set_eccentricity (const vec &) const
 
const vec & get_eccentricity () const
 
virtual void set_characteristic_length (double) const
 
double get_characteristic_length () const
 
virtual const vec & get_trial_deformation () const
 
virtual const vec & get_trial_deformation_rate () const
 
virtual const vec & get_trial_resistance () const
 
virtual const mat & get_trial_stiffness () const
 
virtual const mat & get_trial_geometry () const
 
virtual const vec & get_current_deformation () const
 
virtual const vec & get_current_deformation_rate () const
 
virtual const vec & get_current_resistance () const
 
virtual const mat & get_current_stiffness () const
 
virtual const mat & get_current_geometry () const
 
virtual const mat & get_initial_stiffness () const
 
virtual const mat & get_initial_geometry () const
 
virtual unique_ptr< Sectionget_copy ()=0
 
int update_incre_status (double)
 
int update_incre_status (double, double)
 
int update_trial_status (double)
 
int update_trial_status (double, double)
 
virtual int update_incre_status (const vec &)
 
virtual int update_incre_status (const vec &, const vec &)
 
virtual int update_trial_status (const vec &)
 
virtual int update_trial_status (const vec &, const vec &)
 
virtual int clear_status ()=0
 
virtual int commit_status ()=0
 
virtual int reset_status ()=0
 
virtual std::vector< vec > record (OutputType)
 
- Protected 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 Attributes

const vec yield_diag
 
const mat ti
 
const mat tj
 
const bool has_kinematic
 
const unsigned n_size
 
const unsigned d_size = 2llu * n_size - 1llu
 
const unsigned g_size
 
const uvec ni
 
const uvec nj
 
const uvec ga
 
const uvec gb
 
const uvec gc
 
const uvec gd
 
const uvec ge
 
- Protected Attributes inherited from DataNonlinearNM
const double EA
 
const double EIS
 
const double EIW
 
const vec yield_force
 
- Protected Attributes inherited from DataSectionNM
vec initial_history
 
vec current_history
 
vec trial_history
 
- Protected Attributes inherited from DataSection
const unsigned material_tag
 
const SectionType section_type
 
const vec eccentricity
 
const double area
 
const double linear_density = 0.
 
const double characteristic_length = -1.
 
vec trial_deformation {}
 
vec current_deformation {}
 
vec trial_deformation_rate {}
 
vec current_deformation_rate {}
 
vec trial_resistance {}
 
vec current_resistance {}
 
mat initial_stiffness {}
 
mat current_stiffness {}
 
mat trial_stiffness {}
 
mat initial_geometry {}
 
mat current_geometry {}
 
mat trial_geometry {}
 

Static Protected Attributes

static constexpr unsigned max_iteration = 20u
 
- Static Protected Attributes inherited from SectionNM
static constexpr double tolerance = 1E-14
 

Detailed Description

A NonlinearNM class.

Author
tlc
Date
22/06/2022
Version
0.1.0

Constructor & Destructor Documentation

◆ NonlinearNM() [1/2]

NonlinearNM::NonlinearNM ( unsigned  T,
double  EEA,
double  EEIS,
bool  KK,
double  LD,
vec &&  YF 
)

◆ NonlinearNM() [2/2]

NonlinearNM::NonlinearNM ( unsigned  T,
double  EEA,
double  EEIS,
double  EEIW,
bool  KK,
double  LD,
vec &&  YF 
)

Member Function Documentation

◆ compute_ddf()

virtual mat NonlinearNM::compute_ddf ( const vec &  ,
const vec &   
) const
protectedpure virtual

Implemented in NM2D2, NM2D3, NM3D2, and NM3D3.

◆ compute_df()

virtual vec NonlinearNM::compute_df ( const vec &  ,
const vec &   
) const
protectedpure virtual

Implemented in NM2D2, NM2D3, NM3D2, and NM3D3.

◆ compute_dh()

virtual vec NonlinearNM::compute_dh ( double  ) const
protectedpure virtual

Implemented in LinearHardeningNM, and VAFNM.

◆ compute_f()

virtual double NonlinearNM::compute_f ( const vec &  ,
const vec &   
) const
protectedpure virtual

Implemented in NM2D2, NM2D3, NM3D2, and NM3D3.

Here is the caller graph for this function:

◆ compute_h()

virtual vec NonlinearNM::compute_h ( double  ) const
protectedpure virtual

Implemented in LinearHardeningNM, and VAFNM.

Here is the caller graph for this function:

◆ initialize()

int NonlinearNM::initialize ( const shared_ptr< DomainBase > &  )
overridevirtual

Implements Section.

Here is the call graph for this function:

◆ record()

vector< vec > NonlinearNM::record ( OutputType  P)
overridevirtual

Reimplemented from Section.

Here is the call graph for this function:

◆ update_trial_status()

int NonlinearNM::update_trial_status ( const vec &  t_deformation)
overridevirtual

Reimplemented from Section.

Here is the call graph for this function:

Member Data Documentation

◆ d_size

const unsigned NonlinearNM::d_size = 2llu * n_size - 1llu
protected

◆ g_size

const unsigned NonlinearNM::g_size
protected

◆ ga

const uvec NonlinearNM::ga
protected

◆ gb

const uvec NonlinearNM::gb
protected

◆ gc

const uvec NonlinearNM::gc
protected

◆ gd

const uvec NonlinearNM::gd
protected

◆ ge

const uvec NonlinearNM::ge
protected

◆ has_kinematic

const bool NonlinearNM::has_kinematic
protected

◆ max_iteration

constexpr unsigned NonlinearNM::max_iteration = 20u
staticconstexprprotected

◆ n_size

const unsigned NonlinearNM::n_size
protected

◆ ni

const uvec NonlinearNM::ni
protected

◆ nj

const uvec NonlinearNM::nj
protected

◆ ti

const mat NonlinearNM::ti
protected

◆ tj

const mat NonlinearNM::tj
protected

◆ yield_diag

const vec NonlinearNM::yield_diag
protected

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