sfem::element::ET Class Reference

... the abstract base class for element types More...

#include <et.hpp>

Inheritance diagram for sfem::element::ET:

Inheritance graph
[legend]
Collaboration diagram for sfem::element::ET:

Collaboration graph
[legend]

List of all members.

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< ETEdgeType_edge_vector
enum  Type_elemental_integration_type { NODAL_CONTINUUM = 0, NUM_ELEMENTAL_INTEGRATION_TYPES }
typedef boost::ptr_vector< ETFaceType_face_vector
typedef std::vector< IntCell_ETType_intcell_vector
typedef std::vector
< MaterialIntptDef
Type_materialintpt_vector
typedef boost::ptr_vector< ETNodeType_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 IntegrationNodeTypenodalIntType () 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 IntegrationNodeTypenodal_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)


Detailed Description

... the abstract base class for element types

Member Function Documentation

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

Parameters:
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().


Member Data Documentation

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

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


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

Generated on Wed Nov 17 17:35:54 2010 for 'sfem' Module Programming Interface by  doxygen 1.5.6