|
| DebugBoundarySolver (std::string solverId, std::shared_ptr< domain::Region > region, std::shared_ptr< domain::Region > fieldBoundary, std::vector< std::shared_ptr< BoundaryProcess >> boundaryProcesses, std::shared_ptr< parameters::Parameters > options, bool mergeFaces=false) |
|
void | Setup () override |
|
PetscErrorCode | ComputeRHSFunction (PetscReal time, Vec locXVec, Vec locFVec) override |
|
PetscErrorCode | ComputeBoundaryPreRHSPointFunction (PetscReal time, PetscReal dt, Vec locXVec, const BoundaryPreRHSPointFunctionDefinition &boundaryPreRhsPointFunction) |
|
| BoundarySolver (std::string solverId, std::shared_ptr< domain::Region > region, std::shared_ptr< domain::Region > fieldBoundary, std::vector< std::shared_ptr< BoundaryProcess >> boundaryProcesses, std::shared_ptr< parameters::Parameters > options, bool mergeFaces=false) |
|
void | Initialize () override |
|
void | RegisterFunction (BoundarySourceFunction function, void *context, const std::vector< std::string > &sourceFields, const std::vector< std::string > &inputFields, const std::vector< std::string > &auxFields, BoundarySourceType type=BoundarySourceType::Point) |
|
void | RegisterFunction (BoundaryUpdateFunction function, void *context, const std::vector< std::string > &inputFields, const std::vector< std::string > &auxFields) |
|
void | RegisterPreRHSFunction (BoundaryPreRHSFunctionDefinition function, void *context) |
|
PetscErrorCode | ComputeRHSFunction (PetscReal time, Vec locXVec, Vec locFVec, const std::vector< BoundarySourceFunctionDescription > &boundarySourceFunctions) |
|
void | InsertFieldFunctions (const std::vector< std::shared_ptr< mathFunctions::FieldFunction >> &initialization, PetscReal time=0.0) |
|
std::vector< GradientStencil > | GetBoundaryGeometry (PetscInt cell) const |
|
const std::vector< GradientStencil > & | GetBoundaryGeometry () const |
|
const std::vector< std::string > & | GetOutputComponents () |
|
const std::vector< BoundarySourceFunctionDescription > & | GetOutputFunctions () |
|
PetscErrorCode | PreRHSFunction (TS ts, PetscReal time, bool initialStage, Vec locX) 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 |
|
| 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 |
|
|
enum class | BoundarySourceType { Point
, Distributed
, Flux
, Face
} |
|
using | BoundarySourceFunction = PetscErrorCode(*)(PetscInt dim, const 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) |
|
using | BoundaryUpdateFunction = PetscErrorCode(*)(PetscInt dim, const BoundaryFVFaceGeom *fg, const PetscFVCellGeom *boundaryCell, const PetscInt uOff[], PetscScalar *boundaryValues, const PetscScalar *stencilValues, const PetscInt aOff[], PetscScalar *auxValues, const PetscScalar *stencilAuxValues, void *ctx) |
|
using | BoundaryPreRHSFunctionDefinition = PetscErrorCode(*)(BoundarySolver &, TS ts, PetscReal time, bool initialStage, Vec locX, void *ctx) |
|
using | BoundaryPreRHSPointFunction = PetscErrorCode(*)(PetscReal time, PetscReal dt, PetscInt dim, const 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) |
|
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
} |
|
static void | ComputeGradient (PetscInt dim, PetscScalar boundaryValue, PetscInt stencilSize, const PetscScalar *stencilValues, const PetscScalar *stencilWeights, PetscScalar *grad) |
|
static void | ComputeGradientAlongNormal (PetscInt dim, const BoundaryFVFaceGeom *fg, PetscScalar boundaryValue, PetscInt stencilSize, const PetscScalar *stencilValues, const PetscScalar *stencilWeights, PetscScalar &dPhiDNorm) |
|
| 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) |
|
std::vector< GradientStencil > | gradientStencils |
|
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 |
|
this is a debug extension of the boundary solver that outputs useful information for debugging problems with the boundary solver