suanPan
🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework
Loading...
Searching...
No Matches
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
 
std::vector< vec > record (OutputType) const override
 
void print () override
 
- Public Member Functions inherited from MaterialElement2D
 MaterialElement2D (unsigned, unsigned, unsigned, uvec &&, uvec &&, bool, std::vector< Node::DOF > &&)
 
- Public Member Functions inherited from MaterialElement
 MaterialElement (unsigned, unsigned, unsigned, uvec &&, uvec &&, bool, MaterialType, std::vector< Node::DOF > &&)
 
- Public Member Functions inherited from Element
 Element (unsigned, unsigned, unsigned, uvec &&, std::vector< Node::DOF > &&)
 
 Element (unsigned, unsigned, unsigned, uvec &&, uvec &&, bool, MaterialType, std::vector< Node::DOF > &&)
 
 Element (unsigned, unsigned, unsigned, uvec &&, uvec &&, bool, SectionType, std::vector< Node::DOF > &&)
 
 Element (unsigned, unsigned, uvec &&, std::vector< Node::DOF > &&)
 
 Element (unsigned, unsigned, unsigned, unsigned, std::vector< Node::DOF > &&)
 
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
 
Type type () 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 uvecget_dof_encoding () const override
 
const uvecget_node_encoding () const override
 
const std::vector< Node::DOF > & get_dof_identifier () const override
 
const std::vector< MappingDOF > & get_dof_mapping () const override
 
bool validate_dof (const std::vector< Node::DOF > &) const override
 
uvec index_of (const std::vector< Node::DOF > &) const override
 
const uvecget_material_tag () const override
 
const uvecget_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< std::weak_ptr< Node > > & get_node_ptr () const override
 
mat get_coordinate () const override
 
mat get_coordinate (unsigned) const override
 generate a matrix that contains coordinates of connected nodes
 
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_characteristic_length () const override
 
double get (Parameter) const override
 
- Public Member Functions inherited from ElementBase
 ElementBase (const unsigned T)
 
- Public Member Functions inherited from UniqueTag
 UniqueTag (const UniqueTag &)=delete
 
 UniqueTag (UniqueTag &&)=delete
 
UniqueTagoperator= (const UniqueTag &)=delete
 
UniqueTagoperator= (UniqueTag &&)=delete
 
 ~UniqueTag () override=default
 
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=default
 
- Public Member Functions inherited from Tag
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=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
 
- Public Member Functions inherited from Distributed
 Distributed (const int obj_tag)
 

Additional Inherited Members

- Public Types inherited from ElementBase
enum class  Type : std::uint8_t { FEM , DEM }
 
enum class  Parameter : std::uint8_t {
  ELASTIC , POISSON , RADIUS , MASS ,
  INERTIA , DAMPING
}
 
- Static Public Member Functions inherited from Distributed
template<typename T >
static auto gather (T &&)
 
- Public Attributes inherited from Distributed
const bool is_local
 
- Protected Types inherited from ElementBase
enum class  Type : std::uint8_t { FEM , DEM }
 
enum class  Parameter : std::uint8_t {
  ELASTIC , POISSON , RADIUS , MASS ,
  INERTIA , DAMPING
}
 
- Protected Member Functions inherited from Element
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)
 
- Protected Member Functions inherited from UniqueTag
 UniqueTag (const UniqueTag &)=delete
 
 UniqueTag (UniqueTag &&)=delete
 
UniqueTagoperator= (const UniqueTag &)=delete
 
UniqueTagoperator= (UniqueTag &&)=delete
 
 ~UniqueTag () override=default
 
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=default
 
- Protected Member Functions inherited from Tag
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=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 inherited from Distributed
 Distributed (const int obj_tag)
 
- Static Protected Member Functions inherited from Distributed
template<typename T >
static auto gather (T &&)
 
- Protected Attributes inherited from Element
std::vector< std::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.
 
- Protected Attributes inherited from Distributed
const bool is_local
 

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()

std::vector< vec > GQ12::record ( OutputType  P) const
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: