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

plb::BoundaryShapeIntersection3D< T, SurfaceData > Class Template Reference

#include <boundaryShapes3D.h>

Inheritance diagram for plb::BoundaryShapeIntersection3D< T, SurfaceData >:
Collaboration diagram for plb::BoundaryShapeIntersection3D< T, SurfaceData >:

List of all members.

Public Member Functions

 BoundaryShapeIntersection3D ()
virtual ~BoundaryShapeIntersection3D ()
 BoundaryShapeIntersection3D (BoundaryShapeIntersection3D< T, SurfaceData > const &rhs)
BoundaryShapeIntersection3D< T,
SurfaceData > & 
operator= (BoundaryShapeIntersection3D< T, SurfaceData > const &rhs)
void swap (BoundaryShapeIntersection3D< T, SurfaceData > &rhs)
void addComponent (BoundaryShape3D< T, SurfaceData > *component)
virtual bool isInside (Array< T, 3 > const &location) const
virtual bool isInside (Array< T, 3 > const &location, T epsilon) const
virtual bool pointOnSurface (Array< T, 3 > const &fromPoint, Array< T, 3 > const &direction, Array< T, 3 > &locatedPoint, T &distance, Array< T, 3 > &wallNormal, SurfaceData &surfaceData, OffBoundary::Type &bdType, plint &id) const
virtual bool intersectsSurface (Array< T, 3 > const &p1, Array< T, 3 > const &p2, plint &id) const
 Say if a given segment intersects the surface.
virtual bool distanceToSurface (Array< T, 3 > const &point, T &distance, bool &isBehind) const
virtual plint getTag (plint id) const
virtual
BoundaryShapeIntersection3D< T,
SurfaceData > * 
clone () const
 Plain clone function.

template<typename T, class SurfaceData>
class plb::BoundaryShapeIntersection3D< T, SurfaceData >


Constructor & Destructor Documentation

template<typename T , class SurfaceData >
plb::BoundaryShapeIntersection3D< T, SurfaceData >::BoundaryShapeIntersection3D (  )  [inline]
template<typename T , class SurfaceData >
plb::BoundaryShapeIntersection3D< T, SurfaceData >::~BoundaryShapeIntersection3D (  )  [inline, virtual]
template<typename T , class SurfaceData >
plb::BoundaryShapeIntersection3D< T, SurfaceData >::BoundaryShapeIntersection3D ( BoundaryShapeIntersection3D< T, SurfaceData > const &  rhs  )  [inline]

Member Function Documentation

template<typename T , class SurfaceData >
void plb::BoundaryShapeIntersection3D< T, SurfaceData >::addComponent ( BoundaryShape3D< T, SurfaceData > *  component  )  [inline]
template<typename T , class SurfaceData >
BoundaryShapeIntersection3D< T, SurfaceData > * plb::BoundaryShapeIntersection3D< T, SurfaceData >::clone (  )  const [inline, virtual]

Plain clone function.

Implements plb::BoundaryShape3D< T, SurfaceData >.

template<typename T , class SurfaceData >
bool plb::BoundaryShapeIntersection3D< T, SurfaceData >::distanceToSurface ( Array< T, 3 > const &  point,
T &  distance,
bool &  isBehind 
) const [inline, virtual]

Get the shortest distance to the wall. Returns true in case of success. The flag isBehind indicates if the point is "behind" the wall, i.e. in the direction opposite to the wall normal.

Implements plb::BoundaryShape3D< T, SurfaceData >.

template<typename T , class SurfaceData >
plint plb::BoundaryShapeIntersection3D< T, SurfaceData >::getTag ( plint  id  )  const [inline, virtual]

Return the tag (id of boundary-portion with specific boundary, condition); the id is the one returned by pointOnSurface.

Implements plb::BoundaryShape3D< T, SurfaceData >.

template<typename T , class SurfaceData >
bool plb::BoundaryShapeIntersection3D< T, SurfaceData >::intersectsSurface ( Array< T, 3 > const &  p1,
Array< T, 3 > const &  p2,
plint id 
) const [inline, virtual]
template<typename T , class SurfaceData >
bool plb::BoundaryShapeIntersection3D< T, SurfaceData >::isInside ( Array< T, 3 > const &  location,
epsilon 
) const [inline, virtual]
template<typename T , class SurfaceData >
bool plb::BoundaryShapeIntersection3D< T, SurfaceData >::isInside ( Array< T, 3 > const &  location  )  const [inline, virtual]
template<typename T , class SurfaceData >
BoundaryShapeIntersection3D< T, SurfaceData > & plb::BoundaryShapeIntersection3D< T, SurfaceData >::operator= ( BoundaryShapeIntersection3D< T, SurfaceData > const &  rhs  )  [inline]
template<typename T , class SurfaceData >
bool plb::BoundaryShapeIntersection3D< T, SurfaceData >::pointOnSurface ( Array< T, 3 > const &  fromPoint,
Array< T, 3 > const &  direction,
Array< T, 3 > &  locatedPoint,
T &  distance,
Array< T, 3 > &  wallNormal,
SurfaceData &  surfaceData,
OffBoundary::Type bdType,
plint id 
) const [inline, virtual]

Get the distance to the wall, and the velocity value on the wall, from a given real-valued position (in lattice units), and along a given direction. Returns true if there exists an intersection along the indicated direction. ATTENTION: The id is an in-and-out value. If you know the right id of the surface intersection (e.g. the triangle ID in case of a triangular mesh) you can provide it to speed up the calculation. However, if you don't know it, you MUST provide the value -1, because otherwise the result might be wrong.

Implements plb::BoundaryShape3D< T, SurfaceData >.

References plb::doesIntersect().

Referenced by plb::BoundaryShapeIntersection3D< T, SurfaceData >::intersectsSurface().

template<typename T , class SurfaceData >
void plb::BoundaryShapeIntersection3D< T, SurfaceData >::swap ( BoundaryShapeIntersection3D< T, SurfaceData > &  rhs  )  [inline]

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