|
chombo-discharge
|
Class for handling spatial operations. More...
#include <CD_AmrMesh.H>
Public Member Functions | |
| AmrMesh () | |
| Default constructor. | |
| AmrMesh (const AmrMesh &a_other)=delete | |
| Disallowed copy constructor. | |
| AmrMesh (const AmrMesh &&a_other)=delete | |
| Disallowed move constructor. | |
| virtual | ~AmrMesh () |
| Destructor. | |
| AmrMesh & | operator= (const AmrMesh &a_other)=delete |
| Disallowed copy assignment. | |
| AmrMesh & | operator= (const AmrMesh &&a_other)=delete |
| Disallowed move assignment. | |
| template<typename T > | |
| void | copyData (EBAMRData< T > &a_dst, const EBAMRData< T > &a_src, const CopyStrategy &a_toRegion=CopyStrategy::Valid, const CopyStrategy &a_fromRegion=CopyStrategy::Valid) const noexcept |
| Method for copying from a source container to a destination container. User supplies information about from/to regions. | |
| template<typename T > | |
| void | copyData (EBAMRData< T > &a_dst, const EBAMRData< T > &a_src, const Interval &a_dstComps, const Interval &a_srcComps, const CopyStrategy &a_toRegion=CopyStrategy::Valid, const CopyStrategy &a_fromRegion=CopyStrategy::Valid) const noexcept |
| Method for copying from a source container to a destination container. User supplies information. | |
| template<typename T > | |
| void | copyData (LevelData< T > &a_dst, const LevelData< T > &a_src, const int a_level, const std::string a_toRealm, const std::string a_fromRealm, const CopyStrategy &a_toRegion=CopyStrategy::Valid, const CopyStrategy &a_fromRegion=CopyStrategy::Valid) const noexcept |
| Method for copying from a source container to a destination container. User supplies information about from/to regions. | |
| template<typename T > | |
| void | copyData (LevelData< T > &a_dst, const LevelData< T > &a_src, const int a_level, const std::string a_toRealm, const std::string a_fromRealm, const Interval &a_dstComps, const Interval &a_srcComps, const CopyStrategy &a_toRegion=CopyStrategy::Valid, const CopyStrategy &a_fromRegion=CopyStrategy::Valid) const noexcept |
| Method for copying from a source container to a destination container. User supplies information about from/to regions. | |
| template<typename T > | |
| void | deallocate (Vector< T * > &a_data) const |
| Deallocate data. | |
| template<typename T > | |
| void | deallocate (Vector< RefCountedPtr< T > > &a_data) const |
| Deallocate smart pointer data. | |
| template<typename T > | |
| void | deallocate (EBAMRData< T > &a_data) const |
| Deallocate data. | |
| template<typename T > | |
| void | alias (Vector< T * > &a_alias, const Vector< RefCountedPtr< T > > &a_data) const |
| Turn smart-pointer data structure into regular-pointer data structure. | |
| template<typename T , typename S > | |
| void | alias (Vector< T * > &a_alias, const EBAMRData< S > &a_data) const |
| Turn smart-pointer data structure into regular-pointer data structure. | |
| template<typename P , typename Traits > | |
| void | allocate (ParticleContainer< P, Traits > &a_container, const std::string &a_realm) const |
| Allocate a struct-of-arrays particle container on the given realm. | |
| template<typename T > | |
| void | allocatePointer (Vector< RefCountedPtr< T > > &a_data) const |
| Allocate pointer but not any memory blocks. | |
| template<typename T > | |
| void | allocatePointer (Vector< RefCountedPtr< T > > &a_data, const int a_finestLevel) const |
| Allocate pointer but not any memory blocks. | |
| template<typename T > | |
| void | allocatePointer (EBAMRData< T > &a_data, const std::string &a_realm) const |
| Allocate pointer but not any memory blocks. | |
| template<typename T > | |
| void | allocatePointer (EBAMRData< T > &a_data, const std::string &a_realm, const int a_finestLevel) const |
| Allocate pointer but not any memory. | |
| EBAMRCellData | slice (EBAMRCellData &a_original, const Interval a_variables) const noexcept |
| Slice cell-centered data in order to fetch a subset of components. | |
| EBAMRCellData | slice (const EBAMRCellData &a_original, const Interval a_variables) const noexcept |
| Slice cell-centered data in order to fetch a subset of components. | |
| void | parseOptions () |
| Parse options. Called during the constructor. | |
| void | parseRuntimeOptions () |
| Parse runtime options. | |
| void | registerOperator (const std::string &a_operator, const std::string &a_realm, const phase::which_phase a_phase) |
| Register an operator over a realm and a phase. | |
| void | registerMask (const std::string &a_mask, const int a_buffer, const std::string &a_realm) |
| Register a boolean mask over a realm. | |
| void | buildDomains () |
| Build domains. | |
| void | setFinestLevel (const int a_finestLevel) |
| Set the finest level. | |
| void | setCoarsestGrid (const IntVect &a_nCells) |
| Set the coarsest grid cells. | |
| bool | queryRealm (const std::string &a_realm) const |
| Query if a realm exists. | |
| bool | getEbCf () const |
| Check if mesh has an EBCF. | |
| void | registerRealm (const std::string &a_realm) |
| Register a new realm. | |
| void | alias (EBAMRCellData &a_data, const phase::which_phase a_phase, const MFAMRCellData &a_mfdata, const int a_finestLevel) const |
| Alias multifluid data up to a specified level. | |
| void | alias (EBAMRFluxData &a_data, const phase::which_phase a_phase, const MFAMRFluxData &a_mfdata, const int a_finestLevel) const |
| Alias multifluid data up to a specified level. | |
| void | alias (EBAMRCellData &a_data, const phase::which_phase a_phase, const MFAMRCellData &a_mfdata) const |
| Alias an entire hierarchy of multifluid data. | |
| void | alias (EBAMRFluxData &a_data, const phase::which_phase a_phase, const MFAMRFluxData &a_mfdata) const |
| Alias an entire hierarchy of multifluid data. | |
| void | alias (EBAMRIVData &a_data, const phase::which_phase a_phase, const MFAMRIVData &a_mfdata) const |
| Alias an entire hierarchy of multifluid data. | |
| EBAMRCellData | alias (const phase::which_phase a_phase, const MFAMRCellData &a_mfdata) const |
| Alias an entire hierarchy of multifluid data. | |
| EBAMRFluxData | alias (const phase::which_phase a_phase, const MFAMRFluxData &a_mfdata) const |
| Alias an entire hierarchy of multifluid data. | |
| EBAMRIVData | alias (const phase::which_phase a_phase, const MFAMRIVData &a_mfdata) const |
| Alias an entire hierarchy of multifluid data. | |
| void | computeGradient (EBAMRCellData &a_gradient, const EBAMRCellData &a_phi, const std::string &a_realm, const phase::which_phase a_phase) const |
| Compute cell-centered gradient over an AMR hierarchy. | |
| void | computeGradient (EBAMRFluxData &a_gradient, const EBAMRCellData &a_phi, const std::string &a_realm, const phase::which_phase a_phase) const |
| Compute face-centered gradient over an AMR hierarchy. | |
| void | computeGradient (MFAMRCellData &a_gradient, const MFAMRCellData &a_phi, const std::string &a_realm) const |
| Compute cell-centered gradient over an AMR hierarchy. | |
| void | computeGradient (MFAMRFluxData &a_gradient, const MFAMRCellData &a_phi, const std::string &a_realm) const |
| Compute face-centered gradient over an AMR hierarchy. | |
| void | allocate (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase, const int a_nComp, const int a_ghost=-1) const |
| Allocate a data holder over a specific realm. | |
| void | allocate (LevelData< EBCellFAB > &a_data, const std::string &a_realm, const phase::which_phase a_phase, const int a_level, const int a_nComp, const int a_ghost=-1) const |
| Allocate data on specific level. | |
| void | allocate (EBAMRFluxData &a_data, const std::string &a_realm, const phase::which_phase a_phase, const int a_nComp, const int a_ghost=-1) const |
| Allocate a data holder over a specific realm. | |
| void | allocate (EBAMRIVData &a_data, const std::string &a_realm, const phase::which_phase a_phase, const int a_nComp, const int a_ghost=-1) const |
| Allocate a data holder over a specific realm. | |
| void | allocate (EBAMRIFData &a_data, const std::string &a_realm, const phase::which_phase a_phase, const int a_nComp, const int a_ghost=-1) const |
| Allocate a data holder over a specific realm. | |
| void | allocate (EBAMRBool &a_data, const std::string &a_realm, const int a_nComp, const int a_ghost=-1) const |
| Allocate Boolean data over a specific realm. | |
| void | allocate (EBAMRFAB &a_data, const std::string &a_realm, const int a_nComp, const int a_ghost=-1) const |
| Allocate regular (non-EB) cell data over a specific realm. | |
| void | allocate (MFAMRCellData &a_data, const std::string &a_realm, const int a_nComp, const int a_ghost=-1) const |
| Allocate a data holder over a specific realm. | |
| void | allocate (MFAMRFluxData &a_data, const std::string &a_realm, const int a_nComp, const int a_ghost=-1) const |
| Allocate a data holder over a specific realm. | |
| void | allocate (MFAMRIVData &a_data, const std::string &a_realm, const int a_nComp, const int a_ghost=0) const |
| Allocate a data holder over a specific realm. | |
| void | reallocate (EBAMRCellData &a_data, const phase::which_phase a_phase, const int a_lmin) const |
| Reallocate data. | |
| void | reallocate (EBAMRFluxData &a_data, const phase::which_phase a_phase, const int a_lmin) const |
| Reallocate data. | |
| void | reallocate (EBAMRIVData &a_data, const phase::which_phase a_phase, const int a_lmin) const |
| Reallocate data. | |
| void | reallocate (EBAMRIFData &a_data, const phase::which_phase a_phase, const int a_lmin) const |
| Reallocate data. | |
| void | reallocate (EBAMRBool &a_data, const int a_lmin) const |
| Reallocate data. | |
| void | reallocate (MFAMRCellData &a_data, const int a_lmin) const |
| Reallocate data. | |
| void | reallocate (MFAMRFluxData &a_data, const int a_lmin) const |
| Reallocate data. | |
| void | reallocate (MFAMRIVData &a_data, const int a_lmin) const |
| Reallocate data. | |
| void | average (MFAMRCellData &a_data, const std::string &a_realm, const Average &a_average) const |
| Average multifluid data over a specified realm. | |
| void | arithmeticAverage (MFAMRCellData &a_data, const std::string &a_realm) const |
| Arithmetic coarsening of multifluid data. | |
| void | harmonicAverage (MFAMRCellData &a_data, const std::string &a_realm) const |
| Harmonic coarsening of multifluid data. | |
| void | conservativeAverage (MFAMRCellData &a_data, const std::string &a_realm) const |
| Conservative coarsening of multifluid data. | |
| void | average (MFAMRFluxData &a_data, const std::string &a_realm, const Average &a_average) const |
| Average multifluid data over a specified realm. | |
| void | arithmeticAverage (MFAMRFluxData &a_data, const std::string &a_realm) const |
| Average multifluid data over a realm. | |
| void | harmonicAverage (MFAMRFluxData &a_data, const std::string &a_realm) const |
| Average multifluid data over a realm. | |
| void | conservativeAverage (MFAMRFluxData &a_data, const std::string &a_realm) const |
| Average down multifluid data over a realm. | |
| void | average (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase, const Average &a_average) const |
| Average down on specific realm and phase. | |
| void | average (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase, const Average &a_average, const Interval &a_variables) const |
| Average down on specific realm and phase. | |
| void | arithmeticAverage (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Arithmetic average of data. Does all components. | |
| void | arithmeticAverage (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase, const Interval &a_variables) const |
| Arithmetic average of data. | |
| void | harmonicAverage (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Harmonic average of data. Does all components. | |
| void | harmonicAverage (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase, const Interval &a_variables) const |
| Harmonic average of data. Does all components. | |
| void | conservativeAverage (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Conseratively average data. Does all components. | |
| void | conservativeAverage (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase, const Interval &a_variables) const |
| Conseratively average data. Does all components. | |
| void | average (EBAMRFluxData &a_data, const std::string &a_realm, const phase::which_phase a_phase, const Average &a_average) const |
| Average down on specific realm and phase. | |
| void | arithmeticAverage (EBAMRFluxData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Average down on specific realm and phase. | |
| void | harmonicAverage (EBAMRFluxData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Average down on specific realm and phase. | |
| void | conservativeAverage (EBAMRFluxData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Average down on specific realm and phase. | |
| void | average (EBAMRIVData &a_data, const std::string &a_realm, const phase::which_phase a_phase, const Average &a_average) const |
| Average down on specific realm and phase. | |
| void | arithmeticAverage (EBAMRIVData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Arithmetic average on specific realm and phase. | |
| void | harmonicAverage (EBAMRIVData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Harmonic average on specific realm and phase. | |
| void | conservativeAverage (EBAMRIVData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Conservative averaging on specific realm and phase. | |
| template<typename P , typename Traits > | |
| void | depositParticles (EBAMRIVData &a_meshData, const std::string &a_realm, const phase::which_phase &a_phase, const ParticleContainer< P, Traits > &a_particles) const noexcept |
| Deposit the weight column of an SoA particle container onto the surface (EB). | |
| template<typename P , typename Traits > | |
| void | depositWeight (EBAMRCellData &a_meshData, const std::string &a_realm, const phase::which_phase &a_phase, const ParticleContainer< P, Traits > &a_particles, const DepositionType a_depositionType, const CoarseFineDeposition a_coarseFineDeposition, const bool a_forceIrregNGP) |
| Deposit the SoA container's weight column on the mesh (all coarse-fine strategies). | |
| template<typename P , typename Traits , typename CellGather > | |
| void | depositGathered (EBAMRCellData &a_meshData, const std::string &a_realm, const phase::which_phase &a_phase, const ParticleContainer< P, Traits > &a_particles, const DepositionType a_depositionType, const CoarseFineDeposition a_coarseFineDeposition, const bool a_forceIrregNGP, CellGather a_cellGather) |
| Deposit a custom per-particle scalar (a_cellGather) of an SoA container on the mesh. | |
| template<auto... Members, typename P , typename Traits > | |
| void | depositParticles (EBAMRCellData &a_meshData, const std::string &a_realm, const phase::which_phase &a_phase, const ParticleContainer< P, Traits > &a_particles, const DepositionType a_depositionType, const CoarseFineDeposition a_coarseFineDeposition, const bool a_forceIrregNGP) |
| Deposit one or more SoA payload columns on the mesh (all coarse-fine strategies). | |
| template<typename P , typename Traits > | |
| void | interpolateWeight (ParticleContainer< P, Traits > &a_particles, const std::string &a_realm, const phase::which_phase &a_phase, const EBAMRCellData &a_meshScalarField, const DepositionType a_interpType, const bool a_forceIrregNGP) const |
| Interpolate a mesh scalar field onto the SoA container's weight column. | |
| template<auto... Members, typename P , typename Traits > | |
| void | interpolateParticles (ParticleContainer< P, Traits > &a_particles, const std::string &a_realm, const phase::which_phase &a_phase, const EBAMRCellData &a_meshField, const DepositionType a_interpType, const bool a_forceIrregNGP) const |
| Interpolate a mesh field onto one or more SoA payload columns. | |
| template<typename P , typename Traits > | |
| void | removeCoveredParticlesIF (ParticleContainer< P, Traits > &a_particles, const phase::which_phase &a_phase, const Real a_tolerance) const |
| Remove SoA particles that fall inside the EB (implicit-function test): f(x) > a_tolerance*dx. | |
| template<typename P , typename Traits > | |
| void | removeCoveredParticlesDiscrete (ParticleContainer< P, Traits > &a_particles, const phase::which_phase &a_phase, const Real a_tolerance) const |
| Remove SoA particles inside the EB using discrete (EBISBox) information: covered cells, or irregular cells on the wrong side of every VoF's EB face (to within a_tolerance*dx). | |
| template<typename P , typename Traits > | |
| void | removeCoveredParticlesVoxels (ParticleContainer< P, Traits > &a_particles, const phase::which_phase &a_phase) const |
| Remove SoA particles that live in covered cells (voxel test). | |
| template<typename P , typename Traits > | |
| void | transferCoveredParticlesIF (ParticleContainer< P, Traits > &a_particlesFrom, ParticleContainer< P, Traits > &a_particlesTo, const phase::which_phase &a_phase, const Real a_tolerance) const |
| Transfer SoA particles inside the EB (implicit-function test) from one container to another: f(x) > a_tolerance*dx. | |
| template<typename P , typename Traits > | |
| void | transferCoveredParticlesDiscrete (ParticleContainer< P, Traits > &a_particlesFrom, ParticleContainer< P, Traits > &a_particlesTo, const phase::which_phase &a_phase, const Real a_tolerance) const |
| Transfer SoA particles inside the EB using discrete (EBISBox) information from one container to another. | |
| template<typename P , typename Traits > | |
| void | transferCoveredParticlesVoxels (ParticleContainer< P, Traits > &a_particlesFrom, ParticleContainer< P, Traits > &a_particlesTo, const phase::which_phase &a_phase) const |
| Transfer SoA particles that live in covered cells (voxel test) from one container to another. | |
| template<typename P , typename Traits > | |
| void | transferIrregularParticles (ParticleContainer< P, Traits > &a_dstParticles, ParticleContainer< P, Traits > &a_srcParticles, const phase::which_phase a_phase) const noexcept |
| Transfer SoA particles that are on the covered side of the EB to a different container. | |
| template<auto... OldPosition, typename P , typename Traits > | |
| void | intersectParticlesRaycastIF (ParticleContainer< P, Traits > &a_activeParticles, ParticleContainer< P, Traits > &a_ebParticles, ParticleContainer< P, Traits > &a_domainParticles, const phase::which_phase a_phase, const Real a_tolerance, const bool a_deleteParticles, const std::function< void(ParticleSoA< P, Traits > &, std::size_t)> &a_nonDeletionModifier) const noexcept |
| SoA ray-casting particle intersection algorithm. | |
| template<auto... OldPosition, typename P , typename Traits > | |
| void | intersectParticlesBisectIF (ParticleContainer< P, Traits > &a_activeParticles, ParticleContainer< P, Traits > &a_ebParticles, ParticleContainer< P, Traits > &a_domainParticles, const phase::which_phase a_phase, const Real a_bisectionStep, const bool a_deleteParticles, const std::function< void(ParticleSoA< P, Traits > &, std::size_t)> &a_nonDeletionModifier) const noexcept |
| SoA bisection-based particle intersection algorithm. | |
| void | interpGhost (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Interpolate ghost vectors over a realm, using the default ghost cell interpolation method. | |
| void | interpGhost (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarData, const int a_fineLevel, const std::string &a_realm, const phase::which_phase a_phase) const |
| Interpolate ghost cells over a realm, using the default ghost cell interpolation method on a specific level. | |
| void | interpGhost (MFAMRCellData &a_data, const std::string &a_realm) const |
| Interpolate ghost cells over a realm. Calls the default ghost cell interpolation method. | |
| void | interpGhostPwl (MFAMRCellData &a_data, const std::string &a_realm) const |
| Interpolate ghost cells over a realm and phase. This uses piecewise linear interpolation (with limiters) | |
| void | interpGhostPwl (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Interpolate ghost cells over a realm and phase. This uses piecewise linear interpolation (with limiters) | |
| void | interpGhostMG (MFAMRCellData &a_data, const std::string &a_realm) const |
| Interpolate ghost cells over a realm and phase. | |
| void | interpGhostMG (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const |
| Interpolate ghost cells over a realm and phase. | |
| void | interpToNewGrids (MFAMRCellData &a_newData, const MFAMRCellData &a_oldData, const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel, const EBCoarseToFineInterp::Type a_type) |
| Interpolate data to new grids. | |
| void | interpToNewGrids (EBAMRCellData &a_newData, const EBAMRCellData &a_oldData, const phase::which_phase a_phase, const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel, const EBCoarseToFineInterp::Type a_type) |
| Interpolate data to new grids. | |
| void | interpToNewGrids (EBAMRIVData &a_newData, const EBAMRIVData &a_oldData, const phase::which_phase a_phase, const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel, const EBCoarseToFineInterp::Type a_type) |
| Interpolate data to new grids. | |
| template<typename P , typename Traits > | |
| void | remapToNewGrids (ParticleContainer< P, Traits > &a_particles, const int a_lmin, const int a_newFinestLevel) const noexcept |
| Regrid a struct-of-arrays particle container to new grids. | |
| void | interpToCentroids (EBAMRCellData &a_data, const std::string &a_realm, const phase::which_phase a_phase) const noexcept |
| Interpolate data to centroids on realm and phase. | |
| void | interpToCentroids (LevelData< EBCellFAB > &a_data, const std::string &a_realm, const phase::which_phase a_phase, const int a_level) const noexcept |
| Interpolate data to centroids. | |
| void | interpToCentroids (EBCellFAB &a_centroidData, const EBCellFAB &a_cellData, const std::string &a_realm, const phase::which_phase a_phase, const int a_level, const DataIndex &a_din) const noexcept |
| Interpolate data to centroids. | |
| void | interpToCentroids (EBAMRIVData &a_centroidData, const EBAMRCellData &a_cellData, const std::string &a_realm, const phase::which_phase a_phase) const noexcept |
| Interpolate data to centroids on realm and phase. | |
| void | interpToCentroids (LevelData< BaseIVFAB< Real > > &a_centroidData, const LevelData< EBCellFAB > &a_cellData, const std::string &a_realm, const phase::which_phase a_phase, const int a_level) const noexcept |
| Interpolate data to centroids. | |
| void | interpToEB (EBAMRIVData &a_centroidData, const EBAMRCellData &a_cellData, const std::string &a_realm, const phase::which_phase a_phase) const noexcept |
| Interpolate data to EB centroids on realm and phase. | |
| void | interpToEB (LevelData< BaseIVFAB< Real > > &a_centroidData, const LevelData< EBCellFAB > &a_cellData, const std::string &a_realm, const phase::which_phase a_phase, const int a_level) const noexcept |
| Interpolate data to EB centroids. | |
| void | interpToEB (BaseIVFAB< Real > &a_centroidData, const EBCellFAB &a_cellData, const std::string &a_realm, const phase::which_phase a_phase, const int a_level, const DataIndex &a_din) const noexcept |
| Interpolate data to EB centroids. | |
| void | nonConservativeDivergence (EBAMRIVData &a_nonConsDivF, const EBAMRCellData &a_kappaDivF, const std::string &a_realm, const phase::which_phase &a_phase) const noexcept |
| Compute a non-conservative divergence. | |
| void | nonConservativeDivergence (LevelData< BaseIVFAB< Real > > &a_nonConsDivF, const LevelData< EBCellFAB > &a_kappaDivF, const int &a_level, const std::string &a_realm, const phase::which_phase &a_phase) const noexcept |
| Compute a non-conservative divergence. | |
| void | setMultifluidIndexSpace (const RefCountedPtr< MultiFluidIndexSpace > &a_multiFluidIndexSpace) |
| Sets multifluid index space. | |
| void | setBaseImplicitFunction (const phase::which_phase a_phase, const RefCountedPtr< BaseIF > &a_baseIF) |
| Set implicit function for a specific phase. Need e.g. for level-sets. | |
| void | preRegrid () |
| Run pre-regrid operations. | |
| void | regridAmr (const Vector< IntVectSet > &a_tags, const int a_lmin, const int a_hardcap=-1) |
| Regrid AMR. This versions generates the grids and Realms, but not the operator. | |
| void | regridRealm (const std::string &a_realm, const Vector< Vector< int > > &a_procs, const Vector< Vector< Box > > &a_boxes, const int a_lmin) |
| Regrid a realm. This generates the grids for the realm, but does not do the operators on the realm. | |
| void | postRegrid () |
| Run post-regrid operations. | |
| void | setGrids (const Vector< Vector< Box > > &a_boxes, const std::map< std::string, Vector< Vector< long int > > > &a_realmsAndLoads) |
| Set grids from boxes and computational loads. | |
| void | regridOperators (const int a_lmin) |
| Regrid AMR operators. This is done for all realms. | |
| void | regridOperators (const std::string &a_realm, const int a_lmin) |
| Regrid AMR operators. This is done for a specific realm. | |
| void | sanityCheck () const |
| Do a sanity check to make sure everything is set up correctly. | |
| int | getFinestLevel () const |
| Get finest grid level. | |
| int | getMaxAmrDepth () const |
| Get maximum permitted amr depth. | |
| int | getMaxSimulationDepth () const |
| Get maximum permitted simulation depth. | |
| int | getMinBlockSize () const |
| Get the minimum block size (i.e. the smallest possible box / tile size). | |
| int | getBlockingFactor () const |
| Deprecated alias for getMinBlockSize(). | |
| int | getMaxBlockSize () const |
| Get maximum permitted block size. | |
| int | getMaxBoxSize () const |
| Deprecated alias for getMaxBlockSize(). | |
| int | getBrBuffer () const |
| Return buffer for B-R mesh refinement algorithm. | |
| int | getMaxEbisBoxSize () const |
| Get maximum box size for EBIS generation. | |
| int | getNumberOfGhostCells () const |
| Get the default number of ghost cells. | |
| int | getNumberOfEbGhostCells () const |
| Get number of ghost cells used for EB grid generation. | |
| int | getRedistributionRadius () const |
| Get default redistribution radius. | |
| Real | getFinestDx () const |
| Get resolution on the finest grid level. | |
| RealVect | getProbLo () const |
| Get lower-left corner of computational domain. | |
| RealVect | getProbHi () const |
| Get upper-right corner of computational domain. | |
| ProblemDomain | getFinestDomain () const |
| Get finest domain. | |
| const Vector< Real > & | getDx () const |
| Get spatial resolutions. | |
| const Vector< int > & | getRefinementRatios () const |
| Get refinement ratios. | |
| int | getRefinementRatio (const int a_level1, const int a_level2) const |
| Get refinement factor between two levels. | |
| const RefCountedPtr< BaseIF > & | getBaseImplicitFunction (const phase::which_phase a_phase) const |
| Get implicit function for a specific phase. | |
| const Vector< DisjointBoxLayout > & | getProxyGrids () const |
| Get the "proxy" grids in AmrMesh. | |
| const Vector< DisjointBoxLayout > & | getGrids (const std::string &a_realm) const |
| Get the grids. | |
| const Vector< ProblemDomain > & | getDomains () const |
| Get domains. | |
| const AMRMask & | getMask (const std::string &a_mask, const int a_buffer, const std::string &a_realm) const |
| Get a registered mask. | |
| const AMRMask & | getValidCells (const std::string &a_realm) const |
| Get a map of all valid cells on a specified realm. | |
| const Vector< RefCountedPtr< LevelTiles > > & | getLevelTiles (const std::string &a_realm) const |
| Get the tiled space representation. | |
| void | registerParticleGhostMask (const std::string &a_realm, const int a_width) |
| Register a particle ghost-mask width on a realm so it is (re)built at every regrid. | |
| const AMRParticleGhostMask & | getParticleGhostMask (const std::string &a_realm, const int a_width) const |
| Get the same-level particle ghost mask on a realm for a registered width. | |
| const AMRParticleGhostMask & | getParticleGhostMaskFineToCoar (const std::string &a_realm, const int a_width) const |
| Get the fine-to-coarse particle ghost mask on a realm for a registered width. | |
| const AMRParticleGhostMask & | getParticleGhostMaskCoarToFine (const std::string &a_realm, const int a_width) const |
| Get the coarse-to-fine particle ghost mask on a realm for a registered width. | |
| const AMRParticleGhostMask & | getTrivialParticleGhostMask () const |
| Get a trivial (empty) particle ghost mask that scatters no particles. | |
| const AMRMask & | getParticleGhostExposure (const std::string &a_realm, const int a_width) const |
| Get the particle boundary-exposure mask on a realm for a registered width. | |
| const Vector< RefCountedPtr< EBLevelGrid > > & | getEBLevelGrid (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get the EBLevelGrid for a Realm and phase. | |
| const Vector< RefCountedPtr< EBLevelGrid > > & | getEBLevelGridCoFi (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get the coarsened fine EBLevelGrid for a Realm and phase. | |
| const Vector< EBISLayout > & | getEBISLayout (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get EBISLayouts for a Realm and phase. | |
| const Vector< RefCountedPtr< MFLevelGrid > > & | getMFLevelGrid (const std::string &a_realm) const |
| Get EBISLayouts for a Realm. | |
| Vector< RefCountedPtr< LayoutData< VoFIterator > > > & | getVofIterator (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get VoF iterators covering all cut-cells (singly- and multiply-cut) for a Realm and phase. | |
| Vector< RefCountedPtr< LayoutData< VoFIterator > > > & | getMultiCutVofIterator (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get vof iterators restricted to multiply-cut cells for a Realm and phase. | |
| Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & | getFaceIterator (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get face iterators over cut-cell faces in each valid grid box (FaceStop::SurroundingWithBoundary). | |
| Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & | getFaceIteratorNoBoundary (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get face iterators over cut-cell faces in each valid grid box (FaceStop::SurroundingNoBoundary). | |
| Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & | getFaceIteratorWithTangentialGhosts (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get per-direction face iterators covering cut-cell faces that reach into the tangential ghost layer. | |
| Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & | getMultiCutFaceIterator (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get face iterators restricted to multiply-cut faces in each valid grid box. | |
| const EBAMRFAB & | getLevelset (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get levelset function, allocated over a grid for a Realm and phase. | |
| const EBAMRCellData & | getRegularCells (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get the regular-cell mask (value 1 in regular cells, 0 elsewhere) for a Realm and phase. | |
| const EBAMRCellData & | getCoveredCells (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get the covered-cell mask (value 1 in covered cells, 0 elsewhere) for a Realm and phase. | |
| const EBAMRCellData & | getNotCoveredCells (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get the non-covered-cell mask (1 in regular/irregular cells, 0 in covered cells) for a Realm and phase. | |
| const EBAMRCellData & | getIrregularCells (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get the irregular-cell mask (value 1 in irregular cells, 0 elsewhere) for a Realm and phase. | |
| EBAMRParticleMesh & | getParticleMesh (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get EBAMRParticleMesh operator. | |
| EBAMRSurfaceDeposition & | getSurfaceDeposition (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get EBAMRSurfaceDeposition surface deposition operator. | |
| Vector< RefCountedPtr< EBCoarAve > > & | getCoarseAverage (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get the coarsening utility. | |
| Vector< RefCountedPtr< EBMultigridInterpolator > > & | getMultigridInterpolator (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get multigrid interpolation utility. | |
| Vector< RefCountedPtr< EBCoarseToFineInterp > > & | getFineInterp (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get interpolator. | |
| Vector< RefCountedPtr< EBReflux > > & | getFluxRegister (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get flux register. | |
| Vector< RefCountedPtr< EBFluxRedistribution > > & | getRedistributionOp (const std::string &a_realm, const phase::which_phase a_phase) const |
| Get the redistribution operators. | |
| std::vector< std::string > | getRealms () const |
| Get the name of all Realms. | |
| BoxSorting | getBoxSorting () const |
| Get box sorting method. | |
| RefCountedPtr< EBIndexSpace > & | getEBIndexSpace (const phase::which_phase a_phase) |
| Get EBIndexSpace corresponding to a particular phase. | |
Protected Types | |
| enum class | GridGenerationMethod { BergerRigoutsous , Tiled } |
| Enum for having understandable notation for grid generation. | |
Protected Member Functions | |
| void | defineRealms () |
| Define Realms. | |
| void | buildGrids (const Vector< IntVectSet > &a_tags, const int a_lmin, const int a_hardcap=-1) |
| Build new internal AMR grids. | |
| void | buildCopiers () |
| Build copiers for copying between realms. | |
| void | parseProbLoHiCorners () |
| Parse the low/high corners of the computational domain. | |
| void | parseGridGeneration () |
| Parse the grid generation algorithm. | |
| void | parseVerbosity () |
| Parse the verbosity for AmrMesh. | |
| void | parseCoarsestLevelNumCells () |
| Parse the coarsest domain grid. | |
| void | parseMaxAmrDepth () |
| Parse the maximum permitted AMR depth. | |
| void | parseMaxSimulationDepth () |
| Set maximum simulation depth. | |
| void | parseRefinementRatios () |
| Parse refinement ratios. | |
| void | parseBrBufferSize () |
| Parse buffer size for Berger-Rigoutsous grid algorithm. | |
| void | parseBrFillRatio () |
| Parse the Berger-Rigoutsos fill ratio. | |
| void | parseMaxBlockSize () |
| Parse the maximum permitted box size. | |
| void | parseMaxEbisBoxSize () |
| Parse the maximum permitted box size. | |
| void | parseMinBlockSize () |
| Parse the B-R blocking factor. For tiled mesh refinement this parses the tile size. | |
| void | parseEbGhostCells () |
| Parse number of ghost cells for eb stuff. | |
| void | parseNumGhostCells () |
| Parse the number of ghost cells. | |
| void | parseMultigridInterpolator () |
| Parse settings for the multigrid interpolator. | |
| void | parseRedistributionRadius () |
| Parse the default redistribution radius. | |
| void | parseCellCentroidInterpolation () |
| Parse centroid interpolation stencils. | |
| void | parseEBCentroidInterpolation () |
| Parse EB interpolation (or extrapolation) stencils. | |
| void | computeGradient (LevelData< EBCellFAB > &a_gradient, const LevelData< EBCellFAB > &a_phi, const std::string &a_realm, const phase::which_phase a_phase, const int a_lvl) const |
| Compute cell-centered gradient for a grid level. | |
Protected Attributes | |
| std::map< std::string, RefCountedPtr< Realm > > | m_realms |
| These are all the Realms. | |
| std::map< phase::which_phase, RefCountedPtr< BaseIF > > | m_baseif |
| Implicit functions. | |
| std::map< std::string, Vector< DisjointBoxLayout > > | m_oldGrids |
| Old grids. | |
| std::map< std::string, Vector< Copier > > | m_oldToNewCellCopiers |
| Storage for copiers from the old grids to the new ones. | |
| std::map< std::string, Vector< Copier > > | m_oldToNewEBCopiers |
| Storage for copiers from the old grids to the new ones. | |
| std::map< std::pair< std::string, std::string >, Vector< Copier > > | m_validToValidRealmCopiers |
| Map for copying between various Realms. First index is the "from" realm and second index is the "to" realm. | |
| std::map< std::pair< std::string, std::string >, Vector< Copier > > | m_validToValidGhostRealmCopiers |
| Map for copying between various Realms. First index is the "from" realm and second index is the "to" realm. | |
| std::map< std::pair< std::string, std::string >, Vector< Copier > > | m_validGhostToValidRealmCopiers |
| Map for copying between various Realms. First index is the "from" realm and second index is the "to" realm. | |
| std::map< std::pair< std::string, std::string >, Vector< Copier > > | m_validGhostToValidGhostRealmCopiers |
| Map for copying between various Realms. First index is the "from" realm and second index is the "to" realm. | |
| GridGenerationMethod | m_gridGenerationMethod |
| Grid generation method. | |
| BoxSorting | m_boxSort |
| Box sorting. | |
| RefCountedPtr< MultiFluidIndexSpace > | m_multifluidIndexSpace |
| MultiFluidIndexSpace. | |
| CellCentroidInterpolation::Type | m_cellCentroidInterpolationType |
| Interpolation type for cell to cell centroid interpolation. | |
| EBCentroidInterpolation::Type | m_ebCentroidInterpolationType |
| Interpolation type for cell to EB centroid interpolation. | |
| IntVect | m_numCells |
| Coarsest box where we compute. | |
| Real | m_fillRatioBR |
| Fill ratio. | |
| RealVect | m_probLo |
| Domain simulation corner. | |
| RealVect | m_probHi |
| Domain simulation corner. | |
| int | m_refRatio |
| Refinement ratio. | |
| int | m_verbosity |
| Verbosity. | |
| int | m_finestLevel |
| Finest level. | |
| int | m_oldFinestLevel |
| Finest level before a regrid. | |
| int | m_maxAmrDepth |
| Maximum amr depth. | |
| int | m_maxSimulationDepth |
| Maximum allowed depth for simulation. | |
| int | m_maxBlockSize |
| Max box size. | |
| int | m_maxEbisBoxSize |
| Maximum box size for EBIS generation. | |
| int | m_bufferSizeBR |
| Set buffer size. | |
| int | m_minBlockSize |
| Blocking factor. | |
| int | m_numEbGhostsCells |
| Number of ghost cells to use for eb stuff. | |
| int | m_numGhostCells |
| Number of ghost cells. | |
| int | m_numLsfGhostCells |
| Number of ghost cells to use when writing level-set to grid. | |
| int | m_multigridInterpOrder |
| Multigrid interpolation order. | |
| int | m_multigridInterpRadius |
| Multigrid interpolation radius. | |
| int | m_multigridInterpWeight |
| Multigrid interpolation weights. | |
| int | m_redistributionRadius |
| Redistribution radius. | |
| bool | m_hasGrids |
| Has grids or not. | |
| bool | m_hasRegridCopiers |
| Has regrid copiers or not. | |
| Vector< DisjointBoxLayout > | m_grids |
| Grids. | |
| Vector< ProblemDomain > | m_domains |
| Problem domains. | |
| Vector< int > | m_refinementRatios |
| AMR resolutions. | |
| Vector< Real > | m_dx |
| Level resolutions. | |
Class for handling spatial operations.
This class handles most (if not all) spatial operations. Examples are grid generation, coarsening of data, interpolation of data, memory allocations etc.
|
delete |
Disallowed copy constructor.
| [in] | a_other | Other AmrMesh |
|
delete |
Disallowed move constructor.
| [in] | a_other | Other AmrMesh |
| EBAMRCellData AmrMesh::alias | ( | const phase::which_phase | a_phase, |
| const MFAMRCellData & | a_mfdata | ||
| ) | const |
Alias an entire hierarchy of multifluid data.
| [in] | a_phase | Phase (gas or solid). |
| [in] | a_mfdata | Multifluid data to be aliased |
| EBAMRFluxData AmrMesh::alias | ( | const phase::which_phase | a_phase, |
| const MFAMRFluxData & | a_mfdata | ||
| ) | const |
Alias an entire hierarchy of multifluid data.
| [in] | a_phase | Phase (gas or solid). |
| [in] | a_mfdata | Multifluid data to be aliased |
| EBAMRIVData AmrMesh::alias | ( | const phase::which_phase | a_phase, |
| const MFAMRIVData & | a_mfdata | ||
| ) | const |
Alias an entire hierarchy of multifluid data.
| [in] | a_phase | Phase (gas or solid). |
| [in] | a_mfdata | Multifluid data to be aliased |
| void AmrMesh::alias | ( | EBAMRCellData & | a_data, |
| const phase::which_phase | a_phase, | ||
| const MFAMRCellData & | a_mfdata | ||
| ) | const |
Alias an entire hierarchy of multifluid data.
| [out] | a_data | Single-phased data on specific phase |
| [in] | a_phase | Phase (gas or solid). |
| [in] | a_mfdata | Multifluid data to be aliased |
| void AmrMesh::alias | ( | EBAMRCellData & | a_data, |
| const phase::which_phase | a_phase, | ||
| const MFAMRCellData & | a_mfdata, | ||
| const int | a_finestLevel | ||
| ) | const |
Alias multifluid data up to a specified level.
| [out] | a_data | Single-phased data on specific phase |
| [in] | a_phase | Phase (gas or solid). |
| [in] | a_mfdata | Multifluid data to be aliased |
| [in] | a_finestLevel | Maximum grid level for aliasing operation. |
| void AmrMesh::alias | ( | EBAMRFluxData & | a_data, |
| const phase::which_phase | a_phase, | ||
| const MFAMRFluxData & | a_mfdata | ||
| ) | const |
Alias an entire hierarchy of multifluid data.
| [out] | a_data | Single-phased data on specific phase |
| [in] | a_phase | Phase (gas or solid). |
| [in] | a_mfdata | Multifluid data to be aliased |
| void AmrMesh::alias | ( | EBAMRFluxData & | a_data, |
| const phase::which_phase | a_phase, | ||
| const MFAMRFluxData & | a_mfdata, | ||
| const int | a_finestLevel | ||
| ) | const |
Alias multifluid data up to a specified level.
| [out] | a_data | Single-phased data on specific phase |
| [in] | a_phase | Phase (gas or solid). |
| [in] | a_mfdata | Multifluid data to be aliased |
| [in] | a_finestLevel | Maximum grid level for aliasing operation. |
| void AmrMesh::alias | ( | EBAMRIVData & | a_data, |
| const phase::which_phase | a_phase, | ||
| const MFAMRIVData & | a_mfdata | ||
| ) | const |
Alias an entire hierarchy of multifluid data.
| [out] | a_data | Single-phased data on specific phase |
| [in] | a_phase | Phase (gas or solid). |
| [in] | a_mfdata | Multifluid data to be aliased |
| void AmrMesh::alias | ( | Vector< T * > & | a_alias, |
| const EBAMRData< S > & | a_data | ||
| ) | const |
Turn smart-pointer data structure into regular-pointer data structure.
| [out] | a_alias | Raw pointer aliased |
| [in] | a_data | Smart-pointer data |
This fetches the bare pointer from a_data and sets it in a_alias.
| void AmrMesh::alias | ( | Vector< T * > & | a_alias, |
| const Vector< RefCountedPtr< T > > & | a_data | ||
| ) | const |
Turn smart-pointer data structure into regular-pointer data structure.
| [out] | a_alias | Raw pointer aliased |
| [in] | a_data | Smart-pointer data |
This fetches the bare pointer from a_data and sets it in a_alias.
| void AmrMesh::allocate | ( | EBAMRBool & | a_data, |
| const std::string & | a_realm, | ||
| const int | a_nComp, | ||
| const int | a_ghost = -1 |
||
| ) | const |
Allocate Boolean data over a specific realm.
| [out] | a_data | Data holder to be allocated |
| [in] | a_realm | Realm of the name where the data will be allocated. |
| [in] | a_nComp | Number of components in a_data |
| [in] | a_ghost | Number of ghost cells for a_data |
| void AmrMesh::allocate | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const int | a_nComp, | ||
| const int | a_ghost = -1 |
||
| ) | const |
Allocate a data holder over a specific realm.
| [out] | a_data | Data holder to be allocated |
| [in] | a_realm | Realm of the name where the data will be allocated. |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_nComp | Number of components in a_data |
| [in] | a_ghost | Number of ghost cells for a_data |
| void AmrMesh::allocate | ( | EBAMRFAB & | a_data, |
| const std::string & | a_realm, | ||
| const int | a_nComp, | ||
| const int | a_ghost = -1 |
||
| ) | const |
Allocate regular (non-EB) cell data over a specific realm.
Phase-free, unlike the EBAMRCellData overload: FArrayBox needs no EBISBox. Use this for plain per-cell scalars that do not need cut-cell representation.
| [out] | a_data | Data holder to be allocated |
| [in] | a_realm | Realm of the name where the data will be allocated. |
| [in] | a_nComp | Number of components in a_data |
| [in] | a_ghost | Number of ghost cells for a_data |
| void AmrMesh::allocate | ( | EBAMRFluxData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const int | a_nComp, | ||
| const int | a_ghost = -1 |
||
| ) | const |
Allocate a data holder over a specific realm.
| [out] | a_data | Data holder to be allocated |
| [in] | a_realm | Realm of the name where the data will be allocated. |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_nComp | Number of components in a_data |
| [in] | a_ghost | Number of ghost cells for a_data |
| void AmrMesh::allocate | ( | EBAMRIFData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const int | a_nComp, | ||
| const int | a_ghost = -1 |
||
| ) | const |
Allocate a data holder over a specific realm.
| [out] | a_data | Data holder to be allocated |
| [in] | a_realm | Realm of the name where the data will be allocated. |
| [in] | a_phase | Phase (gas or solid). |
| [in] | a_nComp | Number of components in a_data |
| [in] | a_ghost | Number of ghost cells for a_data |
| void AmrMesh::allocate | ( | EBAMRIVData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const int | a_nComp, | ||
| const int | a_ghost = -1 |
||
| ) | const |
Allocate a data holder over a specific realm.
| [out] | a_data | Data holder to be allocated |
| [in] | a_realm | Realm of the name where the data will be allocated. |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_nComp | Number of components in a_data |
| [in] | a_ghost | Number of ghost cells for a_data |
| void AmrMesh::allocate | ( | LevelData< EBCellFAB > & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const int | a_level, | ||
| const int | a_nComp, | ||
| const int | a_ghost = -1 |
||
| ) | const |
Allocate data on specific level.
| [out] | a_data | Data holder to be allocated |
| [in] | a_realm | Realm of the name where the data will be allocated. |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_level | AMR level |
| [in] | a_nComp | Number of components in a_data |
| [in] | a_ghost | Number of ghost cells for a_data |
| void AmrMesh::allocate | ( | MFAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const int | a_nComp, | ||
| const int | a_ghost = -1 |
||
| ) | const |
Allocate a data holder over a specific realm.
| [out] | a_data | Data holder to be allocated |
| [in] | a_realm | Realm of the name where the data will be allocated. |
| [in] | a_nComp | Number of components in a_data |
| [in] | a_ghost | Number of ghost cells for a_data |
| void AmrMesh::allocate | ( | MFAMRFluxData & | a_data, |
| const std::string & | a_realm, | ||
| const int | a_nComp, | ||
| const int | a_ghost = -1 |
||
| ) | const |
Allocate a data holder over a specific realm.
| [out] | a_data | Data holder to be allocated |
| [in] | a_realm | Realm of the name where the data will be allocated. |
| [in] | a_nComp | Number of components in a_data |
| [in] | a_ghost | Number of ghost cells for a_data |
| void AmrMesh::allocate | ( | MFAMRIVData & | a_data, |
| const std::string & | a_realm, | ||
| const int | a_nComp, | ||
| const int | a_ghost = 0 |
||
| ) | const |
Allocate a data holder over a specific realm.
| [out] | a_data | Data holder to be allocated |
| [in] | a_realm | Realm of the name where the data will be allocated. |
| [in] | a_nComp | Number of components in a_data |
| [in] | a_ghost | Number of ghost cells for a_data |
| void AmrMesh::allocate | ( | ParticleContainer< P, Traits > & | a_container, |
| const std::string & | a_realm | ||
| ) | const |
Allocate a struct-of-arrays particle container on the given realm.
| [out] | a_container | SoA particle container to be allocated. |
| [in] | a_realm | Realm on which the particles will be allocated. |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
| void AmrMesh::allocatePointer | ( | EBAMRData< T > & | a_data, |
| const std::string & | a_realm | ||
| ) | const |
Allocate pointer but not any memory blocks.
| [out] | a_data | Data structure for which pointers will be constructed. |
| [in] | a_realm | Realm associated with the data |
This sets all the elements in a_data to be RefCountedPtr<T>(nullptr)
| void AmrMesh::allocatePointer | ( | EBAMRData< T > & | a_data, |
| const std::string & | a_realm, | ||
| const int | a_finestLevel | ||
| ) | const |
Allocate pointer but not any memory.
| [out] | a_data | Data structure for which pointers will be constructed. |
| [in] | a_realm | Realm associated with the data |
| [in] | a_finestLevel | Finest grid level on which a_data will be defined. |
This sets all the elements in the vector to be RefCountedPtr<T>(nullptr)
| void AmrMesh::allocatePointer | ( | Vector< RefCountedPtr< T > > & | a_data | ) | const |
Allocate pointer but not any memory blocks.
| [out] | a_data | Data structure for which pointers will be constructed. |
This sets all the elements in the vector to be RefCountedPtr<T>(nullptr)
| void AmrMesh::allocatePointer | ( | Vector< RefCountedPtr< T > > & | a_data, |
| const int | a_finestLevel | ||
| ) | const |
Allocate pointer but not any memory blocks.
| [out] | a_data | Data structure for which pointers will be constructed. |
| [in] | a_finestLevel | Finest grid level on which a_data will be defined. |
This sets all the elements in the vector to be RefCountedPtr<T>(nullptr)
| void AmrMesh::arithmeticAverage | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Arithmetic average of data. Does all components.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::arithmeticAverage | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const Interval & | a_variables | ||
| ) | const |
Arithmetic average of data.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_variables | Variables |
| void AmrMesh::arithmeticAverage | ( | EBAMRFluxData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Average down on specific realm and phase.
This computes an arithmetic average of the face data. Data on coarse faces is replaced by the arithmetic average of the fine face data.
| [in,out] | a_data | Data to be average. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::arithmeticAverage | ( | EBAMRIVData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Arithmetic average on specific realm and phase.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::arithmeticAverage | ( | MFAMRCellData & | a_data, |
| const std::string & | a_realm | ||
| ) | const |
Arithmetic coarsening of multifluid data.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| void AmrMesh::arithmeticAverage | ( | MFAMRFluxData & | a_data, |
| const std::string & | a_realm | ||
| ) | const |
Average multifluid data over a realm.
This computes an arithmetic average of the face data. Data on coarse faces is replaced by the arithmetic average of the fine face data.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| void AmrMesh::average | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const Average & | a_average | ||
| ) | const |
Average down on specific realm and phase.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_average | Averaging method |
| void AmrMesh::average | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const Average & | a_average, | ||
| const Interval & | a_variables | ||
| ) | const |
Average down on specific realm and phase.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_variables | Variables to average |
| [in] | a_average | Averaging method |
| void AmrMesh::average | ( | EBAMRFluxData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const Average & | a_average | ||
| ) | const |
Average down on specific realm and phase.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_average | Averaging method |
| void AmrMesh::average | ( | EBAMRIVData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const Average & | a_average | ||
| ) | const |
Average down on specific realm and phase.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_average | Averaging method |
| void AmrMesh::average | ( | MFAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const Average & | a_average | ||
| ) | const |
Average multifluid data over a specified realm.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_average | Averaging method |
| void AmrMesh::average | ( | MFAMRFluxData & | a_data, |
| const std::string & | a_realm, | ||
| const Average & | a_average | ||
| ) | const |
Average multifluid data over a specified realm.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_average | Averaging method |
|
protected |
Build new internal AMR grids.
| [in,out] | a_tags | Sets of cell tags used for the grid generation. |
| [in] | a_lmin | The finest grid level which changes. |
| [in] | a_hardcap | Hardcap for the maximum grid level which can be generated. If a_hardcap < 0 there is no restriction beyond the AmrMesh restrictions. |
This will call the specified grid generation method and fill m_grids with the new grids.
| void AmrMesh::computeGradient | ( | EBAMRCellData & | a_gradient, |
| const EBAMRCellData & | a_phi, | ||
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Compute cell-centered gradient over an AMR hierarchy.
| [out] | a_gradient | Cell centered gradient. |
| [in] | a_phi | The scalar for which the gradient is computed. |
| [in] | a_realm | Name of the realm where the data lives. |
| [in] | a_phase | Phase on which the data lives. |
| void AmrMesh::computeGradient | ( | EBAMRFluxData & | a_gradient, |
| const EBAMRCellData & | a_phi, | ||
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Compute face-centered gradient over an AMR hierarchy.
| [out] | a_gradient | Face centered gradient. |
| [in] | a_phi | The scalar for which the gradient is computed. |
| [in] | a_realm | Name of the realm where the data lives. |
| [in] | a_phase | Phase on which the data lives. |
|
protected |
Compute cell-centered gradient for a grid level.
| [out] | a_gradient | Cell centered gradient. |
| [in] | a_phi | The scalar for which the gradient is computed. |
| [in] | a_realm | Name of the realm where the data lives. |
| [in] | a_phase | Phase on which the data lives. |
| [in] | a_lvl | Grid level where the data lives. |
| void AmrMesh::computeGradient | ( | MFAMRCellData & | a_gradient, |
| const MFAMRCellData & | a_phi, | ||
| const std::string & | a_realm | ||
| ) | const |
Compute cell-centered gradient over an AMR hierarchy.
| [out] | a_gradient | Cell centered gradient. |
| [in] | a_phi | The scalar for which the gradient is computed. |
| [in] | a_realm | Name of the Realm where the data lives. |
| void AmrMesh::computeGradient | ( | MFAMRFluxData & | a_gradient, |
| const MFAMRCellData & | a_phi, | ||
| const std::string & | a_realm | ||
| ) | const |
Compute face-centered gradient over an AMR hierarchy.
| [out] | a_gradient | Face centered gradient. |
| [in] | a_phi | The scalar for which the gradient is computed. |
| [in] | a_realm | Name of the Realm where the data lives. |
| void AmrMesh::conservativeAverage | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Conseratively average data. Does all components.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::conservativeAverage | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const Interval & | a_variables | ||
| ) | const |
Conseratively average data. Does all components.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_variables | Variables |
| void AmrMesh::conservativeAverage | ( | EBAMRFluxData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Average down on specific realm and phase.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::conservativeAverage | ( | EBAMRIVData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Conservative averaging on specific realm and phase.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::conservativeAverage | ( | MFAMRCellData & | a_data, |
| const std::string & | a_realm | ||
| ) | const |
Conservative coarsening of multifluid data.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| void AmrMesh::conservativeAverage | ( | MFAMRFluxData & | a_data, |
| const std::string & | a_realm | ||
| ) | const |
Average down multifluid data over a realm.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
|
noexcept |
Method for copying from a source container to a destination container. User supplies information about from/to regions.
| [in,out] | a_dst | Destination data |
| [in] | a_src | Source data |
| [in] | a_toRegion | Region we copy into |
| [in] | a_fromRegion | Region we copy from |
|
noexcept |
Method for copying from a source container to a destination container. User supplies information.
| [in,out] | a_dst | Destination data |
| [in] | a_src | Source data |
| [in] | a_dstComps | Destination components |
| [in] | a_srcComps | Source components |
| [in] | a_toRegion | Region we copy into |
| [in] | a_fromRegion | Region we copy from |
|
noexcept |
Method for copying from a source container to a destination container. User supplies information about from/to regions.
| [in,out] | a_dst | Destination data |
| [in] | a_src | Source data |
| [in] | a_level | Grid level |
| [in] | a_toRealm | Destination realm |
| [in] | a_fromRealm | Source realm |
| [in] | a_fromRegion | Region we copy from |
| [in] | a_toRegion | Region we copy into |
|
noexcept |
Method for copying from a source container to a destination container. User supplies information about from/to regions.
| [in,out] | a_dst | Destination data |
| [in] | a_src | Source data |
| [in] | a_level | Grid level |
| [in] | a_toRealm | Destination realm |
| [in] | a_fromRealm | Source realm |
| [in] | a_dstComps | Destination components |
| [in] | a_srcComps | Source components |
| [in] | a_fromRegion | Region we copy from |
| [in] | a_toRegion | Region we copy into |
| void AmrMesh::deallocate | ( | EBAMRData< T > & | a_data | ) | const |
Deallocate data.
| [in,out] | a_data | Data to be deallocated. |
| void AmrMesh::deallocate | ( | Vector< RefCountedPtr< T > > & | a_data | ) | const |
Deallocate smart pointer data.
| [in,out] | a_data | Data to be deallocated. |
| void AmrMesh::deallocate | ( | Vector< T * > & | a_data | ) | const |
Deallocate data.
| [in,out] | a_data | Data to be deleted. |
| void AmrMesh::depositGathered | ( | EBAMRCellData & | a_meshData, |
| const std::string & | a_realm, | ||
| const phase::which_phase & | a_phase, | ||
| const ParticleContainer< P, Traits > & | a_particles, | ||
| const DepositionType | a_depositionType, | ||
| const CoarseFineDeposition | a_coarseFineDeposition, | ||
| const bool | a_forceIrregNGP, | ||
| CellGather | a_cellGather | ||
| ) |
Deposit a custom per-particle scalar (a_cellGather) of an SoA container on the mesh.
Generalizes depositWeight to a derived per-particle quantity (e.g. weight*mobility), via the EBAMRParticleMesh gatherer-based deposit. Deposits one component.
| [out] | a_meshData | Mesh data (one component). |
| [in] | a_realm | Realm where data is registered. |
| [in] | a_phase | Phase where data is registered. |
| [in] | a_particles | SoA particle container. |
| [in] | a_depositionType | Deposition kernel (e.g. CIC). |
| [in] | a_coarseFineDeposition | Coarse-fine handling. |
| [in] | a_forceIrregNGP | Force NGP deposition in cut cells. |
| [in] | a_cellGather | Per-particle value gatherer (leaf, index) -> Real. |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
| CellGather | Callable (const ParticleSoA<P, Traits>&, std::size_t) -> Real. |
| void AmrMesh::depositParticles | ( | EBAMRCellData & | a_meshData, |
| const std::string & | a_realm, | ||
| const phase::which_phase & | a_phase, | ||
| const ParticleContainer< P, Traits > & | a_particles, | ||
| const DepositionType | a_depositionType, | ||
| const CoarseFineDeposition | a_coarseFineDeposition, | ||
| const bool | a_forceIrregNGP | ||
| ) |
Deposit one or more SoA payload columns on the mesh (all coarse-fine strategies).
Members selects either one scalar column or SpaceDim vector-component columns, mapped to consecutive mesh components.
| [out] | a_meshData | Mesh data. |
| [in] | a_realm | Realm where data is registered. |
| [in] | a_phase | Phase where data is registered. |
| [in] | a_particles | SoA particle container. |
| [in] | a_depositionType | Deposition kernel. |
| [in] | a_coarseFineDeposition | Coarse-fine handling. |
| [in] | a_forceIrregNGP | Force NGP deposition in cut cells. |
| Members | Pack of payload data-member pointers selecting the column(s). |
| P | Payload type (deduced). |
| Traits | Column descriptor (deduced). |
|
noexcept |
Deposit the weight column of an SoA particle container onto the surface (EB).
SoA overload of the surface deposit; deposits the container-owned weight column.
| [out] | a_meshData | Mesh data. MUST have exactly one component. |
| [in] | a_realm | Realm where data is registered. |
| [in] | a_phase | Phase where data is registered. |
| [in] | a_particles | SoA particle container. |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
| void AmrMesh::depositWeight | ( | EBAMRCellData & | a_meshData, |
| const std::string & | a_realm, | ||
| const phase::which_phase & | a_phase, | ||
| const ParticleContainer< P, Traits > & | a_particles, | ||
| const DepositionType | a_depositionType, | ||
| const CoarseFineDeposition | a_coarseFineDeposition, | ||
| const bool | a_forceIrregNGP | ||
| ) |
Deposit the SoA container's weight column on the mesh (all coarse-fine strategies).
| [out] | a_meshData | Mesh data. Must have exactly one component. |
| [in] | a_realm | Realm where data is registered. |
| [in] | a_phase | Phase where data is registered. |
| [in] | a_particles | SoA particle container. |
| [in] | a_depositionType | Deposition kernel (e.g. CIC). |
| [in] | a_coarseFineDeposition | Coarse-fine handling. |
| [in] | a_forceIrregNGP | Force NGP deposition in cut cells. |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
| const RefCountedPtr< BaseIF > & AmrMesh::getBaseImplicitFunction | ( | const phase::which_phase | a_phase | ) | const |
Get implicit function for a specific phase.
| [in] | a_phase | Phase (gas or solid) |
|
inline |
Deprecated alias for getMinBlockSize().
| BoxSorting AmrMesh::getBoxSorting | ( | ) | const |
Get box sorting method.
| int AmrMesh::getBrBuffer | ( | ) | const |
Return buffer for B-R mesh refinement algorithm.
| Vector< RefCountedPtr< EBCoarAve > > & AmrMesh::getCoarseAverage | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get the coarsening utility.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| const EBAMRCellData & AmrMesh::getCoveredCells | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
| const Vector< ProblemDomain > & AmrMesh::getDomains | ( | ) | const |
Get domains.
| const Vector< Real > & AmrMesh::getDx | ( | ) | const |
Get spatial resolutions.
| bool AmrMesh::getEbCf | ( | ) | const |
Check if mesh has an EBCF.
|
inline |
Get EBIndexSpace corresponding to a particular phase.
| [in] | a_phase | Phase (gas/solid) |
| const Vector< EBISLayout > & AmrMesh::getEBISLayout | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
| const Vector< RefCountedPtr< EBLevelGrid > > & AmrMesh::getEBLevelGrid | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
| const Vector< RefCountedPtr< EBLevelGrid > > & AmrMesh::getEBLevelGridCoFi | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
| Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & AmrMesh::getFaceIterator | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get face iterators over cut-cell faces in each valid grid box (FaceStop::SurroundingWithBoundary).
Each per-box entry is an array of SpaceDim FaceIterators. Domain boundary faces are included. For cell-to-face averaging that excludes domain boundary faces, use getFaceIteratorNoBoundary.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & AmrMesh::getFaceIteratorNoBoundary | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get face iterators over cut-cell faces in each valid grid box (FaceStop::SurroundingNoBoundary).
Each per-box entry is an array of SpaceDim FaceIterators. Domain boundary faces are excluded. Intended for cell-to-face averaging where boundary faces are fixed up separately.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & AmrMesh::getFaceIteratorWithTangentialGhosts | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get per-direction face iterators covering cut-cell faces that reach into the tangential ghost layer.
Each per-box entry is an array of SpaceDim FaceIterators, one per coordinate direction. For the iterator in direction dir, the underlying IVS covers irregular cells in a box grown by 1 in the two directions tangential to dir; the dir extent stays at the valid box. Domain boundary faces are excluded (FaceStop::SurroundingNoBoundary). Callers require at least 1 ghost layer in cell data.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| Vector< RefCountedPtr< EBCoarseToFineInterp > > & AmrMesh::getFineInterp | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get interpolator.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| ProblemDomain AmrMesh::getFinestDomain | ( | ) | const |
Get finest domain.
| Real AmrMesh::getFinestDx | ( | ) | const |
Get resolution on the finest grid level.
| int AmrMesh::getFinestLevel | ( | ) | const |
Get finest grid level.
| Vector< RefCountedPtr< EBReflux > > & AmrMesh::getFluxRegister | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get flux register.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| const Vector< DisjointBoxLayout > & AmrMesh::getGrids | ( | const std::string & | a_realm | ) | const |
| const EBAMRCellData & AmrMesh::getIrregularCells | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
| const EBAMRFAB & AmrMesh::getLevelset | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
| const Vector< RefCountedPtr< LevelTiles > > & AmrMesh::getLevelTiles | ( | const std::string & | a_realm | ) | const |
| const AMRMask & AmrMesh::getMask | ( | const std::string & | a_mask, |
| const int | a_buffer, | ||
| const std::string & | a_realm | ||
| ) | const |
Get a registered mask.
| [in] | a_mask | Mask name |
| [in] | a_buffer | Buffer (used when registering mask) |
| [in] | a_realm | Realm name |
| int AmrMesh::getMaxAmrDepth | ( | ) | const |
Get maximum permitted amr depth.
| int AmrMesh::getMaxBlockSize | ( | ) | const |
Get maximum permitted block size.
|
inline |
Deprecated alias for getMaxBlockSize().
| int AmrMesh::getMaxEbisBoxSize | ( | ) | const |
Get maximum box size for EBIS generation.
| int AmrMesh::getMaxSimulationDepth | ( | ) | const |
Get maximum permitted simulation depth.
| const Vector< RefCountedPtr< MFLevelGrid > > & AmrMesh::getMFLevelGrid | ( | const std::string & | a_realm | ) | const |
| int AmrMesh::getMinBlockSize | ( | ) | const |
Get the minimum block size (i.e. the smallest possible box / tile size).
| Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & AmrMesh::getMultiCutFaceIterator | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get face iterators restricted to multiply-cut faces in each valid grid box.
Only faces abutting at least one multiply-cut cell (cells with more than one VoF) are visited. Faces are enumerated with FaceStop::SurroundingNoBoundary. Used as a second pass after a box loop over getSingleValuedFAB to avoid double-processing singly-cut faces.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| Vector< RefCountedPtr< LayoutData< VoFIterator > > > & AmrMesh::getMultiCutVofIterator | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get vof iterators restricted to multiply-cut cells for a Realm and phase.
Multiply-cut cells are those with more than one VoF per cell. This iterator is used as a second pass after BoxLoops::loop over getSingleValuedFAB, which already covers VoF 0 of all cut-cells.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| Vector< RefCountedPtr< EBMultigridInterpolator > > & AmrMesh::getMultigridInterpolator | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get multigrid interpolation utility.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| const EBAMRCellData & AmrMesh::getNotCoveredCells | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
| int AmrMesh::getNumberOfEbGhostCells | ( | ) | const |
Get number of ghost cells used for EB grid generation.
| int AmrMesh::getNumberOfGhostCells | ( | ) | const |
Get the default number of ghost cells.
| const AMRMask & AmrMesh::getParticleGhostExposure | ( | const std::string & | a_realm, |
| const int | a_width | ||
| ) | const |
Get the particle boundary-exposure mask on a realm for a registered width.
True in every cell that has at least one outgoing ghost-shipment target in any direction, i.e. the OR of the three ghost masks above. Built at regrid, so a consumer can read the bit instead of re-deriving it per particle per timestep. Carries no ghost cells – only cells holding a resident particle may be queried.
| [in] | a_realm | Realm name |
| [in] | a_width | Registered ghost width. |
| const AMRParticleGhostMask & AmrMesh::getParticleGhostMask | ( | const std::string & | a_realm, |
| const int | a_width | ||
| ) | const |
Get the same-level particle ghost mask on a realm for a registered width.
| [in] | a_realm | Realm name |
| [in] | a_width | Registered ghost width. |
| const AMRParticleGhostMask & AmrMesh::getParticleGhostMaskCoarToFine | ( | const std::string & | a_realm, |
| const int | a_width | ||
| ) | const |
Get the coarse-to-fine particle ghost mask on a realm for a registered width.
Contract: the finest-level entry is allocated but left undefined (the finest level has no finer level); callers must only query levels < the finest level.
| [in] | a_realm | Realm name |
| [in] | a_width | Registered ghost width. |
| const AMRParticleGhostMask & AmrMesh::getParticleGhostMaskFineToCoar | ( | const std::string & | a_realm, |
| const int | a_width | ||
| ) | const |
Get the fine-to-coarse particle ghost mask on a realm for a registered width.
Contract: the level-0 entry is allocated but left undefined (level 0 has no coarser level); callers must only query levels >= 1.
| [in] | a_realm | Realm name |
| [in] | a_width | Registered ghost width. |
| EBAMRParticleMesh & AmrMesh::getParticleMesh | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get EBAMRParticleMesh operator.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| RealVect AmrMesh::getProbHi | ( | ) | const |
Get upper-right corner of computational domain.
| RealVect AmrMesh::getProbLo | ( | ) | const |
Get lower-left corner of computational domain.
| const Vector< DisjointBoxLayout > & AmrMesh::getProxyGrids | ( | ) | const |
| std::vector< std::string > AmrMesh::getRealms | ( | ) | const |
Get the name of all Realms.
| Vector< RefCountedPtr< EBFluxRedistribution > > & AmrMesh::getRedistributionOp | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get the redistribution operators.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| int AmrMesh::getRedistributionRadius | ( | ) | const |
Get default redistribution radius.
| int AmrMesh::getRefinementRatio | ( | const int | a_level1, |
| const int | a_level2 | ||
| ) | const |
Get refinement factor between two levels.
| [in] | a_level1 | First level |
| [in] | a_level2 | Second level |
This will work correctly in reverse as well.
| const Vector< int > & AmrMesh::getRefinementRatios | ( | ) | const |
Get refinement ratios.
| const EBAMRCellData & AmrMesh::getRegularCells | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
| EBAMRSurfaceDeposition & AmrMesh::getSurfaceDeposition | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get EBAMRSurfaceDeposition surface deposition operator.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| const AMRParticleGhostMask & AmrMesh::getTrivialParticleGhostMask | ( | ) | const |
Get a trivial (empty) particle ghost mask that scatters no particles.
Pass this to ParticleContainer::fillGhost for a direction that should not scatter.
| const AMRMask & AmrMesh::getValidCells | ( | const std::string & | a_realm | ) | const |
Get a map of all valid cells on a specified realm.
| [in] | a_realm | Realm name |
| Vector< RefCountedPtr< LayoutData< VoFIterator > > > & AmrMesh::getVofIterator | ( | const std::string & | a_realm, |
| const phase::which_phase | a_phase | ||
| ) | const |
Get VoF iterators covering all cut-cells (singly- and multiply-cut) for a Realm and phase.
Not const because we need to reset the VoFIterator. For a pass covering only multiply-cut cells, use getMultiCutVofIterator instead.
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::harmonicAverage | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Harmonic average of data. Does all components.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::harmonicAverage | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase, | ||
| const Interval & | a_variables | ||
| ) | const |
Harmonic average of data. Does all components.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_variables | Variables |
| void AmrMesh::harmonicAverage | ( | EBAMRFluxData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Average down on specific realm and phase.
This computes an arithmetic average of the face data. Data on coarse faces is replaced by the arithmetic average of the fine face data.
| [in,out] | a_data | Data to be average. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::harmonicAverage | ( | EBAMRIVData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Harmonic average on specific realm and phase.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::harmonicAverage | ( | MFAMRCellData & | a_data, |
| const std::string & | a_realm | ||
| ) | const |
Harmonic coarsening of multifluid data.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| void AmrMesh::harmonicAverage | ( | MFAMRFluxData & | a_data, |
| const std::string & | a_realm | ||
| ) | const |
Average multifluid data over a realm.
This computes an arithmetic average of the face data. Data on coarse faces is replaced by the arithmetic average of the fine face data.
| [in,out] | a_data | Data to be coarsened. |
| [in] | a_realm | Realm name |
| void AmrMesh::interpGhost | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Interpolate ghost vectors over a realm, using the default ghost cell interpolation method.
| [in,out] | a_data | Data to be interpolated. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::interpGhost | ( | LevelData< EBCellFAB > & | a_fineData, |
| const LevelData< EBCellFAB > & | a_coarData, | ||
| const int | a_fineLevel, | ||
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Interpolate ghost cells over a realm, using the default ghost cell interpolation method on a specific level.
| [in,out] | a_fineData | Fine grid data |
| [in,out] | a_coarData | Coarse grid data |
| [in] | a_fineLevel | The grid level corresponding to a_fineData |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::interpGhost | ( | MFAMRCellData & | a_data, |
| const std::string & | a_realm | ||
| ) | const |
Interpolate ghost cells over a realm. Calls the default ghost cell interpolation method.
| [in,out] | a_data | Data to be interpolated |
| [in] | a_realm | Realm name |
| void AmrMesh::interpGhostMG | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Interpolate ghost cells over a realm and phase.
This routine uses the multigrid interpolator, which does not reach into invalid regions. I.e., all ghost cells are interpolated using valid data only.
| [in,out] | a_data | Data to be interpolated |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::interpGhostMG | ( | MFAMRCellData & | a_data, |
| const std::string & | a_realm | ||
| ) | const |
Interpolate ghost cells over a realm and phase.
This routine uses the multigrid interpolator, which does not reach into invalid regions. I.e., all ghost cells are interpolated using valid data only.
| [in,out] | a_data | Data to be interpolated |
| [in] | a_realm | Realm name |
| void AmrMesh::interpGhostPwl | ( | EBAMRCellData & | a_data, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) | const |
Interpolate ghost cells over a realm and phase. This uses piecewise linear interpolation (with limiters)
| [in,out] | a_data | Data to be interpolated |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| void AmrMesh::interpGhostPwl | ( | MFAMRCellData & | a_data, |
| const std::string & | a_realm | ||
| ) | const |
Interpolate ghost cells over a realm and phase. This uses piecewise linear interpolation (with limiters)
| [in,out] | a_data | Data to be interpolated |
| [in] | a_realm | Realm name |
| void AmrMesh::interpolateParticles | ( | ParticleContainer< P, Traits > & | a_particles, |
| const std::string & | a_realm, | ||
| const phase::which_phase & | a_phase, | ||
| const EBAMRCellData & | a_meshField, | ||
| const DepositionType | a_interpType, | ||
| const bool | a_forceIrregNGP | ||
| ) | const |
Interpolate a mesh field onto one or more SoA payload columns.
Members selects either one scalar column or SpaceDim vector-component columns, read from consecutive mesh components.
| [in,out] | a_particles | SoA particles whose target columns are overwritten. |
| [in] | a_realm | Realm where data is registered. |
| [in] | a_phase | Phase where data is registered. |
| [in] | a_meshField | Field on the mesh. |
| [in] | a_interpType | Interpolation kernel. |
| [in] | a_forceIrregNGP | Force NGP interpolation in cut cells. |
| Members | Pack of payload data-member pointers selecting the target column(s). |
| P | Payload type (deduced). |
| Traits | Column descriptor (deduced). |
| void AmrMesh::interpolateWeight | ( | ParticleContainer< P, Traits > & | a_particles, |
| const std::string & | a_realm, | ||
| const phase::which_phase & | a_phase, | ||
| const EBAMRCellData & | a_meshScalarField, | ||
| const DepositionType | a_interpType, | ||
| const bool | a_forceIrregNGP | ||
| ) | const |
Interpolate a mesh scalar field onto the SoA container's weight column.
| [in,out] | a_particles | SoA particles whose weight column is overwritten. |
| [in] | a_realm | Realm where data is registered. |
| [in] | a_phase | Phase where data is registered. |
| [in] | a_meshScalarField | Scalar field on the mesh. |
| [in] | a_interpType | Interpolation kernel. |
| [in] | a_forceIrregNGP | Force NGP interpolation in cut cells. |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
|
noexcept |
Interpolate data to centroids on realm and phase.
| [in,out] | a_data | Data to be interpolated |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
This leaves regular data intact, while the values in irregular are replaced by the corresponding interpolation to centroids.
|
noexcept |
Interpolate data to centroids on realm and phase.
| [out] | a_centroidData | Centroid-centered data |
| [in] | a_cellData | Cell-centered data to be interpolated |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
This leaves regular data intact, while the values in irregular are replaced by the corresponding interpolation to centroids.
|
noexcept |
Interpolate data to centroids.
| [in,out] | a_centroidData | Centroid-centered data |
| [in] | a_cellData | Cell-centered data |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_level | Grid level |
| [in] | a_din | Grid index |
|
noexcept |
Interpolate data to centroids.
| [out] | a_centroidData | Centroid-centered data |
| [in] | a_cellData | Cell-centered data to be interpolated |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_level | Grid level |
|
noexcept |
Interpolate data to centroids.
| [in,out] | a_data | Data to be interpolated |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_level | Grid level |
|
noexcept |
Interpolate data to EB centroids.
| [out] | a_centroidData | EB-centered data |
| [in] | a_cellData | Cell-centered data to be interpolated |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_level | Grid level |
| [in] | a_din | Grid index |
|
noexcept |
Interpolate data to EB centroids on realm and phase.
| [out] | a_centroidData | EB-centered data |
| [in] | a_cellData | Cell-centered data to be interpolated |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
|
noexcept |
Interpolate data to EB centroids.
| [out] | a_centroidData | EB-centered data |
| [in] | a_cellData | Cell-centered data to be interpolated |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid) |
| [in] | a_level | Grid level |
| void AmrMesh::interpToNewGrids | ( | EBAMRCellData & | a_newData, |
| const EBAMRCellData & | a_oldData, | ||
| const phase::which_phase | a_phase, | ||
| const int | a_lmin, | ||
| const int | a_oldFinestLevel, | ||
| const int | a_newFinestLevel, | ||
| const EBCoarseToFineInterp::Type | a_type | ||
| ) |
Interpolate data to new grids.
This is called when requiring data to be interpolated to new grids. Takes old data as argument and fills the new grid data with an interpolation of the old grid data.
| [out] | a_newData | New grid data. |
| [in] | a_oldData | Old grid data. |
| [in] | a_phase | Phase on which we regrid. |
| [in] | a_lmin | Coarsest level that did not change (but distribution may have changed). |
| [in] | a_oldFinestLevel | Previous finest level. |
| [in] | a_newFinestLevel | New finest level. |
| [in] | a_type | Interpolation type |
| void AmrMesh::interpToNewGrids | ( | EBAMRIVData & | a_newData, |
| const EBAMRIVData & | a_oldData, | ||
| const phase::which_phase | a_phase, | ||
| const int | a_lmin, | ||
| const int | a_oldFinestLevel, | ||
| const int | a_newFinestLevel, | ||
| const EBCoarseToFineInterp::Type | a_type | ||
| ) |
Interpolate data to new grids.
This is called when requiring data to be interpolated to new grids. Takes old data as argument and fills the new grid data with an interpolation of the old grid data.
| [out] | a_newData | New grid data. |
| [in] | a_oldData | Old grid data. |
| [in] | a_phase | Phase on which we regrid. |
| [in] | a_lmin | Coarsest level that did not change (but distribution may have changed). |
| [in] | a_oldFinestLevel | Previous finest level. |
| [in] | a_newFinestLevel | New finest level. |
| [in] | a_type | Interpolation type |
| void AmrMesh::interpToNewGrids | ( | MFAMRCellData & | a_newData, |
| const MFAMRCellData & | a_oldData, | ||
| const int | a_lmin, | ||
| const int | a_oldFinestLevel, | ||
| const int | a_newFinestLevel, | ||
| const EBCoarseToFineInterp::Type | a_type | ||
| ) |
Interpolate data to new grids.
This is called when requiring data to be interpolated to new grids. Takes old data as argument and fills the new grid data with an interpolation of the old grid data.
| [out] | a_newData | New grid data. |
| [in] | a_oldData | Old grid data. |
| [in] | a_lmin | Coarsest level that did not change (but distribution may have changed). |
| [in] | a_oldFinestLevel | Previous finest level. |
| [in] | a_newFinestLevel | New finest level. |
| [in] | a_type | Interpolation type |
|
noexcept |
SoA bisection-based particle intersection algorithm.
Identical to intersectParticlesRaycastIF but the EB intersection test uses bisection rather than ray-casting. The container-owned position holds the trajectory end point; the start point is read from the payload columns selected by the OldPosition member-pointer pack.
| [in,out] | a_activeParticles | Particles to be intersected with geometry. |
| [out] | a_ebParticles | Particles that intersected the EB (cleared and remapped here). |
| [out] | a_domainParticles | Particles that intersected the domain faces (cleared and remapped here). |
| [in] | a_phase | Phase where the input particles live. |
| [in] | a_bisectionStep | Length of the bisection step. |
| [in] | a_deleteParticles | If true, intersected particles are removed from a_activeParticles. |
| [in] | a_nonDeletionModifier | Callback applied to each intersected-but-not-deleted particle, given its home leaf and slot index (used e.g. to flag the original particle via a payload column). |
| OldPosition | Pack of SpaceDim payload member pointers giving the particle's previous-position components. |
| P | Payload type (deduced). |
| Traits | Column descriptor (deduced). |
|
noexcept |
SoA ray-casting particle intersection algorithm.
Iterates through the active particles and checks if they intersect the EB or the domain faces along their trajectory (oldPosition -> position). Particles that intersect are moved onto the intersection point and placed in a_ebParticles or a_domainParticles. The EB test uses the ray-casting method (assuming the implicit function is a signed distance function). The container-owned position holds the trajectory end point; the start point is read from the payload columns selected by the OldPosition member-pointer pack.
| [in,out] | a_activeParticles | Particles to be intersected with geometry. |
| [out] | a_ebParticles | Particles that intersected the EB (cleared and remapped here). |
| [out] | a_domainParticles | Particles that intersected the domain faces (cleared and remapped here). |
| [in] | a_phase | Phase where the input particles live. |
| [in] | a_tolerance | Tolerance. |
| [in] | a_deleteParticles | If true, intersected particles are removed from a_activeParticles. |
| [in] | a_nonDeletionModifier | Callback applied to each intersected-but-not-deleted particle, given its home leaf and slot index (used e.g. to flag the original particle via a payload column). |
| OldPosition | Pack of SpaceDim payload member pointers giving the particle's previous-position components. |
| P | Payload type (deduced). |
| Traits | Column descriptor (deduced). |
|
noexcept |
Compute a non-conservative divergence.
This computes divNC(F) = sum(kappa*divC(F))/sum(kappa), where kappa*divC(F) is the finite-volume approximation to kappa*div(F) = int_A F*dA (and dA is in grid units, not physical units).
| [out] | a_nonConsDivF | The non-conservative divergence. |
| [in] | a_kappaDivF | Conservative divergence, not weighted by kappa. |
| [in] | a_realm | Realm where the data lives. |
| [in] | a_phase | Phase where the data lives. |
|
noexcept |
Compute a non-conservative divergence.
This computes divNC(F) = sum(kappa*divC(F))/sum(kappa), where kappa*divC(F) is the finite-volume approximation to kappa*div(F) = int_A F*dA (and dA is in grid units, not physical units).
| [out] | a_nonConsDivF | The non-conservative divergence. |
| [in] | a_level | Grid level |
| [in] | a_kappaDivF | Conservative divergence, not weighted by kappa. |
| [in] | a_realm | Realm where the data lives. |
| [in] | a_phase | Phase where the data lives. |
Disallowed move assignment.
| [in] | a_other | Other AmrMesh |
Disallowed copy assignment.
| [in] | a_other | Other AmrMesh |
|
protected |
Parse number of ghost cells for eb stuff.
Only matters for the grid generation step.
|
protected |
Parse the maximum permitted box size.
Only relevant for the grid generation step.
| void AmrMesh::parseRuntimeOptions | ( | ) |
Parse runtime options.
| bool AmrMesh::queryRealm | ( | const std::string & | a_realm | ) | const |
Query if a realm exists.
| [in] | a_realm | Name of the realm. |
| void AmrMesh::reallocate | ( | EBAMRBool & | a_data, |
| const int | a_lmin | ||
| ) | const |
Reallocate data.
| [out] | a_data | Data to be reallocated |
| [in] | a_lmin | The lowest grid level that will be reallocated. |
This will reallocate data for all grid levels lvl >= a_lmin.
| void AmrMesh::reallocate | ( | EBAMRCellData & | a_data, |
| const phase::which_phase | a_phase, | ||
| const int | a_lmin | ||
| ) | const |
Reallocate data.
| [out] | a_data | Data to be reallocated |
| [in] | a_phase | Phase over the reallocation. |
| [in] | a_lmin | The lowest grid level that will be reallocated. |
This will reallocate data for all grid levels lvl >= a_lmin.
| void AmrMesh::reallocate | ( | EBAMRFluxData & | a_data, |
| const phase::which_phase | a_phase, | ||
| const int | a_lmin | ||
| ) | const |
Reallocate data.
| [out] | a_data | Data to be reallocated |
| [in] | a_phase | Phase over the reallocation. |
| [in] | a_lmin | The lowest grid level that will be reallocated. |
This will reallocate data for all grid levels lvl >= a_lmin.
| void AmrMesh::reallocate | ( | EBAMRIFData & | a_data, |
| const phase::which_phase | a_phase, | ||
| const int | a_lmin | ||
| ) | const |
Reallocate data.
| [out] | a_data | Data to be reallocated |
| [in] | a_phase | Phase over the reallocation. |
| [in] | a_lmin | The lowest grid level that will be reallocated. |
This will reallocate data for all grid levels lvl >= a_lmin.
| void AmrMesh::reallocate | ( | EBAMRIVData & | a_data, |
| const phase::which_phase | a_phase, | ||
| const int | a_lmin | ||
| ) | const |
Reallocate data.
| [out] | a_data | Data to be reallocated |
| [in] | a_phase | Phase over the reallocation. |
| [in] | a_lmin | The lowest grid level that will be reallocated. |
This will reallocate data for all grid levels lvl >= a_lmin.
| void AmrMesh::reallocate | ( | MFAMRCellData & | a_data, |
| const int | a_lmin | ||
| ) | const |
Reallocate data.
| [out] | a_data | Data to be reallocated |
| [in] | a_lmin | The lowest grid level that will be reallocated. |
This will reallocate data for all grid levels lvl >= a_lmin.
| void AmrMesh::reallocate | ( | MFAMRFluxData & | a_data, |
| const int | a_lmin | ||
| ) | const |
Reallocate data.
| [out] | a_data | Data to be reallocated |
| [in] | a_lmin | The lowest grid level that will be reallocated. |
This will reallocate data for all grid levels lvl >= a_lmin.
| void AmrMesh::reallocate | ( | MFAMRIVData & | a_data, |
| const int | a_lmin | ||
| ) | const |
Reallocate data.
| [out] | a_data | Data to be reallocated |
| [in] | a_lmin | The lowest grid level that will be reallocated. |
This will reallocate data for all grid levels lvl >= a_lmin.
| void AmrMesh::registerMask | ( | const std::string & | a_mask, |
| const int | a_buffer, | ||
| const std::string & | a_realm | ||
| ) |
Register a boolean mask over a realm.
| [in] | a_mask | Mask name to be registered. |
| [in] | a_buffer | Relevant buffer for the mask. |
| [in] | a_realm | Realm |
| void AmrMesh::registerOperator | ( | const std::string & | a_operator, |
| const std::string & | a_realm, | ||
| const phase::which_phase | a_phase | ||
| ) |
Register an operator over a realm and a phase.
| [in] | a_operator | Operator to be registered. |
| [in] | a_realm | Realm name |
| [in] | a_phase | Phase (gas or solid). |
| void AmrMesh::registerParticleGhostMask | ( | const std::string & | a_realm, |
| const int | a_width | ||
| ) |
Register a particle ghost-mask width on a realm so it is (re)built at every regrid.
| [in] | a_realm | Realm name |
| [in] | a_width | Ghost width (cells). Must be > 0. |
| void AmrMesh::registerRealm | ( | const std::string & | a_realm | ) |
| void AmrMesh::regridAmr | ( | const Vector< IntVectSet > & | a_tags, |
| const int | a_lmin, | ||
| const int | a_hardcap = -1 |
||
| ) |
Regrid AMR. This versions generates the grids and Realms, but not the operator.
| [in] | a_tags | Cell tags which will generate the grid. |
| [in] | a_lmin | Coarsest grid level allowed to change. |
| [in] | a_hardcap | Grid generation hardcap. If < 0 there are no limitations to grid depth. |
| void AmrMesh::regridOperators | ( | const int | a_lmin | ) |
Regrid AMR operators. This is done for all realms.
| [in] | a_lmin | Coarsest grid level that changes. |
| void AmrMesh::regridOperators | ( | const std::string & | a_realm, |
| const int | a_lmin | ||
| ) |
Regrid AMR operators. This is done for a specific realm.
| [in] | a_realm | Realm |
| [in] | a_lmin | Coarsest grid level that changes. |
| void AmrMesh::regridRealm | ( | const std::string & | a_realm, |
| const Vector< Vector< int > > & | a_procs, | ||
| const Vector< Vector< Box > > & | a_boxes, | ||
| const int | a_lmin | ||
| ) |
Regrid a realm. This generates the grids for the realm, but does not do the operators on the realm.
| [in] | a_realm | Realm name |
| [in] | a_procs | Processor IDs |
| [in] | a_boxes | Grid boxes |
| [in] | a_lmin | Coarsest level that changes. |
|
noexcept |
Regrid a struct-of-arrays particle container to new grids.
| [in,out] | a_particles | SoA particle container to regrid. |
| [in] | a_lmin | Coarsest level that did not change. |
| [in] | a_newFinestLevel | New finest level. |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
| void AmrMesh::removeCoveredParticlesDiscrete | ( | ParticleContainer< P, Traits > & | a_particles, |
| const phase::which_phase & | a_phase, | ||
| const Real | a_tolerance | ||
| ) | const |
Remove SoA particles inside the EB using discrete (EBISBox) information: covered cells, or irregular cells on the wrong side of every VoF's EB face (to within a_tolerance*dx).
| [in,out] | a_particles | SoA particle data. |
| [in] | a_phase | Phase where the particles live. |
| [in] | a_tolerance | Tolerance (multiplied by dx). |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
| void AmrMesh::removeCoveredParticlesIF | ( | ParticleContainer< P, Traits > & | a_particles, |
| const phase::which_phase & | a_phase, | ||
| const Real | a_tolerance | ||
| ) | const |
Remove SoA particles that fall inside the EB (implicit-function test): f(x) > a_tolerance*dx.
| [in,out] | a_particles | SoA particle data. |
| [in] | a_phase | Phase where the particles live. |
| [in] | a_tolerance | Tolerance (multiplied by dx). |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
| void AmrMesh::removeCoveredParticlesVoxels | ( | ParticleContainer< P, Traits > & | a_particles, |
| const phase::which_phase & | a_phase | ||
| ) | const |
Remove SoA particles that live in covered cells (voxel test).
| [in,out] | a_particles | SoA particle data. |
| [in] | a_phase | Phase where the particles live. |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
| void AmrMesh::setBaseImplicitFunction | ( | const phase::which_phase | a_phase, |
| const RefCountedPtr< BaseIF > & | a_baseIF | ||
| ) |
Set implicit function for a specific phase. Need e.g. for level-sets.
| [in] | a_phase | Phase |
| [in] | a_baseIF | The level-set function describing the phase. |
| void AmrMesh::setCoarsestGrid | ( | const IntVect & | a_nCells | ) |
Set the coarsest grid cells.
| [in] | a_nCells | Number of cells on the coarsest grid level |
| void AmrMesh::setFinestLevel | ( | const int | a_finestLevel | ) |
Set the finest level.
| [in] | a_finestLevel |
| void AmrMesh::setGrids | ( | const Vector< Vector< Box > > & | a_boxes, |
| const std::map< std::string, Vector< Vector< long int > > > & | a_realmsAndLoads | ||
| ) |
| void AmrMesh::setMultifluidIndexSpace | ( | const RefCountedPtr< MultiFluidIndexSpace > & | a_multiFluidIndexSpace | ) |
Sets multifluid index space.
| [in] | a_multiFluidIndexSpace | Multifluid index space wrapper. |
|
noexcept |
Slice cell-centered data in order to fetch a subset of components.
| [in] | a_variables | Variables |
| [in] | a_original | Original |
|
noexcept |
Slice cell-centered data in order to fetch a subset of components.
| [in] | a_variables | Variables |
| [in] | a_original | Original |
| void AmrMesh::transferCoveredParticlesDiscrete | ( | ParticleContainer< P, Traits > & | a_particlesFrom, |
| ParticleContainer< P, Traits > & | a_particlesTo, | ||
| const phase::which_phase & | a_phase, | ||
| const Real | a_tolerance | ||
| ) | const |
Transfer SoA particles inside the EB using discrete (EBISBox) information from one container to another.
Transfers particles in covered cells, or in irregular cells on the wrong side of every VoF's EB face (to within a_tolerance*dx).
| [in,out] | a_particlesFrom | Source SoA container (transferred particles are removed from it). |
| [in,out] | a_particlesTo | Destination SoA container. |
| [in] | a_phase | Phase where the particles live. |
| [in] | a_tolerance | Tolerance (multiplied by dx). |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
| void AmrMesh::transferCoveredParticlesIF | ( | ParticleContainer< P, Traits > & | a_particlesFrom, |
| ParticleContainer< P, Traits > & | a_particlesTo, | ||
| const phase::which_phase & | a_phase, | ||
| const Real | a_tolerance | ||
| ) | const |
Transfer SoA particles inside the EB (implicit-function test) from one container to another: f(x) > a_tolerance*dx.
| [in,out] | a_particlesFrom | Source SoA container (transferred particles are removed from it). |
| [in,out] | a_particlesTo | Destination SoA container. |
| [in] | a_phase | Phase where the particles live. |
| [in] | a_tolerance | Tolerance (multiplied by dx). |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
| void AmrMesh::transferCoveredParticlesVoxels | ( | ParticleContainer< P, Traits > & | a_particlesFrom, |
| ParticleContainer< P, Traits > & | a_particlesTo, | ||
| const phase::which_phase & | a_phase | ||
| ) | const |
Transfer SoA particles that live in covered cells (voxel test) from one container to another.
| [in,out] | a_particlesFrom | Source SoA container (transferred particles are removed from it). |
| [in,out] | a_particlesTo | Destination SoA container. |
| [in] | a_phase | Phase where the particles live. |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
|
noexcept |
Transfer SoA particles that are on the covered side of the EB to a different container.
Per patch, a particle in an irregular cell is moved to a_dstParticles (placed on the EB) when it lies outside every VoF half-space of its cell. Uses swap-and-pop on the SoA leaves.
| [in,out] | a_dstParticles | Destination SoA container. |
| [in,out] | a_srcParticles | Source SoA container (transferred particles are removed from it). |
| [in] | a_phase | Phase where the particles live. |
| P | Payload type of the container. |
| Traits | Column descriptor for the payload. |
|
protected |
Storage for copiers from the old grids to the new ones.
|
protected |
Storage for copiers from the old grids to the new ones.
|
protected |
Map for copying between various Realms. First index is the "from" realm and second index is the "to" realm.
|
protected |
Map for copying between various Realms. First index is the "from" realm and second index is the "to" realm.
|
protected |
Map for copying between various Realms. First index is the "from" realm and second index is the "to" realm.
|
protected |
Map for copying between various Realms. First index is the "from" realm and second index is the "to" realm.