chombo-discharge
CD_CdrPlasmaStepper.H
Go to the documentation of this file.
1 /* chombo-discharge
2  * Copyright © 2021 SINTEF Energy Research.
3  * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4  */
5 
12 #ifndef CD_CdrPlasmaStepper_H
13 #define CD_CdrPlasmaStepper_H
14 
15 // Std includes
16 #include <functional>
17 
18 // Our includes
20 #include <CD_CdrPlasmaPhysics.H>
21 #include <CD_AmrMesh.H>
23 #include <CD_CdrLayout.H>
24 #include <CD_RtLayout.H>
25 #include <CD_FieldSolver.H>
26 #include <CD_SurfaceODESolver.H>
27 #include <CD_TimeStepper.H>
28 #include <CD_NamespaceHeader.H>
29 
30 namespace Physics {
31  namespace CdrPlasma {
32 
39  {
40  public:
45 
50  CdrPlasmaStepper(RefCountedPtr<CdrPlasmaPhysics>& a_physics);
51 
56 
60  virtual void
61  setupSolvers() override;
62 
66  virtual void
67  allocate() override;
68 
72  virtual void
73  initialData() override;
74 
78  virtual void
79  postInitialize() override;
80 
84  virtual void
85  postCheckpointSetup() override;
86 
90  virtual void
91  registerRealms() override;
92 
96  virtual void
97  registerOperators() override;
98 
102  virtual void
103  parseRuntimeOptions() override = 0;
104 
108  virtual void
109  prePlot() override;
110 
111 #ifdef CH_USE_HDF5
117  virtual void
118  writeCheckpointData(HDF5Handle& a_handle, const int a_lvl) const override;
119 #endif
120 
121 #ifdef CH_USE_HDF5
127  virtual void
128  readCheckpointData(HDF5Handle& a_handle, const int a_lvl) override;
129 #endif
130 
136  virtual int
137  getNumberOfPlotVariables() const override;
138 
142  virtual Vector<std::string>
143  getPlotVariableNames() const override;
144 
152  virtual void
153  writePlotData(LevelData<EBCellFAB>& a_output,
154  int& a_icomp,
155  const std::string a_outputRealm,
156  const int a_level) const override;
157 
162  virtual Real
163  computeDt() override = 0;
164 
170  virtual Real
171  advance(const Real a_dt) override = 0;
172 
179  virtual void
180  synchronizeSolverTimes(const int a_step, const Real a_time, const Real a_dt) override;
181 
186  virtual void
187  printStepReport() override;
188 
194  virtual void
195  preRegrid(const int a_lmin, const int a_oldFinestLevel) override;
196 
202  virtual void
203  preRegridInternals(const int a_lmin, const int a_oldFinestLevel);
204 
211  virtual void
212  regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) override;
213 
218  virtual void
219  postRegrid() override;
220 
225  virtual void
226  computeJ(EBAMRCellData& a_J) const;
227 
233  virtual void
234  computeElectricField(MFAMRCellData& a_electricFieldCell, const MFAMRCellData& a_potential) const;
235 
242  virtual void
243  computeElectricField(EBAMRCellData& a_electricFieldCell, const phase::which_phase a_phase) const;
244 
251  virtual void
253  const phase::which_phase a_phase,
254  const MFAMRCellData& a_potential) const;
255 
262  virtual void
263  computeElectricField(EBAMRFluxData& a_electricFieldFace,
264  const phase::which_phase a_phase,
265  const EBAMRCellData& a_electricFieldCell) const;
266 
273  virtual void
274  computeElectricField(EBAMRIVData& a_electricFieldEB,
275  const phase::which_phase a_phase,
276  const EBAMRCellData& a_electricFieldCell) const;
277 
283  virtual void
284  computeMaxElectricField(Real& a_maxElectricField, const phase::which_phase a_phase);
285 
290  virtual Real
291  getTime() const;
292 
297  virtual bool
298  stationaryRTE();
299 
303  virtual void
304  allocateInternals() = 0;
305 
309  virtual void
310  deallocateInternals() = 0;
311 
315  virtual void
317 
321  virtual void
322  deallocate();
323 
329  virtual void
331 
338  virtual void
339  computeSpaceChargeDensity(MFAMRCellData& a_rho, const Vector<EBAMRCellData*>& a_cdrDensities);
340 
345  virtual void
346  computeCellConductivity(EBAMRCellData& a_cellConductivity) const;
347 
354  virtual void
355  computeFaceConductivity(EBAMRFluxData& a_conductivityFace,
356  EBAMRIVData& a_conductivityEB,
357  const EBAMRCellData& a_conductivityCell) const;
358 
365  virtual void
366  setupSemiImplicitPoisson(const Real a_dt);
367 
376  virtual void
377  setupSemiImplicitPoisson(const EBAMRFluxData& a_conductivityFace,
378  const EBAMRIVData& a_conductivityEB,
379  const Real a_factor);
380 
386  virtual bool
387  solvePoisson();
388 
397  virtual bool
398  solvePoisson(MFAMRCellData& a_potential,
399  MFAMRCellData& a_rho,
400  const Vector<EBAMRCellData*> a_cdrDensities,
401  const EBAMRIVData& a_sigma);
402 
408  virtual void
409  advanceReactionNetwork(const Real a_time, const Real a_dt);
410 
422  virtual void
423  advanceReactionNetwork(Vector<EBAMRCellData*>& a_cdrSources,
424  Vector<EBAMRCellData*>& a_rteSources,
425  const Vector<EBAMRCellData*>& a_cdrDensities,
426  const Vector<EBAMRCellData*>& a_rteDensities,
427  const EBAMRCellData& a_E,
428  const Real& a_time,
429  const Real& a_dt);
430 
442  virtual void
443  advanceReactionNetwork(Vector<EBAMRCellData*>& a_cdrSources,
444  Vector<EBAMRCellData*>& a_rteSources,
445  const Vector<EBAMRCellData*>& a_cdrDensities,
446  const Vector<EBAMRCellData*>& a_cdrGradients,
447  const Vector<EBAMRCellData*>& a_rteDensities,
448  const EBAMRCellData& a_E,
449  const Real& a_time,
450  const Real& a_dt);
451 
464  virtual void
465  advanceReactionNetwork(Vector<LevelData<EBCellFAB>*>& a_cdrSources,
466  Vector<LevelData<EBCellFAB>*>& a_rteSources,
467  const Vector<LevelData<EBCellFAB>*>& a_cdrDensities,
468  const Vector<LevelData<EBCellFAB>*>& a_cdrGradients,
469  const Vector<LevelData<EBCellFAB>*>& a_rteDensities,
470  const LevelData<EBCellFAB>& a_E,
471  const Real& a_time,
472  const Real& a_dt,
473  const int a_level);
487  virtual void
488  advanceReactionNetworkRegularCells(Vector<FArrayBox*>& a_cdrSources,
489  Vector<FArrayBox*>& a_rteSources,
490  const Vector<FArrayBox*>& a_cdrDensities,
491  const Vector<FArrayBox*>& a_cdrGradients,
492  const Vector<FArrayBox*>& a_rteDensities,
493  const FArrayBox& a_E,
494  const Real& a_time,
495  const Real& a_dt,
496  const Real& a_dx,
497  const Box& a_cellBox);
498 
517  virtual void
518  advanceReactionNetworkIrreg(Vector<EBCellFAB*>& a_cdrSources,
519  Vector<EBCellFAB*>& a_rteSources,
520  const Vector<EBCellFAB*>& a_cdrDensities,
521  const Vector<EBCellFAB*>& a_cdrGradients,
522  const Vector<EBCellFAB*>& a_cdrVelocities,
523  const Vector<EBCellFAB*>& a_rteDensities,
524  const BaseIVFAB<VoFStencil>& a_interpStencils,
525  const EBCellFAB& a_E,
526  const Real& a_time,
527  const Real& a_dt,
528  const Real& a_dx,
529  const Box& a_cellBox,
530  const int a_lvl,
531  const DataIndex& a_dit);
532 
550  virtual void
551  advanceReactionNetworkIrregInterp(Vector<EBCellFAB*>& a_cdrSources,
552  Vector<EBCellFAB*>& a_rteSources,
553  const Vector<EBCellFAB*>& a_cdrDensities,
554  const Vector<EBCellFAB*>& a_cdrGradients,
555  const Vector<EBCellFAB*>& a_cdrVelocities,
556  const Vector<EBCellFAB*>& a_rteDensities,
557  const BaseIVFAB<VoFStencil>& a_interpStencils,
558  const EBCellFAB& a_E,
559  const Real& a_time,
560  const Real& a_dt,
561  const Real& a_dx,
562  const Box& a_box,
563  const int a_lvl,
564  const DataIndex& a_dit);
581  virtual void
582  advanceReactionNetworkIrregKappa(Vector<EBCellFAB*>& a_cdrSources,
583  Vector<EBCellFAB*>& a_rteSources,
584  const Vector<EBCellFAB*>& a_cdrDensities,
585  const Vector<EBCellFAB*>& a_cdrGradients,
586  const Vector<EBCellFAB*>& a_rteDensities,
587  const BaseIVFAB<VoFStencil>& a_interpStencils,
588  const EBCellFAB& a_E,
589  const Real& a_time,
590  const Real& a_dt,
591  const Real& a_dx,
592  const Box& a_box,
593  const int a_lvl,
594  const DataIndex& a_dit);
595 
615  virtual void
616  advanceReactionNetworkIrregUpwind(Vector<EBCellFAB*>& a_cdrSources,
617  Vector<EBCellFAB*>& a_rteSources,
618  const Vector<EBCellFAB*>& a_cdrDensities,
619  const Vector<EBCellFAB*>& a_cdrGradients,
620  const Vector<EBCellFAB*>& a_cdrVelocities,
621  const Vector<EBCellFAB*>& a_rteDensities,
622  const BaseIVFAB<VoFStencil>& a_interpStencils,
623  const EBCellFAB& a_E,
624  const Real& a_time,
625  const Real& a_dt,
626  const Real& a_dx,
627  const Box& a_box,
628  const int a_lvl,
629  const DataIndex& a_dit);
630 
635  virtual void
637 
643  virtual void
644  computeCdrDiffusion(const EBAMRCellData& a_electricFieldCell, const EBAMRIVData& a_electricFieldEB);
645 
653  virtual void
654  computeCdrDiffusionCell(Vector<EBAMRCellData>& a_cdrDcoCell,
655  const Vector<EBAMRCellData*>& a_cdrDensities,
656  const EBAMRCellData& a_electricFieldCell,
657  const Real& a_time);
658 
667  virtual void
668  computeCdrDiffusionCell(Vector<LevelData<EBCellFAB>*>& a_cdrDcoCell,
669  const Vector<LevelData<EBCellFAB>*>& a_cdrDensities,
670  const LevelData<EBCellFAB>& a_electricFieldCell,
671  const int a_lvl,
672  const Real& a_time);
673 
683  virtual void
684  computeCdrDiffusionCellRegular(Vector<FArrayBox*>& a_cdrDcoCell,
685  const Vector<FArrayBox*>& a_cdrDensities,
686  const FArrayBox& a_electricFieldCell,
687  const Box a_cellBox,
688  const Real a_dx,
689  const Real a_time);
690 
701  virtual void
702  computeCdrDiffusionCellIrregular(Vector<EBCellFAB*>& a_cdrDcoCell,
703  const Vector<EBCellFAB*>& a_cdrDensities,
704  const EBCellFAB& a_electricFieldCell,
705  const Real a_dx,
706  const Real& a_time,
707  const int a_lvl,
708  const DataIndex& a_dit);
709 
718  virtual void
719  computeCdrDiffusionFace(Vector<EBAMRFluxData*>& a_cdrDcoFace,
720  const Vector<EBAMRCellData*>& a_cdrDensities,
721  const EBAMRCellData& a_electricFieldCell,
722  const Real& a_time);
723 
731  virtual void
732  computeCdrDiffusionEb(Vector<EBAMRIVData*>& a_cdrDcoEB,
733  const Vector<EBAMRIVData*>& a_cdrDensitiesEB,
734  const EBAMRIVData& a_electricFieldEB,
735  const Real& a_time);
736 
745  virtual void
746  computeCdrDiffusionEb(Vector<LevelData<BaseIVFAB<Real>>*>& a_cdrDcoEB,
747  const Vector<LevelData<BaseIVFAB<Real>>*>& a_cdrDensitiesEB,
748  const LevelData<BaseIVFAB<Real>>& a_electricFieldEB,
749  const Real& a_time,
750  const int a_lvl);
751 
756  virtual void
758 
766  virtual void
767  computeCdrDriftVelocities(Vector<EBAMRCellData*>& a_velocities,
768  const Vector<EBAMRCellData*>& a_cdrDensities,
769  const EBAMRCellData& a_E,
770  const Real& a_time);
771 
781  virtual void
782  computeCdrDriftVelocities(Vector<LevelData<EBCellFAB>*>& a_cdrVelocities,
783  const Vector<LevelData<EBCellFAB>*>& a_cdrDensities,
784  const LevelData<EBCellFAB>& a_electricField,
785  const int a_lvl,
786  const Real& a_time);
787 
798  virtual void
799  computeCdrDriftVelocitiesRegular(Vector<FArrayBox*>& a_cdrVelocities,
800  const Vector<FArrayBox*>& a_cdrDensities,
801  const FArrayBox& a_electricField,
802  const Box& a_cellBox,
803  const Real& a_time,
804  const Real& a_dx);
805 
817  virtual void
818  computeCdrDriftVelocitiesIrregular(Vector<EBCellFAB*>& a_velocities,
819  const Vector<EBCellFAB*>& a_cdrDensities,
820  const EBCellFAB& a_electricField,
821  const Real& a_time,
822  const Real& a_dx,
823  const int a_lvl,
824  const DataIndex& a_dit);
825 
836  virtual void
837  computeCdrFluxes(Vector<EBAMRIVData*>& a_cdrFluxesEB,
838  const Vector<EBAMRIVData*>& a_extrapCdrFluxes,
839  const Vector<EBAMRIVData*>& a_extrapCdrDensities,
840  const Vector<EBAMRIVData*>& a_extrapCdrVelocities,
841  const Vector<EBAMRIVData*>& a_extrapCdrGradients,
842  const Vector<EBAMRIVData*>& a_extrapRteFluxes,
843  const EBAMRIVData& a_electricField,
844  const Real& a_time);
845 
857  virtual void
858  computeCdrFluxes(Vector<LevelData<BaseIVFAB<Real>>*>& a_cdrFluxesEB,
859  const Vector<LevelData<BaseIVFAB<Real>>*>& a_extrapCdrFluxes,
860  const Vector<LevelData<BaseIVFAB<Real>>*>& a_extrapCdrDensities,
861  const Vector<LevelData<BaseIVFAB<Real>>*>& a_extrapCdrVelocities,
862  const Vector<LevelData<BaseIVFAB<Real>>*>& a_extrapCdrGradients,
863  const Vector<LevelData<BaseIVFAB<Real>>*>& a_extrapRteFluxes,
864  const LevelData<BaseIVFAB<Real>>& a_electricField,
865  const Real& a_time,
866  const int a_lvl);
867 
879  virtual void
880  computeCdrDomainFluxes(Vector<EBAMRIFData*>& a_cdrFluxes,
881  const Vector<EBAMRIFData*>& a_extrapCdrFluxes,
882  const Vector<EBAMRIFData*>& a_extrapCdrDensities,
883  const Vector<EBAMRIFData*>& a_extrapCdrVelocities,
884  const Vector<EBAMRIFData*>& a_extrapCdrGradients,
885  const Vector<EBAMRIFData*>& a_extrapRteFluxes,
886  const EBAMRIFData& a_field,
887  const Real& a_time);
888 
902  virtual void
903  computeCdrDomainFluxes(Vector<LevelData<DomainFluxIFFAB>*> a_cdrFluxes,
904  const Vector<LevelData<DomainFluxIFFAB>*>& a_extrapCdrFluxes,
905  const Vector<LevelData<DomainFluxIFFAB>*>& a_extrapCdrDensities,
906  const Vector<LevelData<DomainFluxIFFAB>*>& a_extrapCdrVelocities,
907  const Vector<LevelData<DomainFluxIFFAB>*>& a_extrapCdrGradients,
908  const Vector<LevelData<DomainFluxIFFAB>*>& a_extrapRteFluxes,
909  const LevelData<DomainFluxIFFAB>& a_electricField,
910  const Real& a_time,
911  const int a_lvl);
912 
920  virtual void
921  computeExtrapolatedFluxes(Vector<EBAMRIVData*>& a_extrapCdrFluxesEB,
922  const Vector<EBAMRCellData*> a_cdrDensities,
923  const Vector<EBAMRCellData*> a_cdrVelocities,
924  const phase::which_phase a_phase);
925 
934  virtual void
935  computeExtrapolatedDomainFluxes(Vector<EBAMRIFData*>& a_cdrDomainFluxes,
936  const Vector<EBAMRCellData*> a_cdrDensities,
937  const Vector<EBAMRCellData*> a_cdrVelocities,
938  const phase::which_phase a_phase);
939 
947  virtual void
948  computeExtrapolatedVelocities(Vector<EBAMRIVData*>& a_cdrVelocitiesEB,
949  const Vector<EBAMRCellData*> a_cdrVelocitiesCell,
950  const phase::which_phase a_phase);
951 
955  virtual void
957 
964  virtual void
965  extrapolateToEb(Vector<EBAMRIVData*>& a_ebData,
966  const phase::which_phase a_phase,
967  const Vector<EBAMRCellData*>& a_cellData);
968 
975  virtual void
976  extrapolateToEb(EBAMRIVData& a_ebData, const phase::which_phase a_phase, const EBAMRCellData& a_cellData);
977 
985  virtual void
986  extrapolateToEb(LevelData<BaseIVFAB<Real>>& a_ebData,
987  const phase::which_phase a_phase,
988  const LevelData<EBCellFAB>& a_cellData,
989  const int a_lvl);
990 
997  virtual void
998  extrapolateToDomainFaces(Vector<EBAMRIFData*>& a_domainData,
999  const phase::which_phase a_phase,
1000  const Vector<EBAMRCellData*>& a_cellData);
1001 
1008  virtual void
1009  extrapolateToDomainFaces(EBAMRIFData& a_domainData,
1010  const phase::which_phase a_phase,
1011  const EBAMRCellData& a_cellData);
1012 
1020  virtual void
1021  extrapolateToDomainFaces(LevelData<DomainFluxIFFAB>& a_domainData,
1022  const phase::which_phase a_phase,
1023  const LevelData<EBCellFAB>& a_cellData,
1024  const int a_lvl);
1025 
1033  virtual void
1034  extrapolateVectorToDomainFaces(Vector<EBAMRIFData*>& a_domainData,
1035  const phase::which_phase a_phase,
1036  const Vector<EBAMRCellData*>& a_cellData);
1037 
1045  virtual void
1047  const phase::which_phase a_phase,
1048  const EBAMRCellData& a_cellData);
1049 
1057  virtual void
1058  extrapolateVelocitiesToDomainFaces(Vector<EBAMRIFData*>& a_domainVelocities,
1059  const phase::which_phase a_phase,
1060  const Vector<EBAMRCellData*>& a_cellVelocities);
1061 
1067  virtual void
1068  getCdrMax(Real& a_cdrMax, std::string& a_solverName) const;
1069 
1073  virtual void
1074  initialSigma();
1075 
1081  virtual void
1082  projectFlux(EBAMRIVData& a_projectedFlux, const EBAMRIVData& a_flux);
1083 
1089  virtual void
1090  projectFlux(LevelData<BaseIVFAB<Real>>& a_projectedFlux,
1091  const LevelData<BaseIVFAB<Real>>& a_flux,
1092  const int a_lvl);
1093 
1099  virtual void
1100  projectDomain(EBAMRIFData& a_projectedFlux, const EBAMRIFData& a_flux);
1101 
1108  virtual void
1109  regridInternals(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) = 0;
1110 
1117  virtual void
1118  regridSolvers(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel);
1119 
1124  virtual void
1125  resetDielectricCells(EBAMRIVData& a_data) const;
1126 
1130  virtual void
1131  sanityCheck() const;
1132 
1136  virtual void
1137  setupCdr();
1138 
1142  virtual void
1143  setupPoisson();
1144 
1148  virtual void
1150 
1154  virtual void
1155  setupSigma();
1156 
1161  virtual void
1163 
1167  virtual void
1168  solverDump();
1169 
1174  virtual void
1175  setVoltage(std::function<Real(const Real a_time)> a_voltage);
1176 
1182  virtual void
1183  solveRadiativeTransfer(const Real a_dt);
1184 
1189  virtual void
1190  setCdrSolvers(RefCountedPtr<CdrLayout<CdrSolver>>& a_cdr);
1191 
1196  virtual void
1197  setFieldSolver(RefCountedPtr<FieldSolver>& a_fieldSolver);
1198 
1203  virtual void
1204  setRadiativeTransferSolvers(RefCountedPtr<RtLayout<RtSolver>>& a_rte);
1205 
1211  virtual Real
1213 
1218  virtual Real
1220 
1225  virtual Real
1227 
1232  virtual Real
1234 
1238  virtual Real
1240 
1244  virtual Real
1245  getDt();
1246 
1247  protected:
1254  {
1255  Interpolated,
1256  InterpolatedStable,
1257  CellAverage,
1258  Upwind
1259  };
1260 
1264  enum class TimeCode
1265  {
1266  Advection,
1267  Diffusion,
1268  AdvectionDiffusion,
1269  Source,
1270  RelaxationTime,
1271  Restricted,
1272  Hardcap,
1273  Error,
1274  Physics
1275  };
1276 
1281  std::string m_realm;
1282 
1286  std::string m_className;
1287 
1291  phase::which_phase m_phase;
1292 
1297 
1301  RefCountedPtr<MultiFluidIndexSpace> m_multifluidIndexSpace;
1302 
1306  RefCountedPtr<CdrPlasmaPhysics> m_physics;
1307 
1311  RefCountedPtr<CdrLayout<CdrSolver>> m_cdr;
1312 
1316  RefCountedPtr<RtLayout<RtSolver>> m_rte;
1317 
1321  RefCountedPtr<FieldSolver> m_fieldSolver;
1322 
1326  RefCountedPtr<SurfaceODESolver<1>> m_sigma;
1327 
1332 
1337 
1341  std::function<Real(const Real a_time)> m_voltage;
1342 
1346  Real m_minDt;
1347 
1351  Real m_maxDt;
1352 
1356  Real m_cfl;
1357 
1362 
1366  Real m_time;
1367 
1371  Real m_dt;
1372 
1376  Real m_dtCFL;
1377 
1382 
1387 
1392 
1397 
1402 
1406  virtual void
1407  parseVerbosity();
1408 
1412  virtual void
1414 
1418  virtual void
1419  parseCFL();
1420 
1424  virtual void
1426 
1430  virtual void
1431  parseMinDt();
1432 
1436  virtual void
1437  parseMaxDt();
1438 
1442  virtual void
1443  parseFastPoisson();
1444 
1448  virtual void
1450 
1455  virtual void
1457 
1465  virtual void
1466  writeJ(LevelData<EBCellFAB>& a_output, int& a_comp, const std::string a_outputRealm, const int a_level) const;
1467 
1471  virtual void
1472  computePhysicsPlotVars(EBAMRCellData& a_physicsPlotVars) const noexcept;
1473 
1484  virtual void
1485  writeData(LevelData<EBCellFAB>& a_output,
1486  int& a_comp,
1487  const EBAMRCellData& a_data,
1488  const std::string a_outputRealm,
1489  const int a_level,
1490  const bool a_interpToCentroids,
1491  const bool a_interpGhost) const noexcept;
1492  };
1493  } // namespace CdrPlasma
1494 } // namespace Physics
1495 
1496 #include <CD_NamespaceFooter.H>
1497 
1498 #endif
Declaration of core class for handling AMR-related operations (with embedded boundaries)
Declaration of a class that holds a set of CdrSolvers (to cut down on typing).
Declaration of basic physics coupling functions for Physics/CdrPlasma.
Declaration of base class for defining geometries.
Contains declaration of a base electrostatics solver class.
Multi-fluid index space.
Declaration of a class that holds a set of RtSolvers.
Declaration of a cut-cell ODE solver.
Declaration of main (abstract) time stepper class.
Class for holding a set of CdrSolvers.
Definition: CD_CdrLayout.H:37
Abstract class for evolving the minimal plasma model in time.
Definition: CD_CdrPlasmaStepper.H:39
virtual Real getTime() const
Return time.
Definition: CD_CdrPlasmaStepper.cpp:4510
virtual void setupSigma()
Set up the surface charge solver.
Definition: CD_CdrPlasmaStepper.cpp:4103
virtual void computeFaceConductivity(EBAMRFluxData &a_conductivityFace, EBAMRIVData &a_conductivityEB, const EBAMRCellData &a_conductivityCell) const
Compute the face-centered conductivity from a cell-centered conductivity.
Definition: CD_CdrPlasmaStepper.cpp:222
virtual void setFieldSolver(RefCountedPtr< FieldSolver > &a_fieldSolver)
Set the field solver.
Definition: CD_CdrPlasmaStepper.cpp:3482
virtual void printStepReport() override
Print a step report.
Definition: CD_CdrPlasmaStepper.cpp:4998
virtual void extrapolateToEb(Vector< EBAMRIVData * > &a_ebData, const phase::which_phase a_phase, const Vector< EBAMRCellData * > &a_cellData)
Extrapolated cell-centered data to the EB. This is the AMR version for all species.
Definition: CD_CdrPlasmaStepper.cpp:3265
virtual void extrapolateToDomainFaces(Vector< EBAMRIFData * > &a_domainData, const phase::which_phase a_phase, const Vector< EBAMRCellData * > &a_cellData)
Extrapolate cell-centered data to domain faces. This is the AMR version that does all species.
Definition: CD_CdrPlasmaStepper.cpp:3320
SourceTermComputation m_whichSourceTermComputation
Which source term computation.
Definition: CD_CdrPlasmaStepper.H:1296
virtual void projectFlux(EBAMRIVData &a_projectedFlux, const EBAMRIVData &a_flux)
Project a flux onto the EB normal. This is the AMR version.
Definition: CD_CdrPlasmaStepper.cpp:3608
Real m_dtCFL
Computed CFL time step.
Definition: CD_CdrPlasmaStepper.H:1376
virtual void computePhysicsPlotVars(EBAMRCellData &a_physicsPlotVars) const noexcept
Calculate the user-supplied plot variables.
Definition: CD_CdrPlasmaStepper.cpp:4798
virtual void setSolverVerbosity()
Set solver verbosity.
Definition: CD_CdrPlasmaStepper.cpp:4040
virtual void computeCdrFluxes(Vector< EBAMRIVData * > &a_cdrFluxesEB, const Vector< EBAMRIVData * > &a_extrapCdrFluxes, const Vector< EBAMRIVData * > &a_extrapCdrDensities, const Vector< EBAMRIVData * > &a_extrapCdrVelocities, const Vector< EBAMRIVData * > &a_extrapCdrGradients, const Vector< EBAMRIVData * > &a_extrapRteFluxes, const EBAMRIVData &a_electricField, const Real &a_time)
Compute CDR fluxes on the EB. This is the AMR version – it will call the level version.
Definition: CD_CdrPlasmaStepper.cpp:2337
int m_solverVerbosity
Verbosity for solvers.
Definition: CD_CdrPlasmaStepper.H:1386
virtual void computeJ(EBAMRCellData &a_J) const
Compute the current density.
Definition: CD_CdrPlasmaStepper.cpp:3021
std::string m_className
Time stepper class name.
Definition: CD_CdrPlasmaStepper.H:1286
Real m_relaxTime
Fudge factor for relaxation time.
Definition: CD_CdrPlasmaStepper.H:1361
virtual void parseFastPoisson()
Parse the "fast poisson" method, i.e. how often we solve the Poisson equation.
Definition: CD_CdrPlasmaStepper.cpp:3960
virtual Real computeOhmicInductionCurrent()
Compute induced current in external circuit due to ohmic conduction.
Definition: CD_CdrPlasmaStepper.cpp:4430
RefCountedPtr< SurfaceODESolver< 1 > > m_sigma
Surface charge solver.
Definition: CD_CdrPlasmaStepper.H:1326
virtual void advanceReactionNetworkRegularCells(Vector< FArrayBox * > &a_cdrSources, Vector< FArrayBox * > &a_rteSources, const Vector< FArrayBox * > &a_cdrDensities, const Vector< FArrayBox * > &a_cdrGradients, const Vector< FArrayBox * > &a_rteDensities, const FArrayBox &a_E, const Real &a_time, const Real &a_dt, const Real &a_dx, const Box &a_cellBox)
Compute reaction network sources. This is the regular version which does not do the cut-cells.
Definition: CD_CdrPlasmaStepper.cpp:765
virtual void allocate() override
Allocate data for the time stepper and solvers.
Definition: CD_CdrPlasmaStepper.cpp:4026
RefCountedPtr< CdrLayout< CdrSolver > > m_cdr
CDR solvers.
Definition: CD_CdrPlasmaStepper.H:1311
virtual void parseMinDt()
Parse the minimum allowed time step.
Definition: CD_CdrPlasmaStepper.cpp:3912
virtual void regridInternals(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel)=0
Regrid internal storage. This MUST be overwritten by implementations.
virtual void parseRuntimeOptions() override=0
Parse runtime options. Subclasses must implement this.
RefCountedPtr< MultiFluidIndexSpace > m_multifluidIndexSpace
Index space.
Definition: CD_CdrPlasmaStepper.H:1301
virtual void getCdrMax(Real &a_cdrMax, std::string &a_solverName) const
Get maximum density in the CDR species. This will fetch both the value and the solver name.
Definition: CD_CdrPlasmaStepper.cpp:3442
virtual void advanceReactionNetworkIrreg(Vector< EBCellFAB * > &a_cdrSources, Vector< EBCellFAB * > &a_rteSources, const Vector< EBCellFAB * > &a_cdrDensities, const Vector< EBCellFAB * > &a_cdrGradients, const Vector< EBCellFAB * > &a_cdrVelocities, const Vector< EBCellFAB * > &a_rteDensities, const BaseIVFAB< VoFStencil > &a_interpStencils, const EBCellFAB &a_E, const Real &a_time, const Real &a_dt, const Real &a_dx, const Box &a_cellBox, const int a_lvl, const DataIndex &a_dit)
Compute reaction network sources. This is the irregular version which only does the cut-cells.
Definition: CD_CdrPlasmaStepper.cpp:894
virtual void deallocate()
Deallocation function. This will deallocate internal storage in the subclasses as well as the solvers...
Definition: CD_CdrPlasmaStepper.cpp:4522
virtual void extrapolateVelocitiesToDomainFaces(Vector< EBAMRIFData * > &a_domainVelocities, const phase::which_phase a_phase, const Vector< EBAMRCellData * > &a_cellVelocities)
Extrapolate velocities data to domain faces. This is the AMR version that does all species.
Definition: CD_CdrPlasmaStepper.cpp:2964
virtual void sanityCheck() const
Do a sanity check. Only works when DEBUG=TRUE.
Definition: CD_CdrPlasmaStepper.cpp:3832
virtual Real advance(const Real a_dt) override=0
Advance method, advances equations.
virtual void parseVerbosity()
Parse class verbosity.
Definition: CD_CdrPlasmaStepper.cpp:3856
TimeCode m_timeCode
Time code for step restriction.
Definition: CD_CdrPlasmaStepper.H:1381
virtual Real computeRelaxationTime()
Compute the relaxation time as dt = eps0/conductivity.
Definition: CD_CdrPlasmaStepper.cpp:4471
virtual void deallocateInternals()=0
Deallocate internals. Must be implemented by subclasses.
Definition: CD_CdrPlasmaStepper.cpp:410
virtual void initialSigma()
Initialize the surface charge.
Definition: CD_CdrPlasmaStepper.cpp:3549
virtual void computeCdrDriftVelocitiesRegular(Vector< FArrayBox * > &a_cdrVelocities, const Vector< FArrayBox * > &a_cdrDensities, const FArrayBox &a_electricField, const Box &a_cellBox, const Real &a_time, const Real &a_dx)
Compute the cell-centered CDR velocities.
Definition: CD_CdrPlasmaStepper.cpp:2167
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_CdrPlasmaStepper.cpp:4695
virtual void setupCdr()
Setup the CDR solvers.
Definition: CD_CdrPlasmaStepper.cpp:4054
virtual Real computeDomainCurrent()
Compute the ohmic current through the domain faces.
Definition: CD_CdrPlasmaStepper.cpp:4345
virtual bool solvePoisson()
Solve the electrostatic Poisson equation.
Definition: CD_CdrPlasmaStepper.cpp:347
virtual void parseRelaxationTime()
Parse the relaxation time restriction.
Definition: CD_CdrPlasmaStepper.cpp:3896
Real m_dt
Previous time step size.
Definition: CD_CdrPlasmaStepper.H:1371
virtual Real computeElectrodeCurrent()
Compute the ohmic current on electrodes.
Definition: CD_CdrPlasmaStepper.cpp:4170
~CdrPlasmaStepper()
Destructor.
Definition: CD_CdrPlasmaStepper.cpp:94
virtual void advanceReactionNetworkIrregKappa(Vector< EBCellFAB * > &a_cdrSources, Vector< EBCellFAB * > &a_rteSources, const Vector< EBCellFAB * > &a_cdrDensities, const Vector< EBCellFAB * > &a_cdrGradients, const Vector< EBCellFAB * > &a_rteDensities, const BaseIVFAB< VoFStencil > &a_interpStencils, const EBCellFAB &a_E, const Real &a_time, const Real &a_dt, const Real &a_dx, const Box &a_box, const int a_lvl, const DataIndex &a_dit)
Compute reaction network sources. This version assumes that some of the inputs are on the centroid.
Definition: CD_CdrPlasmaStepper.cpp:1143
virtual Real getDt()
Get dt.
Definition: CD_CdrPlasmaStepper.cpp:4516
virtual void computeExtrapolatedFluxes(Vector< EBAMRIVData * > &a_extrapCdrFluxesEB, const Vector< EBAMRCellData * > a_cdrDensities, const Vector< EBAMRCellData * > a_cdrVelocities, const phase::which_phase a_phase)
Extrapolate cell-centered fluxes to the EB centroid.
Definition: CD_CdrPlasmaStepper.cpp:2760
CdrPlasmaStepper()
Empty constructor.
Definition: CD_CdrPlasmaStepper.cpp:29
virtual void solverDump()
All solvers writes plot files. These are not the same as the plot files written by Driver.
Definition: CD_CdrPlasmaStepper.cpp:4120
virtual void parseFastRadiativeTransfer()
Parse the "fast rte" method, i.e. how often we solve the Poisson equation.
Definition: CD_CdrPlasmaStepper.cpp:3944
virtual void computeCdrDiffusionCell(Vector< EBAMRCellData > &a_cdrDcoCell, const Vector< EBAMRCellData * > &a_cdrDensities, const EBAMRCellData &a_electricFieldCell, const Real &a_time)
Compute CDR diffusion coefficients on cell centers. This will call the level version.
Definition: CD_CdrPlasmaStepper.cpp:1513
Real m_maxDt
Maximum allowed time step.
Definition: CD_CdrPlasmaStepper.H:1351
virtual Real computeDt() override=0
Compute the time step.
virtual void advanceReactionNetwork(const Real a_time, const Real a_dt)
Advance the reaction network. This will compute the electric field (on the appropriate phase) and cal...
Definition: CD_CdrPlasmaStepper.cpp:421
EBAMRCellData m_physicsPlotVars
Storage for physics-observables.
Definition: CD_CdrPlasmaStepper.H:1336
int m_upwindFactor
Upwind factor.
Definition: CD_CdrPlasmaStepper.H:1401
virtual void writeJ(LevelData< EBCellFAB > &a_output, int &a_comp, const std::string a_outputRealm, const int a_level) const
Compute and put the current density in output data holder.
Definition: CD_CdrPlasmaStepper.cpp:4757
virtual void setupPoisson()
Setup the field solver.
Definition: CD_CdrPlasmaStepper.cpp:4070
virtual void computeCdrDiffusionCellRegular(Vector< FArrayBox * > &a_cdrDcoCell, const Vector< FArrayBox * > &a_cdrDensities, const FArrayBox &a_electricFieldCell, const Box a_cellBox, const Real a_dx, const Real a_time)
Compute diffusion coefficients on cell centers. This does all the regular cells.
Definition: CD_CdrPlasmaStepper.cpp:1637
int m_fastRTE
Fast RTE solver.
Definition: CD_CdrPlasmaStepper.H:1391
EBAMRCellData m_currentDensity
Storage for the current.
Definition: CD_CdrPlasmaStepper.H:1331
virtual void parseSourceComputation()
Parse how we compute the source terms.
Definition: CD_CdrPlasmaStepper.cpp:3976
virtual void parseMaxDt()
Parse the maximum allowed time step.
Definition: CD_CdrPlasmaStepper.cpp:3928
virtual void initialData() override
Fill all solvers with initial data.
Definition: CD_CdrPlasmaStepper.cpp:3526
std::string m_realm
Realm where the time stepper is registered.
Definition: CD_CdrPlasmaStepper.H:1281
virtual void computeCdrDiffusionFace(Vector< EBAMRFluxData * > &a_cdrDcoFace, const Vector< EBAMRCellData * > &a_cdrDensities, const EBAMRCellData &a_electricFieldCell, const Real &a_time)
Compute diffusion coefficients on face centers.
Definition: CD_CdrPlasmaStepper.cpp:1813
Real m_cfl
CFL number.
Definition: CD_CdrPlasmaStepper.H:1356
virtual void computeElectricField(MFAMRCellData &a_electricFieldCell, const MFAMRCellData &a_potential) const
Compute the cell-centered electric field on both phases.
Definition: CD_CdrPlasmaStepper.cpp:3095
virtual void computeCdrDiffusion()
Compute diffusion things using whatever is available in the solvers.
Definition: CD_CdrPlasmaStepper.cpp:1428
virtual void preRegrid(const int a_lmin, const int a_oldFinestLevel) override
Pre-regrid function – this is the one called by Driver.
Definition: CD_CdrPlasmaStepper.cpp:2994
virtual void computeExtrapolatedVelocities(Vector< EBAMRIVData * > &a_cdrVelocitiesEB, const Vector< EBAMRCellData * > a_cdrVelocitiesCell, const phase::which_phase a_phase)
Extrapolated cell-centered velocities to the EB.
Definition: CD_CdrPlasmaStepper.cpp:2882
virtual void postInitialize() override
Post-initialize operations to be performed after filling solvers with initialData.
Definition: CD_CdrPlasmaStepper.cpp:49
RefCountedPtr< FieldSolver > m_fieldSolver
Poisson solver.
Definition: CD_CdrPlasmaStepper.H:1321
virtual void parseSolverVerbosity()
Parse solver verbosities.
Definition: CD_CdrPlasmaStepper.cpp:3868
virtual Real computeDielectricCurrent()
Compute the ohmic current on dielectrics.
Definition: CD_CdrPlasmaStepper.cpp:4258
virtual void computeCdrDomainFluxes(Vector< EBAMRIFData * > &a_cdrFluxes, const Vector< EBAMRIFData * > &a_extrapCdrFluxes, const Vector< EBAMRIFData * > &a_extrapCdrDensities, const Vector< EBAMRIFData * > &a_extrapCdrVelocities, const Vector< EBAMRIFData * > &a_extrapCdrGradients, const Vector< EBAMRIFData * > &a_extrapRteFluxes, const EBAMRIFData &a_field, const Real &a_time)
Compute CDR fluxes on domain faces for usage in boundary conditions. This is the AMR version.
Definition: CD_CdrPlasmaStepper.cpp:2570
virtual void computeExtrapolatedDomainFluxes(Vector< EBAMRIFData * > &a_cdrDomainFluxes, const Vector< EBAMRCellData * > a_cdrDensities, const Vector< EBAMRCellData * > a_cdrVelocities, const phase::which_phase a_phase)
Extrapolate drift fluxes to domain faces.
Definition: CD_CdrPlasmaStepper.cpp:2830
RefCountedPtr< CdrPlasmaPhysics > m_physics
Plasma kinetics.
Definition: CD_CdrPlasmaStepper.H:1306
virtual void setupSolvers() override
Instantiate solvers.
Definition: CD_CdrPlasmaStepper.cpp:3504
virtual bool stationaryRTE()
Check if RTE solvers are stationary.
Definition: CD_CdrPlasmaStepper.cpp:103
virtual void resetDielectricCells(EBAMRIVData &a_data) const
Set data defined over dielectric cells to zero.
Definition: CD_CdrPlasmaStepper.cpp:3785
virtual void computeCdrDiffusionCellIrregular(Vector< EBCellFAB * > &a_cdrDcoCell, const Vector< EBCellFAB * > &a_cdrDensities, const EBCellFAB &a_electricFieldCell, const Real a_dx, const Real &a_time, const int a_lvl, const DataIndex &a_dit)
Compute diffusion coefficients on cell centers. This version does the irregular cells.
Definition: CD_CdrPlasmaStepper.cpp:1714
Real m_minDt
Minimum allowed time step.
Definition: CD_CdrPlasmaStepper.H:1346
virtual void projectDomain(EBAMRIFData &a_projectedFlux, const EBAMRIFData &a_flux)
Project flux onto domain edges/faces.
Definition: CD_CdrPlasmaStepper.cpp:3671
RefCountedPtr< RtLayout< RtSolver > > m_rte
Radiative transfer solvers.
Definition: CD_CdrPlasmaStepper.H:1316
virtual void setVoltage(std::function< Real(const Real a_time)> a_voltage)
Set voltage curve.
Definition: CD_CdrPlasmaStepper.cpp:3845
SourceTermComputation
Enum for switching between source term computations. 'Interpolated' interpolates the cell-centered da...
Definition: CD_CdrPlasmaStepper.H:1254
virtual void postRegrid() override
Perform post-regrid operations.
Definition: CD_CdrPlasmaStepper.cpp:71
virtual void setupRadiativeTransfer()
Setup the RTE solvers.
Definition: CD_CdrPlasmaStepper.cpp:4086
phase::which_phase m_phase
Plasma phase.
Definition: CD_CdrPlasmaStepper.H:1291
virtual void computeSpaceChargeDensity()
Compute the centroid-centered space charge density by using the data inside the CDR solvers.
Definition: CD_CdrPlasmaStepper.cpp:114
virtual void synchronizeSolverTimes(const int a_step, const Real a_time, const Real a_dt) override
Synchronize solver times.
Definition: CD_CdrPlasmaStepper.cpp:4152
virtual void registerOperators() override
Register operators to be used for the simulation.
Definition: CD_CdrPlasmaStepper.cpp:80
virtual void advanceReactionNetworkIrregInterp(Vector< EBCellFAB * > &a_cdrSources, Vector< EBCellFAB * > &a_rteSources, const Vector< EBCellFAB * > &a_cdrDensities, const Vector< EBCellFAB * > &a_cdrGradients, const Vector< EBCellFAB * > &a_cdrVelocities, const Vector< EBCellFAB * > &a_rteDensities, const BaseIVFAB< VoFStencil > &a_interpStencils, const EBCellFAB &a_E, const Real &a_time, const Real &a_dt, const Real &a_dx, const Box &a_box, const int a_lvl, const DataIndex &a_dit)
Compute reaction network sources. This version interpolates everything to the centroid and runs with ...
Definition: CD_CdrPlasmaStepper.cpp:997
std::function< Real(const Real a_time)> m_voltage
Set the potential.
Definition: CD_CdrPlasmaStepper.H:1341
virtual void postCheckpointSetup() override
Post-initialize operations to be performed after filling solvers with data read from checkpoint files...
Definition: CD_CdrPlasmaStepper.cpp:4970
virtual void registerRealms() override
Register realms to be used for the simulation.
Definition: CD_CdrPlasmaStepper.cpp:58
virtual void extrapolateVectorToDomainFaces(Vector< EBAMRIFData * > &a_domainData, const phase::which_phase a_phase, const Vector< EBAMRCellData * > &a_cellData)
Extrapolate vector data to domain faces. This is the AMR version that does all species.
Definition: CD_CdrPlasmaStepper.cpp:2921
int m_fastPoisson
Fast RTE solver.
Definition: CD_CdrPlasmaStepper.H:1396
virtual void computeCdrDriftVelocities()
Compute the CDR drift velocities.
Definition: CD_CdrPlasmaStepper.cpp:2018
virtual void computeCdrDriftVelocitiesIrregular(Vector< EBCellFAB * > &a_velocities, const Vector< EBCellFAB * > &a_cdrDensities, const EBCellFAB &a_electricField, const Real &a_time, const Real &a_dx, const int a_lvl, const DataIndex &a_dit)
Compute the cell-centered CDR velocities.
Definition: CD_CdrPlasmaStepper.cpp:2234
virtual void parseOptions()=0
Parse TimeStepper class options. Must be implemented by subclasses.
virtual void prePlot() override
Compute some thing that go into plot files.
Definition: CD_CdrPlasmaStepper.cpp:4788
virtual void setRadiativeTransferSolvers(RefCountedPtr< RtLayout< RtSolver >> &a_rte)
Set the RTE solvers.
Definition: CD_CdrPlasmaStepper.cpp:3493
virtual void computeCdrDiffusionEb(Vector< EBAMRIVData * > &a_cdrDcoEB, const Vector< EBAMRIVData * > &a_cdrDensitiesEB, const EBAMRIVData &a_electricFieldEB, const Real &a_time)
Compute diffusion coefficients on the EB. This is the AMR version – it will call the level version.
Definition: CD_CdrPlasmaStepper.cpp:1887
virtual void allocateInternals()=0
Allocate internal storage. Must be implemented by subclasses.
Definition: CD_CdrPlasmaStepper.cpp:387
virtual void computeMaxElectricField(Real &a_maxElectricField, const phase::which_phase a_phase)
Compute the maximum of the electric field.
Definition: CD_CdrPlasmaStepper.cpp:3227
virtual void regridSolvers(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel)
Regrid all of our solvers.
Definition: CD_CdrPlasmaStepper.cpp:3771
virtual void deallocateSolverInternals()
Deallocate internal solver storages.
Definition: CD_CdrPlasmaStepper.cpp:3251
virtual void computeCellConductivity(EBAMRCellData &a_cellConductivity) const
Compute the cell-centered conductivity.
Definition: CD_CdrPlasmaStepper.cpp:164
Real m_time
TIme.
Definition: CD_CdrPlasmaStepper.H:1366
virtual void solveRadiativeTransfer(const Real a_dt)
Solve the radiative transfer problem.
Definition: CD_CdrPlasmaStepper.cpp:4133
virtual int getNumberOfPlotVariables() const override
Get the number of plot variables for this time stepper.
Definition: CD_CdrPlasmaStepper.cpp:4586
virtual void setCdrSolvers(RefCountedPtr< CdrLayout< CdrSolver >> &a_cdr)
Set the CDR layout.
Definition: CD_CdrPlasmaStepper.cpp:3472
virtual void preRegridInternals(const int a_lmin, const int a_oldFinestLevel)
Do a preRegrid operation for internal storage (if needed).
Definition: CD_CdrPlasmaStepper.cpp:3012
TimeCode
An enum for encapsulating how time steps were restricted.
Definition: CD_CdrPlasmaStepper.H:1265
virtual void writePlotData(LevelData< EBCellFAB > &a_output, int &a_icomp, const std::string a_outputRealm, const int a_level) const override
Write plot data to output holder.
Definition: CD_CdrPlasmaStepper.cpp:4656
virtual void setupSemiImplicitPoisson(const Real a_dt)
Set up a semi-implicit Poisson solver.
Definition: CD_CdrPlasmaStepper.cpp:274
virtual Vector< std::string > getPlotVariableNames() const override
Get plot variable names.
Definition: CD_CdrPlasmaStepper.cpp:4621
virtual void regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) override
Regrid method.
Definition: CD_CdrPlasmaStepper.cpp:3730
virtual void parseCFL()
Parse the CFL number.
Definition: CD_CdrPlasmaStepper.cpp:3880
virtual void advanceReactionNetworkIrregUpwind(Vector< EBCellFAB * > &a_cdrSources, Vector< EBCellFAB * > &a_rteSources, const Vector< EBCellFAB * > &a_cdrDensities, const Vector< EBCellFAB * > &a_cdrGradients, const Vector< EBCellFAB * > &a_cdrVelocities, const Vector< EBCellFAB * > &a_rteDensities, const BaseIVFAB< VoFStencil > &a_interpStencils, const EBCellFAB &a_E, const Real &a_time, const Real &a_dt, const Real &a_dx, const Box &a_box, const int a_lvl, const DataIndex &a_dit)
Compute reaction network sources.
Definition: CD_CdrPlasmaStepper.cpp:1268
Class for holding a set of RtSolvers. T must derive from RtSolver.
Definition: CD_RtLayout.H:27
Base class for advancing equations.
Definition: CD_TimeStepper.H:30
Name containing various physics models for running chombo-discharge code.
Definition: CD_AdvectionDiffusion.H:15