ContinuumMechanicsNeumannBcsAssembler< DIM > Class Template Reference

#include <ContinuumMechanicsNeumannBcsAssembler.hpp>

Inherits AbstractFeAssemblerInterface< true, false >.

Collaboration diagram for ContinuumMechanicsNeumannBcsAssembler< DIM >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ContinuumMechanicsNeumannBcsAssembler (AbstractTetrahedralMesh< DIM, DIM > *pMesh, ContinuumMechanicsProblemDefinition< DIM > *pProblemDefinition)
virtual ~ContinuumMechanicsNeumannBcsAssembler ()

Protected Member Functions

void DoAssemble ()
void AssembleOnBoundaryElement (BoundaryElement< DIM-1, DIM > &rElement, c_vector< double, STENCIL_SIZE > &rBElem, unsigned boundaryConditionIndex)

Protected Attributes

AbstractTetrahedralMesh< DIM,
DIM > * 
mpMesh
ContinuumMechanicsProblemDefinition
< DIM > * 
mpProblemDefinition
GaussianQuadratureRule< DIM-1 > * mpQuadRule

Static Private Attributes

static const unsigned NUM_VERTICES_PER_ELEMENT = DIM
static const unsigned NUM_NODES_PER_ELEMENT = DIM*(DIM+1)/2
static const unsigned SPATIAL_BLOCK_SIZE_ELEMENTAL = DIM*NUM_NODES_PER_ELEMENT
static const unsigned PRESSURE_BLOCK_SIZE_ELEMENTAL = NUM_VERTICES_PER_ELEMENT
static const unsigned STENCIL_SIZE = DIM*NUM_NODES_PER_ELEMENT + NUM_VERTICES_PER_ELEMENT

Detailed Description

template<unsigned DIM>
class ContinuumMechanicsNeumannBcsAssembler< DIM >

Abstract class for assembling surface-integral parts of vectors in continuum mechanics problems.

For such problems, the matrix has the form [A B1] [B2^T C ] (where often B1=B2 and C=0) and the vector has the form [b1] [b2]

This class adds surface integral components, arising from natural Neumann boundary conditions, to the spatial part of the RHS vector, ie to b1.

Definition at line 70 of file ContinuumMechanicsNeumannBcsAssembler.hpp.


Constructor & Destructor Documentation

template<unsigned DIM>
ContinuumMechanicsNeumannBcsAssembler< DIM >::ContinuumMechanicsNeumannBcsAssembler ( AbstractTetrahedralMesh< DIM, DIM > *  pMesh,
ContinuumMechanicsProblemDefinition< DIM > *  pProblemDefinition 
) [inline]

Constructor

Parameters:
pMesh Pointer to the mesh
pProblemDefinition Pointer to the problem definition object

Definition at line 122 of file ContinuumMechanicsNeumannBcsAssembler.hpp.

References EXCEPTION, and ContinuumMechanicsNeumannBcsAssembler< DIM >::mpQuadRule.

template<unsigned DIM>
virtual ContinuumMechanicsNeumannBcsAssembler< DIM >::~ContinuumMechanicsNeumannBcsAssembler (  )  [inline, virtual]

Member Function Documentation

template<unsigned DIM>
void ContinuumMechanicsNeumannBcsAssembler< DIM >::AssembleOnBoundaryElement ( BoundaryElement< DIM-1, DIM > &  rElement,
c_vector< double, STENCIL_SIZE > &  rBElem,
unsigned  boundaryConditionIndex 
) [inline, protected]

Calculate the contribution of a single element to the linear system.

Parameters:
rElement The element to assemble on.
rBElem The element's contribution to the RHS vector is returned in this vector of length n, the no. of nodes in this element. There is no need to zero this vector before calling.
boundaryConditionIndex into the traction BCs structures in the problem definition

Definition at line 207 of file ContinuumMechanicsNeumannBcsAssembler.hpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetIndex(), GaussianQuadratureRule< ELEMENT_DIM >::GetNumQuadPoints(), GaussianQuadratureRule< ELEMENT_DIM >::GetWeight(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForBoundaryElement(), ContinuumMechanicsNeumannBcsAssembler< DIM >::mpMesh, ContinuumMechanicsNeumannBcsAssembler< DIM >::mpProblemDefinition, ContinuumMechanicsNeumannBcsAssembler< DIM >::mpQuadRule, NEVER_REACHED, ContinuumMechanicsNeumannBcsAssembler< DIM >::NUM_NODES_PER_ELEMENT, and GaussianQuadratureRule< ELEMENT_DIM >::rGetQuadPoint().

Referenced by ContinuumMechanicsNeumannBcsAssembler< DIM >::DoAssemble().

template<unsigned DIM>
void ContinuumMechanicsNeumannBcsAssembler< DIM >::DoAssemble (  )  [inline, protected, virtual]

Member Data Documentation

template<unsigned DIM>
AbstractTetrahedralMesh<DIM,DIM>* ContinuumMechanicsNeumannBcsAssembler< DIM >::mpMesh [protected]
template<unsigned DIM>
GaussianQuadratureRule<DIM-1>* ContinuumMechanicsNeumannBcsAssembler< DIM >::mpQuadRule [protected]
template<unsigned DIM>
const unsigned ContinuumMechanicsNeumannBcsAssembler< DIM >::NUM_NODES_PER_ELEMENT = DIM*(DIM+1)/2 [static, private]
template<unsigned DIM>
const unsigned ContinuumMechanicsNeumannBcsAssembler< DIM >::NUM_VERTICES_PER_ELEMENT = DIM [static, private]

Number of vertices per (boundary) element.

Definition at line 73 of file ContinuumMechanicsNeumannBcsAssembler.hpp.

Size of the pressure-block (the number of rows or columns in the submatrix C), restricted to one element

Definition at line 81 of file ContinuumMechanicsNeumannBcsAssembler.hpp.

template<unsigned DIM>
const unsigned ContinuumMechanicsNeumannBcsAssembler< DIM >::SPATIAL_BLOCK_SIZE_ELEMENTAL = DIM*NUM_NODES_PER_ELEMENT [static, private]

Size of the spatial-block (the number or rows or columns in the submatrix A), restricted to one element

Definition at line 79 of file ContinuumMechanicsNeumannBcsAssembler.hpp.

template<unsigned DIM>
const unsigned ContinuumMechanicsNeumannBcsAssembler< DIM >::STENCIL_SIZE = DIM*NUM_NODES_PER_ELEMENT + NUM_VERTICES_PER_ELEMENT [static, private]

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

Generated by  doxygen 1.6.2