Back to index

salome-med  6.5.0
Public Member Functions | Private Attributes
INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS > Class Template Reference

#include <SplitterTetra.hxx>

Inheritance diagram for INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >:
Inheritance graph
[legend]
Collaboration diagram for INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 SplitterTetra2 (const MyMeshTypeT &targetMesh, const MyMeshTypeS &srcMesh, SplittingPolicy policy)
 ~SplitterTetra2 ()
void releaseArrays ()
void splitTargetCell (typename MyMeshTypeT::MyConnType targetCell, typename MyMeshTypeT::MyConnType nbOfNodesT, typename std::vector< SplitterTetra< MyMeshTypeS > * > &tetra)
void fiveSplit (const int *const subZone, typename std::vector< SplitterTetra< MyMeshTypeS > * > &tetra)
void sixSplit (const int *const subZone, typename std::vector< SplitterTetra< MyMeshTypeS > * > &tetra)
void calculateGeneral24Tetra (typename std::vector< SplitterTetra< MyMeshTypeS > * > &tetra)
void calculateGeneral48Tetra (typename std::vector< SplitterTetra< MyMeshTypeS > * > &tetra)
void splitPyram5 (typename std::vector< SplitterTetra< MyMeshTypeS > * > &tetra)
void splitConvex (typename MyMeshTypeT::MyConnType targetCell, typename std::vector< SplitterTetra< MyMeshTypeS > * > &tetra)
void calculateSubNodes (const MyMeshTypeT &targetMesh, typename MyMeshTypeT::MyConnType targetCell)
const double * getCoordsOfSubNode (typename MyMeshTypeT::MyConnType node)
 Accessor to the coordinates of a given (sub)-node.
const double * getCoordsOfSubNode2 (typename MyMeshTypeT::MyConnType node, typename MyMeshTypeT::MyConnType &nodeId)
 Accessor to the coordinates of a given (sub)-node.
void calcBarycenter (int n, double *barycenter, const typename MyMeshTypeT::MyConnType *pts)
 Calculates the barycenter of n (sub) - nodes.

Private Attributes

const MyMeshTypeT & _target_mesh
const MyMeshTypeS & _src_mesh
SplittingPolicy _splitting_pol
std::vector< const double * > _nodes
 vector of pointers to double[3] containing the coordinates of the (sub) - nodes of split target cell
std::vector< typename
MyMeshTypeT::MyConnType > 
_node_ids

Detailed Description

template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
class INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >

Definition at line 382 of file SplitterTetra.hxx.


Constructor & Destructor Documentation

template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::SplitterTetra2 ( const MyMeshTypeT &  targetMesh,
const MyMeshTypeS &  srcMesh,
SplittingPolicy  policy 
)
template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::~SplitterTetra2 ( )

Member Function Documentation

template<class MyMeshTypeT, class MyMeshTypeS >
void INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::calcBarycenter ( int  n,
double *  barycenter,
const typename MyMeshTypeT::MyConnType *  pts 
) [inline]

Calculates the barycenter of n (sub) - nodes.

Parameters:
nnumber of nodes for which to calculate barycenter
barycenterpointer to double[3] array in which to store the result
ptspointer to int[n] array containing the (sub)-nodes for which to calculate the barycenter

Definition at line 421 of file SplitterTetra.hxx.

  {
    barycenter[0] = barycenter[1] = barycenter[2] = 0.0;
    for(int i = 0; i < n ; ++i)
      {
       const double* pt = getCoordsOfSubNode(pts[i]);
       barycenter[0] += pt[0];
       barycenter[1] += pt[1];
       barycenter[2] += pt[2];
      }
    
    barycenter[0] /= n;
    barycenter[1] /= n;
    barycenter[2] /= n;
  }
template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
void INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::calculateGeneral24Tetra ( typename std::vector< SplitterTetra< MyMeshTypeS > * > &  tetra)
template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
void INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::calculateGeneral48Tetra ( typename std::vector< SplitterTetra< MyMeshTypeS > * > &  tetra)
template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
void INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::calculateSubNodes ( const MyMeshTypeT &  targetMesh,
typename MyMeshTypeT::MyConnType  targetCell 
)
template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
void INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::fiveSplit ( const int *const  subZone,
typename std::vector< SplitterTetra< MyMeshTypeS > * > &  tetra 
)
template<class MyMeshTypeT, class MyMeshTypeS >
const double * INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::getCoordsOfSubNode ( typename MyMeshTypeT::MyConnType  node) [inline]

Accessor to the coordinates of a given (sub)-node.

Parameters:
nodelocal number of the (sub)-node 0,..,7 are the elements nodes, sub-nodes are numbered from 8,..
Returns:
pointer to double[3] containing the coordinates of the nodes

Definition at line 444 of file SplitterTetra.hxx.

  {
    // replace "at()" with [] for unsafe but faster access
    return _nodes.at(node);
  }
template<class MyMeshTypeT, class MyMeshTypeS >
const double * INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::getCoordsOfSubNode2 ( typename MyMeshTypeT::MyConnType  node,
typename MyMeshTypeT::MyConnType &  nodeId 
) [inline]

Accessor to the coordinates of a given (sub)-node.

Parameters:
nodelocal number of the (sub)-node 0,..,7 are the elements nodes, sub-nodes are numbered from 8,..
nodeIdis an output that is node id in target whole mesh in C mode.
Returns:
pointer to double[3] containing the coordinates of the nodes

Definition at line 458 of file SplitterTetra.hxx.

  {
    const double *ret=_nodes.at(node);
    if(node<8)
      nodeId=_node_ids[node];
    else
      nodeId=-1;
    return ret;    
  }
template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
void INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::releaseArrays ( )
template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
void INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::sixSplit ( const int *const  subZone,
typename std::vector< SplitterTetra< MyMeshTypeS > * > &  tetra 
)
template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
void INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::splitConvex ( typename MyMeshTypeT::MyConnType  targetCell,
typename std::vector< SplitterTetra< MyMeshTypeS > * > &  tetra 
)
template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
void INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::splitPyram5 ( typename std::vector< SplitterTetra< MyMeshTypeS > * > &  tetra)
template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
void INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::splitTargetCell ( typename MyMeshTypeT::MyConnType  targetCell,
typename MyMeshTypeT::MyConnType  nbOfNodesT,
typename std::vector< SplitterTetra< MyMeshTypeS > * > &  tetra 
)

Member Data Documentation

template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
std::vector<typename MyMeshTypeT::MyConnType> INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::_node_ids [private]

Definition at line 409 of file SplitterTetra.hxx.

template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
std::vector<const double*> INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::_nodes [private]

vector of pointers to double[3] containing the coordinates of the (sub) - nodes of split target cell

Definition at line 408 of file SplitterTetra.hxx.

template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
SplittingPolicy INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::_splitting_pol [private]

Definition at line 405 of file SplitterTetra.hxx.

template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
const MyMeshTypeS& INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::_src_mesh [private]

Definition at line 404 of file SplitterTetra.hxx.

template<class MyMeshTypeT, class MyMeshTypeS = MyMeshTypeT>
const MyMeshTypeT& INTERP_KERNEL::SplitterTetra2< MyMeshTypeT, MyMeshTypeS >::_target_mesh [private]

Definition at line 403 of file SplitterTetra.hxx.


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