GranOO  3.0
A robust and versatile workbench to build 3D dynamic simulations based on the Discrete Element Method
Public Member Functions | Public Attributes | Protected Attributes | List of all members
GranOO3::FEM::Element Class Referenceabstract

#include <Element.hpp>

Inheritance diagram for GranOO3::FEM::Element:
Inheritance graph
[legend]

Public Member Functions

 Element ()
 
virtual ~Element ()
 
virtual Eigen::VectorXd shape_function_at_coordinate (double xi, double eta, double zeta)=0
 
virtual Eigen::MatrixXd shape_function_derivative_at_coordinate (double xi, double eta, double zeta)=0
 
virtual unsigned int node_count ()=0
 
virtual unsigned int dof_per_node_count ()=0
 
virtual unsigned int gauss_point_count ()=0
 
virtual std::string name ()=0
 
virtual std::string vtk_name ()=0
 
virtual Eigen::MatrixXd d_ndx_at_gauss_point (unsigned int gaussPointIndex)
 
virtual Eigen::MatrixXd shape_function_at_gauss_point (unsigned int gaussPointIndex)
 
virtual Eigen::MatrixXd shape_function_derivative_at_gauss_point (unsigned int gaussPointIndex)
 
virtual Eigen::VectorXd strain_at_gauss_point (unsigned int gaussPointIndex)
 
virtual Eigen::VectorXd internal_force ()
 
virtual Eigen::VectorXd internal_force_at_gauss_point (unsigned int gaussPointIndex)
 
virtual Eigen::MatrixXd mass_matrix ()
 
virtual Eigen::MatrixXd mass_matrix_at_gauss_point (unsigned int gaussPointIndex)
 
void setup_element ()
 
void reset_variable ()
 
Eigen::MatrixXd b_matrix_for_d_ndX (Eigen::MatrixXd dNdx)
 
void update_state_at_gauss_point (unsigned int gaussPointIndex, const Eigen::VectorXd &dStrain)
 
void update_variable ()
 
std::vector< GranOO3::Physic::Node * > & node_list ()
 
const Eigen::MatrixXd & gauss_point ()
 
const Eigen::MatrixXd & node_coord ()
 
const std::vector< unsigned int > & connectivity ()
 
const Eigen::VectorXd & stress_at_gauss_point (unsigned int igaussPoint)
 
- Public Member Functions inherited from GranOO3::Core::Base
virtual ~Base ()
 
virtual std::string info () const
 
size_t numID () const
 
size_t uID () const
 
void set_numID (size_t val)
 
void clear_numID ()
 
Physic::Materialget_mat () const
 
void set_mat (Physic::Material *)
 
Baseitem ()
 
const Baseitem () const
 
bool is_same (const Base &) const
 
template<class T >
T & cast_to ()
 
template<class T >
const T & cast_to () const
 
template<class T >
bool is () const
 
virtual bool is (size_t) const
 
virtual const std::string & get_ID () const
 
virtual Baseclone ()
 
template<class T >
T & clone_to ()
 
virtual std::ostream & write_ascii (std::ostream &out) const
 
virtual std::istream & read_ascii (std::istream &in)
 
virtual std::ostream & export_to_povray (std::ostream &out) const
 
Signal< Base & > & deleted_signal ()
 
- Public Member Functions inherited from GranOO3::Core::Null
 Null ()
 
virtual ~Null ()
 
- Public Member Functions inherited from GranOO3::Core::Drawable
 Drawable ()
 
virtual ~Drawable ()
 
virtual void draw ()
 
virtual void draw_edge ()
 
virtual void init_default_color ()
 
virtual std::ostream & get_info (std::ostream &os) const
 
virtual const Colordefault_color () const
 
Colorget_color ()
 
const Colorget_color () const
 
virtual void set_color (const Color &)
 
virtual void set_alpha (float alpha)
 
void apply_color () const
 
void apply_edge_color () const
 
void apply_default_color ()
 
void apply_selected_color ()
 
void set_line_width (float)
 
float get_line_width () const
 
float & get_line_width ()
 
void apply_line_width () const
 
bool is_visible () const
 
void set_visible (bool)
 
void paint ()
 
void paint_edge ()
 
unsigned int get_item_glkey () const
 
- Public Member Functions inherited from GranOO3::Core::Register< Base >
 Register ()
 
virtual ~Register ()
 
void erase_from_all_setof ()
 
bool belong_to_setof (const std::string &setOfId) const
 
bool belong_to_setof (const SetOf< Base > &set) const
 
std::list< SetOf< Base > * > & get_setof_list ()
 
unsigned long long int get_numeric_ID () const
 
- Public Member Functions inherited from GranOO3::Core::Register< Element >
 Register ()
 
virtual ~Register ()
 
void erase_from_all_setof ()
 
bool belong_to_setof (const std::string &setOfId) const
 
bool belong_to_setof (const SetOf< Element > &set) const
 
std::list< SetOf< Element > * > & get_setof_list ()
 
unsigned long long int get_numeric_ID () const
 

Public Attributes

double _youngModulus
 
double _poissonRatio
 
double _density
 

Protected Attributes

Eigen::MatrixXd _gauss_point
 
Eigen::VectorXd _weights
 
std::vector< GranOO3::Physic::Node * > _node_list
 
Eigen::MatrixXd _node_coord
 
std::vector< Eigen::MatrixXd > _strainDisplacementMatrices
 
std::vector< double > _jacobians
 
std::vector< Eigen::VectorXd > _oldStrain
 
std::vector< Eigen::VectorXd > _newStrain
 
std::vector< Eigen::VectorXd > _oldStress
 
std::vector< Eigen::VectorXd > _newStress
 
std::vector< Eigen::VectorXd > _oldStateVariables
 
std::vector< Eigen::VectorXd > _newStateVariables
 
std::vector< Eigen::MatrixXd > _ctMatrix
 
std::vector< unsigned int > _connectivity
 

Additional Inherited Members

- Static Public Member Functions inherited from GranOO3::Core::Base
static Baseget_by_numID (size_t)
 
static void clear_all_numID ()
 
static unsigned int get_sub_class_number ()
 
- Static Public Member Functions inherited from GranOO3::Core::Drawable
static Drawableget_drawable_item_by_glkey (int)
 
static void set_draw_precision (unsigned int p)
 
static void increase_draw_precision ()
 
static void decrease_draw_precision ()
 
static unsigned int get_draw_precision ()
 
- Static Public Attributes inherited from GranOO3::Core::Null
static Null null = Null()
 
- Protected Member Functions inherited from GranOO3::Core::Base
 Base ()
 
- Static Protected Member Functions inherited from GranOO3::Core::Base
static unsigned int affect_class_rank_ID ()
 

Constructor & Destructor Documentation

◆ Element()

GranOO3::FEM::Element::Element ( )

◆ ~Element()

GranOO3::FEM::Element::~Element ( )
virtual

Member Function Documentation

◆ b_matrix_for_d_ndX()

Eigen::MatrixXd GranOO3::FEM::Element::b_matrix_for_d_ndX ( Eigen::MatrixXd  dNdx)

◆ connectivity()

const std::vector<unsigned int>& GranOO3::FEM::Element::connectivity ( )
inline

◆ d_ndx_at_gauss_point()

Eigen::MatrixXd GranOO3::FEM::Element::d_ndx_at_gauss_point ( unsigned int  gaussPointIndex)
virtual

◆ dof_per_node_count()

virtual unsigned int GranOO3::FEM::Element::dof_per_node_count ( )
pure virtual

◆ gauss_point()

const Eigen::MatrixXd& GranOO3::FEM::Element::gauss_point ( )
inline

◆ gauss_point_count()

virtual unsigned int GranOO3::FEM::Element::gauss_point_count ( )
pure virtual

◆ internal_force()

Eigen::VectorXd GranOO3::FEM::Element::internal_force ( )
virtual

◆ internal_force_at_gauss_point()

Eigen::VectorXd GranOO3::FEM::Element::internal_force_at_gauss_point ( unsigned int  gaussPointIndex)
virtual

◆ mass_matrix()

Eigen::MatrixXd GranOO3::FEM::Element::mass_matrix ( )
virtual

◆ mass_matrix_at_gauss_point()

Eigen::MatrixXd GranOO3::FEM::Element::mass_matrix_at_gauss_point ( unsigned int  gaussPointIndex)
virtual

◆ name()

virtual std::string GranOO3::FEM::Element::name ( )
pure virtual

◆ node_coord()

const Eigen::MatrixXd& GranOO3::FEM::Element::node_coord ( )
inline

◆ node_count()

virtual unsigned int GranOO3::FEM::Element::node_count ( )
pure virtual

◆ node_list()

std::vector<GranOO3::Physic::Node *>& GranOO3::FEM::Element::node_list ( )
inline

◆ reset_variable()

void GranOO3::FEM::Element::reset_variable ( )

◆ setup_element()

void GranOO3::FEM::Element::setup_element ( )

◆ shape_function_at_coordinate()

virtual Eigen::VectorXd GranOO3::FEM::Element::shape_function_at_coordinate ( double  xi,
double  eta,
double  zeta 
)
pure virtual

◆ shape_function_at_gauss_point()

Eigen::MatrixXd GranOO3::FEM::Element::shape_function_at_gauss_point ( unsigned int  gaussPointIndex)
virtual

◆ shape_function_derivative_at_coordinate()

virtual Eigen::MatrixXd GranOO3::FEM::Element::shape_function_derivative_at_coordinate ( double  xi,
double  eta,
double  zeta 
)
pure virtual

◆ shape_function_derivative_at_gauss_point()

Eigen::MatrixXd GranOO3::FEM::Element::shape_function_derivative_at_gauss_point ( unsigned int  gaussPointIndex)
virtual

◆ strain_at_gauss_point()

Eigen::VectorXd GranOO3::FEM::Element::strain_at_gauss_point ( unsigned int  gaussPointIndex)
virtual

◆ stress_at_gauss_point()

const Eigen::VectorXd& GranOO3::FEM::Element::stress_at_gauss_point ( unsigned int  igaussPoint)
inline

◆ update_state_at_gauss_point()

void GranOO3::FEM::Element::update_state_at_gauss_point ( unsigned int  gaussPointIndex,
const Eigen::VectorXd &  dStrain 
)

◆ update_variable()

void GranOO3::FEM::Element::update_variable ( )

◆ vtk_name()

virtual std::string GranOO3::FEM::Element::vtk_name ( )
pure virtual

Member Data Documentation

◆ _connectivity

std::vector<unsigned int> GranOO3::FEM::Element::_connectivity
protected

◆ _ctMatrix

std::vector<Eigen::MatrixXd> GranOO3::FEM::Element::_ctMatrix
protected

◆ _density

double GranOO3::FEM::Element::_density

◆ _gauss_point

Eigen::MatrixXd GranOO3::FEM::Element::_gauss_point
protected

◆ _jacobians

std::vector<double> GranOO3::FEM::Element::_jacobians
protected

◆ _newStateVariables

std::vector<Eigen::VectorXd> GranOO3::FEM::Element::_newStateVariables
protected

◆ _newStrain

std::vector<Eigen::VectorXd> GranOO3::FEM::Element::_newStrain
protected

◆ _newStress

std::vector<Eigen::VectorXd> GranOO3::FEM::Element::_newStress
protected

◆ _node_coord

Eigen::MatrixXd GranOO3::FEM::Element::_node_coord
protected

◆ _node_list

std::vector<GranOO3::Physic::Node *> GranOO3::FEM::Element::_node_list
protected

◆ _oldStateVariables

std::vector<Eigen::VectorXd> GranOO3::FEM::Element::_oldStateVariables
protected

◆ _oldStrain

std::vector<Eigen::VectorXd> GranOO3::FEM::Element::_oldStrain
protected

◆ _oldStress

std::vector<Eigen::VectorXd> GranOO3::FEM::Element::_oldStress
protected

◆ _poissonRatio

double GranOO3::FEM::Element::_poissonRatio

◆ _strainDisplacementMatrices

std::vector<Eigen::MatrixXd> GranOO3::FEM::Element::_strainDisplacementMatrices
protected

◆ _weights

Eigen::VectorXd GranOO3::FEM::Element::_weights
protected

◆ _youngModulus

double GranOO3::FEM::Element::_youngModulus

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