ABLATE Source Documentation  0.12.33
ablate::finiteElement::FiniteElementSolver Class Referenceabstract
+ Inheritance diagram for ablate::finiteElement::FiniteElementSolver:

Public Member Functions

 FiniteElementSolver (std::string solverId, std::shared_ptr< domain::Region > region, std::shared_ptr< parameters::Parameters > options, std::vector< std::shared_ptr< boundaryConditions::BoundaryCondition >> boundaryConditions, std::vector< std::shared_ptr< mathFunctions::FieldFunction >> auxiliaryFields)
 
void Register (std::shared_ptr< ablate::domain::SubDomain > subDomain) override
 
void Setup () override
 
void Initialize () override
 
virtual void CompleteFlowInitialization (DM, Vec)=0
 
PetscErrorCode ComputeIFunction (PetscReal time, Vec locX, Vec locX_t, Vec locF) override
 
PetscErrorCode ComputeIJacobian (PetscReal time, Vec locX, Vec locX_t, PetscReal X_tShift, Mat Jac, Mat JacP) override
 
PetscErrorCode ComputeBoundary (PetscReal time, Vec locX, Vec locX_t) 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
 

Static Public Member Functions

static void UpdateAuxFields (TS ts, FiniteElementSolver &fe)
 

Additional Inherited Members

- 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::Solver
PetscOptions petscOptions
 
std::shared_ptr< ablate::domain::SubDomainsubDomain
 

Member Function Documentation

◆ ComputeIFunction()

PetscErrorCode ablate::finiteElement::FiniteElementSolver::ComputeIFunction ( PetscReal  time,
Vec  locX,
Vec  locX_t,
Vec  locF 
)
overridevirtual

Functions to compute F and and jacobian for the fintie element method over this subDomain/DS.

Implements ablate::solver::IFunction.

◆ Register()

void ablate::finiteElement::FiniteElementSolver::Register ( std::shared_ptr< ablate::domain::SubDomain subDomain)
overridevirtual

SubDomain Register and Setup

Reimplemented from ablate::solver::Solver.

◆ Setup()

void ablate::finiteElement::FiniteElementSolver::Setup ( )
overridevirtual

Setup and size the subDomain with the subDomain

Implements ablate::solver::Solver.

Reimplemented in ablate::finiteElement::LowMachFlowSolver, and ablate::finiteElement::IncompressibleFlowSolver.

◆ UpdateAuxFields()

void ablate::finiteElement::FiniteElementSolver::UpdateAuxFields ( TS  ts,
FiniteElementSolver fe 
)
static

function to update the aux fields.


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