19#include <IntVectSet.H>
21#include <ProblemDomain.H>
24#include <DenseIntVectSet.H>
28#include <CD_NamespaceHeader.H>
77 static Vector<VolIndex>
79 const EBISBox& a_ebisbox,
82 const bool a_addStartVof);
94 static Vector<VolIndex>
96 const EBISBox& a_ebisbox,
98 const DenseIntVectSet& a_validCells,
100 const bool a_addStartVof);
113 static Vector<VolIndex>
115 const EBISBox& a_ebisbox,
116 const RealVect& a_normal,
119 const bool a_addStartVof);
130 static Vector<VolIndex>
132 const VolIndex& a_startVof,
133 const EBISBox& a_ebisbox,
134 const RealVect& a_normal,
152 static Vector<VolIndex>
154 const EBISBox& a_ebisbox,
155 const RealVect& a_normal,
157 const Real a_deltaThresh,
161 const bool a_addStartVof);
176 static Vector<VolIndex>
178 const VolIndex& a_startVof,
179 const EBISBox& a_ebisbox,
180 const RealVect& a_normal,
181 const Real a_deltaThresh,
191 excludeCells(Vector<VolIndex>& a_vofs,
const Box& a_excludeBox);
199 excludeCells(Vector<VolIndex>& a_vofs,
const IntVectSet& a_excludeIVS);
207 includeCells(Vector<VolIndex>& a_vofs,
const Box& a_includeBox);
215 includeCells(Vector<VolIndex>& a_vofs,
const IntVectSet& a_includeIVS);
223 includeCells(Vector<VolIndex>& a_vofs,
const DenseIntVectSet& a_includeIVS);
246 static std::pair<int, Side::LoHiSide>
257 static Vector<VolIndex>
259 const EBISBox& a_ebisbox,
261 const bool a_addStartVof);
272 static Vector<VolIndex>
274 const EBISBox& a_ebisbox,
276 const bool a_addStartVof);
286 static Vector<VolIndex>
288 const EBISBox& a_ebisbox,
290 const bool a_addStartVof);
299 static Vector<VolIndex>
300 connectedVofsOnly(
const VolIndex& a_startVof,
const Vector<VolIndex>& a_allVofs,
const EBISBox& a_ebisbox);
311 getQuadrant(
const RealVect& a_normal,
const VolIndex& a_vof,
const EBISBox& a_ebisbox,
const Real a_radius);
323 const VolIndex& a_vof,
324 const EBISBox& a_ebisbox,
325 const Real a_radius);
338 const VolIndex& a_startVof,
339 const EBISBox& a_ebisbox,
341 const IntVect& a_timesMoved,
342 const IntVect& a_pathSign);
356 const VolIndex& a_startVof,
357 const EBISBox& a_ebisbox,
358 const Box& a_validBox,
360 const IntVect& a_timesMoved,
361 const IntVect& a_pathSign);
364#include <CD_NamespaceFooter.H>
Declaration of cell positions.
Static class which contains some routines for fetching VoFs using various algorithms....
Definition CD_VofUtils.H:35
Neighborhood
Neighborhood type.
Definition CD_VofUtils.H:57
static void onlyUnique(Vector< VolIndex > &a_vofs)
Discard duplicates.
Definition CD_VofUtils.cpp:325
static bool isQuadrantWellDefined(const RealVect &a_normal)
Check if a quadrant is well-defined for a direction in space.
Definition CD_VofUtils.cpp:339
Connectivity
Class for specifying connectivity of Vofs.
Definition CD_VofUtils.H:44
static Vector< VolIndex > getVofsInRadius(const VolIndex &a_startVof, const EBISBox &a_ebisbox, const int a_radius, const DenseIntVectSet &a_validCells, const Connectivity a_connectivity, const bool a_addStartVof)
Fetch vofs in a specified radius and with a specified connectivitiy between them.
static Vector< VolIndex > getVofsInQuadrant(const VolIndex &a_startVof, const EBISBox &a_ebisbox, const RealVect &a_normal, const int a_radius, const Connectivity a_connectivity, const bool a_addStartVof)
Fetch vofs in a quadrant, using a specified radius and with a specified connectivitiy between them.
Definition CD_VofUtils.cpp:47
static void includeCells(Vector< VolIndex > &a_vofs, const Box &a_includeBox)
Modifies a_vofs so it only includes cells in a box.
Definition CD_VofUtils.cpp:282
static Vector< VolIndex > getConnectedVofsInRadius(const VolIndex &a_startVof, const EBISBox &a_ebisbox, const int a_radius, const bool a_addStartVof)
Get all connected Vofs in radius which can be reached without crossing a covered face or reaching int...
Definition CD_VofUtils.cpp:200
static Vector< VolIndex > getVofsInMonotonePath(const VolIndex &a_startVof, const EBISBox &a_ebisbox, const int a_radius, const bool a_addStartVof)
Get all VoFs that can be found with a monotone path with specified radius.
Definition CD_VofUtils.cpp:151
static Vector< VolIndex > getVofsInRadius(const VolIndex &a_startVof, const EBISBox &a_ebisbox, const int a_radius, const Connectivity a_connectivity, const bool a_addStartVof)
Fetch vofs in a specified radius and with a specified connectivitiy between them.
Definition CD_VofUtils.cpp:18
static Box getQuadrant(const RealVect &a_normal, const VolIndex &a_vof, const EBISBox &a_ebisbox, const Real a_radius)
Get quadrant defined by direction in space.
Definition CD_VofUtils.cpp:373
static Vector< VolIndex > restrictVofsToSemiCircle(const Vector< VolIndex > &a_vofs, const VolIndex &a_startVof, const EBISBox &a_ebisbox, const RealVect &a_normal, const Real a_deltaThresh, const Location::Cell a_vofLocation, const Location::Cell a_cellLocation)
Extract the subset of VoFs that lie in a semi-circle ahead of the input vof (a_startVof)
Definition CD_VofUtils.cpp:124
static Vector< VolIndex > connectedVofsOnly(const VolIndex &a_startVof, const Vector< VolIndex > &a_allVofs, const EBISBox &a_ebisbox)
Get all Vofs that are connected to a specific starting Vof. The connection does not have to be direct...
Definition CD_VofUtils.cpp:422
static std::pair< int, Side::LoHiSide > getCardinalDirection(const RealVect &a_normal)
Returns the coordinate direction.
Definition CD_VofUtils.cpp:353
static Vector< VolIndex > getVofsInSemiCircle(const VolIndex &a_startVof, const EBISBox &a_ebisbox, const RealVect &a_normal, const int a_radius, const Real a_deltaThresh, const Connectivity a_connectivity, const Location::Cell a_vofLocation, const Location::Cell a_cellLocation, const bool a_addStartVof)
Get all vofs lying in a semi-circle (sphere in 3D) from the indicated position in the starting vof.
Definition CD_VofUtils.cpp:94
VofUtils()=delete
Disallowed.
static Box getSymmetricQuadrant(const std::pair< int, Side::LoHiSide > &a_cardinal, const VolIndex &a_vof, const EBISBox &a_ebisbox, const Real a_radius)
Get "symmetric" quadrant defined by direction in space.
Definition CD_VofUtils.cpp:398
static Vector< VolIndex > restrictVofsToQuadrant(const Vector< VolIndex > &a_vofs, const VolIndex &a_startVof, const EBISBox &a_ebisbox, const RealVect &a_normal, const int a_radius)
Extract the subset of vofs that lie within the quadrant/octant defined by the normal vector.
Definition CD_VofUtils.cpp:70
static void excludeCells(Vector< VolIndex > &a_vofs, const Box &a_excludeBox)
Modifies a_vofs so it doesn't include cells in a_excludeIVS.
Definition CD_VofUtils.cpp:252
static Vector< VolIndex > getAllVofsInRadius(const VolIndex &a_startVof, const EBISBox &a_ebisbox, const int a_radius, const bool a_addStartVof)
Get all Vofs in a radius from a starting Vof.
Definition CD_VofUtils.cpp:218
Cell
Enum for distinguishing between cell locations.
Definition CD_Location.H:31