ABLATE Source Documentation  0.12.34
ablate::boundarySolver::physics::Sublimation Class Reference

#include <sublimation.hpp>

+ Inheritance diagram for ablate::boundarySolver::physics::Sublimation:

Public Member Functions

 Sublimation (std::shared_ptr< subModels::SublimationModel > sublimationModel, std::shared_ptr< ablate::eos::transport::TransportModel > transportModel, std::shared_ptr< ablate::eos::EOS > eos, const std::shared_ptr< ablate::mathFunctions::FieldFunction > &={}, std::shared_ptr< mathFunctions::MathFunction > additionalHeatFlux={}, std::shared_ptr< finiteVolume::processes::PressureGradientScaling > pressureGradientScaling={}, bool diffusionFlame=false, std::shared_ptr< ablate::radiation::SurfaceRadiation > radiationIn={}, const std::shared_ptr< io::interval::Interval > &intervalIn={}, const std::shared_ptr< ablate::parameters::Parameters > &={})
 
void Setup (ablate::boundarySolver::BoundarySolver &bSolver) override
 
void Initialize (ablate::boundarySolver::BoundarySolver &bSolver) override
 
void Setup (PetscInt numberSpecies)
 
const std::string & GetId () const override
 
SerializerType Serialize () const override
 
PetscErrorCode Save (PetscViewer viewer, PetscInt sequenceNumber, PetscReal time) override
 
PetscErrorCode Restore (PetscViewer viewer, PetscInt sequenceNumber, PetscReal time) override
 

Static Public Member Functions

static PetscErrorCode SublimationPreRHS (BoundarySolver &, TS ts, PetscReal time, bool initialStage, Vec locX, void *ctx)
 
static PetscErrorCode SublimationFunction (PetscInt dim, const ablate::boundarySolver::BoundarySolver::BoundaryFVFaceGeom *fg, const PetscFVCellGeom *boundaryCell, const PetscInt uOff[], const PetscScalar *boundaryValues, const PetscScalar *stencilValues[], const PetscInt aOff[], const PetscScalar *auxValues, const PetscScalar *stencilAuxValues[], PetscInt stencilSize, const PetscInt stencil[], const PetscScalar stencilWeights[], const PetscInt sOff[], PetscScalar source[], void *ctx)
 
static PetscErrorCode SublimationOutputFunction (PetscInt dim, const ablate::boundarySolver::BoundarySolver::BoundaryFVFaceGeom *fg, const PetscFVCellGeom *boundaryCell, const PetscInt uOff[], const PetscScalar *boundaryValues, const PetscScalar *stencilValues[], const PetscInt aOff[], const PetscScalar *auxValues, const PetscScalar *stencilAuxValues[], PetscInt stencilSize, const PetscInt stencil[], const PetscScalar stencilWeights[], const PetscInt sOff[], PetscScalar source[], void *ctx)
 
static PetscErrorCode UpdateBoundaryHeatTransferModel (PetscReal time, PetscReal dt, PetscInt dim, const ablate::boundarySolver::BoundarySolver::BoundaryFVFaceGeom *fg, const PetscFVCellGeom *boundaryCell, const PetscInt uOff[], PetscScalar *boundaryValues, const PetscScalar *stencilValues[], const PetscInt aOff[], PetscScalar *auxValues, const PetscScalar *stencilAuxValues[], PetscInt stencilSize, const PetscInt stencil[], const PetscScalar stencilWeights[], void *ctx)
 

Additional Inherited Members

- Public Types inherited from ablate::io::Serializable
enum class  SerializerType { none , collective , serial }
 
- Static Protected Member Functions inherited from ablate::io::Serializable
static PetscErrorCode SaveKeyValue (PetscViewer viewer, const char *name, PetscScalar value)
 
static PetscErrorCode RestoreKeyValue (PetscViewer viewer, const char *name, PetscScalar &value)
 
template<class T >
static PetscErrorCode SaveKeyValue (PetscViewer viewer, const char *name, T value)
 
template<class T >
static PetscErrorCode RestoreKeyValue (PetscViewer viewer, const char *name, T &value)
 
template<class T >
static SerializerType DetermineSerializerType (const T &types)
 

Detailed Description

produces required source terms in the "gas phase" assuming that the solid phase sublimates and no regression compared to the simulation time

Member Function Documentation

◆ GetId()

const std::string& ablate::boundarySolver::physics::Sublimation::GetId ( ) const
inlineoverridevirtual

only required function, returns the id of the object. Should be unique for the simulation

Returns

Implements ablate::io::Serializable.

◆ Initialize()

void ablate::boundarySolver::physics::Sublimation::Initialize ( ablate::boundarySolver::BoundarySolver fv)
overridevirtual

Set up mesh dependent initialization

Parameters
fv

Initialize the radiation solver with the face geometry of the boundary solver in order to solve for surface flux

< Get the face range of the boundary cells to initialize the rays with this range. Add all of the faces to this range that belong to the boundary solver.

< Add each ID to the range that the radiation solver will use

< Pass the non-dynamic range into the radiation solver

Initialize the solid boundary heat transfer model

Reimplemented from ablate::boundarySolver::BoundaryProcess.

◆ Restore()

PetscErrorCode ablate::boundarySolver::physics::Sublimation::Restore ( PetscViewer  viewer,
PetscInt  sequenceNumber,
PetscReal  time 
)
inlineoverridevirtual

Restore the state from the PetscViewer

Parameters
viewer
sequenceNumber
time

Implements ablate::io::Serializable.

◆ Save()

PetscErrorCode ablate::boundarySolver::physics::Sublimation::Save ( PetscViewer  viewer,
PetscInt  sequenceNumber,
PetscReal  time 
)
inlineoverridevirtual

Save the state to the PetscViewer

Parameters
viewer
sequenceNumber
time

Implements ablate::io::Serializable.

◆ Serialize()

SerializerType ablate::boundarySolver::physics::Sublimation::Serialize ( ) const
inlineoverridevirtual

assume that the sublimation model does not need to Serialize

Returns

Reimplemented from ablate::io::Serializable.

◆ Setup() [1/2]

void ablate::boundarySolver::physics::Sublimation::Setup ( ablate::boundarySolver::BoundarySolver fv)
overridevirtual

Setup up all functions not dependent upon the mesh

Parameters
fv

Implements ablate::boundarySolver::BoundaryProcess.

◆ Setup() [2/2]

void ablate::boundarySolver::physics::Sublimation::Setup ( PetscInt  numberSpecies)

manual Setup used for testing

Parameters
numberSpecies

◆ SublimationFunction()

PetscErrorCode ablate::boundarySolver::physics::Sublimation::SublimationFunction ( PetscInt  dim,
const ablate::boundarySolver::BoundarySolver::BoundaryFVFaceGeom fg,
const PetscFVCellGeom *  boundaryCell,
const PetscInt  uOff[],
const PetscScalar *  boundaryValues,
const PetscScalar *  stencilValues[],
const PetscInt  aOff[],
const PetscScalar *  auxValues,
const PetscScalar *  stencilAuxValues[],
PetscInt  stencilSize,
const PetscInt  stencil[],
const PetscScalar  stencilWeights[],
const PetscInt  sOff[],
PetscScalar  source[],
void *  ctx 
)
static

Support function to compute and insert source terms for this boundary condition

Parameters
dim
fg
boundaryCell
uOff
boundaryValues
stencilValues
aOff
auxValues
stencilAuxValues
stencilSize
stencil
stencilWeights
sOff
source
ctx
Returns

◆ SublimationOutputFunction()

PetscErrorCode ablate::boundarySolver::physics::Sublimation::SublimationOutputFunction ( PetscInt  dim,
const ablate::boundarySolver::BoundarySolver::BoundaryFVFaceGeom fg,
const PetscFVCellGeom *  boundaryCell,
const PetscInt  uOff[],
const PetscScalar *  boundaryValues,
const PetscScalar *  stencilValues[],
const PetscInt  aOff[],
const PetscScalar *  auxValues,
const PetscScalar *  stencilAuxValues[],
PetscInt  stencilSize,
const PetscInt  stencil[],
const PetscScalar  stencilWeights[],
const PetscInt  sOff[],
PetscScalar  source[],
void *  ctx 
)
static

Support function to compute output variables

Parameters
dim
fg
boundaryCell
uOff
boundaryValues
stencilValues
aOff
auxValues
stencilAuxValues
stencilSize
stencil
stencilWeights
sOff
source
ctx
Returns

◆ SublimationPreRHS()

PetscErrorCode ablate::boundarySolver::physics::Sublimation::SublimationPreRHS ( BoundarySolver solver,
TS  ts,
PetscReal  time,
bool  initialStage,
Vec  locX,
void *  ctx 
)
static

Prestep to update the radiation solver

Parameters
ts
solver
Returns

◆ UpdateBoundaryHeatTransferModel()

PetscErrorCode ablate::boundarySolver::physics::Sublimation::UpdateBoundaryHeatTransferModel ( PetscReal  time,
PetscReal  dt,
PetscInt  dim,
const ablate::boundarySolver::BoundarySolver::BoundaryFVFaceGeom fg,
const PetscFVCellGeom *  boundaryCell,
const PetscInt  uOff[],
PetscScalar *  boundaryValues,
const PetscScalar *  stencilValues[],
const PetscInt  aOff[],
PetscScalar *  auxValues,
const PetscScalar *  stencilAuxValues[],
PetscInt  stencilSize,
const PetscInt  stencil[],
const PetscScalar  stencilWeights[],
void *  ctx 
)
static

Call to update the boundary solid model at each point

Parameters
time
dt
dim
fg
boundaryCell
uOff
boundaryValues
stencilValues
aOff
auxValues
stencilAuxValues
stencilSize
stencil
stencilWeights
ctx
Returns

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