chombo-discharge
Loading...
Searching...
No Matches
CD_TimeStepper.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_TimeStepper_H
13#define CD_TimeStepper_H
14
15// Chombo includes
16#include <CH_HDF5.H>
17
18// Our includes
21#include <CD_AmrMesh.H>
22#include <CD_NamespaceHeader.H>
23
30{
31public:
36
40 virtual ~TimeStepper();
41
46 void
48
53 void
55
59 virtual void
61
65 virtual void
66 allocate() = 0;
67
71 virtual void
73
77 virtual void
79
83 virtual void
85
89 virtual void
91
95 virtual void
97
103 virtual void
105
106#ifdef CH_USE_HDF5
111 virtual void
113#endif
114
115#ifdef CH_USE_HDF5
120 virtual void
122#endif
123
124#ifdef CH_USE_HDF5
132 virtual void
133 writeCheckpointData(HDF5Handle& a_handle, const int a_lvl) const = 0;
134#endif
135
136#ifdef CH_USE_HDF5
143 virtual void
145#endif
146
152 virtual int
154
158 virtual Vector<std::string>
160
168 virtual void
170 int& a_icomp,
172 const int a_level) const = 0;
173
178 virtual void
179 prePlot();
180
185 virtual void
186 postPlot();
187
202 virtual Vector<long int>
203 getCheckpointLoads(const std::string a_realm, const int a_level) const;
204
208 virtual Real
210
217 virtual Real
218 advance(const Real a_dt) = 0;
219
226 virtual void
227 synchronizeSolverTimes(const int a_step, const Real a_time, const Real a_dt) = 0;
228
233 virtual void
235
243 virtual void
244 preRegrid(const int a_lmin, const int a_oldFinestLevel) = 0;
245
252 virtual void
253 regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) = 0;
254
259 virtual void
261
267 virtual bool
268 needToRegrid();
269
274 virtual bool
276
290 virtual void
293 const std::string a_realm,
295 const int a_lmin,
296 const int a_finestLevel);
297
298protected:
303
308
313
318
323
328};
329
330#include <CD_NamespaceFooter.H>
331
332#endif
Declaration of core class for handling AMR-related operations (with embedded boundaries)
Declaration of base class for defining geometries.
Multi-fluid index space.
Base class for advancing equations.
Definition CD_TimeStepper.H:30
virtual Vector< long int > getCheckpointLoads(const std::string a_realm, const int a_level) const
Get computational loads to be checkpointed.
Definition CD_TimeStepper.cpp:70
virtual void synchronizeSolverTimes(const int a_step, const Real a_time, const Real a_dt)=0
Synchronzie solver times and time steps.
virtual void setupSolvers()=0
Set up solvers.
virtual void prePlot()
An option for calling special functions prior to plotting data. Called by Driver in the IMMEDIATELY b...
Definition CD_TimeStepper.cpp:144
virtual void writePlotData(LevelData< EBCellFAB > &a_output, int &a_icomp, const std::string a_outputRealm, const int a_level) const =0
Write plot data to output holder.
virtual ~TimeStepper()
Default destructor (does nothing)
Definition CD_TimeStepper.cpp:20
void setComputationalGeometry(const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry)
Set the computational geometry.
Definition CD_TimeStepper.cpp:37
Real m_time
TIme.
Definition CD_TimeStepper.H:312
int m_verbosity
Class verbosity.
Definition CD_TimeStepper.H:302
virtual Real computeDt()=0
Compute a time step to be used by Driver.
virtual void preRegrid(const int a_lmin, const int a_oldFinestLevel)=0
Perform pre-regrid operations.
virtual void printStepReport()=0
Print a step report.
virtual void regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel)=0
Time stepper regrid method.
virtual Vector< std::string > getPlotVariableNames() const =0
Get plot variable names.
virtual void registerOperators()=0
Register operators to be used for the simulation.
virtual void loadBalanceBoxes(Vector< Vector< int > > &a_procs, Vector< Vector< Box > > &a_boxes, const std::string a_realm, const Vector< DisjointBoxLayout > &a_grids, const int a_lmin, const int a_finestLevel)
Load balance grid boxes for a specified realm.
Definition CD_TimeStepper.cpp:100
virtual void registerRealms()=0
Register realms to be used for the simulation.
RefCountedPtr< ComputationalGeometry > m_computationalGeometry
Computational geometry.
Definition CD_TimeStepper.H:327
TimeStepper()
Default constructor (does nothing)
Definition CD_TimeStepper.cpp:17
virtual int getNumberOfPlotVariables() const =0
Get the number of plot variables for this time stepper.
virtual void postRegrid()=0
Perform post-regrid operations.
virtual bool loadBalanceThisRealm(const std::string a_realm) const
Load balancing query for a specified realm. If this returns true for a_realm, load balancing routines...
Definition CD_TimeStepper.cpp:89
int m_timeStep
Time step.
Definition CD_TimeStepper.H:307
virtual void initialData()=0
Fill solvers with initial data.
virtual void postInitialize()=0
Post-initialize operations to be performed at end of setup stage.
Real m_dt
Previous time step size.
Definition CD_TimeStepper.H:317
virtual void allocate()=0
Allocate data for the time stepper and solvers.
virtual Real advance(const Real a_dt)=0
Advancement method. The implementation of this method should advance all equations of motion.
virtual bool needToRegrid()
Fuction which can have Driver do regrids at arbitrary points in the simulation.
Definition CD_TimeStepper.cpp:50
RefCountedPtr< AmrMesh > m_amr
AmrMesh.
Definition CD_TimeStepper.H:322
virtual void postCheckpointSetup()=0
Post-initialize operations to be performed after filling solvers with data read from checkpoint files...
virtual void postPlot()
An option for calling special functions prior to plotting data. Called by Driver in the IMMEDIATELY a...
Definition CD_TimeStepper.cpp:148
void setAmr(const RefCountedPtr< AmrMesh > &a_amr)
Set AmrMesh.
Definition CD_TimeStepper.cpp:24
virtual void parseRuntimeOptions()
Parse runtime options.
Definition CD_TimeStepper.cpp:61
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25