BISICLES AMR ice sheet model  0.9
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
PetscAMRSolver Class Reference

#include <PetscAMRSolver.H>

Collaboration diagram for PetscAMRSolver:
Collaboration graph
[legend]

Public Member Functions

 PetscAMRSolver (int a_verb=0)
 
virtual ~PetscAMRSolver ()
 
virtual PetscErrorCode solve_mfree (Vector< LevelData< FArrayBox > *> &a_phi, const Vector< LevelData< FArrayBox > *> &a_rhs, LinearizedVTOp *a_op)
 
virtual PetscErrorCode solve (Vector< LevelData< FArrayBox > *> &a_phi, const Vector< LevelData< FArrayBox > *> &a_rhs)
 
void plot (const string, const Vector< LevelData< FArrayBox > *> &a_phi)
 
PetscErrorCode setCoords (KSP, const Vector< LevelData< FArrayBox > *> &a_phi)
 

Static Public Member Functions

static PetscErrorCode apply_mfree (Mat A, Vec x, Vec f)
 

Public Attributes

LinearizedVTOpm_op_mfree
 
Vector< LevelData< FArrayBox > * > m_phi_mfree
 
Vector< LevelData< FArrayBox > * > m_Lphi_mfree
 
bool m_mfree_homogeneous
 
PetscCompGridVTO m_petscCompMat
 
int m_verbose
 

Constructor & Destructor Documentation

◆ PetscAMRSolver()

PetscAMRSolver::PetscAMRSolver ( int  a_verb = 0)

◆ ~PetscAMRSolver()

virtual PetscAMRSolver::~PetscAMRSolver ( )
inlinevirtual

Member Function Documentation

◆ apply_mfree()

PetscErrorCode PetscAMRSolver::apply_mfree ( Mat  A,
Vec  x,
Vec  f 
)
static

◆ plot()

void PetscAMRSolver::plot ( const string  a_fname,
const Vector< LevelData< FArrayBox > *> &  a_phi 
)

Referenced by solve(), solve_mfree(), and ~PetscAMRSolver().

◆ setCoords()

PetscErrorCode PetscAMRSolver::setCoords ( KSP  a_ksp,
const Vector< LevelData< FArrayBox > *> &  a_phi 
)

References m_petscCompMat.

Referenced by solve(), solve_mfree(), and ~PetscAMRSolver().

◆ solve()

PetscErrorCode PetscAMRSolver::solve ( Vector< LevelData< FArrayBox > *> &  a_phi,
const Vector< LevelData< FArrayBox > *> &  a_rhs 
)
virtual

References m_petscCompMat, plot(), and setCoords().

Referenced by ~PetscAMRSolver().

◆ solve_mfree()

PetscErrorCode PetscAMRSolver::solve_mfree ( Vector< LevelData< FArrayBox > *> &  a_phi,
const Vector< LevelData< FArrayBox > *> &  a_rhs,
LinearizedVTOp a_op 
)
virtual

Solve a_op*a_phi = a_rhs using the PETSC matrix free functions The preconditioner (for which a matrix is formed) need not be the same as the actual operator.

References apply_mfree(), LinearizedVTOp::clear(), LinearizedVTOp::create(), m_Lphi_mfree, m_op_mfree, m_petscCompMat, m_phi_mfree, m_verbose, plot(), and setCoords().

Referenced by ~PetscAMRSolver().

Member Data Documentation

◆ m_Lphi_mfree

Vector<LevelData<FArrayBox>*> PetscAMRSolver::m_Lphi_mfree

Referenced by apply_mfree(), and solve_mfree().

◆ m_mfree_homogeneous

bool PetscAMRSolver::m_mfree_homogeneous

Referenced by apply_mfree().

◆ m_op_mfree

LinearizedVTOp* PetscAMRSolver::m_op_mfree

Referenced by apply_mfree(), and solve_mfree().

◆ m_petscCompMat

PetscCompGridVTO PetscAMRSolver::m_petscCompMat

◆ m_phi_mfree

Vector<LevelData<FArrayBox>*> PetscAMRSolver::m_phi_mfree

Referenced by apply_mfree(), and solve_mfree().

◆ m_verbose

int PetscAMRSolver::m_verbose

Referenced by solve_mfree().


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