System Preprocessors
|
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 PetscBool known_solution; 00024 NMD_metadata metadata; 00025 } ; 00026 00027 struct LinearSolution_ { 00028 int cookie; 00029 Vec Out; 00030 NMD_metadata statistics; 00031 /* 00032 PetscBool abort; 00033 PetscLogDouble tpreprocess,tsetup,tsolve; 00034 KSPConvergedReason converged; 00035 int iterations; 00036 */ 00037 void *ctx; 00038 } ; 00039 00040 #endif