Chaste Commit::1fd4e48e3990e67db148bc1bc4cf6991a0049d0c
ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <ImmersedBoundaryElement.hpp>

+ Inheritance diagram for ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >:
+ Collaboration diagram for ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >:

Public Member Functions

 ImmersedBoundaryElement (unsigned index, const std::vector< Node< SPACE_DIM > * > &rNodes)
 
virtual ~ImmersedBoundaryElement ()
 
void SetFluidSource (std::shared_ptr< FluidSource< SPACE_DIM > > fluidSource)
 
std::shared_ptr< FluidSource< SPACE_DIM > > GetFluidSource ()
 
std::vector< Node< SPACE_DIM > * > & rGetCornerNodes ()
 
double GetAverageNodeSpacing ()
 
void SetAverageNodeSpacing (double averageNodeSpacing)
 
virtual bool IsElementOnBoundary () const
 
void SetIsBoundaryElement (bool isBoundaryElement)
 
void AddCornerNode (Node< SPACE_DIM > *node)
 
- Public Member Functions inherited from MutableElement< ELEMENT_DIM, SPACE_DIM >
 MutableElement (unsigned index)
 
 MutableElement (unsigned index, const std::vector< Node< SPACE_DIM > * > &rNodes)
 
virtual ~MutableElement ()
 
void RegisterWithNodes ()
 
void MarkAsDeleted ()
 
void ResetIndex (unsigned index)
 
void UpdateNode (const unsigned &rIndex, Node< SPACE_DIM > *pNode)
 
void DeleteNode (const unsigned &rIndex)
 
void AddNode (Node< SPACE_DIM > *pNode, const unsigned &rIndex)
 
unsigned GetNodeLocalIndex (unsigned globalIndex) const
 
void RegisterWithEdges ()
 
void RebuildEdges ()
 
void SetEdgeHelper (EdgeHelper< SPACE_DIM > *pEdgeHelper)
 
void ClearEdges ()
 
void BuildEdges ()
 
unsigned GetEdgeGlobalIndex (unsigned localIndex) const
 
Edge< SPACE_DIM > * GetEdge (unsigned localIndex) const
 
unsigned GetNumEdges () const
 
std::set< unsignedGetNeighbouringElementAtEdgeIndex (unsigned localIndex)
 
bool ContainsEdge (const Edge< SPACE_DIM > *pEdge) const
 
long GetLocalEdgeIndex (const Edge< SPACE_DIM > *pEdge) const
 
- Public Member Functions inherited from AbstractElement< ELEMENT_DIM, SPACE_DIM >
 AbstractElement (unsigned index, const std::vector< Node< SPACE_DIM > * > &rNodes)
 
 AbstractElement (unsigned index=INDEX_IS_NOT_USED)
 
virtual ~AbstractElement ()
 
void ReplaceNode (Node< SPACE_DIM > *pOldNode, Node< SPACE_DIM > *pNewNode)
 
double GetNodeLocation (unsigned localIndex, unsigned dimension) const
 
c_vector< double, SPACE_DIM > GetNodeLocation (unsigned localIndex) const
 
unsigned GetNodeGlobalIndex (unsigned localIndex) const
 
Node< SPACE_DIM > * GetNode (unsigned localIndex) const
 
unsigned GetNumNodes () const
 
void AddNode (Node< SPACE_DIM > *pNode)
 
bool IsDeleted () const
 
unsigned GetIndex () const
 
void SetIndex (unsigned index)
 
bool GetOwnership () const
 
void SetOwnership (bool ownership)
 
void SetAttribute (double attribute)
 
double GetAttribute ()
 
unsigned GetUnsignedAttribute ()
 
void AddElementAttribute (double attribute)
 
std::vector< double > & rGetElementAttributes ()
 
unsigned GetNumElementAttributes ()
 

Private Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 

Private Attributes

std::shared_ptr< FluidSource< SPACE_DIM > > mpFluidSource
 
std::vector< Node< SPACE_DIM > * > mCornerNodes
 
double mAverageNodeSpacing
 
bool mIsBoundaryElement
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Protected Member Functions inherited from AbstractElement< ELEMENT_DIM, SPACE_DIM >
void ConstructElementAttributes ()
 
- Protected Attributes inherited from MutableElement< ELEMENT_DIM, SPACE_DIM >
std::vector< Edge< SPACE_DIM > * > mEdges
 
EdgeHelper< SPACE_DIM > * mEdgeHelper
 
- Protected Attributes inherited from AbstractElement< ELEMENT_DIM, SPACE_DIM >
std::vector< Node< SPACE_DIM > * > mNodes
 
unsigned mIndex
 
bool mIsDeleted
 
bool mOwnership
 
ElementAttributes< ELEMENT_DIM, SPACE_DIM > * mpElementAttributes
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
class ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >

An element class for use in the ImmersedBoundaryMesh class. The main difference between this and the Element class is that a ImmersedBoundaryElement can have a variable number of nodes associated with it.

Definition at line 53 of file ImmersedBoundaryElement.hpp.

Constructor & Destructor Documentation

◆ ImmersedBoundaryElement()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::ImmersedBoundaryElement ( unsigned  index,
const std::vector< Node< SPACE_DIM > * > &  rNodes 
)

Constructor.

Parameters
indexglobal index of the element
rNodesvector of Nodes associated with the element

Definition at line 40 of file ImmersedBoundaryElement.cpp.

References NEVER_REACHED.

◆ ~ImmersedBoundaryElement()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::~ImmersedBoundaryElement ( )
virtual

Destructor.

Definition at line 59 of file ImmersedBoundaryElement.cpp.

Member Function Documentation

◆ AddCornerNode()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::AddCornerNode ( Node< SPACE_DIM > *  node)
Parameters
nodethe node to add as a corner node

Definition at line 106 of file ImmersedBoundaryElement.cpp.

◆ GetAverageNodeSpacing()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::GetAverageNodeSpacing ( )
Returns
the average node spacing.

Definition at line 82 of file ImmersedBoundaryElement.cpp.

◆ GetFluidSource()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::shared_ptr< FluidSource< SPACE_DIM > > ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::GetFluidSource ( )

Get the fluid source associated with this element

Returns
pointer to the fluid source

Definition at line 70 of file ImmersedBoundaryElement.cpp.

Referenced by ImmersedBoundaryMesh< ELEMENT_DIM, SPACE_DIM >::DivideElement().

◆ IsElementOnBoundary()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::IsElementOnBoundary ( ) const
virtual

Overridden method to get whether or not the element is on the boundary.

Returns
whether or not the element is on the boundary.

Reimplemented from MutableElement< ELEMENT_DIM, SPACE_DIM >.

Definition at line 94 of file ImmersedBoundaryElement.cpp.

◆ rGetCornerNodes()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< Node< SPACE_DIM > * > & ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::rGetCornerNodes ( )
Returns
the vector of corner nodes.

Don't forget to assign the result of this call to a reference!

Definition at line 76 of file ImmersedBoundaryElement.cpp.

Referenced by ImmersedBoundaryMesh< ELEMENT_DIM, SPACE_DIM >::DivideElement().

◆ serialize()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
template<class Archive >
void ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

Serialize the object and its member variables.

Note that serialization of the mesh and cells is handled by load/save_construct_data.

Note also that member data related to writers is not saved - output must be set up again by the caller after a restart.

Parameters
archivethe archive
versionthe current version of this class

Definition at line 84 of file ImmersedBoundaryElement.hpp.

◆ SetAverageNodeSpacing()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::SetAverageNodeSpacing ( double  averageNodeSpacing)
Parameters
averageNodeSpacingthe new average node spacing.

Definition at line 88 of file ImmersedBoundaryElement.cpp.

◆ SetFluidSource()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::SetFluidSource ( std::shared_ptr< FluidSource< SPACE_DIM > >  fluidSource)

Set mpFluidSource.

Parameters
fluidSourcethe fluid source associated with this element

Definition at line 64 of file ImmersedBoundaryElement.cpp.

◆ SetIsBoundaryElement()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::SetIsBoundaryElement ( bool  isBoundaryElement)
Parameters
isBoundaryElementwhether the element is on the boundary

Definition at line 100 of file ImmersedBoundaryElement.cpp.

Referenced by ImmersedBoundaryHoneycombMeshGenerator::ImmersedBoundaryHoneycombMeshGenerator(), and ImmersedBoundaryMesh< ELEMENT_DIM, SPACE_DIM >::TagBoundaryElements().

Friends And Related Symbol Documentation

◆ boost::serialization::access

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 64 of file ImmersedBoundaryElement.hpp.

Member Data Documentation

◆ mAverageNodeSpacing

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::mAverageNodeSpacing
private

The average node spacing.

Definition at line 67 of file ImmersedBoundaryElement.hpp.

◆ mCornerNodes

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<Node<SPACE_DIM>*> ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::mCornerNodes
private

Corner nodes associated with this element.

Definition at line 61 of file ImmersedBoundaryElement.hpp.

◆ mIsBoundaryElement

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::mIsBoundaryElement
private

Whether this element is on the boundary. This is a non-local property so must be calculated by the mesh.

Definition at line 70 of file ImmersedBoundaryElement.hpp.

◆ mpFluidSource

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::shared_ptr<FluidSource<SPACE_DIM> > ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >::mpFluidSource
private

Fluid source associated with this element.

Definition at line 58 of file ImmersedBoundaryElement.hpp.


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