12 #ifndef CD_ItoPlasmaGodunovStepper_H
13 #define CD_ItoPlasmaGodunovStepper_H
19 #include <CD_NamespaceHeader.H>
51 advance(
const Real a_dt)
override;
79 preRegrid(
const int a_lmin,
const int a_oldFinestLevel)
override;
88 regrid(
const int a_lmin,
const int a_oldFinestLevel,
const int a_newFinestLevel)
override;
96 readCheckpointHeader(HDF5HeaderData& a_header)
override;
105 writeCheckpointHeader(HDF5HeaderData& a_header)
const override;
115 writeCheckpointData(HDF5Handle& a_handle,
const int a_lvl)
const override;
125 readCheckpointData(HDF5Handle& a_handle,
const int a_lvl)
override;
275 const Real a_tolerance) const noexcept;
299 const Real a_dt) noexcept;
313 #include <CD_NamespaceFooter.H>
EBRepresentation
Enum for putting some logic into how we think about EBs. This is just a simply supporting class for v...
Definition: CD_EBRepresentation.H:22
Abstract class for integrating the Ito plasma equations.
SpeciesSubset
Enum for differentiating between types of particles.
Definition: CD_ItoPlasmaStepper.H:36
Declaration of a computational point particle.
Implementation of CD_Timer.H.
Templated class for holding particles on an AMR hierarchy with particle remapping.
Definition: CD_ParticleContainer.H:48
Implementation of ItoPlasmaStepper that uses a semi-implicit split-step formalism for advancing the I...
Definition: CD_ItoPlasmaGodunovStepper.H:28
Vector< RefCountedPtr< ParticleContainer< PointParticle > > > m_rhoDaggerParticles
Storage for particles that gave rho^dagger.
Definition: CD_ItoPlasmaGodunovStepper.H:181
ItoPlasmaGodunovStepper()=delete
Disallowed default constructor. Use the full constructor.
virtual void regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) override
Regrid methods – puts all data on the new mesh.
Definition: CD_ItoPlasmaGodunovStepper.cpp:327
virtual void setupSemiImplicitPoisson(const Real a_dt) noexcept
Set up the semi-implicit Poisson solver.
Definition: CD_ItoPlasmaGodunovStepper.cpp:843
virtual ~ItoPlasmaGodunovStepper()
Destructor. Does nothing.
Definition: CD_ItoPlasmaGodunovStepper.cpp:40
virtual void remapPointParticles(Vector< RefCountedPtr< ParticleContainer< PointParticle >>> &a_particles, const SpeciesSubset a_subset) noexcept
Remap the input point particles.
Definition: CD_ItoPlasmaGodunovStepper.cpp:450
virtual Real advance(const Real a_dt) override
Advance the Ito-Poisson-KMC system over a_dt.
Definition: CD_ItoPlasmaGodunovStepper.cpp:161
virtual void advanceParticlesEulerMaruyama(const Real a_dt) noexcept
Advance the particles using the Euler-Maruyama scheme.
Definition: CD_ItoPlasmaGodunovStepper.cpp:960
virtual void stepEulerMaruyama(const Real a_dt) noexcept
Step the particles according to the regular Euler-Maruyama scheme.
Definition: CD_ItoPlasmaGodunovStepper.cpp:1077
Real m_prevDt
Previous time step.
Definition: CD_ItoPlasmaGodunovStepper.H:161
virtual void parseAlgorithm() noexcept
Parse advancement algorithm.
Definition: CD_ItoPlasmaGodunovStepper.cpp:125
virtual void diffuseParticlesEulerMaruyama(Vector< RefCountedPtr< ParticleContainer< PointParticle >>> &a_rhoDaggerParticles, const Real a_dt) noexcept
Perform the diffusive advance in the Euler-Maruyama step.
Definition: CD_ItoPlasmaGodunovStepper.cpp:1025
Vector< RefCountedPtr< ParticleContainer< PointParticle > > > m_conductivityParticles
Storage for simplified particles that gave us sigma^k.
Definition: CD_ItoPlasmaGodunovStepper.H:176
virtual void clearPointParticles(const Vector< RefCountedPtr< ParticleContainer< PointParticle >>> &a_particles, const SpeciesSubset a_subset) noexcept
Clear the input particle data holders.
Definition: CD_ItoPlasmaGodunovStepper.cpp:655
virtual void parseCheckpointParticles() noexcept
Parse checkpoint-restart functionality.
Definition: CD_ItoPlasmaGodunovStepper.cpp:148
virtual void computeCellConductivity(EBAMRCellData &a_conductivityCell, const Vector< RefCountedPtr< ParticleContainer< PointParticle >>> &a_particles) noexcept
Compute the cell-centered conductivity.
Definition: CD_ItoPlasmaGodunovStepper.cpp:774
WhichAlgorithm m_algorithm
Which advancement algorithm to use.
Definition: CD_ItoPlasmaGodunovStepper.H:166
virtual void setOldPositions() noexcept
Set the starting positions for the ItoSolver particles.
Definition: CD_ItoPlasmaGodunovStepper.cpp:421
virtual void barrier() const noexcept
Set an MPI barrier if using debug mode.
Definition: CD_ItoPlasmaGodunovStepper.cpp:79
bool m_writeCheckpointParticles
If true, then the particles are checkpointed so we can regrid on checkpoint-restart.
Definition: CD_ItoPlasmaGodunovStepper.H:140
virtual void parseRuntimeOptions() override
Parse run-time options.
Definition: CD_ItoPlasmaGodunovStepper.cpp:106
virtual void preRegrid(const int a_lmin, const int a_oldFinestLevel) override
Perform pre-regrid operations.
Definition: CD_ItoPlasmaGodunovStepper.cpp:309
WhichAlgorithm
Simple enum for distinguishing between algorithms.
Definition: CD_ItoPlasmaGodunovStepper.H:133
virtual void allocate() override
Allocate storage required for advancing the equations.
Definition: CD_ItoPlasmaGodunovStepper.cpp:49
virtual void copyConductivityParticles(Vector< RefCountedPtr< ParticleContainer< PointParticle >>> &a_conductivityParticles) noexcept
Copy particles from the ItoSolver into PointParticles whose weight are ItoParticle::m_weight * ItoPar...
Definition: CD_ItoPlasmaGodunovStepper.cpp:916
bool m_readCheckpointParticles
If true, then the HDF5 checkpoint file contained particles that we can read.
Definition: CD_ItoPlasmaGodunovStepper.H:145
bool m_canRegridOnRestart
If true, then the class supports regrid-on-restart.
Definition: CD_ItoPlasmaGodunovStepper.H:151
Timer m_timer
Timer used for run-time logging of routines.
Definition: CD_ItoPlasmaGodunovStepper.H:171
virtual void parseOptions() override
Parse options.
Definition: CD_ItoPlasmaGodunovStepper.cpp:92
virtual void computeFaceConductivity() noexcept
Compute the cell-centered conductivity.
Definition: CD_ItoPlasmaGodunovStepper.cpp:814
virtual void removeCoveredPointParticles(Vector< RefCountedPtr< ParticleContainer< PointParticle >>> &a_particles, const EBRepresentation a_representation, const Real a_tolerance) const noexcept
Remove covered particles.
Definition: CD_ItoPlasmaGodunovStepper.cpp:877
virtual void computeConductivities(const Vector< RefCountedPtr< ParticleContainer< PointParticle >>> &a_particles) noexcept
Compute all conductivities (cell, face, and EB) from the input point particles.
Definition: CD_ItoPlasmaGodunovStepper.cpp:759
virtual void depositPointParticles(const Vector< RefCountedPtr< ParticleContainer< PointParticle >>> &a_particles, const SpeciesSubset a_subset) noexcept
Deposit the input point particles on the mesh.
Definition: CD_ItoPlasmaGodunovStepper.cpp:554
Base time stepper class that advances the Ito-Poisson system of equations.
Definition: CD_ItoPlasmaStepper.H:54
A particle class that only has a position and a weight.
Definition: CD_PointParticle.H:29
Class which is used for run-time monitoring of events.
Definition: CD_Timer.H:31
Name containing various physics models for running chombo-discharge code.
Definition: CD_AdvectionDiffusion.H:15