suanPan
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
GQ12 Class Referencefinal

The GQ12 class implements the displacement based four node quadrilateral drilling element proposed by Long and Xu (1994). More...

#include <GQ12.h>

Inheritance diagram for GQ12:
Collaboration diagram for GQ12:

Public Member Functions

 GQ12 (unsigned, uvec &&, unsigned, double=1.)
 
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
 

Additional Inherited Members

- 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
 
- 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.
 

Detailed Description

The GQ12 class implements the displacement based four node quadrilateral drilling element proposed by Long and Xu (1994).

Reference:

  1. Generalized conforming Quadrilateral Membrane Element With Vertex Rigid Rotational Freedom. https://doi.org/10.1016/0045-7949(94)90356-5

The element assumes the displacement field is compatible/conforming on element boundaries in an averaged/weak sense. The element exhibits a good performance.

Author
tlc
Date
26/01/2018
Version
0.1.2

Constructor & Destructor Documentation

◆ GQ12()

GQ12::GQ12 ( unsigned T,
uvec && N,
unsigned M,
double TH = 1. )

Member Function Documentation

◆ clear_status()

int GQ12::clear_status ( )
overridevirtual

Implements Element.

◆ commit_status()

int GQ12::commit_status ( )
overridevirtual

Implements Element.

◆ compute_shape_function()

mat GQ12::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:

◆ initialize()

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

Implements ElementBase.

Here is the call graph for this function:

◆ print()

void GQ12::print ( )
overridevirtual

Reimplemented from Tag.

Here is the call graph for this function:

◆ record()

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

Reimplemented from Element.

Here is the call graph for this function:

◆ reset_status()

int GQ12::reset_status ( )
overridevirtual

Implements Element.

◆ update_status()

int GQ12::update_status ( )
overridevirtual

Implements ElementBase.

Here is the call graph for this function:

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