chombo-discharge
Loading...
Searching...
No Matches
CD_CdrSolver.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_CDRSOLVER_H
14#define CD_CDRSOLVER_H
15
16// Std includes
17#include <random>
18#include <time.h>
19#include <chrono>
20#include <functional>
21
22// Our includes
23#include <CD_AmrMesh.H>
25#include <CD_CdrSpecies.H>
26#include <CD_CdrDomainBC.H>
27#include <CD_NamespaceHeader.H>
28
35{
36public:
41 CdrSolver();
42
47 CdrSolver(const CdrSolver& a_other) = delete;
48
53 CdrSolver(const CdrSolver&& a_other) = delete;
54
60 operator=(const CdrSolver& a_other) = delete;
61
67 operator=(const CdrSolver&& a_other) = delete;
68
72 virtual ~CdrSolver();
73
77 virtual void
79
83 virtual void
85
92 void
94
100 void
102
109 void
111
119 virtual void
121
131 virtual void
133 const EBAMRCellData& a_oldPhi,
134 const EBAMRCellData& a_source,
135 const Real a_dt) = 0;
136
144 virtual void
146
154 virtual void
156 const EBAMRCellData& a_oldPhi,
157 const EBAMRCellData& a_source,
158 const Real a_dt) = 0;
159
170 virtual void
173 const Real a_extrapDt,
174 const bool a_conservativeOnly,
175 const bool a_ebFlux,
176 const bool a_domainFlux) = 0;
177
188 virtual void
191 const Real a_extrapDt,
192 const bool a_conservativeOnly,
193 const bool a_ebFlux,
194 const bool a_domainFlux) = 0;
195
205 virtual void
208 const bool a_conservativeOnly,
209 const bool a_ebFlux,
210 const bool a_domainFlux) = 0;
211
219 virtual void
221
228 virtual void
230
236 virtual void
238
245 virtual void
246 preRegrid(const int a_lbase, const int a_oldFinestLevel);
247
252 virtual void
253 deallocate();
254
259 virtual void
261
266 virtual void
268
275
282
287 virtual void
289
294 virtual void
296
301 virtual void
303
308 virtual void
309 setPhase(phase::which_phase a_phase);
310
315 virtual void
317
325 virtual void
327
333 virtual void
335
341 virtual void
343
348 virtual void
350
357 virtual void
359
365 virtual void
367
373 virtual void
375
381 virtual void
383
389 virtual void
391
397 virtual void
399
405 virtual void
407
413 virtual void
415
420 virtual void
421 initialData();
422
427 virtual void
428 allocate();
429
435 virtual void
437
447 virtual void
449 int& a_icomp,
450 const std::string& a_outputRealm,
452
453#ifdef CH_USE_HDF5
459 virtual void
461#endif
462
463#ifdef CH_USE_HDF5
469 virtual void
471#endif
472
480 virtual void
481 regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel);
482
487 virtual std::string
488 getRealm() const;
489
495 virtual std::string
496 getName() const;
497
502 virtual Vector<std::string>
503 getPlotVariableNames() const;
504
509 virtual int
511
518 virtual Real
520
527 virtual Real
529
536 virtual Real
538
547 virtual Real
549
557 virtual void
559
565 virtual Real
566 computeMass();
567
575 virtual Real
576 computeMass(const EBAMRCellData& a_phi, const bool a_kappaScale = true);
577
583 virtual Real
585
590 virtual bool
591 isDiffusive();
592
597 virtual bool
598 isMobile();
599
604 virtual EBAMRCellData&
605 getPhi();
606
611 virtual EBAMRCellData&
612 getSource();
613
618 virtual EBAMRCellData&
620
625 virtual EBAMRFluxData&
627
632 virtual EBAMRIVData&
634
639 virtual EBAMRCellData&
641
646 virtual EBAMRFluxData&
648
653 virtual EBAMRIVData&
655
660 virtual EBAMRIVData&
661 getEbFlux();
662
667 virtual EBAMRIFData&
669
676 virtual void
678
685 virtual void
687
693 virtual void
695
701 {
702 VolumeWeighted,
703 None
704 };
705
709 static constexpr int m_comp = 0;
710
714 static constexpr int m_nComp = 1;
715
720
725
730
735
740
745
751
756
761
766
771
777
783
789
794
799
804
809
814
819
824
829
835
841
847
853
859
864
869
874
879
884
889
894
899
904
909
914
919
924
929
934
942 virtual void
944
951 virtual void
953
963 virtual void
967 const bool a_addDomainFlux = true);
968
978 virtual void
982 const int a_lvl);
983
992 virtual void
994
1002 virtual void
1004
1014 virtual void
1020 const bool a_addDomainFlux);
1021
1026 virtual void
1028
1033 virtual void
1035
1041 virtual void
1043
1051 virtual void
1054 const EBAMRIVData& a_ebFlux);
1055
1062 virtual void
1064
1071 virtual void
1075
1083 virtual void
1087 const int a_lvl);
1088
1096 virtual void
1098
1104 virtual void
1106
1113 virtual void
1115
1124 virtual void
1128 const int a_lvl);
1129
1134 virtual void
1136
1141 virtual void
1143
1148 virtual void
1150
1154 virtual void
1155 parseDomainBc();
1156
1160 virtual void
1162
1166 virtual void
1167 parsePlotMode();
1168
1172 virtual void
1174
1178 virtual void
1180
1187 virtual std::string
1188 makeBcString(const int a_dir, const Side::LoHiSide a_side) const;
1189
1195 virtual void
1197
1204 virtual void
1206
1217 virtual void
1219 int& a_comp,
1220 const EBAMRCellData& a_data,
1222 const int a_level,
1223 const bool a_interpToCentroids,
1224 const bool a_interpGhost) const noexcept;
1225};
1226
1227#include <CD_NamespaceFooter.H>
1228
1229#endif
Declaration of core class for handling AMR-related operations (with embedded boundaries)
Declaration of domain boundary condition types for CdrSolver.
Declaration of a class that passes information into CdrSolver (e.g., initial conditions).
Declaration of base class for defining geometries.
Class for handling spatial operations.
Definition CD_AmrMesh.H:43
Class for encapsulating possible domain boundary conditions for CdrSolver.
Definition CD_CdrDomainBC.H:32
std::function< Real(const RealVect a_position, const Real a_time)> FluxFunction
Function which maps f(R^3,t) : R. Used for setting the associated value and boundary condition type.
Definition CD_CdrDomainBC.H:52
std::pair< int, Side::LoHiSide > DomainSide
Alias for mapping a direction and side. The first element in pair is the coordinate direction and the...
Definition CD_CdrDomainBC.H:57
BcType
Boundary condition types for the CDR solvers.
Definition CD_CdrDomainBC.H:38
Base class for solving convection-diffusion-reaction equations.
Definition CD_CdrSolver.H:35
virtual void gwnDiffusionSource(EBAMRCellData &a_noiseSource, const EBAMRCellData &a_cellPhi)
Compute a random gaussian white noise source term.
Definition CD_CdrSolver.cpp:2976
virtual void parseOptions()=0
Parse class options.
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)=0
Compute div(v*phi) explicitly.
bool m_isDiffusive
Is the solver diffusive or not.
Definition CD_CdrSolver.H:888
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.
Definition CD_CdrSolver.cpp:681
virtual void nonConservativeDivergence(EBAMRIVData &a_nonConservativeDivergence, const EBAMRCellData &a_divG)
Compute the non-conservative divergence.
Definition CD_CdrSolver.cpp:1463
virtual RefCountedPtr< CdrSpecies > & getSpecies() noexcept
Get the CDR species.
Definition CD_CdrSolver.cpp:42
bool m_plotPhi
If true, m_phi is added to plot files.
Definition CD_CdrSolver.H:898
virtual EBAMRIVData & getEbCenteredDiffusionCoefficient()
Get the EB-centered diffusion coefficient.
Definition CD_CdrSolver.cpp:2721
virtual void parseRuntimeOptions()=0
Parse runtime options.
virtual EBAMRIVData & getEbCenteredVelocity()
Get the eb-centered velocities.
Definition CD_CdrSolver.cpp:2688
int m_timeStep
Time step.
Definition CD_CdrSolver.H:863
EBAMRCellData m_source
Source term.
Definition CD_CdrSolver.H:770
virtual EBAMRCellData & getSource()
Get the source term.
Definition CD_CdrSolver.cpp:2655
CdrSolver(const CdrSolver &&a_other)=delete
Disallowed move constructor.
void setDomainBcFunction(const CdrDomainBC::DomainSide a_domainSide, const CdrDomainBC::FluxFunction &a_fluxFunction)
Set domain bc function on particular domain side.
Definition CD_CdrSolver.cpp:100
virtual void parsePlotVariables()
Parses plot variables.
Definition CD_CdrSolver.cpp:2933
CdrSolver()
Default constructor.
Definition CD_CdrSolver.cpp:30
virtual void parsePlotMode()
Parse plot mode.
Definition CD_CdrSolver.cpp:3229
EBAMRFluxData m_faceCenteredDiffusionCoefficient
Diffusion coefficients on face centers.
Definition CD_CdrSolver.H:840
virtual int getNumberOfPlotVariables() const
Get number of output fields.
Definition CD_CdrSolver.cpp:183
virtual bool isMobile()
Return true if the solver is mobile and false otherwise.
Definition CD_CdrSolver.cpp:2633
virtual EBAMRFluxData & getFaceCenteredVelocity()
Get the face-centered velocities.
Definition CD_CdrSolver.cpp:2677
bool m_plotDiffusionCoefficient
Output diffusion coefficients.
Definition CD_CdrSolver.H:908
EBAMRIVData m_massDifference
Scratch storage for the mass difference.
Definition CD_CdrSolver.H:798
CdrSolver(const CdrSolver &a_other)=delete
Disallowed copy constructor.
static constexpr int m_nComp
Number of components that this solver solves for.
Definition CD_CdrSolver.H:714
virtual void allocate()
Allocate internal storage.
Definition CD_CdrSolver.cpp:265
virtual void setPhase(phase::which_phase a_phase)
Set phase.
Definition CD_CdrSolver.cpp:1778
Real m_dt
Last time step increment.
Definition CD_CdrSolver.H:873
CdrSolver & operator=(const CdrSolver &&a_other)=delete
Disallowed move assignment operator.
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.
Definition CD_CdrSolver.cpp:1311
Redistribution m_whichRedistribution
Which type of redistribution to use.
Definition CD_CdrSolver.H:878
virtual Real computeAdvectionDt()
Compute the largest possible diffusive time step (for explicit methods)
Definition CD_CdrSolver.cpp:2017
bool m_plotVelocity
Output velocities.
Definition CD_CdrSolver.H:903
virtual EBAMRFluxData & getFaceCenteredDiffusionCoefficient()
Get the face-centered diffusion coefficient.
Definition CD_CdrSolver.cpp:2710
RefCountedPtr< AmrMesh > m_amr
AMR; needed for grid stuff.
Definition CD_CdrSolver.H:729
RefCountedPtr< CdrSpecies > m_species
Species through which e.g. mobility/diffusion and initial conditions is passed.
Definition CD_CdrSolver.H:719
virtual void registerOperators()
Register operators for AMR operations.
Definition CD_CdrSolver.cpp:1529
virtual void fillGwn(EBAMRFluxData &a_noise, const Real a_sigma)
Gaussian noise field.
Definition CD_CdrSolver.cpp:3167
virtual void setEbFlux(const EBAMRIVData &a_ebFlux)
Data-based version of setting the EB flux.
Definition CD_CdrSolver.cpp:1627
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.
Definition CD_CdrSolver.cpp:1854
virtual void redistribute(EBAMRCellData &a_phi, const EBAMRIVData &a_delta) const noexcept
Add data through redistribution into cell-centered holders.
Definition CD_CdrSolver.cpp:470
Vector< RefCountedPtr< LayoutData< BaseIFFAB< FaceStencil > > > > m_interpStencils[SpaceDim]
Stencils for interpolating face-centered fluxes to face centroids.
Definition CD_CdrSolver.H:734
virtual void setComputationalGeometry(const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry)
Set computational geometry.
Definition CD_CdrSolver.cpp:1547
std::string m_realm
Realm where this solver is registered.
Definition CD_CdrSolver.H:755
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)=0
Compute div(J) explicitly, where J = nV - D*grad(n)
EBAMRIVData m_nonConservativeDivG
Scratch storage for the non-conservative divergence.
Definition CD_CdrSolver.H:793
virtual EBAMRCellData & getPhi()
Get the cell-centered phi.
Definition CD_CdrSolver.cpp:2644
virtual void initialDataDistribution()
Fill initial data from a distribution function.
Definition CD_CdrSolver.cpp:1220
EBAMRCellData m_phi
Cell-centered data (i.e. the advected-diffused quantity)
Definition CD_CdrSolver.H:765
virtual Real computeAdvectionDiffusionDt()
Compute the largest possible diffusive time step (for explicit methods).
Definition CD_CdrSolver.cpp:2181
virtual void advanceEuler(EBAMRCellData &a_newPhi, const EBAMRCellData &a_oldPhi, const Real a_dt)
Implicit diffusion Euler advance without source term.
Definition CD_CdrSolver.cpp:215
virtual bool isDiffusive()
Return true if the solver is diffusive and false otherwise.
Definition CD_CdrSolver.cpp:2622
RefCountedPtr< ComputationalGeometry > m_computationalGeometry
Computational geometry.
Definition CD_CdrSolver.H:724
virtual void resetDomainFlux(EBAMRFluxData &a_flux)
Set flux to zero on domain boundaries.
Definition CD_CdrSolver.cpp:784
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....
Definition CD_CdrSolver.cpp:410
virtual EBAMRIFData & getDomainFlux()
Get the domain flux data holder.
Definition CD_CdrSolver.cpp:2743
EBAMRIVData m_ebCenteredDiffusionCoefficient
Diffusion coefficients on EB faces.
Definition CD_CdrSolver.H:846
bool m_plotEbFlux
Output EB fluxes.
Definition CD_CdrSolver.H:913
EBAMRFluxData m_faceStates
Holder for face centered states.
Definition CD_CdrSolver.H:782
Redistribution
Redistribution method.
Definition CD_CdrSolver.H:701
EBAMRCellData m_cellVelocity
Cell-centered velocities.
Definition CD_CdrSolver.H:776
virtual void initialData()
Fill m_phi state with initial data from m_species.
Definition CD_CdrSolver.cpp:1195
virtual void smoothHeavisideFaces(EBAMRFluxData &a_facePhi, const EBAMRCellData &a_cellPhi)
Use Heaviside smoothing for computing face-centered states.
Definition CD_CdrSolver.cpp:3035
std::map< CdrDomainBC::DomainSide, CdrDomainBC::FluxFunction > m_domainFluxFunctions
Domain flux functions.
Definition CD_CdrSolver.H:852
bool m_regridSlopes
Use slopes when regridding.
Definition CD_CdrSolver.H:928
virtual void parseDomainBc()
Parses domain BC options.
Definition CD_CdrSolver.cpp:2861
virtual std::string getName() const
Get solver name.
Definition CD_CdrSolver.cpp:112
virtual void conservativeDivergenceNoKappaDivision(EBAMRCellData &a_conservativeDivergence, EBAMRFluxData &a_flux, const EBAMRIVData &a_ebFlux)
Compute conservative divergence from fluxes.
Definition CD_CdrSolver.cpp:980
void setDefaultDomainBC()
This sets default boundary conditions (wall type).
Definition CD_CdrSolver.cpp:64
virtual void setVerbosity(const int a_verbosity)
Set verbosity.
Definition CD_CdrSolver.cpp:1789
virtual Real computeCharge()
Compute the total charge in m_phi.
Definition CD_CdrSolver.cpp:2607
virtual void parseRegridSlopes()
Parse slope regrid.
Definition CD_CdrSolver.cpp:3253
std::string m_className
Class name.
Definition CD_CdrSolver.H:750
virtual ~CdrSolver()
Constructor.
virtual void averageVelocityToFaces()
Average velocities to faces.
Definition CD_CdrSolver.cpp:355
EBAMRIVData m_ebFlux
Flux through the embedded boundary.
Definition CD_CdrSolver.H:823
EBAMRCellData m_cellCenteredDiffusionCoefficient
Diffusion coefficients on cell centers.
Definition CD_CdrSolver.H:834
virtual void deallocate()
Deallocate internal storage.
Definition CD_CdrSolver.cpp:336
virtual void setTime(const int a_step, const Real a_time, const Real a_dt)
Set the time for this solver.
Definition CD_CdrSolver.cpp:1716
virtual std::string getRealm() const
Get the realm where this solver is registered.
Definition CD_CdrSolver.cpp:123
int m_seed
RNG seed.
Definition CD_CdrSolver.H:933
virtual Real computeDiffusionDt()
Compute the largest possible diffusive time step (for explicit methods)
Definition CD_CdrSolver.cpp:2087
virtual void weightedUpwind(EBAMRCellData &a_weightedUpwindPhi, const int a_pow)
Compute an upwind-weighted version of phi.
Definition CD_CdrSolver.cpp:2367
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.
Definition CD_CdrSolver.cpp:504
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.
Definition CD_CdrSolver.cpp:1928
EBAMRCellData m_cachePhi
Cached state vector for regrid.
Definition CD_CdrSolver.H:808
virtual void advanceEuler(EBAMRCellData &a_newPhi, const EBAMRCellData &a_oldPhi, const EBAMRCellData &a_source, const Real a_dt)=0
Implicit diffusion Euler advance with source term.
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.
Definition CD_CdrSolver.cpp:848
bool m_plotNumbers
Plot numbers or densities.
Definition CD_CdrSolver.H:923
virtual Real computeMass()
Compute the "physical mass" in m_phi.
Definition CD_CdrSolver.cpp:2536
virtual void parseDivergenceComputation()
Parse the conservation.
Definition CD_CdrSolver.cpp:2905
virtual void preRegrid(const int a_lbase, const int a_oldFinestLevel)
Perform pre-regrid operations.
Definition CD_CdrSolver.cpp:393
virtual void setRealm(const std::string &a_realm)
Set the realm for this solver.
Definition CD_CdrSolver.cpp:134
virtual void advanceCrankNicholson(EBAMRCellData &a_newPhi, const EBAMRCellData &a_oldPhi, const EBAMRCellData &a_source, const Real a_dt)=0
Implicit diffusion Crank-Nicholson advance with source term.
virtual void defineInterpolationStencils()
Define stencils for doing face-centered to face-centroid-centered states.
Definition CD_CdrSolver.cpp:1145
Real m_time
Current time.
Definition CD_CdrSolver.H:868
EBAMRIVData m_ebZero
Scratch storage for the EB flux.
Definition CD_CdrSolver.H:803
bool m_blendConservation
Flag for blending the hybrid divergence.
Definition CD_CdrSolver.H:883
bool m_isMobile
Solve for advection/convection or not.
Definition CD_CdrSolver.H:893
virtual void interpolateFluxToFaceCentroids(EBAMRFluxData &a_flux)
Interpolate flux to centroids.
Definition CD_CdrSolver.cpp:1385
EBAMRIVData m_ebVelocity
EB-centered velocities.
Definition CD_CdrSolver.H:818
virtual void advectToFaces(EBAMRFluxData &a_facePhi, const EBAMRCellData &a_phi, const Real a_extrapDt)=0
Advection-only extrapolation to faces.
virtual void advanceCrankNicholson(EBAMRCellData &a_newPhi, const EBAMRCellData &a_oldPhi, const Real a_dt)
Implicit diffusion Crank-Nicholson advance without source term.
Definition CD_CdrSolver.cpp:240
static constexpr int m_comp
Component number in data holder.
Definition CD_CdrSolver.H:709
virtual void regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel)
Regrid this solver.
Definition CD_CdrSolver.cpp:1485
EBAMRFluxData m_faceVelocity
Face-centered velocities (only normal components)
Definition CD_CdrSolver.H:788
virtual void setDiffusionCoefficient(const EBAMRFluxData &a_diffusionCoefficient, const EBAMRIVData &a_ebDiffusionCoefficient)
Data-based version of setting diffusion coefficients (which are stored on faces)
Definition CD_CdrSolver.cpp:1562
EBAMRCellData m_cacheSource
Cached source term for regrids.
Definition CD_CdrSolver.H:813
EBAMRIFData m_domainFlux
Domain flux.
Definition CD_CdrSolver.H:828
virtual void setAmr(const RefCountedPtr< AmrMesh > &a_amr)
Set the amr object.
Definition CD_CdrSolver.cpp:1516
virtual void setSpecies(const RefCountedPtr< CdrSpecies > &a_species)
Set species.
Definition CD_CdrSolver.cpp:1651
virtual EBAMRCellData & getCellCenteredVelocity()
Get the cell-centered velocity.
Definition CD_CdrSolver.cpp:2666
virtual EBAMRIVData & getEbFlux()
Get the eb flux data holder.
Definition CD_CdrSolver.cpp:2732
virtual Real computeSourceDt(const Real a_max, const Real a_tolerance)
Compute the largest possible source time step (for explicit methods.
Definition CD_CdrSolver.cpp:2302
int m_verbosity
Solver verbosity.
Definition CD_CdrSolver.H:858
virtual void setSource(const EBAMRCellData &a_source)
Data based version of setting source terms.
Definition CD_CdrSolver.cpp:1667
virtual void setVelocity(const EBAMRCellData &a_velocity)
Set velocity from data holder.
Definition CD_CdrSolver.cpp:1729
virtual void writePlotFile()
Write plot file.
Definition CD_CdrSolver.cpp:1800
virtual void conservativeDivergenceRegular(LevelData< EBCellFAB > &a_divJ, const LevelData< EBFluxFAB > &a_flux, const int a_lvl)
Compute the conservative divergence over regular cells.
Definition CD_CdrSolver.cpp:1084
virtual void initialDataParticles()
Fill initial data from particles.
Definition CD_CdrSolver.cpp:1251
virtual void computeDiffusionFlux(EBAMRFluxData &a_flux, const EBAMRCellData &a_phi, const bool a_addDomainFlux)
Compute the face-centered diffusion flux.
Definition CD_CdrSolver.cpp:569
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)
Definition CD_CdrSolver.cpp:1016
virtual void extrapolateAdvectiveFluxToEB() noexcept
Extrapolate advective flux to EB.
Definition CD_CdrSolver.cpp:2754
virtual Vector< std::string > getPlotVariableNames() const
Get output plot names.
Definition CD_CdrSolver.cpp:145
bool m_plotSource
Output source term.
Definition CD_CdrSolver.H:918
virtual EBAMRCellData & getCellCenteredDiffusionCoefficient()
Get the cell-centered diffusion coefficient.
Definition CD_CdrSolver.cpp:2699
CdrSolver & operator=(const CdrSolver &a_other)=delete
Disallowed assignment operator.
std::string m_name
Solver name.
Definition CD_CdrSolver.H:744
virtual std::string makeBcString(const int a_dir, const Side::LoHiSide a_side) const
Shortcut for making a boundary condition string.
Definition CD_CdrSolver.cpp:2828
phase::which_phase m_phase
Phase.
Definition CD_CdrSolver.H:739
virtual void computeDivD(EBAMRCellData &a_divD, EBAMRCellData &a_phi, const bool a_conservativeOnly, const bool a_ebFlux, const bool a_domainFlux)=0
Compute div(D*grad(phi)) explicitly.
CdrDomainBC m_domainBC
Domain BCs.
Definition CD_CdrSolver.H:760
void setDomainBcType(const CdrDomainBC::DomainSide a_domainSide, const CdrDomainBC::BcType a_bcType)
Set domain bc type on domain side.
Definition CD_CdrSolver.cpp:89
Abstract class that describes the scalar quantity that is advected in CdrSolver.
Definition CD_CdrSpecies.H:31
Abstract base class for geometries.
Definition CD_ComputationalGeometry.H:37
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26
Phase names namespace.
Definition CD_MultiFluidIndexSpace.H:28
which_phase
Enumeration of supported phases.
Definition CD_MultiFluidIndexSpace.H:38