chombo-discharge
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
ComputationalGeometry Class Reference

Abstract base class for geometries. More...

#include <CD_ComputationalGeometry.H>

Inheritance diagram for ComputationalGeometry:
Inheritance graph
[legend]

Public Member Functions

 ComputationalGeometry ()
 Constructor. Sets a blank geometry.
 
virtual ~ComputationalGeometry ()
 Destructor.
 
const Vector< Dielectric > & getDielectrics () const
 Get dielectrics. More...
 
const Vector< Electrode > & getElectrodes () const
 Get electrodes. More...
 
Real getGasPermittivity () const
 Get the background gas permittivity. More...
 
void useScanShop (const ProblemDomain a_startDomain)
 Calls for ComputationalGeometry to use ScanShop rather than Chombo's default geometry generation tool. More...
 
void useChomboShop ()
 Calls for ComputationalGeometry to use Chombo's geometry generation tool.
 
void setDielectrics (const Vector< Dielectric > &a_dielectrics)
 Set dielectrics. More...
 
void setElectrodes (const Vector< Electrode > &a_electrodes)
 Set electrodes. More...
 
void setGasPermittivity (const Real a_eps0)
 Set the background permittivity. More...
 
const RefCountedPtr< MultiFluidIndexSpace > & getMfIndexSpace () const
 Get the multifluid index space.
 
const RefCountedPtr< BaseIF > & getGasImplicitFunction () const
 Get the implicit function used to generate the gas-phase EBIS.
 
const RefCountedPtr< BaseIF > & getSolidImplicitFunction () const
 Get the implicit function used to generate the solid-phase EBIS.
 
const RefCountedPtr< BaseIF > & getImplicitFunction (const phase::which_phase a_phase) const
 Get implicit function. More...
 
virtual void buildGeometries (const ProblemDomain a_finestDomain, const RealVect a_probLo, const Real a_finestDx, const int a_nCellMax, const int a_maxGhostEB, const int a_maxCoarsen=-1)
 Build geometries and the MFIndexSpace. More...
 

Protected Member Functions

void buildGasGeometry (GeometryService *&a_geoserver, const ProblemDomain a_finestDomain, const RealVect a_probLo, const Real a_finestDx)
 Set up the geometry generation tool for the gas phase. More...
 
void buildSolidGeometry (GeometryService *&a_geoserver, const ProblemDomain a_finestDomain, const RealVect a_probLo, const Real a_finestDx)
 Set up the geometry generation tool for the solid phase, i.e. the part inside the dielectrics. More...
 

Protected Attributes

RefCountedPtr< MultiFluidIndexSpacem_multifluidIndexSpace
 Multifluid index spaces.
 
Real m_eps0
 Background permittivity.
 
bool m_useScanShop
 True if we use the chombo-discharge geometry generation utility.
 
ProblemDomain m_scanDomain
 Grid level where we begin using ScanShop.
 
int m_maxGhostEB
 Maximum number of ghost cells that we will ever need.
 
Vector< Dielectricm_dielectrics
 dielectrics
 
Vector< Electrodem_electrodes
 electrodes
 
RefCountedPtr< BaseIF > m_implicitFunctionGas
 The gas-phase implicit function (i.e. outside electrodes and dielectrics).
 
RefCountedPtr< BaseIF > m_implicitFunctionSolid
 The solid-phase implicit function (i.e. the inside of the dielectrics).
 

Static Protected Attributes

constexpr static Real s_thresh = 1.E-15
 Threshold for Vof computation.
 

Detailed Description

Abstract base class for geometries.

This class encapsulates computational geometries in chombo-discharge. If you construct this object as-is, you will get a blank geometry. To include EBs one must set the electrodes and dielectrics. This is not a pure function, so you can set those objects directly from a ComputationalGeometry object. However, in almost all cases one will want to derive from ComputationalGeometry and create a parametrized geometry (that is what $DISCHARGE_HOME/Geometries is for!).

Member Function Documentation

◆ buildGasGeometry()

void ComputationalGeometry::buildGasGeometry ( GeometryService *&  a_geoserver,
const ProblemDomain  a_finestDomain,
const RealVect  a_probLo,
const Real  a_finestDx 
)
protected

Set up the geometry generation tool for the gas phase.

Parameters
[in,out]a_geoserverGeometry service object which is later used for making build the EB information.
[in]a_finestDomainFinest domain which will be used
[in]a_probLoLower-left corner of simulation domain.
[in]a_finestDxFinest resolution which will be used.

◆ buildGeometries()

void ComputationalGeometry::buildGeometries ( const ProblemDomain  a_finestDomain,
const RealVect  a_probLo,
const Real  a_finestDx,
const int  a_nCellMax,
const int  a_maxGhostEB,
const int  a_maxCoarsen = -1 
)
virtual

Build geometries and the MFIndexSpace.

Parameters
[in]a_finestDomainFinest domain
[in]a_probLoLower-left corner
[in]a_finestDxFinest grid resolution
[in]a_nCellMaxPatch size
[in]a_numEbGhostMaximum number of EB ghosts that will be encountered.
[in]a_maxCoarsenMax coarsenings to run. If = -1 then coarsen all the way down.

This will build the gas and solid phase domain. The input is the finest-level stuff and you can control the division into boxes as well as the maximum number of coarsenings. The computed domain is (a_probLo, a_probLo + a_box*a_dx)

◆ buildSolidGeometry()

void ComputationalGeometry::buildSolidGeometry ( GeometryService *&  a_geoserver,
const ProblemDomain  a_finestDomain,
const RealVect  a_probLo,
const Real  a_finestDx 
)
protected

Set up the geometry generation tool for the solid phase, i.e. the part inside the dielectrics.

Parameters
[in,out]a_geoserverGeometry service object which is later used for making build the EB information.
[in]a_finestDomainFinest domain which will be used
[in]a_probLoLower-left corner of simulation domain.
[in]a_finestDxFinest resolution which will be used.

◆ getDielectrics()

const Vector< Dielectric > & ComputationalGeometry::getDielectrics ( ) const

Get dielectrics.

Returns
Dielectrics (m_dielectrics)

◆ getElectrodes()

const Vector< Electrode > & ComputationalGeometry::getElectrodes ( ) const

Get electrodes.

Returns
Electrodes (m_dielectrics)

◆ getGasPermittivity()

Real ComputationalGeometry::getGasPermittivity ( ) const

Get the background gas permittivity.

Returns
Background gas permittivity

◆ getImplicitFunction()

const RefCountedPtr< BaseIF > & ComputationalGeometry::getImplicitFunction ( const phase::which_phase  a_phase) const

Get implicit function.

Parameters
[in]a_phasePhase

◆ setDielectrics()

void ComputationalGeometry::setDielectrics ( const Vector< Dielectric > &  a_dielectrics)

Set dielectrics.

Parameters
[in]a_dielectricsDielectris

◆ setElectrodes()

void ComputationalGeometry::setElectrodes ( const Vector< Electrode > &  a_electrodes)

Set electrodes.

Parameters
[in]a_electrodesElectrodes

◆ setGasPermittivity()

void ComputationalGeometry::setGasPermittivity ( const Real  a_eps0)

Set the background permittivity.

Parameters
[in]a_eps0Gas permittivity

◆ useScanShop()

void ComputationalGeometry::useScanShop ( const ProblemDomain  a_startDomain)

Calls for ComputationalGeometry to use ScanShop rather than Chombo's default geometry generation tool.

Parameters
[in]a_startDomainCoarse domain where ScanShop begins the load balancing recursion process.

The documentation for this class was generated from the following files: