24#include <CD_NamespaceHeader.H>
105 advance(
const Real a_dt, EBAMRCellData& a_phi,
const EBAMRCellData& a_source,
const bool a_zeroPhi =
false)
override;
157 EBAMRCellData& a_numPhysPhotonsPacket,
158 const EBAMRCellData& a_source,
159 const Real a_dt)
const noexcept;
169 const EBAMRCellData& a_numPhysPhotons,
170 const size_t a_maxPhotonsPerCell)
const noexcept;
184 EBAMRCellData& a_phi,
185 const EBAMRCellData& a_numPhysicalPhotons,
186 const size_t a_maxPhotonsPerCell)
const noexcept;
261 preRegrid(
const int a_lmin,
const int a_oldFinestLevel)
override;
276 regrid(
const int a_lmin,
const int a_oldFinestLevel,
const int a_newFinestLevel)
override;
300 computeDomainFlux(EBAMRIFData& a_domainFlux,
const EBAMRCellData& a_phi)
override;
309 computeFlux(EBAMRCellData& a_flux,
const EBAMRCellData& a_phi)
override;
318 computeDensity(EBAMRCellData& a_isotropic,
const EBAMRCellData& a_phi)
override;
357 const std::string& a_outputRealm,
358 const int a_level)
const noexcept override;
367 writeCheckpointLevel(HDF5Handle& a_handle,
const int a_level)
const override;
377 readCheckpointLevel(HDF5Handle& a_handle,
const int a_level)
override;
384 virtual Vector<std::string>
462 computeLoads(Vector<
long long>& a_loads, const DisjointBoxLayout& a_dbl, const
int a_level) const noexcept override;
649 drawPhotons(
const Real a_source,
const Real a_volume,
const Real a_dt)
const noexcept;
658 domainBcMap(
const int a_dir,
const Side::LoHiSide a_side);
684 depositNonConservative(EBAMRIVData& a_depositionNC,
const EBAMRCellData& a_depositionKappaC)
const noexcept;
694 EBAMRIVData& a_massDifference,
695 const EBAMRIVData& a_depositionNC)
const noexcept;
769 const int a_level)
const noexcept;
772#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 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:36
void depositNonConservative(EBAMRIVData &a_depositionNC, const EBAMRCellData &a_depositionKappaC) const noexcept
Make the "non-conservative" kappa deposition.
Definition CD_McPhoto.cpp:1366
bool m_plotDomainPhotons
Check if m_ebPhotons should be plotted.
Definition CD_McPhoto.H:546
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:633
virtual int getNumberOfPlotVariables() const override
Get number of output variables.
Definition CD_McPhoto.cpp:831
bool m_transparentEB
Turn on/off transparent boundaries.
Definition CD_McPhoto.H:501
ParticleContainer< Photon > m_sourcePhotons
This is a particle container that can be used to add Photons directly.
Definition CD_McPhoto.H:638
virtual void computeFlux(EBAMRCellData &a_flux, const EBAMRCellData &a_phi) override
Compute the flux.
Definition CD_McPhoto.cpp:723
void parseInstantaneous()
Parse whether instantaneous propagation or not.
Definition CD_McPhoto.cpp:240
void parseIntersectionEB()
Parse EB intersection algorithm.
Definition CD_McPhoto.cpp:334
SourceType m_sourceType
Source type.
Definition CD_McPhoto.H:582
IntersectionEB m_intersectionEB
Intersection e b.
Definition CD_McPhoto.H:588
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:571
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:971
bool m_blendConservation
Flag for blending the deposition clouds with the nonconservative divergence.
Definition CD_McPhoto.H:511
virtual ParticleContainer< Photon > & getDomainPhotons()
Get domain photons, i.e. photons absorbed on domain edges/faces.
Definition CD_McPhoto.cpp:2013
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:1861
WhichContainer
Enum class for identifying various containers. Only used for interface reasons.
Definition CD_McPhoto.H:42
virtual void computeDensity(EBAMRCellData &a_isotropic, const EBAMRCellData &a_phi) override
Compute isotropic radiative density from mesh solution.
Definition CD_McPhoto.cpp:737
virtual ParticleContainer< Photon > & getEbPhotons()
Get eb Photons, i.e. photons absorbed on the EB.
Definition CD_McPhoto.cpp:2002
void depositHybridDivergence(EBAMRCellData &a_phi) const noexcept
Shared hybrid-divergence tail for the deposition routines.
Definition CD_McPhoto.cpp:1326
virtual ~McPhoto()
Destructor.
bool m_depositNumber
If true, the NUMBER of of Photons will be deposited in each cell.
Definition CD_McPhoto.H:516
DepositionType m_deposition
Deposition type.
Definition CD_McPhoto.H:593
size_t m_maxPhotonsGeneratedPerCell
Number of computational photons generated per cell.
Definition CD_McPhoto.H:556
bool m_dirtySampling
Dirty sampling or not.
Definition CD_McPhoto.H:551
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:884
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:701
bool m_instantaneous
Instantaneous transport or not.
Definition CD_McPhoto.H:506
void parseSourceType()
Parse source term type.
Definition CD_McPhoto.cpp:304
ParticleContainer< Photon > m_bulkPhotons
Photons absorbed in the volume.
Definition CD_McPhoto.H:623
void parsePhotoGeneration()
Parse photogeneration type.
Definition CD_McPhoto.cpp:280
Real m_bisectStep
Bisection step for when we use the bisection intersection algorithm.
Definition CD_McPhoto.H:572
virtual void deallocate() override
Deallocate internal storage.
Definition CD_McPhoto.cpp:556
void parsePseudoPhotons()
Parse pseudophotons, i.e. parse how many photons can be generated per cell.
Definition CD_McPhoto.cpp:253
IntersectionEB
An enum for switching between various types of EB intersection algorithms when intersecting photons w...
Definition CD_McPhoto.H:493
virtual void computeDomainFlux(EBAMRIFData &a_domainFlux, const EBAMRCellData &a_phi) override
Compute the domain flux.
Definition CD_McPhoto.cpp:712
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:1643
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:613
bool m_plotPhotons
Check if m_photons should be plotted.
Definition CD_McPhoto.H:526
virtual void remap()
Remap computational particles. This remaps m_photons.
Definition CD_McPhoto.cpp:1828
virtual void allocate() override
Allocate internal storage.
Definition CD_McPhoto.cpp:516
bool m_plotNumbers
Switch for plotting numbers or densities.
Definition CD_McPhoto.H:521
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:2057
virtual void preRegrid(const int a_lmin, const int a_oldFinestLevel) override
preRegrid operations
Definition CD_McPhoto.cpp:539
bool m_plotEBPhotons
Check if m_ebPhotons should be plotted.
Definition CD_McPhoto.H:541
virtual Vector< std::string > getPlotVariableNames() const override
Get output plot names.
Definition CD_McPhoto.cpp:796
virtual ParticleContainer< Photon > & getPhotons()
Get m_photons.
Definition CD_McPhoto.cpp:1980
static int domainBcMap(const int a_dir, const Side::LoHiSide a_side)
Mapping function for domain boundary conditions.
Definition CD_McPhoto.cpp:866
virtual ParticleContainer< Photon > & getSourcePhotons()
Get source photons.
Definition CD_McPhoto.cpp:2024
virtual ParticleContainer< Photon > & getBulkPhotons()
Get bulk photons, i.e. photons absorbed on the mesh.
Definition CD_McPhoto.cpp:1991
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:1382
virtual void clear()
Clear data holder.
Definition CD_McPhoto.cpp:494
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:628
virtual void parseRuntimeOptions() override
Parse runtime options.
Definition CD_McPhoto.cpp:178
CoarseFineDeposition m_coarseFineDeposition
Coarse-fine deposition strategy.
Definition CD_McPhoto.H:598
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:1139
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:469
virtual void sortPhotonsByPatch(const WhichContainer &a_which)
Sort container by patch.
Definition CD_McPhoto.cpp:639
SourceType
Enum for adding flexibility in what the fluid source term contains.
Definition CD_McPhoto.H:478
ParticleContainer< Photon > m_photons
All particles.
Definition CD_McPhoto.H:618
virtual void writePlotFile() override
Write plot file.
Definition CD_McPhoto.cpp:749
virtual void depositPhotons()
Deposit photons on the mesh.
Definition CD_McPhoto.cpp:1296
void parseDeposition()
Parse deposition method.
Definition CD_McPhoto.cpp:360
int m_numSamplingPackets
Num sampling packets.
Definition CD_McPhoto.H:562
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:1474
PhotonGeneration m_photoGenerationMethod
Photon generation type.
Definition CD_McPhoto.H:577
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:1850
void parsePlotVariables()
Parse plot variables.
Definition CD_McPhoto.cpp:406
int m_seed
RNG seed.
Definition CD_McPhoto.H:567
virtual int getMaxPhotonsPerCell() const noexcept
Get maximum number of photons generated per cell.
Definition CD_McPhoto.cpp:2035
McPhoto & operator=(const McPhoto &a_other)
Disallowed assignment operator.
virtual void sortPhotonsByCell(const WhichContainer &a_which)
Sort container by cell.
Definition CD_McPhoto.cpp:597
virtual int getNumSamplingPackets() const noexcept
Get maximum number of photons generated per cell.
Definition CD_McPhoto.cpp:2046
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:1013
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:1430
EBAMRIVData m_depositionNC
Scratch storage for holding the non-conservative deposition.
Definition CD_McPhoto.H:608
virtual void registerOperators() override
Register operators that this solver needs.
Definition CD_McPhoto.cpp:681
static Real randomExponential(const Real a_rate) noexcept
Random exponential trial.
Definition CD_McPhoto.cpp:874
EBAMRCellData m_scratch
Coarse data for interpolation of deposition clouds.
Definition CD_McPhoto.H:603
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:536
bool m_plotBulkPhotons
Check if m_bulkPhotons should be plotted.
Definition CD_McPhoto.H:531
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