DeformedBoundaryElement< ELEM_DIM, SPACE_DIM > Class Template Reference

#include <DeformedBoundaryElement.hpp>

Inherits BoundaryElement< ELEM_DIM, SPACE_DIM >.

Collaboration diagram for DeformedBoundaryElement< ELEM_DIM, SPACE_DIM >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 DeformedBoundaryElement ()
 ~DeformedBoundaryElement ()
void ApplyUndeformedElementAndDisplacement (BoundaryElement< ELEM_DIM, SPACE_DIM > *pUndeformedElement, std::vector< c_vector< double, SPACE_DIM > > &rDisplacement)

Static Private Attributes

static const size_t NUM_NODES = ELEM_DIM+1

Detailed Description

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
class DeformedBoundaryElement< ELEM_DIM, SPACE_DIM >

The mechanics solvers in some cases require performing integration over deformed surfaces, for which this class is a helper class. It takes in an base boundary element, and a set of displacements for each node of the mesh, and sets up the corresponding deformed boundary element, on which CalculateNormal(), ComputeJacobianDeterminant() etc can be called.

Note: just use the vertices of the elements, ignores internal nodes, hence this class is treats the element as a linear element (ie ignores the possible curved deformed edges). Hence the outward normal, jacobian determinant etc is constant across the element.

Definition at line 50 of file DeformedBoundaryElement.hpp.


Constructor & Destructor Documentation

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
DeformedBoundaryElement< ELEM_DIM, SPACE_DIM >::DeformedBoundaryElement (  )  [inline]

Constructor.

Sets up the nodes of the mesh. Gives them the locations of the canonical element (although this will be overwritten when the undeformed element is given in ApplyUndeformedElementAndDisplacement()

Definition at line 32 of file DeformedBoundaryElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::AddNode().

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
DeformedBoundaryElement< ELEM_DIM, SPACE_DIM >::~DeformedBoundaryElement (  )  [inline]

Destructor deletes the nodes in the element (as they were created in the constructor)

Definition at line 54 of file DeformedBoundaryElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.


Member Function Documentation

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
void DeformedBoundaryElement< ELEM_DIM, SPACE_DIM >::ApplyUndeformedElementAndDisplacement ( BoundaryElement< ELEM_DIM, SPACE_DIM > *  pUndeformedElement,
std::vector< c_vector< double, SPACE_DIM > > &  rDisplacement 
) [inline]

Apply an undeformed boundary element and corresponding displacements of each node (Note: just displacements of the vertices of the element, not any internal nodes).

Over-writes the nodal locations with the given data.

Parameters:
pUndeformedElement The undeformed element
rDisplacement Displacement of each node (should be of size ELEM_DIM+1, ie num vertices in the element).

Definition at line 63 of file DeformedBoundaryElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), and DeformedBoundaryElement< ELEM_DIM, SPACE_DIM >::NUM_NODES.

Referenced by IncompressibleNonlinearElasticitySolver< DIM >::AssembleOnBoundaryElement(), and CompressibleNonlinearElasticitySolver< DIM >::AssembleOnBoundaryElement().


Member Data Documentation

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
const size_t DeformedBoundaryElement< ELEM_DIM, SPACE_DIM >::NUM_NODES = ELEM_DIM+1 [static, private]

Number of nodes (or actually, vertices) per boundary element.

Definition at line 54 of file DeformedBoundaryElement.hpp.

Referenced by DeformedBoundaryElement< ELEM_DIM, SPACE_DIM >::ApplyUndeformedElementAndDisplacement().


The documentation for this class was generated from the following files:
Generated on Thu Dec 22 13:04:13 2011 for Chaste by  doxygen 1.6.3