suanPan
B3DC Class Reference

A B3DC class. More...

#include <B3DC.h>

Inheritance diagram for B3DC:
Collaboration diagram for B3DC:

Public Member Functions

bool is_nlgeom () const override
 
unique_ptr< Orientationget_copy () override
 
void commit_status () override
 
void reset_status () override
 
void clear_status () override
 
vec to_local_vec (const vec &) const override
 transform anything from global to local system e.g., disp -> disp, vel -> vel, acc -> acc, not applicable to conversion such as disp -> strain More...
 
vec to_global_vec (const vec &) const override
 transform anything from local to global system e.g., disp -> disp, vel -> vel, acc -> acc, not applicable to conversion such as disp -> strain More...
 
mat to_global_geometry_mat (const mat &) const override
 
mat to_global_stiffness_mat (const mat &) const override
 
- Public Member Functions inherited from B3DL
OrientationType get_orientation_type () const override
 
unique_ptr< Orientationget_copy () override
 
vec to_local_vec (const vec &) const override
 transform anything from global to local system e.g., disp -> disp, vel -> vel, acc -> acc, not applicable to conversion such as disp -> strain More...
 
vec to_global_vec (const vec &) const override
 transform anything from local to global system e.g., disp -> disp, vel -> vel, acc -> acc, not applicable to conversion such as disp -> strain More...
 
mat to_global_mass_mat (const mat &) const override
 transform anything from local to global system e.g., stiffness -> stiffness. More...
 
mat to_global_stiffness_mat (const mat &) const override
 
 Orientation (unsigned=0, vec &&={})
 
 Orientation (const Orientation &)=default
 
 Orientation (Orientation &&)=delete
 
- Public Member Functions inherited from Orientation
 Orientation (unsigned=0, vec &&={})
 
 Orientation (const Orientation &)=default
 
 Orientation (Orientation &&)=delete
 
Orientationoperator= (const Orientation &)=delete
 
Orientationoperator= (Orientation &&)=delete
 
 ~Orientation () override=default
 
void update_axis (const vec &)
 
virtual void set_element_ptr (const Element *)
 
virtual bool is_nlgeom () const
 
virtual OrientationType get_orientation_type () const =0
 
double get_length () const
 
double get_inclination () const
 
const mat & get_transformation () const
 
virtual unique_ptr< Orientationget_copy ()=0
 
virtual void update_status ()
 
virtual void commit_status ()
 
virtual void reset_status ()
 
virtual void clear_status ()
 
virtual vec to_local_vec (double) const
 
virtual vec to_global_vec (double) const
 
virtual mat to_global_mass_mat (double) const
 
virtual mat to_global_geometry_mat (double) const
 
virtual mat to_global_stiffness_mat (double) const
 
virtual vec to_local_vec (vec &&) const
 
virtual vec to_global_vec (vec &&) const
 
virtual mat to_global_mass_mat (mat &&) const
 
virtual mat to_global_geometry_mat (mat &&) const
 
virtual mat to_global_stiffness_mat (mat &&) const
 
virtual vec to_local_vec (const vec &) const =0
 transform anything from global to local system e.g., disp -> disp, vel -> vel, acc -> acc, not applicable to conversion such as disp -> strain More...
 
virtual vec to_global_vec (const vec &) const =0
 transform anything from local to global system e.g., disp -> disp, vel -> vel, acc -> acc, not applicable to conversion such as disp -> strain More...
 
virtual mat to_global_mass_mat (const mat &) const
 transform anything from local to global system e.g., stiffness -> stiffness. More...
 
virtual mat to_global_geometry_mat (const mat &) const
 
virtual mat to_global_stiffness_mat (const mat &) 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 ()
 

Protected Member Functions

mat compute_a () const
 
mat compute_l (const mat &, const subview_col< double > &) const
 
mat compute_m (const mat &, const subview_col< double > &) const
 
mat compute_g (const mat &, const subview_col< double > &, const subview_col< double > &) const
 
subview_col< double > e (uword) const
 
subview_col< double > r (uword) const
 
subview_col< double > ni (uword) const
 
subview_col< double > nj (uword) const
 
const mat & sni (uword) const
 
const mat & snj (uword) const
 
void update_direct_cosine (const vec &)
 
void update_e (const vec &)
 
void update_theta ()
 
void update_transformation () override
 
virtual unsigned nodal_size () const
 
- Protected Member Functions inherited from B3DL
void update_transformation () override
 
- Protected Member Functions inherited from Orientation
void check_element_ptr () const
 
virtual void update_transformation ()=0
 

Protected Attributes

const span sa {0, 2}
 
const span sb {3, 5}
 
const span sc {6, 8}
 
const span sd {9, 11}
 
double elongation = 0.
 
mat trial_rotation {3, 2, fill::zeros}
 
mat current_rotation {3, 2, fill::zeros}
 
mat trial_n
 
mat current_n
 
mat trial_ref
 
mat current_ref
 
field< mat > sn {6}
 
field< mat > se {3}
 
vec theta
 
mat transformation
 
const double initial_length = 0.
 
- Protected Attributes inherited from Orientation
const Elementelement_ptr = nullptr
 
vec z_axis
 
double length = 0.
 
double inclination = 0.
 
mat direction_cosine
 

Detailed Description

A B3DC class.

B3DC is a corotational transformation for 3D beam elements.

The implementation is mainly based on de Souza's thesis.

Force-based Finite Element for Large Displacement Inelastic Analysis of Frames

Author
tlc
Date
16/12/2021
Version
0.1.0

Member Function Documentation

◆ clear_status()

void B3DC::clear_status ( )
overridevirtual

Reimplemented from Orientation.

◆ commit_status()

void B3DC::commit_status ( )
overridevirtual

Reimplemented from Orientation.

◆ compute_a()

mat B3DC::compute_a ( ) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_g()

mat B3DC::compute_g ( const mat &  a,
const subview_col< double > &  rk,
const subview_col< double > &  z 
) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_l()

mat B3DC::compute_l ( const mat &  a,
const subview_col< double > &  rk 
) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_m()

mat B3DC::compute_m ( const mat &  a,
const subview_col< double > &  z 
) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ e()

subview_col< double > B3DC::e ( uword  I) const
protected
Here is the caller graph for this function:

◆ get_copy()

unique_ptr< Orientation > B3DC::get_copy ( )
overridevirtual

Implements Orientation.

Reimplemented in B3DOSC.

◆ is_nlgeom()

bool B3DC::is_nlgeom ( ) const
overridevirtual

Reimplemented from Orientation.

◆ ni()

subview_col< double > B3DC::ni ( uword  I) const
protected
Here is the caller graph for this function:

◆ nj()

subview_col< double > B3DC::nj ( uword  I) const
protected
Here is the caller graph for this function:

◆ nodal_size()

unsigned B3DC::nodal_size ( ) const
protectedvirtual

Reimplemented in B3DOSC.

Here is the caller graph for this function:

◆ r()

subview_col< double > B3DC::r ( uword  I) const
protected
Here is the caller graph for this function:

◆ reset_status()

void B3DC::reset_status ( )
overridevirtual

Reimplemented from Orientation.

◆ sni()

const mat & B3DC::sni ( uword  I) const
protected
Here is the caller graph for this function:

◆ snj()

const mat & B3DC::snj ( uword  I) const
protected
Here is the caller graph for this function:

◆ to_global_geometry_mat()

mat B3DC::to_global_geometry_mat ( const mat &  l_force) const
overridevirtual

Reimplemented from Orientation.

Reimplemented in B3DOSC.

Here is the call graph for this function:

◆ to_global_stiffness_mat()

mat B3DC::to_global_stiffness_mat ( const mat &  l_mat) const
overridevirtual

Implements Orientation.

◆ to_global_vec()

vec B3DC::to_global_vec ( const vec &  ) const
overridevirtual

transform anything from local to global system e.g., disp -> disp, vel -> vel, acc -> acc, not applicable to conversion such as disp -> strain

Returns
variable in global system

Implements Orientation.

◆ to_local_vec()

vec B3DC::to_local_vec ( const vec &  ) const
overridevirtual

transform anything from global to local system e.g., disp -> disp, vel -> vel, acc -> acc, not applicable to conversion such as disp -> strain

Returns
variable in local system

Implements Orientation.

Reimplemented in B3DOSC.

◆ update_direct_cosine()

void B3DC::update_direct_cosine ( const vec &  x_axis)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_e()

void B3DC::update_e ( const vec &  trial_cord)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_theta()

void B3DC::update_theta ( )
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_transformation()

void B3DC::update_transformation ( )
overrideprotectedvirtual

Implements Orientation.

Reimplemented in B3DOSC.

Here is the call graph for this function:

Member Data Documentation

◆ current_n

mat B3DC::current_n
protected

◆ current_ref

mat B3DC::current_ref
protected

◆ current_rotation

mat B3DC::current_rotation {3, 2, fill::zeros}
protected

◆ elongation

double B3DC::elongation = 0.
protected

◆ initial_length

const double B3DC::initial_length = 0.
protected

◆ sa

const span B3DC::sa {0, 2}
protected

◆ sb

const span B3DC::sb {3, 5}
protected

◆ sc

const span B3DC::sc {6, 8}
protected

◆ sd

const span B3DC::sd {9, 11}
protected

◆ se

field<mat> B3DC::se {3}
protected

◆ sn

field<mat> B3DC::sn {6}
protected

◆ theta

vec B3DC::theta
protected

◆ transformation

mat B3DC::transformation
protected

◆ trial_n

mat B3DC::trial_n
protected

◆ trial_ref

mat B3DC::trial_ref
protected

◆ trial_rotation

mat B3DC::trial_rotation {3, 2, fill::zeros}
protected

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