Ice Sheet System Model  4.18
Code documentation
petscpatches.h
Go to the documentation of this file.
1 /*\file petscpatches.h
2  * \brief: our own patches for petsc use
3  */
4 
5 #ifndef _PETSC_PATCHES_H_
6 #define _PETSC_PATCHES_H_
7 
8 #include <petscmat.h>
9 #include <petscvec.h>
10 #include <petscksp.h>
11 #include <petscsys.h>
12 
13 #include "./SolverEnum.h"
14 #include "../../toolkitsenums.h"
15 #include "../../../shared/io/Comm/IssmComm.h"
16 
17 class Parameters;
18 
19 Vec NewVec(int size,ISSM_MPI_Comm comm,bool fromlocalsize=false);
20 Mat NewMat(int M,int N,ISSM_MPI_Comm comm);
21 Mat NewMat(int M,int N,double sparsity,ISSM_MPI_Comm comm);
22 Mat NewMat(int M,int N,int connectivity,int numberofdofspernode, ISSM_MPI_Comm comm);
23 
24 int VecToMPISerial(double** pgathered_vector, Vec vector,ISSM_MPI_Comm comm,bool broadcast=true);
25 void MatFree(Mat* pmat);
26 void ISFree(IS* pis);
27 void VecFree(Vec* pvec);
28 void KSPFree(KSP* pksp);
29 int MatPartition(Mat* poutmatrix,Mat matrixA,double* row_partition_vector,int row_partition_vector_size ,
30  double* col_partition_vector,int col_partition_vector_size);
31 void PetscOptionsDetermineSolverType(int* psolver_type);
32 void MatMultPatch(Mat A,Vec X, Vec AX,ISSM_MPI_Comm comm);
33 void MatToSerial(double** poutmatrix,Mat matrix,ISSM_MPI_Comm comm);
34 Vec SerialToVec(double* vector,int vector_size);
35 InsertMode ISSMToPetscInsertMode(InsMode mode);
36 NormType ISSMToPetscNormMode(NormMode mode);
37 MatType ISSMToPetscMatrixType(MatrixType type);
38 
39 #endif
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
KSPFree
void KSPFree(KSP *pksp)
Definition: KSPFree.cpp:16
SolverEnum.h
prototypes for SolverEnum.h
SerialToVec
Vec SerialToVec(double *vector, int vector_size)
MatToSerial
void MatToSerial(double **poutmatrix, Mat matrix, ISSM_MPI_Comm comm)
Definition: MatToSerial.cpp:14
VecFree
void VecFree(Vec *pvec)
Definition: VecFree.cpp:16
MatPartition
int MatPartition(Mat *poutmatrix, Mat matrixA, double *row_partition_vector, int row_partition_vector_size, double *col_partition_vector, int col_partition_vector_size)
MatrixType
MatrixType
Definition: toolkitsenums.h:16
ISSMToPetscNormMode
NormType ISSMToPetscNormMode(NormMode mode)
Definition: ISSMToPetscNormMode.cpp:20
PetscOptionsDetermineSolverType
void PetscOptionsDetermineSolverType(int *psolver_type)
Definition: PetscOptionsDetermineSolverType.cpp:20
VecToMPISerial
int VecToMPISerial(double **pgathered_vector, Vec vector, ISSM_MPI_Comm comm, bool broadcast=true)
Definition: VecToMPISerial.cpp:14
MatFree
void MatFree(Mat *pmat)
Definition: MatFree.cpp:16
NormMode
NormMode
Definition: toolkitsenums.h:15
ISSMToPetscMatrixType
MatType ISSMToPetscMatrixType(MatrixType type)
Definition: ISSMToPetscMatrixType.cpp:20
ISFree
void ISFree(IS *pis)
ISSM_MPI_Comm
int ISSM_MPI_Comm
Definition: issmmpi.h:118
MatMultPatch
void MatMultPatch(Mat A, Vec X, Vec AX, ISSM_MPI_Comm comm)
Definition: MatMultPatch.cpp:23
InsMode
InsMode
Definition: toolkitsenums.h:14
NewVec
Vec NewVec(int size, ISSM_MPI_Comm comm, bool fromlocalsize=false)
Definition: NewVec.cpp:19
NewMat
Mat NewMat(int M, int N, ISSM_MPI_Comm comm)
Definition: NewMat.cpp:21
ISSMToPetscInsertMode
InsertMode ISSMToPetscInsertMode(InsMode mode)
Definition: ISSMToPetscInsertMode.cpp:20