11 #ifndef _BRMESHREFINE_H_ 12 #define _BRMESHREFINE_H_ 23 #include "NamespaceHeader.H" 30 #ifndef _BR_MIN_BOX_FILL_RATIO_ 31 #define _BR_MIN_BOX_FILL_RATIO_ ( 0.75 ) 100 const Box& a_baseDomain,
104 const Real a_fillRatio,
106 const int a_blockFactor,
108 const int a_bufferSize,
110 const int a_maxSize);
118 const Real a_fillRatio,
120 const int a_blockFactor,
122 const int a_bufferSize,
124 const int a_maxSize);
131 const Box& a_baseDomain,
135 const Real a_fillRatio,
137 const int a_blockFactor,
139 const int a_bufferSize,
141 const int a_maxSize);
149 const Real a_fillRatio,
151 const int a_blockFactor,
153 const int a_bufferSize,
155 const int a_maxSize);
176 const int a_totalBufferSize)
const;
185 std::list<Box>& a_mesh,
196 const int a_totalBufferSize
205 const std::list<Box>::iterator& a_boxindex,
206 const int a_dimension ,
const int a_maxboxsize )
const;
210 const std::list<Box>::iterator& a_boxindex,
211 const int a_maxboxsize )
const;
236 const int a_split_dir ,
const int a_split_indx,
245 const int a_maxSize)
const;
249 const int& a_idir)
const;
253 maxloc(
const int* a_V ,
const int a_Size )
const;
261 const int a_totalBufferSize,
271 std::list<Box>& a_mesh,
290 int a_maxSize,
int a_blockfactor=1,
306 int a_maxSize,
int a_blockfactor=1,
317 #include "NamespaceFooter.H" void define(const Box &a_baseDomain, const Vector< int > &a_refRatios, const Real a_fillRatio, const int a_blockFactor, const int a_bufferSize, const int a_maxSize)
Define function – size of RefRatios will define maximum number of levels.
An irregular domain on an integer lattice.
Definition: IntVectSet.H:44
void splitTagsInBestDimension(IntVectSet &a_tags_inout_lo, IntVectSet &a_tags_hi, const int a_maxSize) const
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
Class which manages Berger-Rigoutsos grid generation.
Definition: BRMeshRefine.H:92
void sendBoxesParallel(const std::list< Box > &a_mesh, int tag) const
void breakBoxes(Vector< Box > &a_vboxin, const int &a_maxSize, const int &a_idir) const
void splitTagsInPlace(const int a_split_dir, const int a_split_indx, IntVectSet &a_tags_inout_lo, IntVectSet &a_tags_hi) const
int longsideRefineDirs(const Box &a_bx, int &a_dir) const
void splitTags(const IntVectSet &a_tags, const int a_split_dir, const int a_split_indx, IntVectSet &a_tags_lo, IntVectSet &a_tags_hi) const
virtual ~BRMeshRefine()
Destructor.
void domainSplit(const ProblemDomain &a_domain, Vector< Box > &a_vbox, int a_maxSize, int a_blockfactor=1, IntVect a_refineDirs=IntVect::Unit)
Splits domain into vector of disjoint boxes with max size maxsize.
int maxloc(const int *a_V, const int a_Size) const
Structure for passing component ranges in code.
Definition: Interval.H:23
void splitBox(std::list< Box > &a_boxes, const std::list< Box >::iterator &a_boxindex, const int a_dimension, const int a_maxboxsize) const
static const IntVect Unit
Definition: IntVect.H:663
void makeBoxesParallel(std::list< Box > &a_mesh, IntVectSet &a_tags, const IntVectSet &a_pnd, const ProblemDomain &a_domain, const int a_maxSize, const int a_depth, const int a_totalBufferSize, const int a_minSize, const Interval &a_procInterval) const
double Real
Definition: REAL.H:33
BRMeshRefine()
Default constructor – leaves object in an unusable state.
void makeBoxes(Vector< Box > &a_mesh, const IntVectSet &a_tags, const IntVectSet &a_pnd, const ProblemDomain &a_domain, const int a_maxSize, const int a_totalBufferSize) const
Constructs a set of boxes which covers a set of tagged cells.
int findSplit(const Vector< int > &a_trace) const
void makeTraces(const IntVectSet &a_Ivs, Vector< int > *a_traces) const
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:469
int findMaxInflectionPoint(const Vector< int > &a_trace, int &a_maxVal) const
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
Vector< int > m_messageBuffer
Definition: BRMeshRefine.H:276
Vector< int > makeTrace(const IntVectSet &a_Ivs, int a_dir) const
Class which manages grid generation.
Definition: MeshRefine.H:26
void receiveBoxesParallel(const Interval &a_from, const Interval &a_to, std::list< Box > &a_mesh, int tag) const