20#include <ParticleData.H>
29#include <CD_NamespaceHeader.H>
205 template <
class P,
class Ret, Ret (P::*MemberFunc)() const>
355 const int a_level)
const noexcept override;
552 int m_numSamplingPackets;
661 template <
class P,
class Ret, Ret (P::*MemberFunc)() const>
759 const int a_level)
const noexcept;
762#include <CD_NamespaceFooter.H>
CoarseFineDeposition
Coarse-fine deposition types (see CD_EBAMRParticleMesh for how these are handled).
Definition CD_CoarseFineDeposition.H:26
DepositionType
Deposition types.
Definition CD_DepositionType.H:23
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 tranfer equation solver using Monte-Carlo simulation.
Definition CD_McPhoto.H:39
void depositNonConservative(EBAMRIVData &a_depositionNC, const EBAMRCellData &a_depositionKappaC) const noexcept
Make the "non-conservative" kappa deposition.
Definition CD_McPhoto.cpp:1299
bool m_plotDomainPhotons
Check if m_ebPhotons should be plotted.
Definition CD_McPhoto.H:537
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:622
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:492
ParticleContainer< Photon > m_sourcePhotons
This is a particle container that can be used to add Photons directly.
Definition CD_McPhoto.H:627
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
virtual void preRegrid(const int a_base, const int a_oldFinestLevel) override
preRegrid operations
Definition CD_McPhoto.cpp:549
SourceType m_sourceType
Source type.
Definition CD_McPhoto.H:572
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:975
bool m_blendConservation
Flag for blending the deposition clouds with the nonconservative divergence.
Definition CD_McPhoto.H:502
virtual void computeNumPhysicalPhotons(EBAMRCellData &a_numPhysPhotonsTotal, EBAMRCellData &a_numPhysPhotonsPerPacket, 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
virtual ParticleContainer< Photon > & getDomainPhotons()
Get domain photons, i.e. photons absorbed on domain edges/faces.
Definition CD_McPhoto.cpp:1925
WhichContainer
Enum class for identifying various containers. Only used for interface reasons.
Definition CD_McPhoto.H:45
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:1914
virtual ~McPhoto()
Destructor.
Definition CD_McPhoto.cpp:44
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:1131
bool m_depositNumber
If true, the NUMBER of of Photons will be deposited in each cell.
Definition CD_McPhoto.H:507
DepositionType m_deposition
Deposition type.
Definition CD_McPhoto.H:582
size_t m_maxPhotonsGeneratedPerCell
Number of computational photons generated per cell.
Definition CD_McPhoto.H:547
bool m_dirtySampling
Dirty sampling or not.
Definition CD_McPhoto.H:542
void parseTransparentBoundaries()
Turn on/off transparent boundaries.
Definition CD_McPhoto.cpp:196
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:497
void parseSourceType()
Parse source term type.
Definition CD_McPhoto.cpp:301
ParticleContainer< Photon > m_bulkPhotons
Photons absorbed in the volume.
Definition CD_McPhoto.H:612
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:562
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:484
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:1567
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:602
bool m_plotPhotons
Check if m_photons should be plotted.
Definition CD_McPhoto.H:517
virtual void remap()
Remap computational particles. This remaps m_photons.
Definition CD_McPhoto.cpp:1734
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:512
McPhoto()
Constructor.
Definition CD_McPhoto.cpp:33
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:1969
bool m_plotEBPhotons
Check if m_ebPhotons should be plotted.
Definition CD_McPhoto.H:532
virtual Vector< std::string > getPlotVariableNames() const override
Write checkpoint data into handle.
Definition CD_McPhoto.cpp:805
virtual ParticleContainer< Photon > & getPhotons()
Get m_photons.
Definition CD_McPhoto.cpp:1892
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:1936
virtual ParticleContainer< Photon > & getBulkPhotons()
Get bulk photons, i.e. photons absorbed on the mesh.
Definition CD_McPhoto.cpp:1903
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:1315
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:617
virtual void parseRuntimeOptions() override
Parse runtime options.
Definition CD_McPhoto.cpp:175
CoarseFineDeposition m_coarseFineDeposition
Coarse-fine deposition strategy.
Definition CD_McPhoto.H:587
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:462
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:471
ParticleContainer< Photon > m_photons
All particles.
Definition CD_McPhoto.H:607
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:67
virtual void writePlotFile() override
Write plot file.
Definition CD_McPhoto.cpp:758
virtual void depositPhotons()
Deposit photons on the mesh.
Definition CD_McPhoto.cpp:1288
void parseDeposition()
Parse deposition method.
Definition CD_McPhoto.cpp:357
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:1408
PhotonGeneration m_photoGenerationMethod
Photon generation type.
Definition CD_McPhoto.H:567
virtual void writePlotData(LevelData< EBCellFAB > &a_output, int &a_icomp, const std::string a_outputRealm, const int a_level) const noexcept override
Write plot data.
Definition CD_McPhoto.cpp:1773
McPhoto & operator=(const McPhoto &&a_other)
Disallowed move assignement operator.
Real randomExponential(const Real a_mean) const noexcept
Random exponential trial.
Definition CD_McPhoto.cpp:883
void parsePlotVariables()
Parse plot variables.
Definition CD_McPhoto.cpp:403
int m_seed
RNG seed.
Definition CD_McPhoto.H:557
virtual int getMaxPhotonsPerCell() const noexcept
Get maximum number of photons generated per cell.
Definition CD_McPhoto.cpp:1947
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:1958
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 int countPhotons(const AMRParticles< Photon > &a_photons) const
Count number of photons in particle list.
Definition CD_McPhoto.cpp:1756
EBAMRIVData m_depositionNC
Scratch storage for holding the non-conservative deposition.
Definition CD_McPhoto.H:597
virtual void registerOperators() override
Register operators that this solver needs.
Definition CD_McPhoto.cpp:690
virtual void generateComputationalPhotons(ParticleContainer< Photon > &a_photons, const EBAMRCellData &a_numPhysicalPhotons, const size_t a_maxPhotonsPerCell) const noexcept
Generate computational photons.
Definition CD_McPhoto.cpp:1020
EBAMRCellData m_scratch
Coarse data for interpolation of deposition clouds.
Definition CD_McPhoto.H:592
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:527
bool m_plotBulkPhotons
Check if m_bulkPhotons should be plotted.
Definition CD_McPhoto.H:522
virtual void depositPhotonsNGP(LevelData< EBCellFAB > &a_output, const ParticleContainer< Photon > &a_particles, const int a_level) const noexcept
Do an NGP deposit on a specific grid level. Used for IO.
Definition CD_McPhoto.cpp:1364
Abstract RTE solver class for doing various kinds of radiative transfer equations....
Definition CD_RtSolver.H:30
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25