|
chombo-discharge
|
Base class for electrostatic solvers. More...
#include <CD_FieldSolver.H>


Public Member Functions | |
| FieldSolver () | |
| Constructor. | |
| FieldSolver (const FieldSolver &a_other)=delete | |
| Disallowed copy constructor. | |
| FieldSolver (const FieldSolver &&a_other)=delete | |
| Disallowed move constructor. | |
| FieldSolver & | operator= (const FieldSolver &a_other)=delete |
| Disallowed copy assignment operator. | |
| FieldSolver & | operator= (const FieldSolver &&a_other)=delete |
| Disallowed move assignment operator. | |
| virtual | ~FieldSolver () |
| Constructor. | |
| virtual void | setupSolver ()=0 |
| Set up solver routines. | |
| virtual void | setSolverPermittivities (const MFAMRCellData &a_permittivityCell, const MFAMRFluxData &a_permittivityFace, const MFAMRIVData &a_permittivityEB) |
| A special routine for when solver permittivities need to change but solver does not. | |
| virtual bool | solve (const bool a_zeroPhi=false) |
| Solve Poisson equation using m_potential, m_rho, and m_sigma. | |
| virtual bool | solve (MFAMRCellData &a_potential, const bool a_zerophi=false) |
| Solve Poisson equation onto a_phi using m_rho, and m_sigma as right-hand sides. | |
| virtual bool | solve (MFAMRCellData &a_phi, const MFAMRCellData &a_rho, const EBAMRIVData &a_sigma, const bool a_zerophi=false)=0 |
| Solves Poisson equation onto a_phi using a_rho and a_sigma as right-hand sides. | |
| virtual void | computeElectricField () |
| Compute the cell-centered electric field. | |
| virtual void | computeElectricField (MFAMRCellData &a_E, const MFAMRCellData &a_potential) const =0 |
| Compute the cell-centered electric field. | |
| virtual void | computeElectricField (MFAMRFluxData &a_E, const MFAMRCellData &a_potential) const =0 |
| Compute the face-centered electric field. | |
| virtual void | computeElectricField (EBAMRCellData &a_E, const phase::which_phase a_phase, const MFAMRCellData &a_potential) const =0 |
| Compute the cell-centered electric field on a specific phase. | |
| virtual void | computeElectricField (EBAMRFluxData &a_E, const phase::which_phase a_phase, const MFAMRCellData &a_potential) const =0 |
| Compute the face-centered electric field on a specific phase. | |
| virtual void | parseOptions ()=0 |
| Parse options (for derived class) | |
| virtual void | parseRuntimeOptions ()=0 |
| Parse runtime options (for derived class) | |
| virtual void | allocate () |
| Allocates internal storage for FieldSolver. Derived classes may want to overwrite. | |
| virtual void | preRegrid (const int a_lbase, const int a_oldFinestLevel) |
| Cache state before regridding. | |
| virtual void | computeDisplacementField (MFAMRCellData &a_displacementField, const MFAMRCellData &a_electricField) |
| Compute displacement field from the electric field. | |
| virtual void | deallocate () |
| Deallocate internal storage. | |
| virtual void | regrid (const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) |
| Regrid method. | |
| virtual void | registerOperators ()=0 |
| Register operators for AMR. Derived classes have to implement these. | |
| void | setRho (const Real a_rho) |
| Set space charge to constant value everywhere. | |
| void | setRho (const std::function< Real(const RealVect)> &a_rho) |
| Set space charge to spatially dependent function. | |
| void | setSigma (const Real a_sigma) |
| Set surface charge to specified value. | |
| void | setSigma (const std::function< Real(const RealVect)> &a_sigma) |
| Set surface charge density to spatially dependent function. | |
| void | setComputationalGeometry (const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry) |
| Set the computational geometry. | |
| void | setAmr (const RefCountedPtr< AmrMesh > &a_amr) |
| Set the amr object. | |
| virtual void | setPermittivities () |
| Set the permittivities. | |
| virtual void | writePlotFile () |
| Write plot file. | |
| virtual void | postCheckpoint () |
| Post checkpoint method. | |
| virtual void | writePlotData (LevelData< EBCellFAB > &a_output, int &a_comp, const std::string &a_outputRealm, const int a_level, const bool a_forceNoInterp=false) const noexcept |
| Write output data to a_output. | |
| virtual void | writeMultifluidData (LevelData< EBCellFAB > &a_output, int &a_comp, const MFAMRCellData &a_data, const phase::which_phase a_phase, const std::string &a_outputRealm, const int a_level, const bool a_interp) const noexcept |
| Write multifluid data to single-fluid data holders. | |
| virtual void | writeSurfaceData (LevelData< EBCellFAB > &a_output, int &a_comp, const LevelData< BaseIVFAB< Real > > &a_data, const std::string &a_outputRealm, const int a_level) const noexcept |
| Write surface data to volume data holder. | |
| void | setRealm (const std::string &a_realm) |
| Set Realm. | |
| void | setTime (const int a_timeStep, const Real a_time, const Real a_dt) |
| Set time for this solver. | |
| void | setVerbosity (const int a_verbosity) |
| Set verbosity. | |
| virtual void | setVoltage (std::function< Real(const Real a_time)> a_voltage) |
| Set potential dependence in time. | |
| virtual void | setDomainSideBcFunction (const int a_dir, const Side::LoHiSide a_side, const ElectrostaticDomainBc::BcFunction &a_function) |
| Boundary condition function on a domain side. | |
| virtual void | setElectrodeDirichletFunction (const int a_electrode, const ElectrostaticEbBc::BcFunction &a_function) |
| Set embedded boundary Dirichlet function on a specific electrode. | |
| virtual int | getNumberOfPlotVariables () const |
| Get number of output fields. | |
| const std::function< Real(const Real a_time)> & | getVoltage () const |
| Get voltage function. | |
| Real | getCurrentVoltage () const |
| Get current voltage. | |
| Real | getTime () const |
| Get time. | |
| Real | computeCapacitance () |
| Compute the capacitance. | |
| Real | computeEnergy (const MFAMRCellData &a_electricField) |
| Compute energy density U = 0.5*int(E.dot.D dV) | |
| virtual Vector< std::string > | getPlotVariableNames () const |
| Get output plot names. | |
| virtual Vector< long long > | computeLoads (const DisjointBoxLayout &a_dbl, const int a_level) |
| Get computational loads for a level. | |
| void | setDataLocation (const Location::Cell a_dataLocation) |
| Set the data location for the solver. | |
| std::string | getRealm () const |
| Get the Realm where this solver is registered. | |
| MFAMRCellData & | getPotential () |
| Get potential on both phases. | |
| MFAMRCellData & | getElectricField () |
| Get electric field on both phases. | |
| MFAMRCellData & | getRho () |
| Get storage for the space charge density. | |
| MFAMRCellData & | getResidue () |
| Get the residue. | |
| MFAMRCellData & | getPermittivityCell () |
| Get cell-centered permittivity. | |
| MFAMRFluxData & | getPermittivityFace () |
| Get face-centered permittivity. | |
| MFAMRIVData & | getPermittivityEB () |
| Get irregular b coefficient. | |
| EBAMRIVData & | getSigma () |
| Get m_sigma. | |
| Location::Cell | getDataLocation () const |
| Get data location. | |
Protected Member Functions | |
| virtual void | parseVerbosity () |
| Parse solver class verbosity. | |
| virtual void | parsePlotVariables () |
| Function which parses which plot variables to write to plot files. | |
| virtual void | parseDomainBc () |
| Parse domain boundary conditions. | |
| virtual void | parseRegridSlopes () |
| Parse slope regrid. | |
| virtual void | setDefaultDomainBcFunctions () |
| Set default BC functions. This sets all the m_domainBcFunction objects to s_defaultDomainBcFunction, which return 1 everywhere. | |
| virtual void | setDefaultEbBcFunctions () |
| Set default Dirichlet boundary conditions on the embedded boundaries. | |
| Real | getDielectricPermittivity (const RealVect &a_pos) const |
| Get relative permittivity at some point in space. | |
| virtual void | setCellPermittivities (EBCellFAB &a_relPerm, const Box &a_cellBox, const EBISBox &a_ebisbox, const RealVect &a_probLo, const Real &a_dx, VoFIterator &a_vofit) |
| Set cell-centered permittivities. | |
| virtual void | setFacePermittivities (EBFluxFAB &a_relPerm, const Box &a_cellBox, const EBISBox &a_ebisbox, const RealVect &a_probLo, const Real &a_dx, std::array< FaceIterator, SpaceDim > &a_faceIter) |
| Set face-centered permittivities. | |
| virtual void | setEbPermittivities (BaseIVFAB< Real > &a_relPerm, const Box &a_cellBox, const EBISBox &a_ebisbox, const RealVect &a_origin, const Real &a_dx, VoFIterator &a_vofit) |
| Set EB-centered permittivities. | |
| virtual ElectrostaticDomainBc::BcType | parseBcString (const std::string &a_str) const |
| Returns BC type based on string. | |
| virtual std::string | makeBcString (const int a_dir, const Side::LoHiSide a_side) const |
| Shortcut for making a boundary condition string. | |
| virtual void | fillCoveredPotential (MFAMRCellData &a_phi) const noexcept |
| Utility routine that fills the gas-side covered cells by the potential from the closest electrode. | |
Protected Attributes | |
| Location::Cell | m_dataLocation |
| Flag which specifies that data location. | |
| Location::Face | m_faceLocation |
| Flag which specifies where the permittivities are stored. | |
| std::string | m_realm |
| Realm where this solver is registered. | |
| std::string | m_className |
| Class name (i.e., "FieldSolver" for the base class) | |
| RefCountedPtr< MultiFluidIndexSpace > | m_multifluidIndexSpace |
| Multifluid index space. | |
| RefCountedPtr< ComputationalGeometry > | m_computationalGeometry |
| Computational geometry. | |
| RefCountedPtr< AmrMesh > | m_amr |
| AMR - needed for pretty much everything. | |
| MFAMRCellData | m_cache |
| Cached state used for regridding. | |
| Vector< RefCountedPtr< LayoutData< VoFIterator > > > | m_grownCellVofIter |
| Pre-built VoFIterators for grown-box irregular cells (solid phase, grow=1). | |
| MFAMRCellData | m_potential |
| State data, i.e. the potential. The centering of this is the same as m_dataLocation. | |
| MFAMRCellData | m_electricField |
| Electric field. The centering of this is the same as m_dataLocation. | |
| MFAMRCellData | m_rho |
| Storage for space charge density. | |
| EBAMRIVData | m_sigma |
| Storage for surface charge density. | |
| MFAMRCellData | m_residue |
| Residue, e.g. used after solving Poisson equation. | |
| MFAMRCellData | m_permittivityCell |
| Cell permittivity. | |
| MFAMRFluxData | m_permittivityFace |
| Face permittivity. | |
| MFAMRIVData | m_permittivityEB |
| EB permittivity. | |
| bool | m_isVoltageSet |
| Flag for checking if voltage has been set. | |
| bool | m_plotPotential |
| If true, potential will be added to plot files. | |
| bool | m_plotRho |
| If true, space charge will be added to plot files. | |
| bool | m_plotElectricField |
| If true, the electric field will be added to plot files. | |
| bool | m_plotElectricFieldSolid |
| If true, the electric field on the inside of dielectrics will be added to plot files. | |
| bool | m_plotResidue |
| If true, the residue will be added to plot files. | |
| bool | m_plotPermittivity |
| If true, the permittivity will be added to plot files. | |
| bool | m_plotSigma |
| If true, m_sigma will be added to plot files. | |
| bool | m_regridSlopes |
| Use slopes when regridding or ont. | |
| int | m_verbosity |
| Verbosity for this class. | |
| int | m_timeStep |
| Current time step. | |
| Real | m_dt |
| Last time step increment. | |
| Real | m_time |
| Current time. | |
| ElectrostaticDomainBc | m_domainBc |
| Domain boundary conditions for FieldSolver. | |
| ElectrostaticEbBc | m_ebBc |
| Dirichlet boundary conditions on electrodes. | |
| std::map< ElectrostaticDomainBc::DomainSide, ElectrostaticDomainBc::BcFunction > | m_domainBcFunctions |
| Domain BC functions. This is used to map space/time to a voltage/field at the domain faces. | |
| std::vector< std::pair< Electrode, ElectrostaticEbBc::BcFunction > > | m_electrodeBcFunctions |
| BC functions (Dirichlet) on the electrodes. Used to map space/time to a voltage on the electrodes. | |
| std::function< Real(const Real a_time)> | m_voltage |
| Voltage function. | |
Static Protected Attributes | |
| static constexpr int | m_comp = 0 |
| Component number where data is stored. | |
| static constexpr int | m_nComp = 1 |
| Number of components in data holders. | |
Base class for electrostatic solvers.
This class contains an interface to a solve routine, data holders, and interface to boundary conditions. Solver routines are supposed to be implemented by derived classes.
|
delete |
Disallowed copy constructor.
| [in] | a_other | Other solver |
|
delete |
Disallowed move constructor.
| [in] | a_other | Other solver |
| Real FieldSolver::computeCapacitance | ( | ) |
Compute the capacitance.
This will first obtain a solution without any sources, and then compute the energy density. The capacitance is then C = 2*EnergyDensity/(V*V)
|
virtual |
Compute displacement field from the electric field.
| [out] | a_displacementField | Displacement field |
| [in] | a_electricField | Electric field |
|
virtual |
Compute the cell-centered electric field.
This uses m_potential for computing the electric field and puts the result into m_electricField.
|
pure virtual |
Compute the cell-centered electric field on a specific phase.
| [in] | a_phase | Phase |
| [in] | a_potential | Cell-centered potential |
| [in] | a_E | E |
Implemented in FieldSolverGMG.
|
pure virtual |
Compute the face-centered electric field on a specific phase.
| [in] | a_phase | Phase |
| [in] | a_potential | Cell-centered potential |
| [in] | a_E | E |
Implemented in FieldSolverGMG.
|
pure virtual |
Compute the cell-centered electric field.
| [in] | a_potential | Cell-centered potential |
| [in] | a_E | E |
Implemented in FieldSolverGMG.
|
pure virtual |
Compute the face-centered electric field.
| [in] | a_potential | Cell-centered potential |
| [in] | a_E | E |
Implemented in FieldSolverGMG.
| Real FieldSolver::computeEnergy | ( | const MFAMRCellData & | a_electricField | ) |
Compute energy density U = 0.5*int(E.dot.D dV)
| [in] | a_electricField | The electric field. |
|
virtual |
Get computational loads for a level.
The default implementation returns the number of cells in the grid patch as a proxy for the load.
| [in,out] | a_dbl | Description |
| [in] | a_level | Description |
Reimplemented in FieldSolverGMG.
|
protectedvirtualnoexcept |
Utility routine that fills the gas-side covered cells by the potential from the closest electrode.
| [in,out] | a_phi | Potential |
| Real FieldSolver::getCurrentVoltage | ( | ) | const |
Get current voltage.
| Location::Cell FieldSolver::getDataLocation | ( | ) | const |
Get data location.
|
inlineprotected |
Get relative permittivity at some point in space.
| [in] | a_pos | Pos |
| MFAMRCellData & FieldSolver::getElectricField | ( | ) |
Get electric field on both phases.
|
virtual |
Get number of output fields.
| MFAMRCellData & FieldSolver::getPermittivityCell | ( | ) |
Get cell-centered permittivity.
| MFAMRIVData & FieldSolver::getPermittivityEB | ( | ) |
Get irregular b coefficient.
| MFAMRFluxData & FieldSolver::getPermittivityFace | ( | ) |
Get face-centered permittivity.
|
virtual |
Get output plot names.
| MFAMRCellData & FieldSolver::getPotential | ( | ) |
Get potential on both phases.
| std::string FieldSolver::getRealm | ( | ) | const |
Get the Realm where this solver is registered.
| MFAMRCellData & FieldSolver::getResidue | ( | ) |
Get the residue.
| MFAMRCellData & FieldSolver::getRho | ( | ) |
Get storage for the space charge density.
This lives in the FieldSolver so users don't need to allocate their own storage for the space charge.
| EBAMRIVData & FieldSolver::getSigma | ( | ) |
Get m_sigma.
| Real FieldSolver::getTime | ( | ) | const |
Get time.
| const std::function< Real(const Real a_time)> & FieldSolver::getVoltage | ( | ) | const |
Get voltage function.
|
protectedvirtual |
Shortcut for making a boundary condition string.
| [in] | a_dir | Direction. |
| [in] | a_side | Coordinate side. |
|
delete |
Disallowed move assignment operator.
| [in] | a_other | Other solver |
|
delete |
Disallowed copy assignment operator.
| [in] | a_other | Other solver |
|
protectedvirtual |
Returns BC type based on string.
| [in] | a_str | Boundary condition string. Must be "dirichlet number", "neumann number", "dirichlet_custom" or "neumann_custom" |
|
pure virtual |
Parse options (for derived class)
Implemented in FieldSolverGMG.
|
pure virtual |
Parse runtime options (for derived class)
Implemented in FieldSolverGMG.
|
virtual |
Post checkpoint method.
Default implementation does not do anything, but derived classes will usually need it.
|
virtual |
Cache state before regridding.
| [in] | a_lbase | Coarsest level which changes during regrid. |
| [in] | a_oldFinestLevel | Finest AMR level before regrid. |
This allocates m_cache which gets a copy of m_potential
Reimplemented in FieldSolverGMG.
|
pure virtual |
Register operators for AMR. Derived classes have to implement these.
Implemented in FieldSolverGMG.
|
virtual |
Regrid method.
| [in] | a_lmin | Coarsest level allowed to change. |
| [in] | a_oldFinestLevel | Finest level before the regrid. |
| [in] | a_newFinestLevel | Finest level after the regrid. |
This linearly interpolates (with limiters) m_potential to the new grids and recomputes the electric field (from the interpolated potential).
Reimplemented in FieldSolverGMG.
| void FieldSolver::setAmr | ( | const RefCountedPtr< AmrMesh > & | a_amr | ) |
Set the amr object.
| [in] | a_amr | AmrMesh object. |
|
protectedvirtual |
Set cell-centered permittivities.
| [out] | a_relPerm | Permittivity (on either cell center or centroid) |
| [in] | a_cellBox | Computation box |
| [in] | a_ebisbox | EBIS box |
| [in] | a_probLo | Lower-left corner of computational domain |
| [in] | a_dx | Resolution |
| [in,out] | a_vofit | Pre-built VoF iterator covering all cut-cells (singly- and multiply-cut) in grow(a_cellBox, 1). Obtain via m_grownCellVofIter. |
| void FieldSolver::setComputationalGeometry | ( | const RefCountedPtr< ComputationalGeometry > & | a_computationalGeometry | ) |
Set the computational geometry.
| [in] | a_computationalGeometry | Computational geometry. |
| void FieldSolver::setDataLocation | ( | const Location::Cell | a_dataLocation | ) |
Set the data location for the solver.
| [in] | a_dataLocation | Desired data location. |
Only Location::Cell::Center and Location::Cell::Centroid are accepted arguments.
|
protectedvirtual |
Set default Dirichlet boundary conditions on the embedded boundaries.
For each electrode the default boundary condition is set to m_voltage*electrode.getFraction().
|
virtual |
Boundary condition function on a domain side.
| [in] | a_dir | Coordinate direction. |
| [in] | a_side | Side in the coordinate direction. |
| [in] | a_function | Boundary condition function. |
This sets a boundary condition for a particular side on a wall. The user must also specify how to use this BC in the input script.
|
protectedvirtual |
Set EB-centered permittivities.
| [out] | a_relPerm | Permittivity (on face centroid or center) |
| [in] | a_cellBox | Computation box |
| [in] | a_ebisbox | EBIS box |
| [in] | a_origin | Origin |
| [in] | a_dx | Resolution |
| [in,out] | a_vofit | Pre-built VoF iterator covering all cut-cells (singly- and multiply-cut) in a_cellBox. Obtain via AmrMesh::getVofIterator. |
|
virtual |
Set embedded boundary Dirichlet function on a specific electrode.
| [in] | a_electrode | electrode index. Follows the same order as ComputationalGeometry. |
| [in] | a_function | Voltage on the electrode. |
|
protectedvirtual |
Set face-centered permittivities.
| [out] | a_relPerm | Permittivity (on face centroid or center) |
| [in] | a_cellBox | Computation box |
| [in] | a_ebisbox | EBIS box |
| [in] | a_probLo | Lower-left corner of computational domain |
| [in] | a_dx | Resolution |
| [in,out] | a_faceIter | Pre-built face iterators with FaceStop::SurroundingWithBoundary over all cut-cell faces in a_cellBox, one per coordinate direction. Obtain via AmrMesh::getFaceIterator. |
|
virtual |
Set the permittivities.
This sets m_permittivityCell, m_permittivityFace, and m_permittivityEB.
Reimplemented in FieldSolverGMG.
| void FieldSolver::setRealm | ( | const std::string & | a_realm | ) |
| void FieldSolver::setRho | ( | const Real | a_rho | ) |
Set space charge to constant value everywhere.
| [in] | a_rho | Value of space charge |
| void FieldSolver::setRho | ( | const std::function< Real(const RealVect)> & | a_rho | ) |
Set space charge to spatially dependent function.
| [in] | a_rho | Spatially dependent value of space charge |
| void FieldSolver::setSigma | ( | const Real | a_sigma | ) |
Set surface charge to specified value.
| [in] | a_sigma | Description |
| void FieldSolver::setSigma | ( | const std::function< Real(const RealVect)> & | a_sigma | ) |
Set surface charge density to spatially dependent function.
| [in] | a_sigma | Spatially dependent value of the surface charge density. |
|
virtual |
A special routine for when solver permittivities need to change but solver does not.
| [in] | a_permittivityCell | Permittivity on cell center |
| [in] | a_permittivityFace | Permittivity on faces |
| [in] | a_permittivityEB | Permittivity on EB |
Reimplemented in FieldSolverGMG.
| void FieldSolver::setTime | ( | const int | a_timeStep, |
| const Real | a_time, | ||
| const Real | a_dt | ||
| ) |
Set time for this solver.
| [in] | a_timeStep | Time step |
| [in] | a_time | Time (in seconds). |
| [in] | a_dt | Time step size (in seconds). |
This sets m_timeStep, m_time, and m_dt.
|
pure virtual |
Set up solver routines.
Implemented in FieldSolverGMG.
| void FieldSolver::setVerbosity | ( | const int | a_verbosity | ) |
Set verbosity.
| [in] | a_verbosity | Verbosity factor (lower yields less printed output). |
|
virtual |
Set potential dependence in time.
| [in] | a_voltage | Function pointer which sets the voltage travel curve. |
If you want something more complex, the voltage can be set individually for each electrode using setElectrodeDirichletFunction.
|
virtual |
Solve Poisson equation using m_potential, m_rho, and m_sigma.
| [in] | a_zeroPhi | Set m_potential to zero before calling other function. |
This calls the other version.
|
pure virtual |
Solves Poisson equation onto a_phi using a_rho and a_sigma as right-hand sides.
| [in] | a_rho | Space charge density |
| [in] | a_sigma | Surface charge density. |
| [in] | a_phi | Phi |
| [in] | a_zerophi | Zerophi |
Implemented in FieldSolverGMG.
|
virtual |
Solve Poisson equation onto a_phi using m_rho, and m_sigma as right-hand sides.
| [in,out] | a_potential | Potential |
| [in] | a_zerophi | Zerophi |
|
virtualnoexcept |
Write multifluid data to single-fluid data holders.
This takes the valid data from each phase and writes it to a_output. On cut-cells, the a_phase flag determines which phase will be plotted.
| [in,out] | a_output | Output data holder |
| [in,out] | a_comp | Current component in a_output. |
| [in] | a_data | Multifluid data holder |
| [in] | a_phase | Main phase in cut-cells. |
| [in] | a_outputRealm | Realm where a_output belongs |
| [in] | a_level | Grid level |
| [in] | a_interp | Special flag which, if true, tells AmrMesh to interpolate the data to centroids (in irregular cells). |
|
virtualnoexcept |
Write output data to a_output.
| [in,out] | a_output | Output data holder |
| [in,out] | a_comp | Current component in a_output. |
| [in] | a_outputRealm | Realm where a_output belongs |
| [in] | a_level | Grid level |
| [in] | a_forceNoInterp | Forces data to be written using native centering |
|
virtual |
Write plot file.
This writes a plot file named FieldSolver.stepXXXXXXX.2d.hdf5 using the specified plot variables.
|
virtualnoexcept |
Write surface data to volume data holder.
This takes the valid data from a_data and puts in onto a_output.
| [in,out] | a_output | Output data holder |
| [in,out] | a_comp | Current component in a_output. |
| [in] | a_data | Surface data. |
| [in] | a_outputRealm | Realm where a_output belongs |
| [in] | a_level | Grid level |
|
protected |
Pre-built VoFIterators for grown-box irregular cells (solid phase, grow=1).
Populated in setPermittivities(). Used by setCellPermittivities to avoid per-call IVS allocation.