Specialization for 3D cell-based remap.
More...
#include <intersect_swept_face.h>
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
-
SourceMesh | the source mesh wrapper type. |
SourceState | the source state wrapper to query field infos. |
TargetMesh | the target mesh wrapper type. |
InterfaceReconstructor | materials interface reconstructor type. |
Matpoly_Splitter | material polyhedra splitter type. |
Matpoly_Clipper | material polyhedra clipper type. |
◆ IntersectSweptFace() [1/2]
template<class SourceMesh , class SourceState , class TargetMesh , template< class, int, class, class > class InterfaceReconstructor, class Matpoly_Splitter , class Matpoly_Clipper >
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_mesh | mesh wrapper used to query source mesh info. |
[in] | source_state | state-manager wrapper used to query field info. |
[in] | target_mesh | mesh wrapper used to query target mesh info. |
[in] | num_tols | numerical tolerances. |
◆ ~IntersectSweptFace()
template<class SourceMesh , class SourceState , class TargetMesh , template< class, int, class, class > class InterfaceReconstructor, class Matpoly_Splitter , class Matpoly_Clipper >
◆ 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_id | the current target cell index. |
stencil | current 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] | other | the 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
-
◆ 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: