System Preprocessors
linear_impl.h
Go to the documentation of this file.
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   PetscTruth abort;
00033   PetscLogDouble tpreprocess,tsetup,tsolve;
00034   KSPConvergedReason converged;
00035   int iterations;
00036   */
00037   void *ctx;
00038 } ;
00039 
00040 #endif