|
| CdrMultigrid () |
| Constructor.
|
|
virtual | ~CdrMultigrid () |
| Destructor.
|
|
virtual void | parseOptions () override=0 |
| Parse class options.
|
|
virtual void | parseRuntimeOptions () override=0 |
| Parse class options.
|
|
virtual void | registerOperators () override |
| Register operator.
|
|
virtual void | allocate () override |
| Allocate internal storage.
|
|
virtual void | preRegrid (const int a_lbase, const int a_oldFinestLevel) override |
| Perform pre-regrid operations. More...
|
|
virtual void | computeDivJ (EBAMRCellData &a_divJ, EBAMRCellData &a_phi, const Real a_extrapDt, const bool a_conservativeOnly, const bool a_ebFlux, const bool a_domainFlux) override final |
| Compute div(J) explicitly, where J = nV - D*grad(n) More...
|
|
virtual void | computeDivF (EBAMRCellData &a_divF, EBAMRCellData &a_phi, const Real a_extrapDt, const bool a_conservativeOnly, const bool a_ebFlux, const bool a_domainFlux) override final |
| Compute div(v*phi) explicitly. More...
|
|
virtual void | computeDivD (EBAMRCellData &a_divD, EBAMRCellData &a_phi, const bool a_conservativeOnly, const bool a_ebFlux, const bool a_domainFlux) override final |
| Compute div(D*grad(phi)) explicitly. More...
|
|
virtual void | advanceEuler (EBAMRCellData &a_newPhi, const EBAMRCellData &a_oldPhi, const EBAMRCellData &a_source, const Real a_dt) override final |
| Implicit diffusion Euler advance with source term. More...
|
|
virtual void | advanceCrankNicholson (EBAMRCellData &a_newPhi, const EBAMRCellData &a_oldPhi, const EBAMRCellData &a_source, const Real a_dt) override final |
| Implicit diffusion Crank-Nicholson advance with source term. More...
|
|
| CdrSolver () |
| Default constructor. More...
|
|
| CdrSolver (const CdrSolver &a_other)=delete |
| Disallowed copy constructor. More...
|
|
| CdrSolver (const CdrSolver &&a_other)=delete |
| Disallowed move constructor. More...
|
|
CdrSolver & | operator= (const CdrSolver &a_other)=delete |
| Disallowed assignment operator. More...
|
|
CdrSolver & | operator= (const CdrSolver &&a_other)=delete |
| Disallowed move assignement operator. More...
|
|
virtual | ~CdrSolver () |
| Constructor.
|
|
void | setDefaultDomainBC () |
| This sets default boundary conditions (wall type). More...
|
|
void | setDomainBcType (const CdrDomainBC::DomainSide a_domainSide, const CdrDomainBC::BcType a_bcType) |
| Set domain bc type on domain side. More...
|
|
void | setDomainBcFunction (const CdrDomainBC::DomainSide a_domainSide, const CdrDomainBC::FluxFunction a_fluxFunction) |
| Set domain bc function on particular domain side. More...
|
|
virtual void | advanceEuler (EBAMRCellData &a_newPhi, const EBAMRCellData &a_oldPhi, const Real a_dt) |
| Implicit diffusion Euler advance without source term. More...
|
|
virtual void | advanceCrankNicholson (EBAMRCellData &a_newPhi, const EBAMRCellData &a_oldPhi, const Real a_dt) |
| Implicit diffusion Crank-Nicholson advance without source term. More...
|
|
virtual void | computeDivG (EBAMRCellData &a_divG, EBAMRFluxData &a_G, const EBAMRIVData &a_ebFlux, const bool a_conservativeOnly) |
| Compute div(G) where G is a general face-centered flux on face centers and EB centers. This can involve mass redistribution. More...
|
|
virtual void | gwnDiffusionSource (EBAMRCellData &a_noiseSource, const EBAMRCellData &a_cellPhi) |
| Compute a random gaussian white noise source term. More...
|
|
virtual void | averageVelocityToFaces () |
| Average velocities to faces. More...
|
|
virtual void | deallocate () |
| Deallocate internal storage. More...
|
|
virtual void | setRealm (const std::string a_realm) |
| Set the realm for this solver. More...
|
|
virtual RefCountedPtr< CdrSpecies > & | getSpecies () noexcept |
| Get the CDR species.
|
|
virtual const RefCountedPtr< CdrSpecies > & | getSpecies () const noexcept |
| Get the CDR species.
|
|
virtual void | setSpecies (const RefCountedPtr< CdrSpecies > &a_species) |
| Set species. More...
|
|
virtual void | setComputationalGeometry (const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry) |
| Set computational geometry. More...
|
|
virtual void | setAmr (const RefCountedPtr< AmrMesh > &a_amr) |
| Set the amr object. More...
|
|
virtual void | setPhase (phase::which_phase a_phase) |
| Set phase. More...
|
|
virtual void | setVerbosity (const int a_verbosity) |
| Set verbosity. More...
|
|
virtual void | setTime (const int a_step, const Real a_time, const Real a_dt) |
| Set the time for this solver. More...
|
|
virtual void | setVelocity (const EBAMRCellData &a_velocity) |
| Set velocity from data holder. More...
|
|
virtual void | setVelocity (const RealVect a_velocity) |
| Set constant velocity. More...
|
|
virtual void | setVelocity (const std::function< RealVect(const RealVect a_pos)> &a_velocity) |
| Set velocity using a polymorphic function. More...
|
|
virtual void | setDiffusionCoefficient (const EBAMRFluxData &a_diffusionCoefficient, const EBAMRIVData &a_ebDiffusionCoefficient) |
| Data-based version of setting diffusion coefficients (which are stored on faces) More...
|
|
virtual void | setDiffusionCoefficient (const Real a_diffusionCoefficient) |
| Set diffusion coefficient to be constant everywhere (they are stored on faces) More...
|
|
virtual void | setDiffusionCoefficient (const std::function< Real(const RealVect a_position)> &a_diffusionCoefficient) |
| Polymorphic way of setting diffusion coefficients every. More...
|
|
virtual void | setSource (const EBAMRCellData &a_source) |
| Data based version of setting source terms. More...
|
|
virtual void | setSource (const Real a_source) |
| Set constant source terms everywhere. More...
|
|
virtual void | setSource (const std::function< Real(const RealVect a_position)> a_source) |
| Polymorphic way of setting source terms. More...
|
|
virtual void | setEbFlux (const EBAMRIVData &a_ebFlux) |
| Data-based version of setting the EB flux. More...
|
|
virtual void | setEbFlux (const Real a_ebFlux) |
| Set the eb flux to a constant. More...
|
|
virtual void | initialData () |
| Fill m_phi state with initial data from m_species. More...
|
|
virtual void | writePlotFile () |
| Write plot file. More...
|
|
virtual void | writePlotData (LevelData< EBCellFAB > &a_output, int &a_icomp, const std::string a_outputRealm, const int a_level) const noexcept |
| Write output data to a_output. More...
|
|
virtual void | regrid (const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) |
| Write checkpoint data into HDF5 file. @paramo[out] a_handle HDF5 file. More...
|
|
virtual std::string | getRealm () const |
| Get the realm where this solver is registered. More...
|
|
virtual std::string | getName () const |
| Get solver name. More...
|
|
virtual Vector< std::string > | getPlotVariableNames () const |
| Get output plot names. More...
|
|
virtual int | getNumberOfPlotVariables () const |
| Get number of output fields. More...
|
|
virtual Real | computeAdvectionDt () |
| Compute the largest possible diffusive time step (for explicit methods) More...
|
|
virtual Real | computeDiffusionDt () |
| Compute the largest possible diffusive time step (for explicit methods) More...
|
|
virtual Real | computeAdvectionDiffusionDt () |
| Compute the largest possible diffusive time step (for explicit methods) More...
|
|
virtual Real | computeSourceDt (const Real a_max, const Real a_tolerance) |
| Compute the largest possible source time step (for explicit methods. More...
|
|
virtual void | weightedUpwind (EBAMRCellData &a_weightedUpwindPhi, const int a_pow) |
| Compute an upwind-weighted version of phi. More...
|
|
virtual Real | computeMass () |
| Compute the "physical mass" in m_phi. More...
|
|
virtual Real | computeMass (const EBAMRCellData &a_phi, const bool a_kappaScale=true) |
| Compute the "physical mass" in the input argument. More...
|
|
virtual Real | computeCharge () |
| Compute the total charge in m_phi. More...
|
|
virtual bool | isDiffusive () |
| Return true if the solver is diffusive and false otherwise.
|
|
virtual bool | isMobile () |
| Return true if the solver is mobile and false otherwise.
|
|
virtual EBAMRCellData & | getPhi () |
| Get the cell-centered phi. More...
|
|
virtual EBAMRCellData & | getSource () |
| Get the source term. More...
|
|
virtual EBAMRCellData & | getCellCenteredVelocity () |
| Get the cell-centered velocity. More...
|
|
virtual EBAMRFluxData & | getFaceCenteredVelocity () |
| Get the face-centered velocities. More...
|
|
virtual EBAMRIVData & | getEbCenteredVelocity () |
| Get the eb-centered velocities. More...
|
|
virtual EBAMRCellData & | getCellCenteredDiffusionCoefficient () |
| Get the cell-centered diffusion coefficient.
|
|
virtual EBAMRFluxData & | getFaceCenteredDiffusionCoefficient () |
| Get the face-centered diffusion coefficient. More...
|
|
virtual EBAMRIVData & | getEbCenteredDiffusionCoefficient () |
| Get the EB-centered diffusion coefficient. More...
|
|
virtual EBAMRIVData & | getEbFlux () |
| Get the eb flux data holder. More...
|
|
virtual EBAMRIFData & | getDomainFlux () |
| Get the domain flux data holder. More...
|
|
virtual void | extrapolateAdvectiveFluxToEB () noexcept |
| Extrapolate advective flux to EB. More...
|
|
virtual void | extrapolateAdvectiveFluxToEB (EBAMRIVData &a_ebFlux) const noexcept |
| Extrapolate advective flux to EB. More...
|
|
virtual void | redistribute (EBAMRCellData &a_phi, const EBAMRIVData &a_delta) const noexcept |
| Add data through redistribution into cell-centered holders. More...
|
|
|
virtual void | advectToFaces (EBAMRFluxData &a_facePhi, const EBAMRCellData &a_phi, const Real a_extrapDt) override=0 |
| Advection-only extrapolation to faces.
|
|
virtual void | setupDiffusionSolver () |
| Set up diffusion solver.
|
|
virtual void | setupHelmholtzFactory () |
| Setup the operator factory.
|
|
virtual void | setupMultigrid () |
| Setup multigrid.
|
|
virtual void | setMultigridSolverCoefficients () |
| Set the multigrid solver coefficients. More...
|
|
virtual void | resetAlphaAndBeta (const Real a_alpha, const Real a_beta) |
| Reset alpha and beta-coefficients in the multigrid solvers. More...
|
|
virtual void | computeKappaLphi (EBAMRCellData &a_kappaLphi, const EBAMRCellData &a_phi) |
| Compute kappa * L(phi) using the multigrid operator. This is different from computeDivD. More...
|
|
virtual void | parseMultigridSettings () |
| Parse solver settings for geometric multigrid.
|
|
virtual void | averageVelocityToFaces (EBAMRFluxData &a_faceVelocity, const EBAMRCellData &a_cellVelocity) |
| Average cell-centered velocities to face centers. More...
|
|
virtual void | computeAdvectionFlux (EBAMRFluxData &a_flux, const EBAMRFluxData &a_facePhi, const EBAMRFluxData &a_faceVelocity, const bool a_addDomainFlux=true) |
| Set up face-centered advection flux. More...
|
|
virtual void | computeAdvectionFlux (LevelData< EBFluxFAB > &a_flux, const LevelData< EBFluxFAB > &a_facePhi, const LevelData< EBFluxFAB > &a_faceVelocity, const int a_lvl) |
| Set up face-centered advection flux on a grid level. More...
|
|
virtual void | computeDiffusionFlux (EBAMRFluxData &a_flux, const EBAMRCellData &a_phi, const bool a_addDomainFlux) |
| Compute the face-centered diffusion flux. More...
|
|
virtual void | computeDiffusionFlux (LevelData< EBFluxFAB > &a_flux, const LevelData< EBCellFAB > &a_phi, const int a_lvl) |
| Compute the face-centered diffusion flux. More...
|
|
virtual void | computeAdvectionDiffusionFlux (EBAMRFluxData &a_flux, const EBAMRCellData &a_cellStates, const EBAMRFluxData &a_faceStates, const EBAMRFluxData &a_faceVelocities, const EBAMRFluxData &a_faceDiffCo, const bool a_addDomainFlux) |
| Compute the full advection-diffusion flux. This assumes that the solver is mobile and diffusive. More...
|
|
virtual void | resetDomainFlux (EBAMRFluxData &a_flux) |
| Set flux to zero on domain boundaries. More...
|
|
virtual void | fillDomainFlux (EBAMRFluxData &a_flux) |
| Set domain in data holder. This sets the flux on the boundary to either zero or to m_domainFlux. More...
|
|
virtual void | fillDomainFlux (LevelData< EBFluxFAB > &a_flux, const int a_level) |
| Set domain in data holder. This sets the flux on the boundary to either zero or to m_domainFlux. More...
|
|
virtual void | conservativeDivergenceNoKappaDivision (EBAMRCellData &a_conservativeDivergence, EBAMRFluxData &a_flux, const EBAMRIVData &a_ebFlux) |
| Compute conservative divergence from fluxes. More...
|
|
virtual void | nonConservativeDivergence (EBAMRIVData &a_nonConservativeDivergence, const EBAMRCellData &a_divG) |
| Compute the non-conservative divergence. More...
|
|
virtual void | hybridDivergence (EBAMRCellData &a_hybridDivergence, EBAMRIVData &a_massDifference, const EBAMRIVData &a_nonConservativeDivergence) |
| Use the non-conservative divergence to make the conservative divergence hold the hybrid divergence. More...
|
|
virtual void | hybridDivergence (LevelData< EBCellFAB > &a_hybridDivergence, LevelData< BaseIVFAB< Real >> &a_massDifference, const LevelData< BaseIVFAB< Real >> &a_nonConservativeDivergence, const int a_lvl) |
| Make the hybrid divergence. On the way in, a_hybridDivergence must hold the conservative divergence. More...
|
|
virtual void | conservativeDivergenceRegular (LevelData< EBCellFAB > &a_divJ, const LevelData< EBFluxFAB > &a_flux, const int a_lvl) |
| Compute the conservative divergence over regular cells. More...
|
|
virtual void | interpolateFluxToFaceCentroids (EBAMRFluxData &a_flux) |
| Interpolate flux to centroids. More...
|
|
virtual void | interpolateFluxToFaceCentroids (LevelData< EBFluxFAB > &a_flux, const int a_lvl) |
| Interpolate flux to centroids. More...
|
|
virtual void | computeDivergenceIrregular (LevelData< EBCellFAB > &a_divG, const LevelData< EBFluxFAB > &a_centroidFluxes, const LevelData< BaseIVFAB< Real >> &a_ebFlux, const int a_lvl) |
| Compute conservative divergence on irregular cells (not kappa divided) More...
|
|
virtual void | initialDataDistribution () |
| Fill initial data from a distribution function. More...
|
|
virtual void | initialDataParticles () |
| Fill initial data from particles. More...
|
|
virtual void | defineInterpolationStencils () |
| Define stencils for doing face-centered to face-centroid-centered states. More...
|
|
virtual void | parseDomainBc () |
| Parses domain BC options.
|
|
virtual void | parsePlotVariables () |
| Parses plot variables.
|
|
virtual void | parsePlotMode () |
| Parse plot mode.
|
|
virtual void | parseDivergenceComputation () |
| Parse the conservation.
|
|
virtual void | parseRegridSlopes () |
| Parse slope regrid.
|
|
virtual std::string | makeBcString (const int a_dir, const Side::LoHiSide a_side) const |
| Shortcut for making a boundary condition string. More...
|
|
virtual void | fillGwn (EBAMRFluxData &a_noise, const Real a_sigma) |
| Gaussian noise field. More...
|
|
virtual void | smoothHeavisideFaces (EBAMRFluxData &a_facePhi, const EBAMRCellData &a_cellPhi) |
| Use Heaviside smoothing for computing face-centered states. More...
|
|
virtual void | writeData (LevelData< EBCellFAB > &a_output, int &a_comp, const EBAMRCellData &a_data, const std::string a_outputRealm, const int a_level, const bool a_interpToCentroids, const bool a_interpGhost) const noexcept |
| Write data to output. Convenience function. More...
|
|
Extension class of CdrSolver that uses multigrid for diffusion part. Can also solve for stochastic diffusion.