Portage::IntersectSweptFace< 3, Entity_kind::CELL, SourceMesh, SourceState, TargetMesh, InterfaceReconstructor, Matpoly_Splitter, Matpoly_Clipper > Class Template Reference

Specialization for 3D cell-based remap. More...

#include <intersect_swept_face.h>

Public Member Functions

 IntersectSweptFace ()=delete
 Default constructor (disabled). More...
 
 IntersectSweptFace (SourceMesh const &source_mesh, SourceState const &source_state, TargetMesh const &target_mesh, NumericTolerances_t num_tols)
 Constructor for single material case. More...
 
IntersectSweptFaceoperator= (IntersectSweptFace const &other)=delete
 Assignment operator (disabled). More...
 
 ~IntersectSweptFace ()=default
 Destructor. More...
 
void set_material (int m)
 Set the material we are operating on. More...
 
void toggle_displacement_check (bool enable)
 Toggle target mesh displacement validity check. More...
 
std::vector< Weights_t > operator() (int target_id, std::vector< int > const &stencil) const
 Perform the actual swept moments computation for the given cell. More...
 

Detailed Description

template<class SourceMesh, class SourceState, class TargetMesh, template< class, int, class, class > class InterfaceReconstructor, class Matpoly_Splitter, class Matpoly_Clipper>
class Portage::IntersectSweptFace< 3, Entity_kind::CELL, SourceMesh, SourceState, TargetMesh, InterfaceReconstructor, Matpoly_Splitter, Matpoly_Clipper >

Specialization for 3D cell-based remap.

Template Parameters
SourceMeshthe source mesh wrapper type.
SourceStatethe source state wrapper to query field infos.
TargetMeshthe target mesh wrapper type.
InterfaceReconstructormaterials interface reconstructor type.
Matpoly_Splittermaterial polyhedra splitter type.
Matpoly_Clippermaterial polyhedra clipper type.

Constructor & Destructor Documentation

◆ IntersectSweptFace() [1/2]

template<class SourceMesh , class SourceState , class TargetMesh , template< class, int, class, class > class InterfaceReconstructor, class Matpoly_Splitter , class Matpoly_Clipper >
Portage::IntersectSweptFace< 3, Entity_kind::CELL, SourceMesh, SourceState, TargetMesh, InterfaceReconstructor, Matpoly_Splitter, Matpoly_Clipper >::IntersectSweptFace ( )
delete

Default constructor (disabled).

◆ IntersectSweptFace() [2/2]

template<class SourceMesh , class SourceState , class TargetMesh , template< class, int, class, class > class InterfaceReconstructor, class Matpoly_Splitter , class Matpoly_Clipper >
Portage::IntersectSweptFace< 3, Entity_kind::CELL, SourceMesh, SourceState, TargetMesh, InterfaceReconstructor, Matpoly_Splitter, Matpoly_Clipper >::IntersectSweptFace ( SourceMesh const &  source_mesh,
SourceState const &  source_state,
TargetMesh const &  target_mesh,
NumericTolerances_t  num_tols 
)
inline

Constructor for single material case.

Parameters
[in]source_meshmesh wrapper used to query source mesh info.
[in]source_statestate-manager wrapper used to query field info.
[in]target_meshmesh wrapper used to query target mesh info.
[in]num_tolsnumerical tolerances.

◆ ~IntersectSweptFace()

template<class SourceMesh , class SourceState , class TargetMesh , template< class, int, class, class > class InterfaceReconstructor, class Matpoly_Splitter , class Matpoly_Clipper >
Portage::IntersectSweptFace< 3, Entity_kind::CELL, SourceMesh, SourceState, TargetMesh, InterfaceReconstructor, Matpoly_Splitter, Matpoly_Clipper >::~IntersectSweptFace ( )
default

Destructor.

Member Function Documentation

◆ operator()()

template<class SourceMesh , class SourceState , class TargetMesh , template< class, int, class, class > class InterfaceReconstructor, class Matpoly_Splitter , class Matpoly_Clipper >
std::vector<Weights_t> Portage::IntersectSweptFace< 3, Entity_kind::CELL, SourceMesh, SourceState, TargetMesh, InterfaceReconstructor, Matpoly_Splitter, Matpoly_Clipper >::operator() ( int  target_id,
std::vector< int > const &  stencil 
) const
inline

Perform the actual swept moments computation for the given cell.

After decomposing the cell into faces, it constructs a swept polyhedron for each face such that we have a positive volume if its centroid lies outside the cell (and hence attached to an incident neighbor) and a negative volume otherwise (and hence attached to the source cell). The sign of the computed moments are actually related to that of the fluxes associated to each face of the cell, and are computed using the divergence theorem. To avoid degenerated cases and to limit the loss of accuracy in case of large displacements, we perform a quick check on the volume of each swept polyhedron such that they don't exceed a certain threshold. Notice that the stencil is not really required but still kept to be consistent with the other intersection functors.

Parameters
target_idthe current target cell index.
stencilcurrent source cell and its immediate neighbors.
Returns
a list of swept region moments and related source cell pair.

◆ operator=()

template<class SourceMesh , class SourceState , class TargetMesh , template< class, int, class, class > class InterfaceReconstructor, class Matpoly_Splitter , class Matpoly_Clipper >
IntersectSweptFace& Portage::IntersectSweptFace< 3, Entity_kind::CELL, SourceMesh, SourceState, TargetMesh, InterfaceReconstructor, Matpoly_Splitter, Matpoly_Clipper >::operator= ( IntersectSweptFace< 3, Entity_kind::CELL, SourceMesh, SourceState, TargetMesh, InterfaceReconstructor, Matpoly_Splitter, Matpoly_Clipper > const &  other)
delete

Assignment operator (disabled).

Parameters
[in]otherthe intersector to copy.
Returns
current intersector reference.

◆ set_material()

template<class SourceMesh , class SourceState , class TargetMesh , template< class, int, class, class > class InterfaceReconstructor, class Matpoly_Splitter , class Matpoly_Clipper >
void Portage::IntersectSweptFace< 3, Entity_kind::CELL, SourceMesh, SourceState, TargetMesh, InterfaceReconstructor, Matpoly_Splitter, Matpoly_Clipper >::set_material ( int  m)
inline

Set the material we are operating on.

Parameters
mthe material ID

◆ toggle_displacement_check()

template<class SourceMesh , class SourceState , class TargetMesh , template< class, int, class, class > class InterfaceReconstructor, class Matpoly_Splitter , class Matpoly_Clipper >
void Portage::IntersectSweptFace< 3, Entity_kind::CELL, SourceMesh, SourceState, TargetMesh, InterfaceReconstructor, Matpoly_Splitter, Matpoly_Clipper >::toggle_displacement_check ( bool  enable)
inline

Toggle target mesh displacement validity check.


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