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_damping () const override
 
bool if_update_stiffness () const override
 
bool if_update_geometry () 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
 
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 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_damping () 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_damping () 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_damping () 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
 
int clear_status () override=0
 
int commit_status () override=0
 
int reset_status () override=0
 
const vec & update_body_force (const vec &) override
 
const vec & update_traction (const vec &) override
 
std::vector< vec > record (OutputType) 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
 
const vec & get_momentum () const override
 
double get_momentum_component (DOF) const override
 
double get_characteristic_length () const override
 
mat compute_shape_function (const mat &, unsigned) 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
 
virtual int initialize_base (const shared_ptr< DomainBase > &)=0
 
virtual int initialize (const shared_ptr< DomainBase > &)=0
 
virtual void set_initialized (bool) const =0
 
virtual void set_symmetric (bool) const =0
 
virtual bool is_initialized () const =0
 
virtual bool is_symmetric () const =0
 
virtual bool is_nlgeom () const =0
 
virtual void update_dof_encoding ()=0
 
virtual bool if_update_mass () const =0
 
virtual bool if_update_damping () const =0
 
virtual bool if_update_stiffness () const =0
 
virtual bool if_update_geometry () const =0
 
virtual const uvec & get_dof_encoding () const =0
 
virtual const uvec & get_node_encoding () const =0
 
virtual const std::vector< MappingDOF > & get_dof_mapping () const =0
 
virtual const uvec & get_material_tag () const =0
 
virtual const uvec & get_section_tag () const =0
 
virtual unsigned get_dof_number () const =0
 
virtual unsigned get_node_number () const =0
 
virtual unsigned get_total_number () const =0
 
virtual void clear_node_ptr ()=0
 
virtual const std::vector< weak_ptr< Node > > & get_node_ptr () const =0
 
virtual const vec & get_trial_resistance () const =0
 
virtual const vec & get_current_resistance () const =0
 
virtual const vec & get_trial_damping_force () const =0
 
virtual const vec & get_current_damping_force () const =0
 
virtual const vec & get_trial_inertial_force ()=0
 
virtual const vec & get_current_inertial_force ()=0
 
virtual const vec & get_trial_body_force () const =0
 
virtual const vec & get_current_body_force () const =0
 
virtual const vec & get_trial_traction () const =0
 
virtual const vec & get_current_traction () const =0
 
virtual const mat & get_trial_mass () const =0
 
virtual const mat & get_trial_damping () const =0
 
virtual const mat & get_trial_stiffness () const =0
 
virtual const mat & get_trial_geometry () const =0
 
virtual const mat & get_trial_secant () const =0
 
virtual const mat & get_current_mass () const =0
 
virtual const mat & get_current_damping () const =0
 
virtual const mat & get_current_stiffness () const =0
 
virtual const mat & get_current_geometry () const =0
 
virtual const mat & get_current_secant () const =0
 
virtual const mat & get_initial_mass () const =0
 
virtual const mat & get_initial_damping () const =0
 
virtual const mat & get_initial_stiffness () const =0
 
virtual const mat & get_initial_geometry () const =0
 
virtual const mat & get_initial_secant () const =0
 
virtual const mat & get_mass_container () const =0
 
virtual const mat & get_stiffness_container () const =0
 
virtual int update_status ()=0
 
virtual int clear_status ()=0
 
virtual int commit_status ()=0
 
virtual int reset_status ()=0
 
virtual const vec & update_body_force (const vec &)=0
 
virtual const vec & update_traction (const vec &)=0
 
virtual std::vector< vec > record (OutputType)=0
 
virtual double get_strain_energy () const =0
 
virtual double get_complementary_energy () const =0
 
virtual double get_kinetic_energy () const =0
 
virtual double get_viscous_energy () const =0
 
virtual const vec & get_momentum () const =0
 
virtual double get_momentum_component (DOF) const =0
 
virtual double get_characteristic_length () const =0
 
virtual mat compute_shape_function (const mat &, unsigned) const =0
 
- 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 Member Functions inherited from Element
mat get_coordinate (unsigned) const override
 generate a matrix that contains coordinates of connected nodes More...
 
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
 
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
 
virtual mat get_coordinate (unsigned) const =0
 
virtual vec get_incre_displacement () const =0
 
virtual vec get_incre_velocity () const =0
 
virtual vec get_incre_acceleration () const =0
 
virtual vec get_trial_displacement () const =0
 
virtual vec get_trial_velocity () const =0
 
virtual vec get_trial_acceleration () const =0
 
virtual vec get_current_displacement () const =0
 
virtual vec get_current_velocity () const =0
 
virtual vec get_current_acceleration () const =0
 
virtual vec get_node_incre_resistance () const =0
 
virtual vec get_node_trial_resistance () const =0
 
virtual vec get_node_current_resistance () const =0
 
virtual std::vector< shared_ptr< Material > > get_material (const shared_ptr< DomainBase > &) const =0
 
virtual std::vector< shared_ptr< Section > > get_section (const shared_ptr< DomainBase > &) const =0
 
 ElementBase (const unsigned T)
 
 ElementBase (const ElementBase &)=delete
 
 ElementBase (ElementBase &&)=delete
 
ElementBaseoperator= (const ElementBase &)=delete
 
ElementBaseoperator= (ElementBase &&)=delete
 
 ~ElementBase () override=default
 
virtual int initialize_base (const shared_ptr< DomainBase > &)=0
 
virtual int initialize (const shared_ptr< DomainBase > &)=0
 
virtual void set_initialized (bool) const =0
 
virtual void set_symmetric (bool) const =0
 
virtual bool is_initialized () const =0
 
virtual bool is_symmetric () const =0
 
virtual bool is_nlgeom () const =0
 
virtual void update_dof_encoding ()=0
 
virtual bool if_update_mass () const =0
 
virtual bool if_update_damping () const =0
 
virtual bool if_update_stiffness () const =0
 
virtual bool if_update_geometry () const =0
 
virtual const uvec & get_dof_encoding () const =0
 
virtual const uvec & get_node_encoding () const =0
 
virtual const std::vector< MappingDOF > & get_dof_mapping () const =0
 
virtual const uvec & get_material_tag () const =0
 
virtual const uvec & get_section_tag () const =0
 
virtual unsigned get_dof_number () const =0
 
virtual unsigned get_node_number () const =0
 
virtual unsigned get_total_number () const =0
 
virtual void clear_node_ptr ()=0
 
virtual const std::vector< weak_ptr< Node > > & get_node_ptr () const =0
 
virtual const vec & get_trial_resistance () const =0
 
virtual const vec & get_current_resistance () const =0
 
virtual const vec & get_trial_damping_force () const =0
 
virtual const vec & get_current_damping_force () const =0
 
virtual const vec & get_trial_inertial_force ()=0
 
virtual const vec & get_current_inertial_force ()=0
 
virtual const vec & get_trial_body_force () const =0
 
virtual const vec & get_current_body_force () const =0
 
virtual const vec & get_trial_traction () const =0
 
virtual const vec & get_current_traction () const =0
 
virtual const mat & get_trial_mass () const =0
 
virtual const mat & get_trial_damping () const =0
 
virtual const mat & get_trial_stiffness () const =0
 
virtual const mat & get_trial_geometry () const =0
 
virtual const mat & get_trial_secant () const =0
 
virtual const mat & get_current_mass () const =0
 
virtual const mat & get_current_damping () const =0
 
virtual const mat & get_current_stiffness () const =0
 
virtual const mat & get_current_geometry () const =0
 
virtual const mat & get_current_secant () const =0
 
virtual const mat & get_initial_mass () const =0
 
virtual const mat & get_initial_damping () const =0
 
virtual const mat & get_initial_stiffness () const =0
 
virtual const mat & get_initial_geometry () const =0
 
virtual const mat & get_initial_secant () const =0
 
virtual const mat & get_mass_container () const =0
 
virtual const mat & get_stiffness_container () const =0
 
virtual int update_status ()=0
 
virtual int clear_status ()=0
 
virtual int commit_status ()=0
 
virtual int reset_status ()=0
 
virtual const vec & update_body_force (const vec &)=0
 
virtual const vec & update_traction (const vec &)=0
 
virtual std::vector< vec > record (OutputType)=0
 
virtual double get_strain_energy () const =0
 
virtual double get_complementary_energy () const =0
 
virtual double get_kinetic_energy () const =0
 
virtual double get_viscous_energy () const =0
 
virtual const vec & get_momentum () const =0
 
virtual double get_momentum_component (DOF) const =0
 
virtual double get_characteristic_length () const =0
 
virtual mat compute_shape_function (const mat &, unsigned) const =0
 
- 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 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_damping = true
 
bool update_stiffness = true
 
bool update_geometry = true
 
uvec dof_encoding
 
mat initial_mass {}
 
mat initial_damping {}
 
mat initial_stiffness {}
 
mat initial_geometry {}
 
mat trial_mass {}
 
mat trial_damping {}
 
mat trial_stiffness {}
 
mat trial_geometry {}
 
mat current_mass {}
 
mat current_damping {}
 
mat current_stiffness {}
 
mat current_geometry {}
 
vec trial_resistance {}
 
vec current_resistance {}
 
vec trial_damping_force {}
 
vec current_damping_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 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  T)
overridevirtual

Reimplemented from Element.

◆ 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: