|
|
| FieldStepper () |
| | Constructor – parses some input options.
|
| |
|
virtual | ~FieldStepper () |
| | Destructor (does nothing)
|
| |
| void | setupSolvers () override |
| | Solver setup routine. This instantiates the FieldSolver and parses input options.
|
| |
| void | initialData () override |
| | Set initial data – this sets the space and surface charges.
|
| |
| void | postInitialize () override |
| | Post-initialization routine. This solves the Poisson equation.
|
| |
| void | allocate () override |
| | Allocation method – allocates memory and internal data for solvers.
|
| |
| MFAMRCellData & | getPotential () |
| | Get the electrostatic potential.
|
| |
| void | postCheckpointSetup () override |
| | Post-initialize operations to be performed – does nothing.
|
| |
| int | getNumberOfPlotVariables () const override |
| | Get number of plot variables contributed by this TimeStepper.
|
| |
| Vector< std::string > | getPlotVariableNames () const override |
| | Get plot variable names.
|
| |
| 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.
|
| |
| Real | computeDt () override |
| | Compute time step.
|
| |
| Real | advance (const Real a_dt) override |
| | Perform a single time step with step a_dt.
|
| |
| void | synchronizeSolverTimes (const int a_step, const Real a_time, const Real a_dt) override |
| | Synchronize solver times and time steps.
|
| |
| void | printStepReport () override |
| | Print step report – this does nothing.
|
| |
| void | registerRealms () override |
| | Register simulation realms to be used for this simulation module.
|
| |
| void | registerOperators () override |
| | Register operators for this simulation module.
|
| |
| void | preRegrid (const int a_lbase, const int a_finestLevel) override |
| | Perform pre-regrid operations.
|
| |
| bool | loadBalanceThisRealm (const std::string &a_realm) const override |
| | Load balancing query for a specified realm. If this returns true for a_realm, load balancing routines will be called during regrids.
|
| |
| 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) override |
| | Load balance grid boxes for a specified realm.
|
| |
| void | regrid (const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) override |
| | Regrid method – regrids the potential distribution in FieldSolver (but does not solve the Poisson equation, that is done in postRegrid()).
|
| |
| void | postRegrid () override |
| | Perform post-regrid operations – this will resolve the Poisson equation.
|
| |
| void | setRho (const std::function< Real(const RealVect &a_pos)> &a_rho, const phase::which_phase a_phase) noexcept |
| | Set the space charge distribution.
|
| |
| void | setSigma (const std::function< Real(const RealVect &a_pos)> &a_sigma) noexcept |
| | Set the surface charge distribution.
|
| |
|
| TimeStepper () |
| | Default constructor (does nothing)
|
| |
|
virtual | ~TimeStepper () |
| | Default destructor (does nothing)
|
| |
|
| TimeStepper (const TimeStepper &)=delete |
| | Disallow copy construction.
|
| |
|
TimeStepper & | operator= (const TimeStepper &)=delete |
| | Disallow copy assignment.
|
| |
|
| TimeStepper (TimeStepper &&)=default |
| | Allow move construction.
|
| |
| TimeStepper & | operator= (TimeStepper &&)=default |
| | Allow move assignment.
|
| |
| void | setAmr (const RefCountedPtr< AmrMesh > &a_amr) |
| | Set AmrMesh.
|
| |
| void | setComputationalGeometry (const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry) |
| | Set the computational geometry.
|
| |
| virtual void | parseRuntimeOptions () |
| | Parse runtime options.
|
| |
| virtual void | prePlot () |
| | An option for calling special functions prior to plotting data. Called by Driver in the IMMEDIATELY before writing the plot file.
|
| |
| virtual void | postPlot () |
| | An option for calling special functions prior to plotting data. Called by Driver in the IMMEDIATELY after writing the plot file.
|
| |
| virtual Vector< long int > | getCheckpointLoads (const std::string &a_realm, int a_level) const |
| | Get computational loads to be checkpointed.
|
| |
| virtual bool | needToRegrid () |
| | Function which can have Driver do regrids at arbitrary points in the simulation.
|
| |
| bool | keepGoing () const |
| | Query whether the time stepper wants to continue stepping.
|
| |
|
|
bool | m_loadBalance |
| | If true, the simulation will be introspectively load balanced.
|
| |
|
BoxSorting | m_boxSort |
| | If using load balancing, this specifies how boxes will be sorted (in space) before load balancing.
|
| |
|
RefCountedPtr< FieldSolver > | m_fieldSolver |
| | Reference to the FieldSolver.
|
| |
|
RefCountedPtr< SurfaceODESolver< 1 > > | m_sigma |
| | Reference to the surface charge solver.
|
| |
|
std::string | m_realm |
| | Realm where the solver lives.
|
| |
|
std::function< Real(const RealVect &a_pos)> | m_rhoGas |
| | Space charge inside gas phase.
|
| |
|
std::function< Real(const RealVect &a_pos)> | m_rhoDielectric |
| | Space charge inside dielectric.
|
| |
|
std::function< Real(const RealVect &a_pos)> | m_surfaceChargeDensity |
| | Surface charge distribution.
|
| |
|
int | m_verbosity |
| | Class verbosity.
|
| |
|
int | m_timeStep |
| | Time step.
|
| |
|
Real | m_time |
| | TIme.
|
| |
|
Real | m_dt |
| | Previous time step size.
|
| |
| bool | m_keepGoing |
| | If false, Driver will stop the time loop after the current step.
|
| |
|
RefCountedPtr< AmrMesh > | m_amr |
| | AmrMesh.
|
| |
|
RefCountedPtr< ComputationalGeometry > | m_computationalGeometry |
| | Computational geometry.
|
| |
template<class T>
class Physics::Electrostatics::FieldStepper< T >
TimeStepper for solving the electrostatic Poisson equation, optionally with surface charge.
This module solves the electrostatic problem on a static or adaptively refined AMR hierarchy. The template parameter T is the concrete FieldSolver type (e.g. FieldSolverGMG).
The solver decomposes the potential into contributions from the applied voltage and from space/surface charges. On live electrodes the voltage defaults to 1 V; use setRho() and setSigma() before calling postInitialize() to override the default zero charges.
Adaptive mesh refinement is supported when a CellTagger is attached via Driver — the stepper re-solves the Poisson equation after every regrid in postRegrid().