ABLATE Source Documentation  0.12.34
ablate::radiation::VolumeRadiation Class Reference
+ Inheritance diagram for ablate::radiation::VolumeRadiation:

Public Member Functions

PetscErrorCode ComputeRHSFunction (PetscReal time, Vec locXVec, Vec locFVec) override
 
void Initialize () override
 
void Setup () override
 
void Register (std::shared_ptr< ablate::domain::SubDomain > subDomain) override
 
 VolumeRadiation (const std::string &solverId1, const std::shared_ptr< io::interval::Interval > &interval, std::shared_ptr< radiation::Radiation > radiation, const std::shared_ptr< parameters::Parameters > &options1, const std::shared_ptr< monitors::logs::Log > &unnamed1)
 
PetscErrorCode PreRHSFunction (TS ts, PetscReal time, bool initialStage, Vec locX) override
 
- Public Member Functions inherited from ablate::solver::CellSolver
 CellSolver (std::string solverId, std::shared_ptr< domain::Region >={}, std::shared_ptr< parameters::Parameters > options=nullptr)
 
void RegisterAuxFieldUpdate (AuxFieldUpdateFunction function, void *context, const std::vector< std::string > &auxField, const std::vector< std::string > &inputFields)
 
void RegisterSolutionFieldUpdate (SolutionFieldUpdateFunction function, void *context, const std::vector< std::string > &inputFields)
 
void UpdateAuxFields (PetscReal time, Vec locXVec, Vec locAuxField)
 
void UpdateSolutionFields (PetscReal time, Vec globXVec)
 
void Setup () override
 
void Initialize () override
 
- Public Member Functions inherited from ablate::solver::Solver
const std::string & GetSolverId () const
 
ablate::domain::SubDomainGetSubDomain () noexcept
 
const ablate::domain::SubDomainGetSubDomain () const noexcept
 
std::shared_ptr< domain::RegionGetRegion () const noexcept
 
void PreStage (TS ts, PetscReal stagetime)
 
void PreStep (TS ts)
 
void PostStep (TS ts)
 
void PostEvaluate (TS ts)
 
void RegisterPreStep (const std::function< void(TS ts, Solver &)> &preStep)
 
void RegisterPreStage (const std::function< void(TS ts, Solver &, PetscReal)> &preStage)
 
void RegisterPostStep (const std::function< void(TS ts, Solver &)> &postStep)
 
void RegisterPostEvaluate (const std::function< void(TS ts, Solver &)> &postEval)
 
void GetCellRange (ablate::domain::Range &cellRange) const
 
void GetFaceRange (ablate::domain::Range &faceRange) const
 
void GetRange (PetscInt depth, ablate::domain::Range &range) const
 
void RestoreRange (ablate::domain::Range &range) const
 

Additional Inherited Members

- Public Types inherited from ablate::solver::CellSolver
using AuxFieldUpdateFunction = PetscErrorCode(*)(PetscReal time, PetscInt dim, const PetscFVCellGeom *cellGeom, const PetscInt uOff[], const PetscScalar *u, const PetscInt aOff[], PetscScalar *auxField, void *ctx)
 function template for updating the aux field
 
using SolutionFieldUpdateFunction = PetscErrorCode(*)(PetscReal time, PetscInt dim, const PetscFVCellGeom *cellGeom, const PetscInt uOff[], PetscScalar *u, void *ctx)
 function template for updating the solution field
 
- Protected Member Functions inherited from ablate::solver::Solver
 Solver (std::string solverId, std::shared_ptr< domain::Region >={}, std::shared_ptr< parameters::Parameters > options=nullptr)
 
- Static Protected Member Functions inherited from ablate::solver::Solver
static PetscErrorCode DMPlexInsertBoundaryValues_Plex (DM dm, PetscDS ds, PetscBool insertEssential, Vec locX, PetscReal time, Vec faceGeomFVM, Vec cellGeomFVM, Vec gradFVM)
 
static PetscErrorCode DMPlexInsertTimeDerivativeBoundaryValues_Plex (DM dm, PetscDS ds, PetscBool insertEssential, Vec locX, PetscReal time, Vec faceGeomFVM, Vec cellGeomFVM, Vec gradFVM)
 
- Protected Attributes inherited from ablate::solver::CellSolver
Vec cellGeomVec = nullptr
 Vector used to describe the entire cell geom of the dm. This is constant and does not depend upon region.
 
Vec faceGeomVec = nullptr
 Vector used to describe the entire face geom of the dm. This is constant and does not depend upon region.
 
- Protected Attributes inherited from ablate::solver::Solver
PetscOptions petscOptions
 
std::shared_ptr< ablate::domain::SubDomainsubDomain
 

Constructor & Destructor Documentation

◆ VolumeRadiation()

ablate::radiation::VolumeRadiation::VolumeRadiation ( const std::string &  solverId1,
const std::shared_ptr< io::interval::Interval > &  interval,
std::shared_ptr< radiation::Radiation radiation,
const std::shared_ptr< parameters::Parameters > &  options1,
const std::shared_ptr< monitors::logs::Log > &  unnamed1 
)
Parameters
solverIdthe id for this solver
rayNumber
optionsother options

Member Function Documentation

◆ ComputeRHSFunction()

PetscErrorCode ablate::radiation::VolumeRadiation::ComputeRHSFunction ( PetscReal  time,
Vec  locXVec,
Vec  locFVec 
)
overridevirtual

Function passed into PETSc to compute the FV RHS

Parameters
dm
time
locXVec
globFVec
ctx
Returns

Get the array of the local f vector, put the intensity into part of that array instead of using the radiative gain variable.

Get the array of the solution vector.

Get the array of the aux vector.

Declare the basic information

< The solution value at any given location

< The temperature at any given location

< Absorptivity coefficient, property of each cell

< Get access to the absorption function

< This will iterate only though local cells

< Isolates the valid cells

This implies that there is currently only support for one wavelength in the volumetric radiation solver.

Implement a wavelength dependant absorption integration here if desired.

< Loop through the cells and update the equation of state

Add the solution of this intensity.

Implements ablate::solver::RHSFunction.

◆ Initialize()

void ablate::radiation::VolumeRadiation::Initialize ( )
overridevirtual

< Get the range of cells that the solver occupies in order for the radiation solver to give energy to the finite volume

Implements ablate::solver::Solver.

◆ PreRHSFunction()

PetscErrorCode ablate::radiation::VolumeRadiation::PreRHSFunction ( TS  ts,
PetscReal  time,
bool  initialStage,
Vec  locX 
)
overridevirtual

serves to update the radiation

Parameters
time
locX
Returns

Only update the radiation solution if the sufficient interval has passed

Reimplemented from ablate::solver::RHSFunction.

◆ Register()

void ablate::radiation::VolumeRadiation::Register ( std::shared_ptr< ablate::domain::SubDomain subDomain)
overridevirtual

Register all needed fields with the subDomain

Reimplemented from ablate::solver::Solver.

◆ Setup()

void ablate::radiation::VolumeRadiation::Setup ( )
overridevirtual

Setup and size the subDomain with the subDomain

< Gets the cell range that should be applied to the radiation solver

< This will iterate only though local cells

< Isolates the valid cells

< Insert the cell range of the solver here

Begins radiation properties model

Implements ablate::solver::Solver.


The documentation for this class was generated from the following files: