suanPan
B3DOSC Class Reference

A B3DOSC class. More...

#include <B3DOSC.h>

Inheritance diagram for B3DOSC:
Collaboration diagram for B3DOSC:

Public Member Functions

 B3DOSC (unsigned, vec &&)
 
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...
 
mat to_global_geometry_mat (const mat &) const override
 
- Public Member Functions inherited from B3DC
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

void update_transformation () override
 
unsigned nodal_size () const override
 
- Protected Member Functions inherited from B3DC
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
 
void update_transformation () override
 
- Protected Member Functions inherited from Orientation
void check_element_ptr () const
 
virtual void update_transformation ()=0
 

Additional Inherited Members

- Protected Attributes inherited from B3DC
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 B3DOSC class.

B3DOSC 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

Constructor & Destructor Documentation

◆ B3DOSC()

B3DOSC::B3DOSC ( unsigned  T,
vec &&  XYZ 
)

Member Function Documentation

◆ get_copy()

unique_ptr< Orientation > B3DOSC::get_copy ( )
overridevirtual

Reimplemented from B3DC.

◆ get_orientation_type()

OrientationType B3DOSC::get_orientation_type ( ) const
overridevirtual

Reimplemented from B3DL.

◆ nodal_size()

unsigned B3DOSC::nodal_size ( ) const
overrideprotectedvirtual

Reimplemented from B3DC.

◆ to_global_geometry_mat()

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

Reimplemented from B3DC.

Here is the call graph for this function:

◆ to_local_vec()

vec B3DOSC::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

Reimplemented from B3DC.

◆ update_transformation()

void B3DOSC::update_transformation ( )
overrideprotectedvirtual

Reimplemented from B3DC.

Here is the call graph for this function:

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