25#include <CD_NamespaceHeader.H>
106 advance(
const Real a_dt, EBAMRCellData& a_phi,
const EBAMRCellData& a_source,
const bool a_zeroPhi =
false)
override;
158 EBAMRCellData& a_numPhysPhotonsPacket,
159 const EBAMRCellData& a_source,
160 const Real a_dt)
const noexcept;
170 const EBAMRCellData& a_numPhysPhotons,
171 const size_t a_maxPhotonsPerCell)
const noexcept;
185 EBAMRCellData& a_phi,
186 const EBAMRCellData& a_numPhysicalPhotons,
187 const size_t a_maxPhotonsPerCell)
const noexcept;
262 preRegrid(
const int a_lmin,
const int a_oldFinestLevel)
override;
277 regrid(
const int a_lmin,
const int a_oldFinestLevel,
const int a_newFinestLevel)
override;
301 computeDomainFlux(EBAMRIFData& a_domainFlux,
const EBAMRCellData& a_phi)
override;
310 computeFlux(EBAMRCellData& a_flux,
const EBAMRCellData& a_phi)
override;
319 computeDensity(EBAMRCellData& a_isotropic,
const EBAMRCellData& a_phi)
override;
358 const std::string& a_outputRealm,
359 const int a_level)
const noexcept override;
368 writeCheckpointLevel(HDF5Handle& a_handle,
const int a_level)
const override;
378 readCheckpointLevel(HDF5Handle& a_handle,
const int a_level)
override;
385 virtual Vector<std::string>
463 computeLoads(Vector<
long long>& a_loads, const DisjointBoxLayout& a_dbl, const
int a_level) const noexcept override;
651 drawPhotons(
const Real a_source,
const Real a_volume,
const Real a_dt)
const noexcept;
660 domainBcMap(
const int a_dir,
const Side::LoHiSide a_side);
686 depositNonConservative(EBAMRIVData& a_depositionNC,
const EBAMRCellData& a_depositionKappaC)
const noexcept;
696 EBAMRIVData& a_massDifference,
697 const EBAMRIVData& a_depositionNC)
const noexcept;
771 const int a_level)
const noexcept;
774#include <CD_NamespaceFooter.H>
CoarseFineDeposition
Coarse-fine deposition types (see CD_EBAMRParticleMesh for how these are handled).
Definition CD_CoarseFineDeposition.H:28
DepositionType
Deposition types.
Definition CD_DepositionType.H:24
Single-patch ParticleSoA deposit/interpolate onto an embedded-boundary mesh.
Declaration of cut-cell deposition strategies.
IrregularDeposition
How a deposition scheme treats the cut cells.
Definition CD_IrregularDeposition.H:36
Declaration of an AMR-hierarchy container that owns per-patch ParticleSoA leaves.
SoA payload for Monte Carlo radiative-transfer photons.
Abstract parent class for various radiative transfer solvers.
Radiative transfer equation solver using Monte-Carlo simulation.
Definition CD_McPhoto.H:37
void depositNonConservative(EBAMRIVData &a_depositionNC, const EBAMRCellData &a_depositionKappaC) const noexcept
Make the "non-conservative" kappa deposition.
Definition CD_McPhoto.cpp:1374
bool m_plotDomainPhotons
Check if m_ebPhotons should be plotted.
Definition CD_McPhoto.H:548
ParticleContainer< Photon > m_domainPhotons
This is a particle container for Photons that crossed boundaries. It is filled during the advance ste...
Definition CD_McPhoto.H:635
virtual int getNumberOfPlotVariables() const override
Get number of output variables.
Definition CD_McPhoto.cpp:837
bool m_transparentEB
Turn on/off transparent boundaries.
Definition CD_McPhoto.H:502
ParticleContainer< Photon > m_sourcePhotons
This is a particle container that can be used to add Photons directly.
Definition CD_McPhoto.H:640
virtual void computeFlux(EBAMRCellData &a_flux, const EBAMRCellData &a_phi) override
Compute the flux.
Definition CD_McPhoto.cpp:729
void parseInstantaneous()
Parse whether instantaneous propagation or not.
Definition CD_McPhoto.cpp:246
void parseIntersectionEB()
Parse EB intersection algorithm.
Definition CD_McPhoto.cpp:340
SourceType m_sourceType
Source type.
Definition CD_McPhoto.H:584
IntersectionEB m_intersectionEB
Intersection e b.
Definition CD_McPhoto.H:590
virtual void regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) override
Regrid function for this class.
Definition CD_McPhoto.cpp:577
size_t drawPhotons(const Real a_source, const Real a_volume, const Real a_dt) const noexcept
Draw photons in a cell and volume.
Definition CD_McPhoto.cpp:977
virtual ParticleContainer< Photon > & getDomainPhotons()
Get domain photons, i.e. photons absorbed on domain edges/faces.
Definition CD_McPhoto.cpp:2021
virtual void writePlotData(LevelData< EBCellFAB > &a_output, int &a_comp, const std::string &a_outputRealm, const int a_level) const noexcept override
Write plot data.
Definition CD_McPhoto.cpp:1869
WhichContainer
Enum class for identifying various containers. Only used for interface reasons.
Definition CD_McPhoto.H:43
virtual void computeDensity(EBAMRCellData &a_isotropic, const EBAMRCellData &a_phi) override
Compute isotropic radiative density from mesh solution.
Definition CD_McPhoto.cpp:743
virtual ParticleContainer< Photon > & getEbPhotons()
Get eb Photons, i.e. photons absorbed on the EB.
Definition CD_McPhoto.cpp:2010
void depositHybridDivergence(EBAMRCellData &a_phi) const noexcept
Shared hybrid-divergence tail for the deposition routines.
Definition CD_McPhoto.cpp:1333
virtual ~McPhoto()
Destructor.
bool m_depositNumber
If true, the NUMBER of of Photons will be deposited in each cell.
Definition CD_McPhoto.H:518
IrregularDeposition m_irregularDeposition
How the cut cells are treated when depositing.
Definition CD_McPhoto.H:513
DepositionType m_deposition
Deposition type.
Definition CD_McPhoto.H:595
size_t m_maxPhotonsGeneratedPerCell
Number of computational photons generated per cell.
Definition CD_McPhoto.H:558
bool m_dirtySampling
Dirty sampling or not.
Definition CD_McPhoto.H:553
void parseTransparentBoundaries()
Turn on/off transparent boundaries.
Definition CD_McPhoto.cpp:199
virtual void computeNumPhysicalPhotons(EBAMRCellData &a_numPhysPhotonsTotal, EBAMRCellData &a_numPhysPhotonsPacket, const EBAMRCellData &a_source, const Real a_dt) const noexcept
Compute the number of physical photons in each grid cell.
Definition CD_McPhoto.cpp:890
void parseDirtySampling()
Parse dirty sampling for photons.
Definition CD_McPhoto.cpp:212
virtual void computeBoundaryFlux(EBAMRIVData &a_ebFlux, const EBAMRCellData &a_phi) override
Compute the boundary flux.
Definition CD_McPhoto.cpp:707
bool m_instantaneous
Instantaneous transport or not.
Definition CD_McPhoto.H:507
void parseSourceType()
Parse source term type.
Definition CD_McPhoto.cpp:310
ParticleContainer< Photon > m_bulkPhotons
Photons absorbed in the volume.
Definition CD_McPhoto.H:625
void parsePhotoGeneration()
Parse photogeneration type.
Definition CD_McPhoto.cpp:286
Real m_bisectStep
Bisection step for when we use the bisection intersection algorithm.
Definition CD_McPhoto.H:574
virtual void deallocate() override
Deallocate internal storage.
Definition CD_McPhoto.cpp:562
void parsePseudoPhotons()
Parse pseudophotons, i.e. parse how many photons can be generated per cell.
Definition CD_McPhoto.cpp:259
IntersectionEB
An enum for switching between various types of EB intersection algorithms when intersecting photons w...
Definition CD_McPhoto.H:494
virtual void computeDomainFlux(EBAMRIFData &a_domainFlux, const EBAMRCellData &a_phi) override
Compute the domain flux.
Definition CD_McPhoto.cpp:718
virtual void advancePhotonsTransient(ParticleContainer< Photon > &a_bulkPhotons, ParticleContainer< Photon > &a_ebPhotons, ParticleContainer< Photon > &a_domainPhotons, ParticleContainer< Photon > &a_photons, const Real a_dt)
Move photons and absorb them on various objects.
Definition CD_McPhoto.cpp:1651
McPhoto(const McPhoto &a_other)
Disallowed copy constructor.
EBAMRIVData m_massDiff
Scratch storage for holding the mass difference when using hybrid deposition.
Definition CD_McPhoto.H:615
bool m_plotPhotons
Check if m_photons should be plotted.
Definition CD_McPhoto.H:528
virtual void remap()
Remap computational particles. This remaps m_photons.
Definition CD_McPhoto.cpp:1836
virtual void allocate() override
Allocate internal storage.
Definition CD_McPhoto.cpp:522
bool m_plotNumbers
Switch for plotting numbers or densities.
Definition CD_McPhoto.H:523
McPhoto()
Constructor.
Definition CD_McPhoto.cpp:34
virtual void computeLoads(Vector< long long > &a_loads, const DisjointBoxLayout &a_dbl, const int a_level) const noexcept override
Get computational loads for a specific grid level. This computes the number of photons in the bulk da...
Definition CD_McPhoto.cpp:2065
virtual void preRegrid(const int a_lmin, const int a_oldFinestLevel) override
preRegrid operations
Definition CD_McPhoto.cpp:545
bool m_plotEBPhotons
Check if m_ebPhotons should be plotted.
Definition CD_McPhoto.H:543
virtual Vector< std::string > getPlotVariableNames() const override
Get output plot names.
Definition CD_McPhoto.cpp:802
virtual ParticleContainer< Photon > & getPhotons()
Get m_photons.
Definition CD_McPhoto.cpp:1988
static int domainBcMap(const int a_dir, const Side::LoHiSide a_side)
Mapping function for domain boundary conditions.
Definition CD_McPhoto.cpp:872
virtual ParticleContainer< Photon > & getSourcePhotons()
Get source photons.
Definition CD_McPhoto.cpp:2032
virtual ParticleContainer< Photon > & getBulkPhotons()
Get bulk photons, i.e. photons absorbed on the mesh.
Definition CD_McPhoto.cpp:1999
void depositHybrid(EBAMRCellData &a_depositionH, EBAMRIVData &a_massDifference, const EBAMRIVData &a_depositionNC) const noexcept
Make the hybrid deposition. Also compute the mass difference.
Definition CD_McPhoto.cpp:1390
virtual void clear()
Clear data holder.
Definition CD_McPhoto.cpp:500
virtual void parseOptions() override
Parse class options.
Definition CD_McPhoto.cpp:157
ParticleContainer< Photon > m_ebPhotons
This is a particle container for Photons that crossed EBs. It is filled during the advance step.
Definition CD_McPhoto.H:630
virtual void parseRuntimeOptions() override
Parse runtime options.
Definition CD_McPhoto.cpp:178
CoarseFineDeposition m_coarseFineDeposition
Coarse-fine deposition strategy.
Definition CD_McPhoto.H:600
virtual void dirtySamplePhotons(ParticleContainer< NoPayload > &a_photons, EBAMRCellData &a_phi, const EBAMRCellData &a_numPhysicalPhotons, const size_t a_maxPhotonsPerCell) const noexcept
Dirty-sampling method for photons.
Definition CD_McPhoto.cpp:1145
void parseDivergenceComputation()
Parse the divergence computation, i.e. if we blend with non-conservative divergence or not.
Definition CD_McPhoto.cpp:227
PhotonGeneration
Enum for interpreting how photons are generated when using fluid codes.
Definition CD_McPhoto.H:470
virtual void sortPhotonsByPatch(const WhichContainer &a_which)
Sort container by patch.
Definition CD_McPhoto.cpp:645
SourceType
Enum for adding flexibility in what the fluid source term contains.
Definition CD_McPhoto.H:479
ParticleContainer< Photon > m_photons
All particles.
Definition CD_McPhoto.H:620
virtual void writePlotFile() override
Write plot file.
Definition CD_McPhoto.cpp:755
virtual void depositPhotons()
Deposit photons on the mesh.
Definition CD_McPhoto.cpp:1303
void parseDeposition()
Parse deposition method.
Definition CD_McPhoto.cpp:366
int m_numSamplingPackets
Num sampling packets.
Definition CD_McPhoto.H:564
McPhoto(const McPhoto &&a_other)
Disallowed move constructor.
virtual void advancePhotonsInstantaneous(ParticleContainer< Photon > &a_bulkPhotons, ParticleContainer< Photon > &a_ebPhotons, ParticleContainer< Photon > &a_domainPhotons, ParticleContainer< Photon > &a_photons)
Move photons and absorb them on various objects.
Definition CD_McPhoto.cpp:1482
PhotonGeneration m_photoGenerationMethod
Photon generation type.
Definition CD_McPhoto.H:579
McPhoto & operator=(const McPhoto &&a_other)
Disallowed move assignment operator.
virtual int countPhotons(const ParticleContainer< Photon > &a_photons) const
Count number of photons in particle list.
Definition CD_McPhoto.cpp:1858
void parsePlotVariables()
Parse plot variables.
Definition CD_McPhoto.cpp:412
int m_seed
RNG seed.
Definition CD_McPhoto.H:569
virtual int getMaxPhotonsPerCell() const noexcept
Get maximum number of photons generated per cell.
Definition CD_McPhoto.cpp:2043
McPhoto & operator=(const McPhoto &a_other)
Disallowed assignment operator.
virtual void sortPhotonsByCell(const WhichContainer &a_which)
Sort container by cell.
Definition CD_McPhoto.cpp:603
virtual int getNumSamplingPackets() const noexcept
Get maximum number of photons generated per cell.
Definition CD_McPhoto.cpp:2054
virtual bool advance(const Real a_dt, EBAMRCellData &a_phi, const EBAMRCellData &a_source, const bool a_zeroPhi=false) override
Advance RTE and deposit photon particles on the mesh.
Definition CD_McPhoto.cpp:47
virtual void generateComputationalPhotons(ParticleContainer< Photon > &a_photons, const EBAMRCellData &a_numPhysPhotons, const size_t a_maxPhotonsPerCell) const noexcept
Generate computational photons.
Definition CD_McPhoto.cpp:1019
virtual void depositPhotonsNGP(LevelData< EBCellFAB > &a_output, const ParticleContainer< Photon > &a_photons, const int a_level) const noexcept
Do an NGP deposit on a specific grid level. Used for IO.
Definition CD_McPhoto.cpp:1438
EBAMRIVData m_depositionNC
Scratch storage for holding the non-conservative deposition.
Definition CD_McPhoto.H:610
virtual void registerOperators() override
Register operators that this solver needs.
Definition CD_McPhoto.cpp:687
static Real randomExponential(const Real a_rate) noexcept
Random exponential trial.
Definition CD_McPhoto.cpp:880
EBAMRCellData m_scratch
Coarse data for interpolation of deposition clouds.
Definition CD_McPhoto.H:605
virtual bool isInstantaneous()
Instantaneous solver or not.
Definition CD_McPhoto.cpp:151
bool m_plotSourcePhotons
Check if source_bulkPhotons should be plotted.
Definition CD_McPhoto.H:538
bool m_plotBulkPhotons
Check if m_bulkPhotons should be plotted.
Definition CD_McPhoto.H:533
AMR-hierarchy container of computational particles, stored per patch in Struct-of-Arrays form.
Definition CD_ParticleContainer.H:123
Abstract RTE solver class for doing various kinds of radiative transfer equations....
Definition CD_RtSolver.H:31