chombo-discharge
Loading...
Searching...
No Matches
CD_SurfaceODESolver.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_SURFACEODESOLVER_H
14#define CD_SURFACEODESOLVER_H
15
16// Std includes
17#include <array>
18
19// Our includes
20#include <CD_AmrMesh.H>
21#include <CD_NamespaceHeader.H>
22
27template <int N = 1>
29{
30public:
31 static_assert(N > 0, "SurfaceODESolver<N> must have N > 0");
32
38
45
50
55
59 virtual ~SurfaceODESolver();
60
65 operator=(const SurfaceODESolver&) = delete;
66
71 operator=(const SurfaceODESolver&&) = delete;
72
76 virtual void
78
82 virtual void
84
89 virtual void
91
96 virtual void
98
103 virtual void
104 setName(const std::string& a_name) noexcept;
105
110 std::string
112
117 virtual void
118 setPhase(const phase::which_phase a_phase) noexcept;
119
124 virtual phase::which_phase
126
131 virtual void
133
138 virtual int
140
148 virtual void
150
159
169
174 virtual int
176
183
190
195 virtual void
197
202 virtual void
204
210 virtual void
212
219
226
231 virtual void
233
238 virtual void
240
246 virtual void
248
254 getRHS();
255
262
267 virtual void
269
273 virtual void
275
279 virtual void
281
288 virtual void
290
298 virtual void
300
307 virtual void
309
317 virtual void
319
326 virtual void
328
336 virtual void
338
339#ifdef CH_USE_HDF5
345 virtual void
346 writeCheckpointLevel(HDF5Handle& a_handle, const int a_level) const noexcept;
347#endif
348
349#ifdef CH_USE_HDF5
355 virtual void
356 readCheckpointLevel(HDF5Handle& a_handle, const int a_level) noexcept;
357#endif
358
363 virtual void
365
370 virtual int
372
377 virtual Vector<std::string>
379
389 virtual void
391 int& a_comp,
392 const std::string& a_outputRealm,
394
399 std::string m_realm;
400
405
409 std::string m_name;
410
414 phase::which_phase m_phase;
415
420
425
430
435
440
446
451
456
461
466
471
476
481
486
490 void
492
496 void
498
502 void
504
508 void
510};
511
512#include <CD_NamespaceFooter.H>
513
515
516#endif
Declaration of core class for handling AMR-related operations (with embedded boundaries)
Implementation of CD_SurfaceODESolver.H.
Class for handling spatial operations.
Definition CD_AmrMesh.H:43
Two-fluid index space.
Definition CD_MultiFluidIndexSpace.H:49
Surface ODE solver.
Definition CD_SurfaceODESolver.H:29
Real m_dt
Time increment.
Definition CD_SurfaceODESolver.H:485
virtual int getVerbosity() const noexcept
Get verbosity.
Definition CD_SurfaceODESolverImplem.H:248
virtual EBAMRIVData & getRHS()
Get internal state.
Definition CD_SurfaceODESolverImplem.H:469
void parseVerbosity() noexcept
Parse verbosity.
Definition CD_SurfaceODESolverImplem.H:91
virtual EBAMRIVData & getPhi() noexcept
Get internal state.
Definition CD_SurfaceODESolverImplem.H:407
virtual void setRHS(const Real a_rhs)
Convenience function for setting m_rhs.
Definition CD_SurfaceODESolverImplem.H:431
virtual phase::which_phase getPhase() const noexcept
Get phase.
Definition CD_SurfaceODESolverImplem.H:224
std::string m_name
Solver name.
Definition CD_SurfaceODESolver.H:409
virtual void resetElectrodes(const Real a_value) noexcept
Reset m_phi on electrode cells.
Definition CD_SurfaceODESolverImplem.H:623
virtual int getStep() const noexcept
Get current time step.
Definition CD_SurfaceODESolverImplem.H:333
virtual void parseOptions() noexcept
Parse solver options.
Definition CD_SurfaceODESolverImplem.H:63
void parsePlotVariables() noexcept
Parse plot variables.
Definition CD_SurfaceODESolverImplem.H:131
virtual void setPhase(const phase::which_phase a_phase) noexcept
Set phase.
Definition CD_SurfaceODESolverImplem.H:212
SurfaceODESolver(const SurfaceODESolver &)=delete
Disallowed copy constructor.
EBAMRIVData m_cache
Cached state used during regridding.
Definition CD_SurfaceODESolver.H:460
virtual void setAmr(const RefCountedPtr< AmrMesh > &a_amrMesh) noexcept
Set the amr object.
Definition CD_SurfaceODESolverImplem.H:162
SurfaceODESolver()
Default constructor. Must subsequently set AmrMesh.
Definition CD_SurfaceODESolverImplem.H:26
void parseRegrid() noexcept
Parse regrid method.
Definition CD_SurfaceODESolverImplem.H:105
virtual void allocate() noexcept
Allocate internal storage for this class.
Definition CD_SurfaceODESolverImplem.H:493
virtual Real getDt() const noexcept
Get last time step.
Definition CD_SurfaceODESolverImplem.H:357
std::string getRealm() const noexcept
Get the realm where the solver is registered.
Definition CD_SurfaceODESolverImplem.H:200
int m_step
Time step.
Definition CD_SurfaceODESolver.H:475
Real m_time
Current time.
Definition CD_SurfaceODESolver.H:480
bool m_plotRHS
Plot rhs or not.
Definition CD_SurfaceODESolver.H:429
RefCountedPtr< AmrMesh > m_amr
AMR; needed for grid stuff.
Definition CD_SurfaceODESolver.H:439
virtual void preRegrid(const int a_lbase, const int a_oldFinestLevel) noexcept
Pre-regrid function.
Definition CD_SurfaceODESolverImplem.H:586
std::string m_className
Class name.
Definition CD_SurfaceODESolver.H:404
SurfaceODESolver & operator=(const SurfaceODESolver &)=delete
Disallowed assignment operator.
SurfaceODESolver & operator=(const SurfaceODESolver &&)=delete
Disallowed assignment operator.
bool m_plotPhi
Plot phi or not.
Definition CD_SurfaceODESolver.H:424
virtual ~SurfaceODESolver()
Destructor (does nothing).
Definition CD_SurfaceODESolverImplem.H:53
virtual void setRealm(const std::string &a_realm) noexcept
Set the realm.
Definition CD_SurfaceODESolverImplem.H:176
virtual Real getTime() const noexcept
Get current time.
Definition CD_SurfaceODESolverImplem.H:345
virtual void setVerbosity(const int a_verbosity) noexcept
Set verbosity.
Definition CD_SurfaceODESolverImplem.H:236
virtual void setPhi(const Real a_phi)
Convenience function for setting m_phi.
Definition CD_SurfaceODESolverImplem.H:369
virtual void writePlotData(LevelData< EBCellFAB > &a_output, int &a_comp, const std::string &a_outputRealm, const int a_level) const noexcept
Write output data to a_output.
Definition CD_SurfaceODESolverImplem.H:820
EBAMRIVData m_phi
State. Stored on cut-cells.
Definition CD_SurfaceODESolver.H:455
bool m_conservativeRegrid
Conservative regrid or not.
Definition CD_SurfaceODESolver.H:419
std::string m_realm
Realm where this solver is registered.
Definition CD_SurfaceODESolver.H:399
RefCountedPtr< MultiFluidIndexSpace > m_mfis
Index spaces.
Definition CD_SurfaceODESolver.H:434
virtual void setName(const std::string &a_name) noexcept
Set the solver name.
Definition CD_SurfaceODESolverImplem.H:188
virtual Real computeMass(const int a_comp=0) const noexcept
Compute the total mass for component a_comp in m_phi.
Definition CD_SurfaceODESolverImplem.H:274
virtual Vector< std::string > getPlotVariableNames() const noexcept
Get output plot names.
Definition CD_SurfaceODESolverImplem.H:893
Vector< RefCountedPtr< LayoutData< VoFIterator > > > m_dielectricVoFs
Cut-cells that are also dielectric cells. This does not include ghost cells.
Definition CD_SurfaceODESolver.H:450
virtual void regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) noexcept
Regrid function.
Definition CD_SurfaceODESolverImplem.H:604
virtual void registerOperators() noexcept
Register operators.
Definition CD_SurfaceODESolverImplem.H:572
EBAMRIVData m_rhs
Right-hand side.
Definition CD_SurfaceODESolver.H:465
int m_verbosity
Solver verbosity.
Definition CD_SurfaceODESolver.H:470
virtual void deallocate() noexcept
Deallocate internal storage.
Definition CD_SurfaceODESolverImplem.H:510
virtual void parseRuntimeOptions() noexcept
Parse runtime solver options.
Definition CD_SurfaceODESolverImplem.H:77
SurfaceODESolver(const SurfaceODESolver &&)=delete
Disallowed move constructor.
virtual void writePlotFile() const noexcept
Write a plot file.
Definition CD_SurfaceODESolverImplem.H:767
phase::which_phase m_phase
Phase where the data lives.
Definition CD_SurfaceODESolver.H:414
virtual void setTime(const int a_step, const Real a_time, const Real a_dt) noexcept
Set the time.
Definition CD_SurfaceODESolverImplem.H:260
void defineVoFIterators() noexcept
Define iterators for iterating over cell subsets.
Definition CD_SurfaceODESolverImplem.H:523
virtual int getNumberOfPlotVariables() const noexcept
Get number of variables to be plotted.
Definition CD_SurfaceODESolverImplem.H:871
Vector< RefCountedPtr< LayoutData< VoFIterator > > > m_electrodeVoFs
Cut-cells that are electrode cells. This does not include ghost cells.
Definition CD_SurfaceODESolver.H:445
virtual void resetDielectrics(const Real a_value) noexcept
Reset m_phi on dielectric cells.
Definition CD_SurfaceODESolverImplem.H:668
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
Phase names namespace.
Definition CD_MultiFluidIndexSpace.H:28