ParMooN
 All Classes Functions Variables Friends Pages
SystemCD3D.h
1 
11 #ifndef __SYSTEMCD3D__
12 #define __SYSTEMCD3D__
13 
14 #include <SquareMatrix3D.h>
15 #include <ItMethod.h>
16 #include <AssembleMat3D.h>
17 
18 #ifdef _MPI
19 //#include "mpi.h"
20 #include <ParFEMapper3D.h>
21 #include <ParFECommunicator3D.h>
22 
23 #include <ParDirectSolver.h>
24 #endif
25 
26 #ifdef _OMPONLY
27 #include <ParDirectSolver.h>
28 #endif
29 
32 {
33  protected:
35 #ifdef _MPI
37  TParFECommunicator3D **ParComm;
38  MPI_Comm Comm;
39  TParDirectSolver *DS;
40 #endif
41 
42 #ifdef _OMPONLY
43  TParDirectSolver *DS;
44 #endif
45 
47  int N_Levels;
48 
51 
53  TFESpace3D **FeSpaces, *fesp[1], *ferhs[1];
54 
56  BoundCondFunct3D *BoundaryConditions[1];
57 
59  BoundValueFunct3D *BoundaryValues[1];
60 
62  int N_DOF;
63 
65  int Disctype;
66 
68  int SOLVER;
69 
72 
75 
78 
80  TSquareMatrix3D **sqmatrixA, *SQMATRICES[1];
81  TSquareMatrix **sqmatrices;
82 
85 
87  double **SolArray, **RhsArray, *RHSs[1];
88 
90  double Parameters[2], N_aux, *Itmethod_sol, *Itmethod_rhs;
91  TMultiGrid3D *MG;
92  TMGLevel3D *MGLevel;
93  TItMethod *Itmethod, *prec;
94 
95  public:
97  TSystemCD3D(int N_levels, TFESpace3D **fespaces, double **sol, double **rhs, int disctype, int solver);
98 
100  ~TSystemCD3D();
101 
103  void Init(CoeffFct3D *BilinearCoeffs, BoundCondFunct3D *BoundCond, BoundValueFunct3D *BoundValue,
104  TAuxParam3D *aux);
105 
107  void Assemble();
108 
110  void Solve(double *sol, double *rhs);
111 
112 #ifdef _MPI
113  TParFECommunicator3D *Get_ParComm(int level){
114  return ParComm[level];
115  }
116 #endif
117 };
118 
119 #endif
int Start_Level
Definition: SystemCD3D.h:50
TSquareStructure3D ** sqstructure
Definition: SystemCD3D.h:77
int N_Matrices
Definition: SystemCD3D.h:71
Definition: SquareMatrix3D.h:20
BoundValueFunct3D * BoundaryValues[1]
Definition: SystemCD3D.h:59
void Init(CoeffFct3D *BilinearCoeffs, BoundCondFunct3D *BoundCond, BoundValueFunct3D *BoundValue, TAuxParam3D *aux)
Definition: SystemCD3D.C:227
Definition: AuxParam3D.h:21
base class for assembling matrices
Definition: AssembleMat3D.h:27
Definition: FESpace3D.h:22
int N_DOF
Definition: SystemCD3D.h:62
double Parameters[2]
Definition: SystemCD3D.h:90
int SOLVER
Definition: SystemCD3D.h:68
TSquareMatrix3D ** sqmatrixA
Definition: SystemCD3D.h:80
Definition: MultiGrid3D.h:26
Definition: MGLevel3D.h:26
TAssembleMat3D ** AMatRhsAssemble
Definition: SystemCD3D.h:74
Definition: SquareMatrix.h:20
~TSystemCD3D()
Definition: SystemCD3D.C:206
double ** SolArray
Definition: SystemCD3D.h:87
TFESpace3D ** FeSpaces
Definition: SystemCD3D.h:53
Definition: ParFEMapper3D.h:24
TDiscreteForm3D * DiscreteFormARhs
Definition: SystemCD3D.h:84
Definition: DiscreteForm3D.h:21
void Assemble()
Definition: SystemCD3D.C:314
void Solve(double *sol, double *rhs)
Definition: SystemCD3D.C:342
BoundCondFunct3D * BoundaryConditions[1]
Definition: SystemCD3D.h:56
TParFEMapper3D ** ParMapper
Definition: SystemCD3D.h:36
int N_Levels
Definition: SystemCD3D.h:47
int Disctype
Definition: SystemCD3D.h:65
Definition: SquareStructure3D.h:20
TSystemCD3D(int N_levels, TFESpace3D **fespaces, double **sol, double **rhs, int disctype, int solver)
Definition: SystemCD3D.C:36
stores the information of a 3D scalar system matrix
Definition: SystemCD3D.h:31
Definition: ParFECommunicator3D.h:25
Definition: ItMethod.h:19
Definition: ParDirectSolver.h:23