33 #ifndef _LibFEM_Element
34 #define _LibFEM_Element
40 #include "GranOO3/Physic/ExtendedSetOf/Node.hpp"
42 #include "GranOO3/3rdParty/Eigen/Sparse"
43 #include "GranOO3/3rdParty/Eigen/Dense"
65 virtual std::string
name() = 0;
Definition: SetOf.hpp:346
Definition: Element.hpp:50
void setup_element()
Definition: Element.cpp:57
const std::vector< unsigned int > & connectivity()
Definition: Element.hpp:86
double _density
Definition: Element.hpp:92
const Eigen::MatrixXd & gauss_point()
Definition: Element.hpp:84
std::vector< Eigen::MatrixXd > _ctMatrix
Definition: Element.hpp:108
Eigen::MatrixXd b_matrix_for_d_ndX(Eigen::MatrixXd dNdx)
Definition: Element.cpp:111
double _poissonRatio
Definition: Element.hpp:91
std::vector< GranOO3::Physic::Node * > & node_list()
Definition: Element.hpp:82
Eigen::MatrixXd _gauss_point
Definition: Element.hpp:95
virtual std::string vtk_name()=0
void update_state_at_gauss_point(unsigned int gaussPointIndex, const Eigen::VectorXd &dStrain)
Definition: Element.cpp:238
virtual Eigen::MatrixXd mass_matrix_at_gauss_point(unsigned int gaussPointIndex)
Definition: Element.cpp:181
Element()
Definition: Element.cpp:45
virtual unsigned int gauss_point_count()=0
virtual std::string name()=0
virtual Eigen::VectorXd internal_force()
Definition: Element.cpp:217
std::vector< Eigen::VectorXd > _newStress
Definition: Element.hpp:105
virtual Eigen::VectorXd internal_force_at_gauss_point(unsigned int gaussPointIndex)
Definition: Element.cpp:229
std::vector< Eigen::VectorXd > _oldStress
Definition: Element.hpp:104
virtual Eigen::MatrixXd shape_function_derivative_at_coordinate(double xi, double eta, double zeta)=0
virtual Eigen::VectorXd strain_at_gauss_point(unsigned int gaussPointIndex)
Definition: Element.cpp:165
virtual Eigen::VectorXd shape_function_at_coordinate(double xi, double eta, double zeta)=0
void reset_variable()
Definition: Element.cpp:94
const Eigen::MatrixXd & node_coord()
Definition: Element.hpp:85
double _youngModulus
Definition: Element.hpp:87
std::vector< Eigen::VectorXd > _newStateVariables
Definition: Element.hpp:107
virtual unsigned int dof_per_node_count()=0
std::vector< double > _jacobians
Definition: Element.hpp:101
virtual Eigen::MatrixXd d_ndx_at_gauss_point(unsigned int gaussPointIndex)
Definition: Element.cpp:134
std::vector< Eigen::VectorXd > _newStrain
Definition: Element.hpp:103
Eigen::VectorXd _weights
Definition: Element.hpp:96
std::vector< unsigned int > _connectivity
Definition: Element.hpp:109
virtual ~Element()
Definition: Element.cpp:51
std::vector< Eigen::VectorXd > _oldStrain
Definition: Element.hpp:102
std::vector< Eigen::VectorXd > _oldStateVariables
Definition: Element.hpp:106
virtual Eigen::MatrixXd shape_function_at_gauss_point(unsigned int gaussPointIndex)
Definition: Element.cpp:149
Eigen::MatrixXd _node_coord
Definition: Element.hpp:99
const Eigen::VectorXd & stress_at_gauss_point(unsigned int igaussPoint)
Definition: Element.hpp:87
void update_variable()
Definition: Element.cpp:269
std::vector< GranOO3::Physic::Node * > _node_list
Definition: Element.hpp:97
std::vector< Eigen::MatrixXd > _strainDisplacementMatrices
Definition: Element.hpp:100
virtual Eigen::MatrixXd mass_matrix()
Definition: Element.cpp:204
virtual Eigen::MatrixXd shape_function_derivative_at_gauss_point(unsigned int gaussPointIndex)
Definition: Element.cpp:157
virtual unsigned int node_count()=0
Definition: Common.hpp:198