Version: 9.14.0
INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix > Class Template Reference
Inheritance diagram for INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >:
Collaboration diagram for INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >:

Public Types

typedef MyMeshType::MyConnType ConnType
 
typedef std::map< ConnType, std::set< ConnType > > DuplicateFacesType
 
- Public Types inherited from INTERP_KERNEL::TargetIntersector< MyMeshType, MyMatrix >
typedef MyMeshType::MyConnType ConnType
 

Public Member Functions

void createBoundingBoxes (const MyMeshType &mesh, std::vector< double > &bbox)
 
void getElemBB (double *bb, const MyMeshType &mesh, ConnType iP, ConnType nb_nodes)
 
virtual const DuplicateFacesTypegetIntersectFaces () const
 
 PlanarIntersector (const MyMeshType &meshT, const MyMeshType &meshS, double dimCaracteristic, double precision, double md3DSurf, double minDot3DSurf, double medianPlane, bool doRotate, int orientation, int printLevel)
 
virtual ~PlanarIntersector ()
 
- Public Member Functions inherited from INTERP_KERNEL::TargetIntersector< MyMeshType, MyMatrix >
void adjustBoundingBoxes (double *bbox, std::size_t sz, double adjustmentEps, double adjustmentEpsAbs)
 
void adjustBoundingBoxes (std::vector< double > &bbox, double adjustmentEps, double adjustmentEpsAbs)
 
virtual ConnType getNumberOfColsOfResMatrix () const =0
 
virtual ConnType getNumberOfRowsOfResMatrix () const =0
 
virtual void intersectCells (ConnType targetCell, const std::vector< ConnType > &srcCells, MyMatrix &res)=0
 
virtual ~TargetIntersector ()
 

Static Public Member Functions

static int Projection (double *Coords_A, double *Coords_B, ConnType nb_NodesA, ConnType nb_NodesB, double epsilon, double md3DSurf, double minDot3DSurf, double median_plane, bool do_rotate)
 

Static Public Attributes

static const int MESHDIM = MyMeshType::MY_MESHDIM
 
static const NumberingPolicy numPol = MyMeshType::My_numPol
 
static const int SPACEDIM = MyMeshType::MY_SPACEDIM
 
- Static Public Attributes inherited from INTERP_KERNEL::TargetIntersector< MyMeshType, MyMatrix >
static const int SPACEDIM = MyMeshType::MY_SPACEDIM
 

Protected Member Functions

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

Static Protected Member Functions

static void Rotate3DTriangle (double *PP1, double *PP2, double *PP3, TranslationRotationMatrix &rotation_matrix)
 

Protected Attributes

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

Member Typedef Documentation

◆ ConnType

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

◆ DuplicateFacesType

template<class MyMeshType , class MyMatrix >
typedef std::map<ConnType, std::set<ConnType> > INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::DuplicateFacesType

Constructor & Destructor Documentation

◆ PlanarIntersector()

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

◆ ~PlanarIntersector()

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

Member Function Documentation

◆ createBoundingBoxes()

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
meshstructure pointing to the mesh
bboxvector containing the bounding boxes

◆ getElemBB()

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

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

◆ Projection()

template<class MyMeshType , class MyMatrix >
int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::Projection ( double *  Coords_A,
double *  Coords_B,
ConnType  nb_NodesA,
ConnType  nb_NodesB,
double  epsilon,
double  md3DSurf,
double  minDot3DSurf,
double  median_plane,
bool  do_rotate 
)
static

◆ getIntersectFaces()

template<class MyMeshType , class MyMatrix >
virtual const DuplicateFacesType* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::getIntersectFaces ( ) const
virtual

◆ projectionThis()

template<class MyMeshType , class MyMatrix >
int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::projectionThis ( double *  Coords_A,
double *  Coords_B,
ConnType  nb_NodesA,
ConnType  nb_NodesB 
)
protected

◆ getRealTargetCoordinates()

template<class MyMeshType , class MyMatrix >
void INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::getRealTargetCoordinates ( ConnType  icellT,
std::vector< double > &  coordsT 
)
protected
Parameters
icellTid in target mesh in format of MyMeshType.
coordsToutput val that stores coordinates of the target cell automatically resized to the right length.

◆ getRealSourceCoordinates()

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

◆ getRealTargetCoordinatesPermute()

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

◆ getRealSourceCoordinatesPermute()

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

◆ getRealCoordinates()

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
icellTid in target mesh in format of MyMeshType.
icellSid in source mesh in format of MyMeshType.
nbNodesTnb of nodes of the target cell.
nbNodesSnb of nodes of the source cell.
coordsToutput val that stores coordinates of the target cell automatically resized to the right length.
coordsSoutput val that stores coordinates of the source cell automatically resized to the right length.
orientationis an output value too, only set if SPACEDIM==3.

◆ getValueRegardingOption()

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

◆ Rotate3DTriangle()

template<class MyMeshType , class MyMatrix >
void INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::Rotate3DTriangle ( double *  PP1,
double *  PP2,
double *  PP3,
TranslationRotationMatrix &  rotation_matrix 
)
staticprotected

Member Data Documentation

◆ SPACEDIM

template<class MyMeshType , class MyMatrix >
const int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::SPACEDIM = MyMeshType::MY_SPACEDIM
static

◆ MESHDIM

template<class MyMeshType , class MyMatrix >
const int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::MESHDIM = MyMeshType::MY_MESHDIM
static

◆ numPol

template<class MyMeshType , class MyMatrix >
const NumberingPolicy INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::numPol = MyMeshType::My_numPol
static

◆ _connectT

template<class MyMeshType , class MyMatrix >
const ConnType* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connectT
protected

◆ _connectS

template<class MyMeshType , class MyMatrix >
const ConnType* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connectS
protected

◆ _coordsT

template<class MyMeshType , class MyMatrix >
const double* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_coordsT
protected

◆ _coordsS

template<class MyMeshType , class MyMatrix >
const double* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_coordsS
protected

◆ _connIndexT

template<class MyMeshType , class MyMatrix >
const ConnType* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connIndexT
protected

◆ _connIndexS

template<class MyMeshType , class MyMatrix >
const ConnType* INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_connIndexS
protected

◆ _meshT

template<class MyMeshType , class MyMatrix >
const MyMeshType& INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_meshT
protected

◆ _meshS

template<class MyMeshType , class MyMatrix >
const MyMeshType& INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_meshS
protected

◆ _dim_caracteristic

template<class MyMeshType , class MyMatrix >
double INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_dim_caracteristic
protected

◆ _max_distance_3Dsurf_intersect

template<class MyMeshType , class MyMatrix >
double INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_max_distance_3Dsurf_intersect
protected

◆ _min_dot_btw_3Dsurf_intersect

template<class MyMeshType , class MyMatrix >
double INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_min_dot_btw_3Dsurf_intersect
protected

◆ _precision

template<class MyMeshType , class MyMatrix >
double INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_precision
protected

◆ _median_plane

template<class MyMeshType , class MyMatrix >
double INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_median_plane
protected

◆ _do_rotate

template<class MyMeshType , class MyMatrix >
bool INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_do_rotate
protected

◆ _orientation

template<class MyMeshType , class MyMatrix >
int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_orientation
protected

◆ _print_level

template<class MyMeshType , class MyMatrix >
int INTERP_KERNEL::PlanarIntersector< MyMeshType, MyMatrix >::_print_level
protected