Chombo + EB + MF
3.2
|
#include <MultiBlockMeshRefine.H>
Public Member Functions | |
virtual | ~MultiBlockMeshRefine () |
Destructor. More... | |
MultiBlockMeshRefine (const ProblemDomain &a_baseDomain, RealVect dxCoarse, const RefCountedPtr< MultiBlockCoordSysFactory > &a_factory, const Vector< int > &a_refRatios, const Real a_fillRatio, const int a_blockFactor, const int a_bufferSize, const int a_maxSize) | |
Full constructor – leaves object in usable state. More... | |
![]() | |
BRMeshRefine () | |
Default constructor – leaves object in an unusable state. More... | |
BRMeshRefine (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) | |
Full constructor – leaves object in usable state. More... | |
BRMeshRefine (const ProblemDomain &a_baseDomain, const Vector< int > &a_refRatios, const Real a_fillRatio, const int a_blockFactor, const int a_bufferSize, const int a_maxSize) | |
Full constructor – leaves object in usable state. More... | |
virtual | ~BRMeshRefine () |
Destructor. More... | |
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. More... | |
void | define (const ProblemDomain &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. More... | |
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. More... | |
void | makeBoxes (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 |
![]() | |
MeshRefine () | |
default constructor – leaves object in an unusable state More... | |
MeshRefine (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) | |
full constructor – leaves object in usable state More... | |
MeshRefine (const ProblemDomain &a_baseDomain, const Vector< int > &a_refRatios, const Real a_fillRatio, const int a_blockFactor, const int a_bufferSize, const int a_maxSize) | |
full constructor – leaves object in usable state More... | |
virtual | ~MeshRefine () |
destructor More... | |
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 More... | |
virtual int | regrid (Vector< Vector< Box > > &a_newmeshes, const IntVectSet &a_tags, const int a_baseLevel, const int a_topLevel, const Vector< Vector< Box > > &a_oldMeshes) |
create hierarchy of grids from a single level of tags More... | |
virtual int | regrid (Vector< Vector< Box > > &a_newmeshes, Vector< IntVectSet > &a_tags, const int a_baseLevel, const int a_topLevel, const Vector< Vector< Box > > &a_oldMeshes) |
create hierarchy of grids from tags at all levels More... | |
const Vector< int > & | refRatios () const |
returns vector of refinement ratios More... | |
Real | fillRatio () const |
returns fillRatio More... | |
int | blockFactor () const |
returns blocking factor More... | |
int | bufferSize () const |
returns proper nesting buffer size More... | |
int | maxSize () const |
returns maximum box size in any dimension – 0 means no limit More... | |
void | refRatios (const Vector< int > &a_nRefVect) |
sets vector of refinement ratios More... | |
virtual void | fillRatio (const Real a_fill_ratio) |
sets fillRatio More... | |
virtual void | blockFactor (const int a_block_factor) |
sets blocking factor More... | |
virtual void | bufferSize (const int a_buffer_size) |
sets proper nesting buffer size More... | |
virtual void | maxSize (const int a_max_size) |
sets maximum box size in any dimension – 0 means no limit More... | |
bool | isDefined () const |
has this object been defined properly? More... | |
void | granularity (int a_granularity) |
sets proper nesting region granularity. More... | |
void | setPNDMode (int a_mode) |
void | setRefineDirs (const IntVect &a_refineDirs) |
set each component to 1 or 0 according to whether or not we refine in that direction. Default IntVect::Unit. More... | |
IntVect | inRefineDirs (int a_val) const |
returns IntVect with component d set to a_val if m_refineDirs[d] == 1; else 1. More... | |
void | restrictUnrefined (Box &a_box) const |
void | restrictUnrefined (IntVectSet &a_ivs) const |
Protected Member Functions | |
virtual bool | properlyNested (const Box &a_box, const ProblemDomain &a_domain, const IntVectSet &a_pnd, int a_totalBufferSize) const |
This one is to let Mapped Multiblock grids respect the PND across mapped boundaries. More... | |
virtual void | buildSupport (const ProblemDomain &lvldomain, Vector< Box > &lvlboxes, IntVectSet &modifiedTags) |
These two are to get the tagging to respect Mapped Boundaries. More... | |
virtual void | clipBox (Box &a_box, const ProblemDomain &a_domain) const |
const MultiBlockCoordSys * | getCoords (const ProblemDomain &a_lvldomain) const |
MultiBlockMeshRefine () | |
![]() | |
void | splitBox (std::list< Box > &a_boxes, const std::list< Box >::iterator &a_boxindex, const int a_dimension, const int a_maxboxsize) const |
void | splitBox (std::list< Box > &a_boxes, const std::list< Box >::iterator &a_boxindex, const int a_maxboxsize) const |
Vector< int > | makeTrace (const IntVectSet &a_Ivs, int a_dir) const |
void | makeTraces (const IntVectSet &a_Ivs, Vector< int > *a_traces) const |
int | findSplit (const Vector< int > &a_trace) const |
int | findSplit (const Vector< int > &a_trace, const int a_maxSize) const |
int | findMaxInflectionPoint (const Vector< int > &a_trace, int &a_maxVal) const |
int | findMaxInflectionPoint (const Vector< int > &a_trace, int &a_maxVal, const int a_maxSize) 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 |
void | splitTagsInPlace (const int a_split_dir, const int a_split_indx, IntVectSet &a_tags_inout_lo, IntVectSet &a_tags_hi) const |
void | splitTagsInBestDimension (IntVectSet &a_tags_inout_lo, IntVectSet &a_tags_hi, const int a_maxSize) const |
void | breakBoxes (Vector< Box > &a_vboxin, const int &a_maxSize, const int &a_idir) const |
int | maxloc (const int *a_V, const int a_Size) const |
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 |
void | sendBoxesParallel (const std::list< Box > &a_mesh, int tag) const |
void | receiveBoxesParallel (const Interval &a_from, const Interval &a_to, std::list< Box > &a_mesh, int tag) const |
int | longsideRefineDirs (const Box &a_bx, int &a_dir) const |
![]() | |
virtual void | computeLocalBlockFactors () |
computes local blockFactors used internally to enforce the BlockFactor More... | |
virtual void | makePNDs (Vector< IntVectSet > &a_pnds, Vector< int > &a_totalBufferSize, const int a_baseLevel, const int a_topLevel, const Vector< ProblemDomain > &a_domains, const IntVectSet &a_baseMesh, const Vector< int > &a_bufferSize) const |
Computes proper nesting domains. More... | |
virtual void | makePNDs (Vector< IntVectSet > &a_pnds, Vector< int > &a_totalBufferSize, const int a_baseLevel, const int a_topLevel, const Vector< ProblemDomain > &a_domains, const Vector< Box > &a_baseMesh, const Vector< int > &a_bufferSize) const |
Protected Attributes | |
RefCountedPtr< MultiBlockCoordSysFactory > | m_factory |
std::map< ProblemDomain, MultiBlockCoordSys * > | m_coords |
RealVect | m_dxCoarse |
![]() | |
Vector< int > | m_messageBuffer |
![]() | |
bool | m_isDefined |
Vector< ProblemDomain > | m_vectDomains |
Vector< IntVectSet > | m_pnds |
int | m_lastBase |
int | m_lastTop |
int | m_lastBuffer |
Vector< int > | m_nRefVect |
Real | m_fillRatio |
int | m_blockFactor |
Vector< int > | m_level_blockfactors |
int | m_bufferSize |
int | m_maxSize |
int | m_granularity |
int | m_PNDMode |
IntVect | m_refineDirs |
int | m_lowestRefineDir |
A BRMeshRefine algorithm for MultiBlock domains. Only needs to cleverly intercept the virtual makePND operation.
bvs: March 2012
|
virtual |
Destructor.
MultiBlockMeshRefine::MultiBlockMeshRefine | ( | const ProblemDomain & | a_baseDomain, |
RealVect | dxCoarse, | ||
const RefCountedPtr< MultiBlockCoordSysFactory > & | a_factory, | ||
const Vector< int > & | a_refRatios, | ||
const Real | a_fillRatio, | ||
const int | a_blockFactor, | ||
const int | a_bufferSize, | ||
const int | a_maxSize | ||
) |
Full constructor – leaves object in usable state.
a_baseDomain | Level 0 domain. used to index into factory object for levels |
dxCoarse | level 0 grid spacing. needed for mapping information |
a_refRatios | Refinement ratios – refRatio[0] is btwn levels 0 and 1 |
a_fillRatio | Measure of how efficiently tagged cells will be covered |
a_blockFactor | Amount by which grids are guaranteed to be coarsenable |
a_bufferSize | Proper nesting buffer amount |
a_maxSize | Maximum grid length in any direction – 0 means no limit. |
|
inlineprotected |
Implementation/helper class Default constructor – leaves object in an unusable state. not callable by outside classes strong construction only for now.
|
protectedvirtual |
This one is to let Mapped Multiblock grids respect the PND across mapped boundaries.
Reimplemented from MeshRefine.
|
protectedvirtual |
These two are to get the tagging to respect Mapped Boundaries.
Reimplemented from MeshRefine.
|
protectedvirtual |
Reimplemented from MeshRefine.
|
protected |
|
protected |
|
mutableprotected |
|
protected |