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

A SGCMQ class. More...

#include <SGCMQ.h>

Inheritance diagram for SGCMQ:
Collaboration diagram for SGCMQ:

Public Member Functions

 SGCMQ (unsigned, uvec &&, unsigned, double=1., char='I')
 
int initialize (const shared_ptr< DomainBase > &) override
 
int update_status () override
 
int commit_status () override
 
int clear_status () override
 
int reset_status () override
 
mat compute_shape_function (const mat &, unsigned) const override
 
vector< vec > record (OutputType) override
 
void print () override
 
- Public Member Functions inherited from MaterialElement2D
 MaterialElement2D (unsigned, unsigned, unsigned, uvec &&, uvec &&, bool, vector< DOF > &&={})
 
- Public Member Functions inherited from MaterialElement
 MaterialElement (unsigned, unsigned, unsigned, uvec &&, uvec &&, bool, MaterialType, vector< DOF > &&)
 
- Public Member Functions inherited from Element
 Element (unsigned, unsigned, unsigned, uvec &&, std::vector< DOF > &&)
 
 Element (unsigned, unsigned, unsigned, uvec &&, uvec &&, bool, MaterialType, std::vector< DOF > &&)
 
 Element (unsigned, unsigned, unsigned, uvec &&, uvec &&, bool, SectionType, std::vector< DOF > &&)
 
 Element (unsigned, unsigned, uvec &&)
 
 Element (unsigned, unsigned, unsigned, unsigned)
 
 Element (const Element &)=delete
 
 Element (Element &&)=delete
 
Elementoperator= (const Element &)=delete
 
Elementoperator= (Element &&)=delete
 
 ~Element () override=default
 
int initialize_base (const shared_ptr< DomainBase > &) final
 
void set_initialized (bool) const override
 
void set_symmetric (bool) const override
 
bool is_initialized () const override
 
bool is_symmetric () const override
 
bool is_nlgeom () const override
 
void update_dof_encoding () override
 
bool if_update_mass () const override
 
bool if_update_viscous () const override
 
bool if_update_nonviscous () const override
 
bool if_update_stiffness () const override
 
bool if_update_geometry () const override
 
bool allow_modify_mass () const override
 
bool allow_modify_viscous () const override
 
bool allow_modify_nonviscous () const override
 
const uvec & get_dof_encoding () const override
 
const uvec & get_node_encoding () const override
 
const std::vector< MappingDOF > & get_dof_mapping () const override
 
const uvec & get_material_tag () const override
 
const uvec & get_section_tag () const override
 
unsigned get_dof_number () const override
 
unsigned get_node_number () const override
 
unsigned get_total_number () const override
 
void clear_node_ptr () override
 
const std::vector< weak_ptr< Node > > & get_node_ptr () const override
 
vec get_incre_displacement () const override
 
vec get_incre_velocity () const override
 
vec get_incre_acceleration () const override
 
vec get_trial_displacement () const override
 
vec get_trial_velocity () const override
 
vec get_trial_acceleration () const override
 
vec get_current_displacement () const override
 
vec get_current_velocity () const override
 
vec get_current_acceleration () const override
 
const vec & get_trial_resistance () const override
 
const vec & get_current_resistance () const override
 
const vec & get_trial_damping_force () const override
 
const vec & get_current_damping_force () const override
 
const cx_mat & get_trial_nonviscous_force () const override
 
const cx_mat & get_current_nonviscous_force () const override
 
const vec & get_trial_inertial_force () override
 
const vec & get_current_inertial_force () override
 
const vec & get_trial_body_force () const override
 
const vec & get_current_body_force () const override
 
const vec & get_trial_traction () const override
 
const vec & get_current_traction () const override
 
const mat & get_trial_mass () const override
 
const mat & get_trial_viscous () const override
 
const mat & get_trial_nonviscous () const override
 
const mat & get_trial_stiffness () const override
 
const mat & get_trial_geometry () const override
 
const mat & get_trial_secant () const override
 
const mat & get_current_mass () const override
 
const mat & get_current_viscous () const override
 
const mat & get_current_nonviscous () const override
 
const mat & get_current_stiffness () const override
 
const mat & get_current_geometry () const override
 
const mat & get_current_secant () const override
 
const mat & get_initial_mass () const override
 
const mat & get_initial_viscous () const override
 
const mat & get_initial_nonviscous () const override
 
const mat & get_initial_stiffness () const override
 
const mat & get_initial_geometry () const override
 
const mat & get_initial_secant () const override
 
const mat & get_mass_container () const override
 
const mat & get_stiffness_container () const override
 
const vec & update_body_force (const vec &) override
 
const vec & update_traction (const vec &) override
 
double get_strain_energy () const override
 
double get_complementary_energy () const override
 
double get_kinetic_energy () const override
 
double get_viscous_energy () const override
 
double get_nonviscous_energy () const override
 
const vec & get_momentum () const override
 
double get_momentum_component (DOF) const override
 
double get_characteristic_length () const override
 
- Public Member Functions inherited from ElementBase
 ElementBase (const unsigned T)
 
 ElementBase (const ElementBase &)=delete
 
 ElementBase (ElementBase &&)=delete
 
ElementBaseoperator= (const ElementBase &)=delete
 
ElementBaseoperator= (ElementBase &&)=delete
 
 ~ElementBase () override=default
 
- 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
 

Protected Member Functions

void form_mass (double, const mat &)
 
void form_body_force (const mat &)
 
- Protected Member Functions inherited from Element
mat get_coordinate (unsigned) const override
 generate a matrix that contains coordinates of connected nodes
 
vec get_node_incre_resistance () const override
 
vec get_node_trial_resistance () const override
 
vec get_node_current_resistance () const override
 
std::vector< shared_ptr< Material > > get_material (const shared_ptr< DomainBase > &) const override
 
std::vector< shared_ptr< Section > > get_section (const shared_ptr< DomainBase > &) const override
 
 ElementBase (const unsigned T)
 
 ElementBase (const ElementBase &)=delete
 
 ElementBase (ElementBase &&)=delete
 
ElementBaseoperator= (const ElementBase &)=delete
 
ElementBaseoperator= (ElementBase &&)=delete
 
 ~ElementBase () override=default
 
- 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
 

Static Protected Member Functions

static vec form_diff_coor (const mat &)
 
static mat form_drilling_n (const vec &, const vec &)
 
static mat form_drilling_dn (const vec &, const vec &)
 
static mat form_displacement_dn (const mat &, const mat &)
 
static vec form_stress_mode (double, double)
 

Protected Attributes

const double thickness
 
const char scheme
 
vector< IntegrationPoint > int_pt
 
- Protected Attributes inherited from Element
std::vector< weak_ptr< Node > > node_ptr
 
- Protected Attributes inherited from DataElement
const uvec node_encoding
 
const uvec material_tag
 
const uvec section_tag
 
const bool nlgeom = false
 
bool update_mass = true
 
bool update_viscous = true
 
bool update_nonviscous = true
 
bool update_stiffness = true
 
bool update_geometry = true
 
bool modify_mass = true
 
bool modify_viscous = true
 
bool modify_nonviscous = true
 
uvec dof_encoding {}
 
mat initial_mass {}
 
mat initial_viscous {}
 
mat initial_nonviscous {}
 
mat initial_stiffness {}
 
mat initial_geometry {}
 
mat trial_mass {}
 
mat trial_viscous {}
 
mat trial_nonviscous {}
 
mat trial_stiffness {}
 
mat trial_geometry {}
 
mat current_mass {}
 
mat current_viscous {}
 
mat current_nonviscous {}
 
mat current_stiffness {}
 
mat current_geometry {}
 
vec trial_resistance {}
 
vec current_resistance {}
 
vec trial_viscous_force {}
 
vec current_viscous_force {}
 
cx_mat trial_nonviscous_force {}
 
cx_mat current_nonviscous_force {}
 
vec trial_inertial_force {}
 
vec current_inertial_force {}
 
vec trial_body_force {}
 
vec current_body_force {}
 
vec trial_traction {}
 
vec current_traction {}
 
mat body_force {}
 
mat traction {}
 
mat stiffness_container {}
 
mat mass_container {}
 
double strain_energy = 0.
 
double kinetic_energy = 0.
 
double viscous_energy = 0.
 
double nonviscous_energy = 0.
 
double complementary_energy = 0.
 
vec momentum {}
 
const double characteristic_length = 1.
 

Static Protected Attributes

static constexpr unsigned m_node = 4
 
static constexpr unsigned m_dof = 3
 
static constexpr unsigned m_size = m_dof * m_node
 
static const mat mapping
 

Detailed Description

A SGCMQ class.

Reference:

  1. A new drilling quadrilateral membrane element with high coarse-mesh accuracy using a modified Hu-Washizu principle https://doi.org/10.1002/nme.6066
Author
tlc
Date
07/03/2019
Version
0.6.0

Constructor & Destructor Documentation

◆ SGCMQ()

SGCMQ::SGCMQ ( unsigned T,
uvec && N,
unsigned M,
double TH = 1.,
char IP = 'I' )

Member Function Documentation

◆ clear_status()

int SGCMQ::clear_status ( )
overridevirtual

Implements Element.

Here is the caller graph for this function:

◆ commit_status()

int SGCMQ::commit_status ( )
overridevirtual

Implements Element.

Here is the caller graph for this function:

◆ compute_shape_function()

mat SGCMQ::compute_shape_function ( const mat & coordinate,
unsigned order ) const
overridevirtual

Reimplemented from Element.

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

◆ form_body_force()

void SGCMQ::form_body_force ( const mat & diff_coor)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ form_diff_coor()

vec SGCMQ::form_diff_coor ( const mat & ele_coor)
staticprotected
Here is the caller graph for this function:

◆ form_displacement_dn()

mat SGCMQ::form_displacement_dn ( const mat & pn_pxy,
const mat & pnt_pxy )
staticprotected
Here is the caller graph for this function:

◆ form_drilling_dn()

mat SGCMQ::form_drilling_dn ( const vec & coor,
const vec & lxy )
staticprotected
Here is the caller graph for this function:

◆ form_drilling_n()

mat SGCMQ::form_drilling_n ( const vec & coor,
const vec & lxy )
staticprotected
Here is the caller graph for this function:

◆ form_mass()

void SGCMQ::form_mass ( double t_density,
const mat & diff_coor )
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ form_stress_mode()

vec SGCMQ::form_stress_mode ( double X,
double Y )
staticprotected
Here is the caller graph for this function:

◆ initialize()

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

Implements ElementBase.

Here is the call graph for this function:

◆ print()

void SGCMQ::print ( )
overridevirtual

Reimplemented from Tag.

Here is the call graph for this function:

◆ record()

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

Reimplemented from Element.

Here is the call graph for this function:

◆ reset_status()

int SGCMQ::reset_status ( )
overridevirtual

Implements Element.

Here is the caller graph for this function:

◆ update_status()

int SGCMQ::update_status ( )
overridevirtual

Implements ElementBase.

Here is the call graph for this function:

Member Data Documentation

◆ int_pt

vector<IntegrationPoint> SGCMQ::int_pt
protected

◆ m_dof

constexpr unsigned SGCMQ::m_dof = 3
staticprotected

◆ m_node

constexpr unsigned SGCMQ::m_node = 4
staticconstexprprotected

◆ m_size

constexpr unsigned SGCMQ::m_size = m_dof * m_node
staticprotected

◆ mapping

const mat SGCMQ::mapping
staticprotected
Initial value:
= [] {
mat t_mapping(4, 4);
t_mapping.fill(.25);
t_mapping(1, 0) = t_mapping(1, 3) = t_mapping(2, 0) = t_mapping(2, 1) = t_mapping(3, 1) = t_mapping(3, 3) = -.25;
return t_mapping;
}()

◆ scheme

const char SGCMQ::scheme
protected

◆ thickness

const double SGCMQ::thickness
protected

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