chombo-discharge
Loading...
Searching...
No Matches
CD_ComputationalGeometry.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_COMPUTATIONALGEOMETRY_H
14#define CD_COMPUTATIONALGEOMETRY_H
15
16// Chombo includes
17#include <BaseIF.H>
18#include <MFIndexSpace.H>
19#include <Box.H>
20#include <RealVect.H>
21#include <ProblemDomain.H>
22
23// Our includes
24#include <CD_Dielectric.H>
25#include <CD_Electrode.H>
27#include <CD_RealBox.H>
28#include <CD_NamespaceHeader.H>
29
37{
38public:
43
47 virtual ~ComputationalGeometry();
48
54 getDielectrics() const;
55
61 getElectrodes() const;
62
67 Real
68 getGasPermittivity() const;
69
74 void
76
80 void
82
87 void
89
94 void
96
101 void
103
109 getMfIndexSpace() const;
110
117
124
132
144 virtual void
146 const RealVect& a_probLo,
147 const Real a_finestDx,
148 const int a_nCellMax,
149 const int a_maxGhostEB,
150 const int a_maxCoarsen = -1);
151
152protected:
156 constexpr static Real s_thresh = 1.E-15;
157
162
167
172
177
182
187
192
197
202
210 void
213 const RealVect& a_probLo,
214 const Real a_finestDx);
215
223 void
226 const RealVect& a_probLo,
227 const Real a_finestDx);
228};
229
230#include <CD_NamespaceFooter.H>
231
232#endif
Dielectric class.
Declaration of an electrode class.
Multi-fluid index space.
Declaration of an axis-aligned box in space.
Abstract base class for geometries.
Definition CD_ComputationalGeometry.H:37
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.
Definition CD_ComputationalGeometry.cpp:151
const RefCountedPtr< BaseIF > & getGasImplicitFunction() const
Get the implicit function used to generate the gas-phase EBIS.
Definition CD_ComputationalGeometry.cpp:87
const RefCountedPtr< BaseIF > & getImplicitFunction(const phase::which_phase a_phase) const
Get implicit function for the specified phase.
Definition CD_ComputationalGeometry.cpp:103
const Vector< Electrode > & getElectrodes() const
Get electrodes.
Definition CD_ComputationalGeometry.cpp:79
void useScanShop(const ProblemDomain &a_beginDomain)
Calls for ComputationalGeometry to use ScanShop rather than Chombo's default geometry generation tool...
Definition CD_ComputationalGeometry.cpp:50
void useChomboShop()
Calls for ComputationalGeometry to use Chombo's geometry generation tool.
Definition CD_ComputationalGeometry.cpp:61
Real m_eps0
Background permittivity.
Definition CD_ComputationalGeometry.H:166
ProblemDomain m_scanDomain
Grid level where we begin using ScanShop.
Definition CD_ComputationalGeometry.H:176
void setElectrodes(const Vector< Electrode > &a_electrodes)
Set electrodes.
Definition CD_ComputationalGeometry.cpp:135
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.
Definition CD_ComputationalGeometry.cpp:232
virtual ~ComputationalGeometry()
Destructor.
Definition CD_ComputationalGeometry.cpp:44
Vector< Electrode > m_electrodes
List of electrodes.
Definition CD_ComputationalGeometry.H:191
bool m_useScanShop
True if we use the chombo-discharge geometry generation utility.
Definition CD_ComputationalGeometry.H:171
int m_maxGhostEB
Maximum number of ghost cells that we will ever need.
Definition CD_ComputationalGeometry.H:181
void setDielectrics(const Vector< Dielectric > &a_dielectrics)
Set dielectrics.
Definition CD_ComputationalGeometry.cpp:127
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.
Definition CD_ComputationalGeometry.cpp:191
const RefCountedPtr< MultiFluidIndexSpace > & getMfIndexSpace() const
Get the multifluid index space.
Definition CD_ComputationalGeometry.cpp:119
RefCountedPtr< MultiFluidIndexSpace > m_multifluidIndexSpace
Multifluid index spaces.
Definition CD_ComputationalGeometry.H:161
Vector< Dielectric > m_dielectrics
List of dielectrics.
Definition CD_ComputationalGeometry.H:186
Real getGasPermittivity() const
Get the background gas permittivity.
Definition CD_ComputationalGeometry.cpp:111
const Vector< Dielectric > & getDielectrics() const
Get dielectrics.
Definition CD_ComputationalGeometry.cpp:71
ComputationalGeometry()
Constructor. Sets a blank geometry.
Definition CD_ComputationalGeometry.cpp:30
const RefCountedPtr< BaseIF > & getSolidImplicitFunction() const
Get the implicit function used to generate the solid-phase EBIS.
Definition CD_ComputationalGeometry.cpp:95
static constexpr Real s_thresh
Threshold for Vof computation.
Definition CD_ComputationalGeometry.H:156
RefCountedPtr< BaseIF > m_implicitFunctionGas
The gas-phase implicit function (i.e. outside electrodes and dielectrics).
Definition CD_ComputationalGeometry.H:196
RefCountedPtr< BaseIF > m_implicitFunctionSolid
The solid-phase implicit function (i.e. the inside of the dielectrics).
Definition CD_ComputationalGeometry.H:201
void setGasPermittivity(const Real a_eps0)
Set the background permittivity.
Definition CD_ComputationalGeometry.cpp:143
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
which_phase
Enumeration of supported phases.
Definition CD_MultiFluidIndexSpace.H:38