21#include <ParticleData.H>
30#include <CD_NamespaceHeader.H>
214 template <
class P,
class Ret, Ret (P::*MemberFunc)() const>
364 const int a_level)
const noexcept override;
677 template <
class P,
class Ret, Ret (P::*MemberFunc)() const>
775 const int a_level)
const noexcept;
778#include <CD_NamespaceFooter.H>
CoarseFineDeposition
Coarse-fine deposition types (see CD_EBAMRParticleMesh for how these are handled).
Definition CD_CoarseFineDeposition.H:27
DepositionType
Deposition types.
Definition CD_DepositionType.H:24
Declaration of a class for handling particle-mesh interpolation and deposition.
Implementation of CD_McPhoto.H.
Declaration of a class for holding particles on an AMR hierarchy.
Declaration of a photon class for particle methods.
Declaration of a computational point particle.
Abstract parent class for various radiative transfer solvers.
Radiative transfer equation solver using Monte-Carlo simulation.
Definition CD_McPhoto.H:40
void depositNonConservative(EBAMRIVData &a_depositionNC, const EBAMRCellData &a_depositionKappaC) const noexcept
Make the "non-conservative" kappa deposition.
Definition CD_McPhoto.cpp:1307
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:840
bool m_transparentEB
Turn on/off transparent boundaries.
Definition CD_McPhoto.H:503
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:732
void parseInstantaneous()
Parse whether instantaneous propagation or not.
Definition CD_McPhoto.cpp:237
void parseIntersectionEB()
Parse EB intersection algorithm.
Definition CD_McPhoto.cpp:331
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:581
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:980
bool m_blendConservation
Flag for blending the deposition clouds with the nonconservative divergence.
Definition CD_McPhoto.H:513
virtual ParticleContainer< Photon > & getDomainPhotons()
Get domain photons, i.e. photons absorbed on domain edges/faces.
Definition CD_McPhoto.cpp:1934
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:1782
WhichContainer
Enum class for identifying various containers. Only used for interface reasons.
Definition CD_McPhoto.H:46
virtual void computeDensity(EBAMRCellData &a_isotropic, const EBAMRCellData &a_phi) override
Compute isotropic radiative density from mesh solution.
Definition CD_McPhoto.cpp:746
virtual ParticleContainer< Photon > & getEbPhotons()
Get eb Photons, i.e. photons absorbed on the EB.
Definition CD_McPhoto.cpp:1923
virtual ~McPhoto()
Destructor.
virtual void dirtySamplePhotons(ParticleContainer< PointParticle > &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:1136
bool m_depositNumber
If true, the NUMBER of of Photons will be deposited in each cell.
Definition CD_McPhoto.H:518
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:196
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:893
void parseDirtySampling()
Parse dirty sampling for photons.
Definition CD_McPhoto.cpp:209
virtual void computeBoundaryFlux(EBAMRIVData &a_ebFlux, const EBAMRCellData &a_phi) override
Compute the boundary flux.
Definition CD_McPhoto.cpp:710
bool m_instantaneous
Instantaneous transport or not.
Definition CD_McPhoto.H:508
void parseSourceType()
Parse source term type.
Definition CD_McPhoto.cpp:301
ParticleContainer< Photon > m_bulkPhotons
Photons absorbed in the volume.
Definition CD_McPhoto.H:625
void parsePhotoGeneration()
Parse photogeneration type.
Definition CD_McPhoto.cpp:277
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:566
void parsePseudoPhotons()
Parse pseudophotons, i.e. parse how many photons can be generated per cell.
Definition CD_McPhoto.cpp:250
IntersectionEB
An enum for switching between various types of EB intersection algorithms when intersecting photons w...
Definition CD_McPhoto.H:495
virtual void computeDomainFlux(EBAMRIFData &a_domainFlux, const EBAMRCellData &a_phi) override
Compute the domain flux.
Definition CD_McPhoto.cpp:721
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:1576
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:1743
virtual void allocate() override
Allocate internal storage.
Definition CD_McPhoto.cpp:526
bool m_plotNumbers
Switch for plotting numbers or densities.
Definition CD_McPhoto.H:523
McPhoto()
Constructor.
Definition CD_McPhoto.cpp:35
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:1978
virtual void preRegrid(const int a_lmin, const int a_oldFinestLevel) override
preRegrid operations
Definition CD_McPhoto.cpp:549
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:805
virtual ParticleContainer< Photon > & getPhotons()
Get m_photons.
Definition CD_McPhoto.cpp:1901
static int domainBcMap(const int a_dir, const Side::LoHiSide a_side)
Mapping function for domain boundary conditions.
Definition CD_McPhoto.cpp:875
virtual ParticleContainer< Photon > & getSourcePhotons()
Get source photons.
Definition CD_McPhoto.cpp:1945
virtual ParticleContainer< Photon > & getBulkPhotons()
Get bulk photons, i.e. photons absorbed on the mesh.
Definition CD_McPhoto.cpp:1912
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:1323
virtual void clear()
Clear data holder.
Definition CD_McPhoto.cpp:491
virtual void parseOptions() override
Parse class options.
Definition CD_McPhoto.cpp:154
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:175
CoarseFineDeposition m_coarseFineDeposition
Coarse-fine deposition strategy.
Definition CD_McPhoto.H:600
void parseDivergenceComputation()
Parse the divergence computation, i.e. if we blend with non-conservative divergence or not.
Definition CD_McPhoto.cpp:224
PhotonGeneration
Enum for interpreting how photons are generated when using fluid codes.
Definition CD_McPhoto.H:473
virtual void sortPhotonsByPatch(const WhichContainer &a_which)
Sort container by patch.
Definition CD_McPhoto.cpp:648
SourceType
Enum for adding flexibility in what the fluid source term contains.
Definition CD_McPhoto.H:482
ParticleContainer< Photon > m_photons
All particles.
Definition CD_McPhoto.H:620
void depositKappaConservative(EBAMRCellData &a_phi, ParticleContainer< P > &a_particles, const DepositionType a_deposition, const CoarseFineDeposition a_coarseFineDeposition) const noexcept
This computes the "conservative" deposition, multiplied by kappa.
Definition CD_McPhotoImplem.H:68
virtual void writePlotFile() override
Write plot file.
Definition CD_McPhoto.cpp:758
virtual void depositPhotons()
Deposit photons on the mesh.
Definition CD_McPhoto.cpp:1296
void parseDeposition()
Parse deposition method.
Definition CD_McPhoto.cpp:357
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:1415
PhotonGeneration m_photoGenerationMethod
Photon generation type.
Definition CD_McPhoto.H:579
McPhoto & operator=(const McPhoto &&a_other)
Disallowed move assignment operator.
void parsePlotVariables()
Parse plot variables.
Definition CD_McPhoto.cpp:403
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:1956
McPhoto & operator=(const McPhoto &a_other)
Disallowed assignment operator.
virtual void sortPhotonsByCell(const WhichContainer &a_which)
Sort container by cell.
Definition CD_McPhoto.cpp:606
virtual int getNumSamplingPackets() const noexcept
Get maximum number of photons generated per cell.
Definition CD_McPhoto.cpp:1967
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:48
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:1022
virtual int countPhotons(const AMRParticles< Photon > &a_photons) const
Count number of photons in particle list.
Definition CD_McPhoto.cpp:1765
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:1371
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:690
static Real randomExponential(const Real a_rate) noexcept
Random exponential trial.
Definition CD_McPhoto.cpp:883
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:148
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
Abstract RTE solver class for doing various kinds of radiative transfer equations....
Definition CD_RtSolver.H:31
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26