#include <et.hpp>
Public Types | |
typedef material::TVector3 | coor_type |
typedef size_t | count_type |
typedef unsigned int | index_type |
typedef material::TMatrix | matrix_type |
typedef double | real_type |
typedef std::vector< int > | TIntStdVector |
typedef std::vector < ETIntegrationPoint > | TVectorIntegrationpoints |
typedef std::vector< ushort > | Type_available_dof |
typedef boost::ptr_vector< ETEdge > | Type_edge_vector |
enum | Type_elemental_integration_type { NODAL_CONTINUUM = 0, NUM_ELEMENTAL_INTEGRATION_TYPES } |
typedef boost::ptr_vector< ETFace > | Type_face_vector |
typedef std::vector< IntCell_ET > | Type_intcell_vector |
typedef std::vector < MaterialIntptDef > | Type_materialintpt_vector |
typedef boost::ptr_vector< ETNode > | Type_node_vector |
enum | Type_physical_fields { STRUCTURAL_FIELDS = 0, NUM_PHYSICAL_FIELDS } |
typedef boost::function< void(const coor_type &nat_coor, matrix_type &shape_der)> | Type_shape_der_func |
typedef boost::function< void(const coor_type &nat_coor, vector_type &shape)> | Type_shape_func |
typedef boost::function< void()> | Type_void_function |
a type for simple void methods: | |
typedef unsigned int | uint |
typedef material::TVector | vector_type |
Public Member Functions | |
TIntStdVector & | edgeIndexFromIntptIndex () |
const TIntStdVector & | edgeIndexFromIntptIndex () const |
const Type_edge_vector & | edges () const |
gets the local edges | |
const Type_shape_func & | edgeShape () const |
gives access to m_edge_shape | |
const std::vector< bool > & | elementalIntegrationTypes () const |
gets elemental_integration_types | |
ET (const count_type &theindex, const std::string &theident, const ushort &numnodes, const std::vector< bool > &thephysical_fields, const std::vector< bool > &theelemental_integration_types, const matrix_type &localcoordinatesofnodes, const matrix_type &localcoordinatesofinnernodes, const Type_available_dof &theavailable_dof, const Type_void_function &func_getSimplices, const Type_intcell_vector &par_int_cells_for_N_A, const Type_intcell_vector &par_int_cells_for_N_AB, const Type_intcell_vector &par_int_cells_for_N_AB_der, const Type_intcell_vector &par_int_cells_for_M_A, const Type_intcell_vector &par_int_cells_for_M_AB, const Type_intcell_vector &par_int_cells_for_M_AB_der, const IntegrationNodeType &the_nodal_int_type_) | |
const Type_face_vector & | faces () const |
gets the local faces | |
const Type_edge_vector & | getEdges () const |
gets the local edges | |
const Type_face_vector & | getFaces () const |
gets the local faces | |
const std::string & | getIdent () const |
returns the element type as a string | |
const index_type & | getIndex () const |
returns the element type | |
void | getLocalNodeCoor (const unsigned short &pt, real_type *const coor) const |
gets the local coordinates of the local point and writes it to coor | |
const Type_node_vector & | getNodes () const |
gets the local nodes | |
TVectorIntegrationpoints & | globalIntegrationpoints () |
const TVectorIntegrationpoints & | globalIntegrationpoints () const |
Type_materialintpt_vector & | innerIntpts () |
const Type_materialintpt_vector & | innerIntpts () const |
gives access to shape_material_der | |
const Type_shape_func & | innerShape () const |
gives access to shape_strain_intpts | |
Type_intcell_vector & | intCellsM_A () |
sets int_cells_for_M_A | |
const Type_intcell_vector & | intCellsM_A () const |
gets int_cells_for_M_A | |
Type_intcell_vector & | intCellsM_AB () |
sets int_cells_for_M_AB | |
const Type_intcell_vector & | intCellsM_AB () const |
gets int_cells_for_M_AB | |
Type_intcell_vector & | intCellsM_AB_der () |
sets int_cells_for_M_A_der | |
const Type_intcell_vector & | intCellsM_AB_der () const |
gets int_cells_for_M_AB_der | |
Type_intcell_vector & | intCellsN_A () |
sets int_cells_for_N_A | |
const Type_intcell_vector & | intCellsN_A () const |
gets int_cells_for_N_A | |
Type_intcell_vector & | intCellsN_AB () |
sets int_cells_for_N_AB | |
const Type_intcell_vector & | intCellsN_AB () const |
gets int_cells_for_N_AB | |
Type_intcell_vector & | intCellsN_AB_der () |
sets int_cells_for_N_A_der | |
const Type_intcell_vector & | intCellsN_AB_der () const |
gets int_cells_for_N_AB_der | |
TIntStdVector & | intptIndexFromEdgeIndex () |
const TIntStdVector & | intptIndexFromEdgeIndex () const |
TIntStdVector & | intptIndexFromNodeIndex () |
const TIntStdVector & | intptIndexFromNodeIndex () const |
const Type_shape_func & | intShape () const |
gives access to m_int_shape | |
const matrix_type & | localInnerNodeCoor () const |
returns the local coordinates of the inner element nodes | |
const matrix_type & | localNodeCoor () const |
returns the local coordinates of the element nodes | |
const real_type | localNodeCoor (const ushort &pt, const short &dim) const |
returns the 'dim'th local coordinate of node 'pt' | |
const IntegrationNodeType & | nodalIntType () const |
gets nodal integration type | |
TIntStdVector & | nodeIndexFromIntptIndex () |
const TIntStdVector & | nodeIndexFromIntptIndex () const |
Type_node_vector & | nodes () |
modifier for local nodes | |
const Type_node_vector & | nodes () const |
gets the local nodes | |
const ushort & | numNodes () const |
returns the specific integration point data | |
const std::vector< bool > & | physicalFields () const |
returns the vector of considered physical fields | |
const Type_shape_func & | shape () const |
gives access to shape | |
const Type_shape_der_func & | shapeGrad () const |
gives access to shape_der | |
const std::vector< ushort > & | simplexDecomposition () const |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef unsigned short | ushort |
Protected Member Functions | |
Type_edge_vector & | edges () |
sets the local edges | |
Type_face_vector & | faces () |
sets the local faces | |
const std::vector< bool > | getElementalIntegrationType_NodalContinuum () const |
const std::vector< bool > | getPhysicalType_Mechanical () const |
void | getSimplices () |
void | sortSimplexPoints () |
Protected Attributes | |
std::vector< bool > | elemental_integration_types |
const std::string | ident |
the identifier | |
const index_type | index |
the global index | |
Type_materialintpt_vector | inner_intpts |
Type_intcell_vector | int_cells_for_M_A |
integration cells for integration of element: N_A | |
Type_intcell_vector | int_cells_for_M_AB |
integration cells for integration of element: N_A*N_B | |
Type_intcell_vector | int_cells_for_M_AB_der |
integration cells for integration of element: M_A*N_B_der (M_A: inner shape) | |
Type_intcell_vector | int_cells_for_N_A |
integration cells for integration of element: N_A | |
Type_intcell_vector | int_cells_for_N_AB |
integration cells for integration of element: N_A*N_B | |
Type_intcell_vector | int_cells_for_N_AB_der |
integration cells for integration of element: N_A*N_B_der | |
const matrix_type | local_coordinates_of_inner_nodes |
const matrix_type | local_coordinates_of_nodes |
Type_shape_func | m_edge_shape |
the shape function which is associated with the edges | |
TIntStdVector | m_edgeindex_from_intpt |
a map which returns the edge intpt index, given a global intpt index | |
Type_edge_vector | m_edges |
the topological edges | |
Type_face_vector | m_faces |
the topological faces | |
TVectorIntegrationpoints | m_global_integrationpoints |
the container with the "definition data" of global integration points: | |
Type_shape_func | m_inner_shape |
Type_shape_func | m_int_shape |
the shape function which is associated with the integration points | |
TIntStdVector | m_intptindex_from_edge |
a map which returns the global intpoint index, given an edge index | |
TIntStdVector | m_intptindex_from_node |
a map which returns the elemental intpt index given an elemental node index | |
TIntStdVector | m_node_from_intpt |
a map which returns the elemental node index given an elemental integration point index | |
Type_node_vector | m_nodes |
the topological nodes | |
Type_shape_func | m_shape |
Type_shape_der_func | m_shape_grad |
std::vector< ushort > | m_simplices |
the topological simplices: (p1_1 p1_2 p1_3 p1_4, p2_1 p2_2 p2_3 p2_4, ..., pn_1 pn_2 pn_3 pn_4) where pA_B is the index of a local node | |
const IntegrationNodeType & | nodal_int_type |
nodal integration type | |
const ushort | num_nodes |
number of nodes | |
std::vector< bool > | physical_fields |
Private Member Functions | |
void | edge_shape_default (const coor_type &nat_coor, vector_type &shape) |
void | int_shape_default (const coor_type &nat_coor, vector_type &shape) |
void | shape_default (const coor_type &nat_coor, vector_type &shape) |
void | shape_grad_default (const coor_type &nat_coor, matrix_type &shape_der) |
void sfem::element::ET::getSimplices | ( | ) | [protected] |
an abstract routine which subdivides the element into simplices. it returns the number of simplices (number) and creates memory for the output ('points'). points will be a matrix (4*number), each column is a simplex whereby the local point indices are stored.
const ushort& sfem::element::ET::numNodes | ( | ) | const [inline] |
returns the specific integration point data
intpt | ... number of intpt returns the number of nodes |
const std::vector<ushort>& sfem::element::ET::simplexDecomposition | ( | ) | const [inline] |
returns the interpolation function values at the given natural coordinate, given a node_list with indices to _REST_MACRO_ node_table [node_list[i]] obbtaining the nodal coordinates and displacements. in: nat_coor[3], node_list[num nodes], out: coor[3], disp[6]. The default implementation does: x=sum(i=1..n, shape(i,r)*nodal_x(i)), returns the interpolation function derivatives at the given natural coordinate, derived by the natural coordinates, given a node_list with indices to _REST_MACRO_ node_table [node_list[i]], obbtaining the nodal coordinates and displacements derivatives. in: nat_coor[3], node_list[num nodes], out: coor[3*3], disp[3*6], matrices stored in the vector form (dx1/dr,...,dx3/dr, dx1/ds,...,dx3/ds, dx1/dt,...,dx3/dt) The default implementation does: x_der=sum(i=1..n, shape_der(i,r)*nodal_x(i)),
void sfem::element::ET::sortSimplexPoints | ( | ) | [protected] |
this methods resorts the simplex-points such that they have positive volume. It must be called after getSimplices() and will be called automatically by generateTopology().
std::vector<bool> sfem::element::ET::elemental_integration_types [protected] |
determines the type of the element integration: indices correpond to 'Type_elemental_integration_type' size()=NUM_ELEMENTAL_INTEGRATION_TYPES
const matrix_type sfem::element::ET::local_coordinates_of_inner_nodes [protected] |
the local coordinates of the inner (invisible) nodes (if any defined): [ r1 s1 t1, r2 s2 t2, ..., rn sn tn] (first index: x,y,z, second index: node index, fortran_storage_order)
const matrix_type sfem::element::ET::local_coordinates_of_nodes [protected] |
the local coordinates of the nodes (important for topology information): [ r1 s1 t1, r2 s2 t2, ..., rn sn tn] (first index: x,y,z, second index: node index, fortran_storage_order)
Type_shape_func sfem::element::ET::m_shape [protected] |
returns the shape function values at the given natural coordinate. in: nat_coor[3], out: shape[num nodes]
Type_shape_der_func sfem::element::ET::m_shape_grad [protected] |
returns the shape function derivatives at the given natural coordinate. in: nat_coor[3], out: shape[num nodes * 3] (dN(1)/dr,...,dN(n)/dr, dN(1)/ds,...,dN(n)/ds, dN(1)/dt,...,dN(n)/dt)
std::vector<bool> sfem::element::ET::physical_fields [protected] |
the types of physical fields this element covers. indices correspond to 'Type_physical_fields' size()=NUM_PHYSICAL_FIELDS