INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix > Class Template Reference

Inheritance diagram for INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >:
Inheritance graph
[legend]
Collaboration diagram for INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef MyMeshType::MyConnType ConnType

Public Member Functions

 PlanarIntersector (const MyMeshType &meshT, const MyMeshType &meshS, double dimCaracteristic, double precision, double md3DSurf, double medianPlane, bool doRotate, int orientation, int printLevel)
virtual ~PlanarIntersector ()
void createBoundingBoxes (const MyMeshType &mesh, std::vector< double > &bbox)
void adjustBoundingBoxes (std::vector< double > &bbox, double surf3DAdjustmentEps, double surf3DAdjustmentEpsAbs)
void getElemBB (double *bb, const MyMeshType &mesh, ConnType iP, ConnType nb_nodes)

Static Public Attributes

static const int SPACEDIM = MyMeshType::MY_SPACEDIM
static const int MESHDIM = MyMeshType::MY_MESHDIM
static const NumberingPolicy numPol = MyMeshType::My_numPol

Protected Member Functions

int projectionThis (double *Coords_A, double *Coords_B, int nb_NodesA, int nb_NodesB)
void getRealTargetCoordinates (ConnType icellT, std::vector< double > &coordsT)
void getRealSourceCoordinates (ConnType icellS, std::vector< double > &coordsS)
void getRealTargetCoordinatesPermute (ConnType icellT, int offset, std::vector< double > &coordsT)
void getRealSourceCoordinatesPermute (ConnType icellS, int offset, std::vector< double > &coordsS)
void getRealCoordinates (ConnType icellT, ConnType icellS, ConnType nbNodesT, ConnType nbNodesS, std::vector< double > &coordsT, std::vector< double > &coordsS, int &orientation)
double getValueRegardingOption (double val) const

Static Protected Member Functions

static int projection (double *Coords_A, double *Coords_B, int nb_NodesA, int nb_NodesB, double epsilon, double md3DSurf, double median_plane, bool do_rotate)
static void rotate3DTriangle (double *PP1, double *PP2, double *PP3, TranslationRotationMatrix &rotation_matrix)

Protected Attributes

const ConnType_connectT
const ConnType_connectS
const double * _coordsT
const double * _coordsS
const ConnType_connIndexT
const ConnType_connIndexS
const MyMeshType & _meshT
const MyMeshType & _meshS
double _dim_caracteristic
double _max_distance_3Dsurf_intersect
double _precision
double _median_plane
bool _do_rotate
int _orientation
int _print_level

template<class MyMeshType, class MyMatrix>
class INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >


Member Typedef Documentation

template<class MyMeshType, class MyMatrix>
typedef MyMeshType::MyConnType INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::ConnType

Constructor & Destructor Documentation

template<class MyMeshType , class MyMatrix >
INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::PlanarIntersector ( const MyMeshType &  meshT,
const MyMeshType &  meshS,
double  dimCaracteristic,
double  precision,
double  md3DSurf,
double  medianPlane,
bool  doRotate,
int  orientation,
int  printLevel 
)
template<class MyMeshType , class MyMatrix >
INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::~PlanarIntersector (  )  [virtual]

Member Function Documentation

template<class MyMeshType , class MyMatrix >
void INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::createBoundingBoxes ( const MyMeshType &  mesh,
std::vector< double > &  bbox 
)

creates the bounding boxes for all the cells of mesh mesh

The method accepts mixed meshes (containing triangles and quadrangles). The vector returned is of dimension 6*nb_elems with bounding boxes stored as xmin1, xmax1, ymin1, ymax1, zmin1, zmax1, xmin2, xmax2, ymin2,... The returned pointer must be deleted by the calling code.

Parameters:
mesh structure pointing to the mesh
bbox vector containing the bounding boxes

References INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::SPACEDIM.

template<class MyMeshType , class MyMatrix >
void INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::adjustBoundingBoxes ( std::vector< double > &  bbox,
double  surf3DAdjustmentEps,
double  surf3DAdjustmentEpsAbs 
)

Readjusts a set of bounding boxes so that they are extended in all dimensions for avoiding missing interesting intersections

Parameters:
bbox vector containing the bounding boxes

References INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::SPACEDIM.

Referenced by INTERP_KERNEL::Interpolation3DSurf::performAdjustmentOfBB().

template<class MyMeshType , class MyMatrix >
void INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::getElemBB ( double *  bb,
const MyMeshType &  mesh,
ConnType  iP,
ConnType  nb_nodes 
)

Computes the bouding box of a given element. iP in numPol mode.

References INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::SPACEDIM.

template<class MyMeshType , class MyMatrix >
int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::projectionThis ( double *  Coords_A,
double *  Coords_B,
int  nb_NodesA,
int  nb_NodesB 
) [protected]
template<class MyMeshType , class MyMatrix >
void INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::getRealTargetCoordinates ( ConnType  icellT,
std::vector< double > &  coordsT 
) [protected]
Parameters:
icellT id in target mesh in format of MyMeshType.
coordsT output val that stores coordinates of the target cell automatically resized to the right length.

References INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connectT, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connIndexT, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_coordsT, and INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::SPACEDIM.

template<class MyMeshType , class MyMatrix >
void INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::getRealSourceCoordinates ( ConnType  icellS,
std::vector< double > &  coordsS 
) [protected]
Parameters:
icellS id in source mesh in format of MyMeshType.
coordsS output val that stores coordinates of the source cell automatically resized to the right length.

References INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connectS, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connIndexS, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_coordsS, and INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::SPACEDIM.

template<class MyMeshType , class MyMatrix >
void INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::getRealTargetCoordinatesPermute ( ConnType  icellT,
int  offset,
std::vector< double > &  coordsT 
) [protected]
Parameters:
icellT id in target mesh in format of MyMeshType.
offset is a value in C format that indicates the number of circular permutation.
coordsT output val that stores coordinates of the target cell automatically resized to the right length.

References INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connectT, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connIndexT, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_coordsT, and INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::SPACEDIM.

template<class MyMeshType , class MyMatrix >
void INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::getRealSourceCoordinatesPermute ( ConnType  icellS,
int  offset,
std::vector< double > &  coordsS 
) [protected]
Parameters:
icellS id in source mesh in format of MyMeshType.
offset is a value in C format that indicates the number of circular permutation.
coordsS output val that stores coordinates of the source cell automatically resized to the right length.

References INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connectS, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connIndexS, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_coordsS, and INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::SPACEDIM.

template<class MyMeshType , class MyMatrix >
void INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::getRealCoordinates ( ConnType  icellT,
ConnType  icellS,
ConnType  nbNodesT,
ConnType  nbNodesS,
std::vector< double > &  coordsT,
std::vector< double > &  coordsS,
int &  orientation 
) [protected]
Parameters:
icellT id in target mesh in format of MyMeshType.
icellS id in source mesh in format of MyMeshType.
nbNodesT nb of nodes of the target cell.
nbNodesS nb of nodes of the source cell.
coordsT output val that stores coordinates of the target cell automatically resized to the right length.
coordsS output val that stores coordinates of the source cell automatically resized to the right length.
orientation is an output value too, only set if SPACEDIM==3.

References INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connectS, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connectT, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connIndexS, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connIndexT, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_coordsS, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_coordsT, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_print_level, INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::projectionThis(), and INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::SPACEDIM.

template<class MyMeshType , class MyMatrix >
double INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::getValueRegardingOption ( double  val  )  const [protected]

Filtering out zero surfaces and badly oriented surfaces _orientation = -1,0,1,2 -1 : the intersection is taken into account if target and cells have different orientation 0 : the intersection is always taken into account 1 : the intersection is taken into account if target and cells have the same orientation 2 : the absolute value of intersection is always taken into account

References INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_orientation.

template<class MyMeshType , class MyMatrix >
int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::projection ( double *  Coords_A,
double *  Coords_B,
int  nb_NodesA,
int  nb_NodesB,
double  epsilon,
double  md3DSurf,
double  median_plane,
bool  do_rotate 
) [static, protected]
template<class MyMeshType , class MyMatrix >
void INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::rotate3DTriangle ( double *  PP1,
double *  PP2,
double *  PP3,
TranslationRotationMatrix &  rotation_matrix 
) [static, protected]

Member Data Documentation

template<class MyMeshType, class MyMatrix>
const int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::SPACEDIM = MyMeshType::MY_SPACEDIM [static]
template<class MyMeshType, class MyMatrix>
const int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::MESHDIM = MyMeshType::MY_MESHDIM [static]
template<class MyMeshType, class MyMatrix>
const NumberingPolicy INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::numPol = MyMeshType::My_numPol [static]
template<class MyMeshType, class MyMatrix>
const ConnType* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connectT [protected]
template<class MyMeshType, class MyMatrix>
const ConnType* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connectS [protected]
template<class MyMeshType, class MyMatrix>
const double* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_coordsT [protected]
template<class MyMeshType, class MyMatrix>
const double* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_coordsS [protected]
template<class MyMeshType, class MyMatrix>
const ConnType* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connIndexT [protected]
template<class MyMeshType, class MyMatrix>
const ConnType* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connIndexS [protected]
template<class MyMeshType, class MyMatrix>
const MyMeshType& INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_meshT [protected]
template<class MyMeshType, class MyMatrix>
const MyMeshType& INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_meshS [protected]
template<class MyMeshType, class MyMatrix>
double INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_dim_caracteristic [protected]
template<class MyMeshType, class MyMatrix>
double INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_max_distance_3Dsurf_intersect [protected]
template<class MyMeshType, class MyMatrix>
double INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_precision [protected]
template<class MyMeshType, class MyMatrix>
double INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_median_plane [protected]
template<class MyMeshType, class MyMatrix>
bool INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_do_rotate [protected]
template<class MyMeshType, class MyMatrix>
int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_orientation [protected]
template<class MyMeshType, class MyMatrix>
int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_print_level [protected]
Generated on Sat May 1 03:22:46 2010 for Med Memory Users' Guide by  doxygen 1.6.3