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::SubDomain & | GetSubDomain () noexcept |
const ablate::domain::SubDomain & | GetSubDomain () const noexcept |
std::shared_ptr< domain::Region > | GetRegion () 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::SubDomain > | subDomain |
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 | ||
) |
solverId | the id for this solver |
rayNumber | |
options | other options |
|
overridevirtual |
Function passed into PETSc to compute the FV RHS
dm | |
time | |
locXVec | |
globFVec | |
ctx |
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.
|
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.
|
overridevirtual |
serves to update the radiation
time | |
locX |
Only update the radiation solution if the sufficient interval has passed
Reimplemented from ablate::solver::RHSFunction.
|
overridevirtual |
Register all needed fields with the subDomain
Reimplemented from ablate::solver::Solver.
|
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.