|
|
| McPhoto () |
| | Constructor.
|
| |
|
| McPhoto (const McPhoto &a_other) |
| | Disallowed copy constructor.
|
| |
|
| McPhoto (const McPhoto &&a_other) |
| | Disallowed move constructor.
|
| |
|
McPhoto & | operator= (const McPhoto &a_other) |
| | Disallowed assignment operator.
|
| |
|
McPhoto & | operator= (const McPhoto &&a_other) |
| | Disallowed move assignement operator.
|
| |
|
virtual | ~McPhoto () |
| | Destructor.
|
| |
| 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.
|
| |
|
virtual bool | isInstantaneous () |
| | Instantaneous solver or not.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| virtual void | generateComputationalPhotons (ParticleContainer< Photon > &a_photons, const EBAMRCellData &a_numPhysicalPhotons, const size_t a_maxPhotonsPerCell) const noexcept |
| | Generate computational photons.
|
| |
| 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.
|
| |
|
virtual void | remap () |
| | Remap computational particles. This remaps m_photons.
|
| |
| virtual void | remap (ParticleContainer< Photon > &a_photons) |
| | Remap computational particles.
|
| |
| virtual void | depositPhotons () |
| | Deposit photons on the mesh.
|
| |
| template<class P , class Ret , Ret(P::*)() const MemberFunc> |
| void | depositPhotons (EBAMRCellData &a_phi, ParticleContainer< P > &a_particles, const DepositionType &a_deposition) const noexcept |
| | Deposit photons.
|
| |
| virtual void | sortPhotonsByCell (const WhichContainer &a_which) |
| | Sort container by cell.
|
| |
| virtual void | sortPhotonsByPatch (const WhichContainer &a_which) |
| | Sort container by patch.
|
| |
| virtual void | parseOptions () override |
| | Parse class options.
|
| |
| virtual void | parseRuntimeOptions () override |
| | Parse runtime options.
|
| |
| virtual void | allocate () override |
| | Allocate internal storage.
|
| |
| virtual void | preRegrid (const int a_base, const int a_oldFinestLevel) override |
| | preRegrid operations
|
| |
| virtual void | deallocate () override |
| | Deallocate internal storage.
|
| |
| virtual void | regrid (const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel) override |
| | Regrid function for this class.
|
| |
| virtual void | registerOperators () override |
| | Register operators that this solver needs.
|
| |
| virtual void | computeBoundaryFlux (EBAMRIVData &a_ebFlux, const EBAMRCellData &a_phi) override |
| | Compute the boundary flux.
|
| |
| virtual void | computeDomainFlux (EBAMRIFData &a_domainFlux, const EBAMRCellData &a_phi) override |
| | Compute the domain flux.
|
| |
| virtual void | computeFlux (EBAMRCellData &a_flux, const EBAMRCellData &a_phi) override |
| | Compute the flux.
|
| |
| virtual void | computeDensity (EBAMRCellData &a_isotropic, const EBAMRCellData &a_phi) override |
| | Compute isotropic radiative density from mesh solution.
|
| |
| virtual void | clear (const WhichContainer &a_which) |
| | Clear data holder.
|
| |
|
virtual void | clear () |
| | Clear data holder.
|
| |
| virtual void | clear (ParticleContainer< Photon > &a_photons) |
| | Clear data holder.
|
| |
| virtual void | clear (AMRParticles< Photon > &a_photons) |
| | Clear data holder.
|
| |
| virtual void | writePlotFile () override |
| | Write plot file.
|
| |
| 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.
|
| |
| virtual Vector< std::string > | getPlotVariableNames () const override |
| | Write checkpoint data into handle.
|
| |
| virtual int | getNumberOfPlotVariables () const override |
| | Get number of output variables.
|
| |
| virtual int | countPhotons (const AMRParticles< Photon > &a_photons) const |
| | Count number of photons in particle list.
|
| |
| virtual ParticleContainer< Photon > & | getPhotons () |
| | Get m_photons.
|
| |
| virtual ParticleContainer< Photon > & | getBulkPhotons () |
| | Get bulk photons, i.e. photons absorbed on the mesh.
|
| |
| virtual ParticleContainer< Photon > & | getEbPhotons () |
| | Get eb Photons, i.e. photons absorbed on the EB.
|
| |
| virtual ParticleContainer< Photon > & | getDomainPhotons () |
| | Get domain photons, i.e. photons absorbed on domain edges/faces.
|
| |
| virtual ParticleContainer< Photon > & | getSourcePhotons () |
| | Get source photons.
|
| |
|
virtual int | getMaxPhotonsPerCell () const noexcept |
| | Get maximum number of photons generated per cell.
|
| |
|
virtual int | getNumSamplingPackets () const noexcept |
| | Get maximum number of photons generated per cell.
|
| |
| 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 data holder.
|
| |
|
| RtSolver () |
| | Constructor.
|
| |
|
virtual | ~RtSolver () |
| | Constructor (does nothing)
|
| |
|
virtual std::string | getName () |
| | Get solver name.
|
| |
|
virtual const std::string | getRealm () const |
| | Get the realm where the solver lives.
|
| |
| virtual bool | advance (const Real a_dt, const bool a_zeroPhi=false) |
| | Advance equation one time step.
|
| |
| virtual bool | advance (const Real a_dt, EBAMRCellData &a_phi, const bool a_zeroPhi=false) |
| | Advance method. Advances one time step.
|
| |
| virtual void | setRealm (const std::string a_realm) |
| | Set realm where this solver lives.
|
| |
| virtual void | setRtSpecies (const RefCountedPtr< RtSpecies > &a_species) |
| | Set the radiative transfer species (RtSpecies)
|
| |
| virtual void | setComputationalGeometry (const RefCountedPtr< ComputationalGeometry > a_computationalGeometry) |
| | Set computational geometry.
|
| |
| virtual void | setAmr (const RefCountedPtr< AmrMesh > &a_amr) |
| | Set the amr object.
|
| |
| virtual void | setPhase (phase::which_phase a_phase=phase::gas) |
| | Set phase.
|
| |
| virtual void | setVerbosity (const int a_verbosity) |
| | Set verbosity.
|
| |
| virtual void | setTime (const int a_step, const Real a_time, const Real a_dt) |
| | Set the time for this solver.
|
| |
| virtual void | setStationary (const bool a_stationary) |
| | Set stationary solver or not.
|
| |
|
virtual void | sanityCheck () |
| | Sanity check.
|
| |
|
virtual bool | isStationary () |
| | Check if solver is stationary.
|
| |
| virtual void | initialData () |
| | Fill solver with initial data. By default, this sets internal data to zero.
|
| |
| virtual void | setSource (const EBAMRCellData &a_source) |
| | Set source term.
|
| |
| virtual void | setSource (const Real a_source) |
| | Set source.
|
| |
| virtual void | setSource (const std::function< Real(const RealVect a_pos)> a_source) |
| | Set source.
|
| |
| virtual Real | getTime () const |
| | Get current time.
|
| |
| virtual phase::which_phase | getPhase () |
| | Get the RTE phase.
|
| |
| virtual EBAMRCellData & | getPhi () |
| | Get solver state.
|
| |
| virtual EBAMRCellData & | getSource () |
| | Get multifluid source.
|
| |
| virtual EBAMRFluxData & | getKappa () |
| | Get the absorption length.
|
| |
| virtual EBAMRIVData & | getKappaEb () |
| | Get the absorption coefficient on irregular EB faces.
|
| |
|
virtual RefCountedPtr< RtSpecies > & | getSpecies () |
| | Get species.
|
| |
|
| size_t | drawPhotons (const Real a_source, const Real a_volume, const Real a_dt) const noexcept |
| | Draw photons in a cell and volume.
|
| |
| int | domainBcMap (const int a_dir, const Side::LoHiSide a_side) |
| | Mapping function for domain boundary conditions.
|
| |
| Real | randomExponential (const Real a_mean) const noexcept |
| | Random exponential trial.
|
| |
| template<class P , class Ret , Ret(P::*)() const MemberFunc> |
| 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.
|
| |
| void | depositNonConservative (EBAMRIVData &a_depositionNC, const EBAMRCellData &a_depositionKappaC) const noexcept |
| | Make the "non-conservative" kappa deposition.
|
| |
| void | depositHybrid (EBAMRCellData &a_depositionH, EBAMRIVData &a_massDifference, const EBAMRIVData &a_depositionNC) const noexcept |
| | Make the hybrid deposition. Also compute the mass difference.
|
| |
|
void | parseTransparentBoundaries () |
| | Turn on/off transparent boundaries.
|
| |
| void | parseDirtySampling () |
| | Parse dirty sampling for photons.
|
| |
|
void | parseDivergenceComputation () |
| | Parse the divergence computation, i.e. if we blend with non-conservative divergence or not.
|
| |
|
void | parsePseudoPhotons () |
| | Parse pseudophotons, i.e. parse how many photons can be generated per cell.
|
| |
|
void | parsePhotoGeneration () |
| | Parse photogeneration type.
|
| |
|
void | parseInstantaneous () |
| | Parse whether instantaneous propagation or not.
|
| |
|
void | parseSourceType () |
| | Parse source term type.
|
| |
|
void | parseIntersectionEB () |
| | Parse EB intersection algorithm.
|
| |
|
void | parseDeposition () |
| | Parse deposition method.
|
| |
|
void | parsePlotVariables () |
| | Parse plot variables.
|
| |
| 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.
|
| |
|
void | setEbIndexSpace (const RefCountedPtr< EBIndexSpace > &a_ebis) |
| | Set ebis.
|
| |
|
void | parseVerbosity () noexcept |
| | Parse verbosity.
|
| |
| virtual void | writeData (LevelData< EBCellFAB > &a_output, int &a_comp, const EBAMRCellData &a_data, const std::string a_outputRealm, const int a_level, const bool a_interpToCentroids, const bool a_interpGhost) const noexcept |
| | Write data to output. Convenience function.
|
| |
|
|
bool | m_transparentEB |
| | Turn on/off transparent boundaries.
|
| |
|
bool | m_instantaneous |
| | Instantaneous transport or not.
|
| |
|
bool | m_blendConservation |
| | Flag for blending the deposition clouds with the nonconservative divergence.
|
| |
|
bool | m_depositNumber |
| | If true, the NUMBER of of Photons will be deposited in each cell.
|
| |
|
bool | m_plotNumbers |
| | Switch for plotting numbers or densities.
|
| |
|
bool | m_plotPhotons |
| | Check if m_photons should be plotted.
|
| |
|
bool | m_plotBulkPhotons |
| | Check if m_bulkPhotons should be plotted.
|
| |
|
bool | m_plotSourcePhotons |
| | Check if source_bulkPhotons should be plotted.
|
| |
|
bool | m_plotEBPhotons |
| | Check if m_ebPhotons should be plotted.
|
| |
|
bool | m_plotDomainPhotons |
| | Check if m_ebPhotons should be plotted.
|
| |
|
bool | m_dirtySampling |
| | Dirty sampling or not.
|
| |
|
size_t | m_maxPhotonsGeneratedPerCell |
| | Number of computational photons generated per cell.
|
| |
|
int | m_numSamplingPackets |
| |
|
int | m_seed |
| | RNG seed.
|
| |
|
Real | m_bisectStep |
| | Bisection step for when we use the bisection intersection algorithm.
|
| |
|
PhotonGeneration | m_photoGenerationMethod |
| | Photon generation type.
|
| |
|
SourceType | m_sourceType |
| | Source type.
|
| |
|
IntersectionEB | m_intersectionEB |
| |
|
DepositionType | m_deposition |
| | Deposition type.
|
| |
|
CoarseFineDeposition | m_coarseFineDeposition |
| | Coarse-fine deposition strategy.
|
| |
|
EBAMRCellData | m_scratch |
| | Coarse data for interpolation of deposition clouds.
|
| |
|
EBAMRIVData | m_depositionNC |
| | Scratch storage for holding the non-conservative deposition.
|
| |
|
EBAMRIVData | m_massDiff |
| | Scratch storage for holding the mass difference when using hybrid deposition.
|
| |
|
ParticleContainer< Photon > | m_photons |
| | All particles.
|
| |
|
ParticleContainer< Photon > | m_bulkPhotons |
| | Photons absorbed in the volume.
|
| |
|
ParticleContainer< Photon > | m_ebPhotons |
| | This is a particle container for Photons that crossed EBs. It is filled during the advance step.
|
| |
|
ParticleContainer< Photon > | m_domainPhotons |
| | This is a particle container for Photons that crossed boundaries. It is filled during the advance step.
|
| |
|
ParticleContainer< Photon > | m_sourcePhotons |
| | This is a particle container that can be used to add Photons directly.
|
| |
|
Location::Cell | m_dataLocation |
| | Data location.
|
| |
|
std::string | m_realm |
| | Realm where this solver lives.
|
| |
|
RefCountedPtr< EBIndexSpace > | m_ebis |
| | EBIndexSpace for this solver.
|
| |
|
RefCountedPtr< RtSpecies > | m_rtSpecies |
| | Radiative transfer species (contains meta-information like initial conditions)
|
| |
|
RefCountedPtr< ComputationalGeometry > | m_computationalGeometry |
| | Computational geometry.
|
| |
|
RefCountedPtr< AmrMesh > | m_amr |
| | AMR; needed for grid stuff.
|
| |
|
phase::which_phase | m_phase |
| | Phase.
|
| |
|
std::string | m_name |
| | Name for this solver.
|
| |
|
std::string | m_className |
| | Class name – needed because inherited classes will be named different.
|
| |
|
EBAMRCellData | m_cachePhi |
| | Cached state used for regridding.
|
| |
| EBAMRCellData | m_phi |
| | Internal state.
|
| |
| EBAMRCellData | m_source |
| | Source term.
|
| |
|
EBAMRFluxData | m_kappa |
| | Absorption coefficient.
|
| |
|
EBAMRIVData | m_kappaEB |
| | Absorption coefficient on EB faces.
|
| |
|
Real | m_time |
| | Time.
|
| |
|
Real | m_dt |
| | Time increment.
|
| |
|
bool | m_stationary |
| | Stationary solver or not.
|
| |
|
bool | m_plotPhi |
| | Output state.
|
| |
|
bool | m_plotSource |
| | Output source term.
|
| |
|
int | m_verbosity |
| |
|
int | m_timeStep |
| | Time step.
|
| |
Radiative tranfer equation solver using Monte-Carlo simulation.
This class is, by default, a non-stationary radiative transfer solver which simulates computational photons that can also be deposited on the mesh. Various options are available for specifying how the photons are generated, and how they are propagated (e.g. with speed of light or instantaneously). Note that this solver runs its own intersection tests with the EB due to dependencies on how the photons are moved (we store free-flight photons, absorbed photons, intersected photons, etc).
- Note
- The solver is missing appropriate boundary conditions on domain faces.