00001 #ifndef LINEAR_IMPL_H
00002 #define LINEAR_IMPL_H
00003
00004 #include "petscmat.h"
00005 #include "petscvec.h"
00006 #include "petscksp.h"
00007 #include "nmd.h"
00008 #include "syspro_impl.h"
00009
00010 #define LINSYSCOOKIE 3297
00011 #define LINSOLCOOKIE 3298
00012 #define SYSPROCHECKVALIDLINSYS(i) {SYSPROCHECKVALID(i,LINSYSCOOKIE,"linear system");}
00013 #define SYSPROCHECKVALIDLINSYSa(i,a) {SYSPROCHECKVALIDa(i,LINSYSCOOKIE,"linear system",a);}
00014 #define SYSPROCHECKVALIDLINSOL(i) {SYSPROCHECKVALID(i,LINSOLCOOKIE,"linear solution");}
00015 #define SYSPROCHECKVALIDLINSOLa(i,a) {SYSPROCHECKVALIDa(i,LINSOLCOOKIE,"linear solution",a);}
00016
00017 #define ALLPARTSNEW (1+2+4+8+16)
00018 struct LinearSystem_ {
00019 NUMERICALPROBLEMHEADER
00020 int cookie;
00021 int partsoriginal;
00022 Mat A,B; Vec Rhs,Sol,Init,Tmp;
00023 PetscTruth known_solution;
00024 NMD_metadata metadata;
00025 } ;
00026
00027 struct LinearSolution_ {
00028 int cookie;
00029 Vec Out;
00030 NMD_metadata statistics;
00031
00032
00033
00034
00035
00036
00037 void *ctx;
00038 } ;
00039
00040 #endif