12#ifndef CD_FieldSolverGMG_H
13#define CD_FieldSolverGMG_H
16#include <AMRMultiGrid.H>
17#include <BiCGStabSolver.H>
18#include <MFSimpleSolver.H>
19#include <GMRESSolver.H>
24#include <CD_NamespaceHeader.H>
123 const phase::which_phase
a_phase,
134 const phase::which_phase
a_phase,
423#include <CD_NamespaceFooter.H>
Contains declaration of a base electrostatics solver class.
Declaration of a factory class for making multifluid Helmholtz operators for multigrid.
Implementation of FieldSolver which uses multigrid.
Definition CD_FieldSolverGMG.H:33
MFHelmholtzOp::Smoother m_multigridRelaxMethod
Relaxation type for gmg.
Definition CD_FieldSolverGMG.H:230
bool m_isSolverSetup
Needs setup.
Definition CD_FieldSolverGMG.H:255
BottomSolverType
Enum class for supported bottom solvers in multigrid.
Definition CD_FieldSolverGMG.H:203
int m_multigridBcWeight
Set bc weight (used for weighted least squares)
Definition CD_FieldSolverGMG.H:325
virtual void setPermittivities() override
Set the permittivities.
Definition CD_FieldSolverGMG.cpp:495
virtual ~FieldSolverGMG()
Constructor (does nothing)
Definition CD_FieldSolverGMG.cpp:40
MultigridType m_multigridType
GMG multigrid type.
Definition CD_FieldSolverGMG.H:235
FieldSolverGMG()
Weak constructor.
Definition CD_FieldSolverGMG.cpp:31
MultigridType
Enum for multigrid cycle types.
Definition CD_FieldSolverGMG.H:213
bool m_multigridUseDefaultSettings
Use default multigrid settings.
Definition CD_FieldSolverGMG.H:265
int m_multigridPreSmooth
Number of smoothings before averaging.
Definition CD_FieldSolverGMG.H:280
virtual void parseMultigridSettings()
Parse multigrid settings.
Definition CD_FieldSolverGMG.cpp:91
JumpBCType m_jumpBcType
JumpBC type.
Definition CD_FieldSolverGMG.H:245
virtual void registerOperators() override
Registers required operators for AMR for this class.
Definition CD_FieldSolverGMG.cpp:408
int m_domainDropOrder
Domain drop order.
Definition CD_FieldSolverGMG.H:315
FieldSolverGMG(const FieldSolverGMG &a_other)=delete
Disallowed copy constructor.
virtual void parseRuntimeOptions() override
Parse runtime options from command line or input script.
Definition CD_FieldSolverGMG.cpp:63
virtual void preRegrid(const int a_lbase, const int a_oldFinestLevel) override
Cache state before regridding.
Definition CD_FieldSolverGMG.cpp:381
int m_multigridMaxIterations
Maximum number of iterations.
Definition CD_FieldSolverGMG.H:295
int m_multigridSmooth
Number of smoothing for multigrid.
Definition CD_FieldSolverGMG.H:275
FieldSolverGMG(const FieldSolverGMG &&a_other)=delete
Disallowed move constructor.
int m_multigridJumpOrder
Set bc jump order.
Definition CD_FieldSolverGMG.H:330
virtual bool solve(MFAMRCellData &a_potential, const MFAMRCellData &a_rho, const EBAMRIVData &a_sigma, const bool a_zeroPhi=false) override
Solves Poisson equation onto a_phi using a_rho and a_sigma as right-hand sides.
Definition CD_FieldSolverGMG.cpp:241
virtual void setupSolver() override
Set up multigrid solver.
Definition CD_FieldSolverGMG.cpp:434
virtual void setupHelmholtzFactory()
Set up the multigrid operator factory.
Definition CD_FieldSolverGMG.cpp:564
virtual void parseOptions() override
Parse all class options from command-line or input script.
Definition CD_FieldSolverGMG.cpp:46
virtual void setupMultigrid()
Set up AMRMultiGrid.
Definition CD_FieldSolverGMG.cpp:725
int m_multigridBottomSmooth
Number of smoothing before bottom solver.
Definition CD_FieldSolverGMG.H:290
GMRESSolver< LevelData< MFCellFAB > > m_gmres
GMRES solver.
Definition CD_FieldSolverGMG.H:377
MFSimpleSolver m_mfsolver
multi-fluid simple solver
Definition CD_FieldSolverGMG.H:382
int m_multigridBcOrder
Set bc order.
Definition CD_FieldSolverGMG.H:320
static constexpr Real m_beta
Beta-coefficient (for Helmholtz operator)
Definition CD_FieldSolverGMG.H:197
virtual Vector< long long > computeLoads(const DisjointBoxLayout &a_dbl, const int a_level) override
Compute grid loads.
Definition CD_FieldSolverGMG.cpp:825
virtual void parseJumpBC()
Parse JumpBC type.
Definition CD_FieldSolverGMG.cpp:215
Real m_multigridRelaxFactor
Multigrid relaxation factor.
Definition CD_FieldSolverGMG.H:357
RefCountedPtr< AMRMultiGrid< LevelData< MFCellFAB > > > m_multigridSolver
Geometric multigrid solver.
Definition CD_FieldSolverGMG.H:367
int m_multigridVerbosity
Verbosity for geometric multigrid.
Definition CD_FieldSolverGMG.H:270
FieldSolverGMG & operator=(const FieldSolverGMG &a_other)=delete
Disallowed copy assignment operator.
int m_minCellsBottom
Set bottom drop depth.
Definition CD_FieldSolverGMG.H:310
RefCountedPtr< MFHelmholtzOpFactory > m_helmholtzOpFactory
Multigrid operator factory.
Definition CD_FieldSolverGMG.H:362
static constexpr Real m_alpha
alpha-coefficient (for Helmholtz operator)
Definition CD_FieldSolverGMG.H:192
int m_multigridPreCondSmooth
Multigrid smoothing steps for preconditioner.
Definition CD_FieldSolverGMG.H:340
FieldSolverGMG & operator=(const FieldSolverGMG &&a_other)=delete
Disallowed move assignment operator.
bool m_kappaSource
Scale by kappa or not.
Definition CD_FieldSolverGMG.H:250
int m_numSmoothingsForSimpleSolver
Number of smoothing for bottom solver.
Definition CD_FieldSolverGMG.H:305
BottomSolverType m_bottomSolverType
Bottom solver type.
Definition CD_FieldSolverGMG.H:240
virtual void setSolverPermittivities(const MFAMRCellData &a_permittivityCell, const MFAMRFluxData &a_permittivityFace, const MFAMRIVData &a_permittivityEB) override
Set new permittivities for the multigrid solver.
Definition CD_FieldSolverGMG.cpp:448
Real m_multigridExitHang
Exit hang for multigrid.
Definition CD_FieldSolverGMG.H:352
int m_multigridJumpWeight
Set bc jump weight (used for weighted least squares)
Definition CD_FieldSolverGMG.H:335
virtual void regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) override
Regrid method.
Definition CD_FieldSolverGMG.cpp:395
Real m_multigridExitTolerance
Exit tolerance for multigrid.
Definition CD_FieldSolverGMG.H:346
BiCGStabSolver< LevelData< MFCellFAB > > m_bicgstab
Conjugate gradient solver bottom MG level.
Definition CD_FieldSolverGMG.H:372
virtual void parseKappaSource()
Parse m_kappaSource.
Definition CD_FieldSolverGMG.cpp:78
JumpBCType
Jump BC type.
Definition CD_FieldSolverGMG.H:222
bool m_multigridDropOrder
Drop order in coarsened grid cells.
Definition CD_FieldSolverGMG.H:260
int m_multigridMinIterations
Minimum number of iterations.
Definition CD_FieldSolverGMG.H:300
int m_multigridPostSmooth
Number of smoothings before averaging.
Definition CD_FieldSolverGMG.H:285
Base class for electrostatic solvers.
Definition CD_FieldSolver.H:32
virtual void computeElectricField()
Compute the cell-centered electric field.
Definition CD_FieldSolver.cpp:128
Smoother
Relaxation methods for this operator.
Definition CD_MFHelmholtzOp.H:49
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37