|
enum | MeshCharacteristics { MIN_CELL_RADIUS = 0
, MAX_CELL_RADIUS
} |
| store an enum for the fields in the meshCharacteristicsDm
|
|
using | PreRHSFunctionDefinition = PetscErrorCode(*)(FiniteVolumeSolver &, TS ts, PetscReal time, bool initialStage, Vec locX, void *ctx) |
|
using | RHSArbitraryFunction = PetscErrorCode(*)(const FiniteVolumeSolver &, DM dm, PetscReal time, Vec locXVec, Vec locFVec, void *ctx) |
|
using | ComputeTimeStepFunction = double(*)(TS ts, FiniteVolumeSolver &, void *ctx) |
|
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
|
|
enum class | SerializerType { none
, collective
, serial
} |
|
|
| FiniteVolumeSolver (std::string solverId, std::shared_ptr< domain::Region >, std::shared_ptr< parameters::Parameters > options, std::vector< std::shared_ptr< processes::Process >> flowProcesses, std::vector< std::shared_ptr< boundaryConditions::BoundaryCondition >> boundaryConditions) |
|
| ~FiniteVolumeSolver () override |
| cleanup
|
|
void | Setup () override |
|
void | Initialize () override |
|
PetscErrorCode | ComputeRHSFunction (PetscReal time, Vec locXVec, Vec locFVec) override |
|
PetscErrorCode | ComputeBoundary (PetscReal time, Vec locX, Vec locX_t) override |
|
void | RegisterRHSFunction (CellInterpolant::DiscontinuousFluxFunction function, void *context, const std::string &field, const std::vector< std::string > &inputFields, const std::vector< std::string > &auxFields) |
|
void | RegisterRHSFunction (FaceInterpolant::ContinuousFluxFunction function, void *context, const std::string &field, const std::vector< std::string > &inputFields, const std::vector< std::string > &auxFields) |
|
void | RegisterRHSFunction (CellInterpolant::PointFunction function, void *context, const std::vector< std::string > &fields, const std::vector< std::string > &inputFields, const std::vector< std::string > &auxFields) |
|
void | RegisterRHSFunction (RHSArbitraryFunction function, void *context) |
|
void | RegisterPreRHSFunction (PreRHSFunctionDefinition function, void *context) |
|
void | RegisterComputeTimeStepFunction (ComputeTimeStepFunction function, void *ctx, std::string name) |
|
std::map< std::string, double > | ComputePhysicsTimeSteps (TS) override |
|
double | ComputePhysicsTimeStep (TS) override |
|
SerializerType | Serialize () const override |
|
const std::string & | GetId () const override |
|
PetscErrorCode | Save (PetscViewer viewer, PetscInt sequenceNumber, PetscReal time) override |
|
PetscErrorCode | Restore (PetscViewer viewer, PetscInt sequenceNumber, PetscReal time) override |
|
void | GetCellRangeWithoutGhost (ablate::domain::Range &faceRange) const |
|
template<class T > |
std::shared_ptr< T > | FindProcess () |
|
PetscErrorCode | PreRHSFunction (TS ts, PetscReal time, bool initialStage, Vec locX) override |
|
void | GetMeshCharacteristics (DM &dm, Vec &vec) |
|
| 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 |
|
virtual void | Register (std::shared_ptr< ablate::domain::SubDomain > subDomain) |
|
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 |
|
|
| Solver (std::string solverId, std::shared_ptr< domain::Region >={}, std::shared_ptr< parameters::Parameters > options=nullptr) |
|
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) |
|
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) |
|
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.
|
|
PetscOptions | petscOptions |
|
std::shared_ptr< ablate::domain::SubDomain > | subDomain |
|