$treeview $search $mathjax
Palabos  Version 1.1
$projectbrief
$projectbrief
$searchbox

plb::TriangleBoundary3D< T > Class Template Reference

#include <triangleBoundary3D.h>

Collaboration diagram for plb::TriangleBoundary3D< T >:

List of all members.

Public Member Functions

 TriangleBoundary3D (DEFscaledMesh< T > const &defMesh, bool automaticCloseHoles=true)
 ~TriangleBoundary3D ()
 TriangleBoundary3D (TriangleBoundary3D< T > const &rhs)
TriangleBoundary3D< T > & operator= (TriangleBoundary3D< T > const &rhs)
void swap (TriangleBoundary3D< T > &rhs)
TriangleBoundary3D< T > const & select (plint whichTopology, plint whichVertices) const
TriangleBoundary3D< T > const & pushSelect (plint whichTopology, plint whichVertices) const
TriangleBoundary3D< T > const & popSelect () const
void getSelection (plint &whichTopology, plint &whichVertices) const
TriangularSurfaceMesh< T > & getMesh ()
 Get a reference to the currently active mesh.
TriangularSurfaceMesh< T > const & getMesh () const
 Get a const reference to the currently active mesh.
VertexProperty3D< T > const * getVertexProperty (plint iVertex) const
bool intersectSegment (plint iTriangle, AtomicBlock3D *boundaryArg, Array< T, 3 > const &fromPoint, Array< T, 3 > const &direction, Array< T, 3 > &locatedPoint, T &distance, Array< T, 3 > &wallNormal) const
Array< T, 3 > computeContinuousNormal (Array< T, 3 > const &p, plint iTriangle, bool isAreaWeighted=false) const
void cloneVertexSet (plint whichVertexSet)
 Create a new set of vertices, and an associated open and closed mesh.
Array< T, 3 > getPhysicalLocation () const
 Coordinates of the lower-left corner in physical units.
getDx () const
 Size of a grid spacing.
std::vector< typename
TriangularSurfaceMesh< T >
::Lid > const & 
getInletOutlet () const
 Get a list of all inlets and outlets (no specific sorting order).
std::vector< typename
TriangularSurfaceMesh< T >
::Lid > 
getInletOutlet (plint sortDirection) const
 Get a list of all inlets and outlets, sorted along a given direction.
template<typename DomainFunctional >
plint tagDomain (DomainFunctional functional)
template<typename DomainFunctional >
plint tagDomain (DomainFunctional functional, Array< T, 3 > normal, T angleTolerance, plint previousTag=-1)
std::vector< plintgetInletOutletIds (plint sortDirection) const
void getLidProperties (plint sortDirection, std::vector< Array< T, 3 > > &normal, std::vector< Array< T, 3 > > &center, std::vector< T > &radius) const
template<typename DomainFunctional >
plint setVertexProperty (VertexProperty3D< T > const &property, DomainFunctional functional)
plint getMargin () const
plint getTag (plint iTriangle) const
std::vector< plint > const & getTriangleTags () const
std::vector< plint > const & getVertexTags () const

template<typename T>
class plb::TriangleBoundary3D< T >


Constructor & Destructor Documentation

template<typename T >
plb::TriangleBoundary3D< T >::TriangleBoundary3D ( DEFscaledMesh< T > const &  defMesh,
bool  automaticCloseHoles = true 
) [inline]
template<typename T >
plb::TriangleBoundary3D< T >::~TriangleBoundary3D (  )  [inline]
template<typename T >
plb::TriangleBoundary3D< T >::TriangleBoundary3D ( TriangleBoundary3D< T > const &  rhs  )  [inline]

Member Function Documentation

template<typename T >
void plb::TriangleBoundary3D< T >::cloneVertexSet ( plint  whichVertexSet  )  [inline]

Create a new set of vertices, and an associated open and closed mesh.

References PLB_PRECONDITION.

template<typename T >
Array< T, 3 > plb::TriangleBoundary3D< T >::computeContinuousNormal ( Array< T, 3 > const &  p,
plint  iTriangle,
bool  isAreaWeighted = false 
) const [inline]

Given a point p on the surface of the shape, determine its "continuous normal". If the shape is for example piecewise linear, the normal is adjusted to vary continuously over the surface.

References plb::TriangleBoundary3D< T >::getMesh().

template<typename T>
T plb::TriangleBoundary3D< T >::getDx (  )  const [inline]

Size of a grid spacing.

template<typename T >
std::vector< typename TriangularSurfaceMesh< T >::Lid > plb::TriangleBoundary3D< T >::getInletOutlet ( plint  sortDirection  )  const [inline]

Get a list of all inlets and outlets, sorted along a given direction.

This information can be used as a hint to select the boundary condition associated to each inlet/outlet. Access the variable lid.baryCenter to know the location of a given inlet/outlet.

References plb::TriangleBoundary3D< T >::getMesh(), and PLB_PRECONDITION.

template<typename T >
std::vector< typename TriangularSurfaceMesh< T >::Lid > const & plb::TriangleBoundary3D< T >::getInletOutlet (  )  const [inline]

Get a list of all inlets and outlets (no specific sorting order).

References PLB_PRECONDITION.

template<typename T >
std::vector< plint > plb::TriangleBoundary3D< T >::getInletOutletIds ( plint  sortDirection  )  const [inline]
template<typename T >
void plb::TriangleBoundary3D< T >::getLidProperties ( plint  sortDirection,
std::vector< Array< T, 3 > > &  normal,
std::vector< Array< T, 3 > > &  center,
std::vector< T > &  radius 
) const [inline]
template<typename T >
plint plb::TriangleBoundary3D< T >::getMargin (  )  const [inline]
template<typename T >
TriangularSurfaceMesh< T > const & plb::TriangleBoundary3D< T >::getMesh (  )  const [inline]

Get a const reference to the currently active mesh.

template<typename T>
Array<T,3> plb::TriangleBoundary3D< T >::getPhysicalLocation (  )  const [inline]

Coordinates of the lower-left corner in physical units.

template<typename T >
void plb::TriangleBoundary3D< T >::getSelection ( plint whichTopology,
plint whichVertices 
) const [inline]
template<typename T >
plint plb::TriangleBoundary3D< T >::getTag ( plint  iTriangle  )  const [inline]

Return the tag (id of boundary-portion with specific boundary condition) of a triangle.

References PLB_ASSERT.

template<typename T>
std::vector<plint> const& plb::TriangleBoundary3D< T >::getTriangleTags (  )  const [inline]
template<typename T >
VertexProperty3D< T > const * plb::TriangleBoundary3D< T >::getVertexProperty ( plint  iVertex  )  const [inline]

Get the material property (for example the elasticity constants) implemented on a given vertex (the answer is independent of the currently active mesh).

References PLB_ASSERT.

template<typename T>
std::vector<plint> const& plb::TriangleBoundary3D< T >::getVertexTags (  )  const [inline]
template<typename T >
bool plb::TriangleBoundary3D< T >::intersectSegment ( plint  iTriangle,
AtomicBlock3D boundaryArg,
Array< T, 3 > const &  fromPoint,
Array< T, 3 > const &  direction,
Array< T, 3 > &  locatedPoint,
T &  distance,
Array< T, 3 > &  wallNormal 
) const [inline]

Get intersection between a line segment (fromPoint,fromPoint+direction) and a given triangle in the currently active mesh; return true incase of success.

References plb::doesIntersect(), and plb::TriangleBoundary3D< T >::getMesh().

template<typename T >
TriangleBoundary3D< T > & plb::TriangleBoundary3D< T >::operator= ( TriangleBoundary3D< T > const &  rhs  )  [inline]
template<typename T >
TriangleBoundary3D< T > const & plb::TriangleBoundary3D< T >::popSelect (  )  const [inline]

Recover the previous selection of the mesh, stored through a call to pushSelect.

References PLB_PRECONDITION.

template<typename T >
TriangleBoundary3D< T > const & plb::TriangleBoundary3D< T >::pushSelect ( plint  whichTopology,
plint  whichVertices 
) const [inline]

Select the mesh which is subsequently being referred to in calls to the methods of this class. Save the previous selection, which can be recovered through a call to popSelect.

References PLB_PRECONDITION.

template<typename T >
TriangleBoundary3D< T > const & plb::TriangleBoundary3D< T >::select ( plint  whichTopology,
plint  whichVertices 
) const [inline]

Select the mesh which is subsequently being referred to in calls to the methods of this class.

References PLB_PRECONDITION.

template<typename T >
template<typename DomainFunctional >
plint plb::TriangleBoundary3D< T >::setVertexProperty ( VertexProperty3D< T > const &  property,
DomainFunctional  functional 
) [inline]

Define the material property to be used on all vertices contained in the domain specified by the domain functional. Returns the tag which was assigned to the corresponding vertices.

References plb::VertexProperty3D< T >::clone(), plb::TriangleBoundary3D< T >::getMesh(), PLB_ASSERT, and PLB_PRECONDITION.

template<typename T >
void plb::TriangleBoundary3D< T >::swap ( TriangleBoundary3D< T > &  rhs  )  [inline]
template<typename T >
template<typename DomainFunctional >
plint plb::TriangleBoundary3D< T >::tagDomain ( DomainFunctional  functional,
Array< T, 3 >  normal,
angleTolerance,
plint  previousTag = -1 
) [inline]
template<typename T >
template<typename DomainFunctional >
plint plb::TriangleBoundary3D< T >::tagDomain ( DomainFunctional  functional  )  [inline]

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