File petsc3damg.hxx#
-
class LaplacePetsc3dAmg : public Laplacian#
Public Functions
-
LaplacePetsc3dAmg(Options *opt = nullptr, const CELL_LOC loc = CELL_CENTRE, Mesh *mesh_in = nullptr, Solver *solver = nullptr)#
-
~LaplacePetsc3dAmg() override#
-
inline virtual void setCoefA(const Field2D &val) override#
Set coefficients for inversion. Re-builds matrices if necessary.
-
PetscMatrix<Field3D> &getMatrix3D()#
-
inline IndexerPtr<Field3D> getIndexer()#
Private Functions
-
void updateMatrix3D()#
Private Members
-
bool issetD = false#
-
bool issetC = false#
-
bool issetE = false#
-
bool updateRequired = true#
-
int lower_boundary_flags#
-
int upper_boundary_flags#
-
int gmres_max_steps#
-
int maxits#
-
bool direct#
-
RangeIterator lowerY#
-
RangeIterator upperY#
-
IndexerPtr<Field3D> indexer#
-
PetscMatrix<Field3D> operator3D#
-
KSP ksp = nullptr#
-
bool kspInitialised = false#
Private Static Functions
-
static OperatorStencil<Ind3D> getStencil(Mesh *localmesh, const RangeIterator &lowerYBound, const RangeIterator &upperYBound)#
Private Static Attributes
-
static constexpr int implemented_flags = INVERT_START_NEW#
-
static constexpr int implemented_boundary_flags = INVERT_AC_GRAD + INVERT_SET + INVERT_RHS#
-
LaplacePetsc3dAmg(Options *opt = nullptr, const CELL_LOC loc = CELL_CENTRE, Mesh *mesh_in = nullptr, Solver *solver = nullptr)#