ParMooN
 All Classes Functions Variables Friends Pages
TimeConvDiff2D.h
1 // ======================================================================
2 // @(#)TimeConvDiff2D.h 1.6 04/13/00
3 //
4 // common declaration for time dependent convection diffusion problems
5 // ======================================================================
6 #include <Enumerations.h>
7 #include <FESpace2D.h>
8 
9 #ifndef __TIMECONVDIFF2D__
10 #define __TIMECONVDIFF2D__
11 
12 // part for standard Galerkin
13 // int N_Terms = 3;
14 // MultiIndex2D Derivatives[3] = { D10, D01, D00 };
15 // int SpacesNumbers[3] = { 0, 0, 0 };
16 
17 // part for SDFEM
18 // int N_Terms_SD = 5;
19 // MultiIndex2D Derivatives_SD[5] = { D10, D01, D00, D20, D02 };
20 // int SpacesNumbers_SD[5] = { 0, 0, 0, 0 };
21 
22 // part for all
23 // int N_Matrices = 1;
24 // int RowSpace[2] = { 0 };
25 // int ColumnSpace[2] = { 0 };
26 // int N_Rhs = 1;
27 // int RhsSpace[1] = { 0 };
28 
29 // part for mass matrix
30 int N_Matrices_Mass = 1;
31 int RowSpace_Mass[1] = { 0 };
32 int ColumnSpace_Mass[1] = { 0 };
33 int N_Rhs_Mass= 0;
34 int N_Terms_Mass = 1;
35 MultiIndex2D Derivatives_Mass[1] = { D00 };
36 int SpacesNumbers_Mass[1] = { 0 };
37 
38 // MultiIndex2D AllDerivatives[3] = { D00, D10, D01 };
39 
40 void TimeBilinearAssemble(double Mult, double *coeff, double hK,
41  double **OrigValues, int *N_BaseFuncts,
42  double ***LocMatrices, double **LocRhs);
43 
44 void TimeMassAssemble(double Mult, double *coeff, double hK,
45  double **OrigValues, int *N_BaseFuncts,
46  double ***LocMatrices, double **LocRhs);
47 
48 void TimeBilinearAssemble_SD(double Mult, double *coeff, double hK,
49  double **OrigValues, int *N_BaseFuncts,
50  double ***LocMatrices, double **LocRhs);
51 
52 void TimeBilinearAssembleRB1(double Mult, double *coeff, double hK,
53  double **OrigValues, int *N_BaseFuncts,
54  double ***LocMatrices, double **LocRhs);
55 
56 void TimeBilinearAssembleRB(double Mult, double *coeff, double hK,
57  double **OrigValues, int *N_BaseFuncts,
58  double ***LocMatrices, double **LocRhs);
59 
60 void TimeRhsAssembleRB(double Mult, double *coeff, double hK,
61  double **OrigValues, int *N_BaseFuncts,
62  double ***LocMatrices, double **LocRhs);
63 
64 // ======================================================================
65 // parameter routine settings
66 // convection is finite element velocity field
67 // ======================================================================
68 void TimeCDParamsVeloField(double *in, double *out);
69 
70 int TimeCDParamsVeloFieldN_FESpaces = 1;
71 int TimeCDParamsVeloFieldN_Fct = 2;
72 int TimeCDParamsVeloFieldN_ParamFct = 1;
73 int TimeCDParamsVeloFieldN_FEValues = 2;
74 int TimeCDParamsVeloFieldN_Params = 3;
75 int TimeCDParamsVeloFieldFEFctIndex[2] = { 0, 1 };
76 MultiIndex2D TimeCDParamsVeloFieldFEMultiIndex[2] = { D00, D00 };
77 ParamFct *TimeCDParamsVeloFieldFct[1] = { TimeCDParamsVeloField };
78 int TimeCDParamsVeloFieldBeginParam[1] = { 0 };
79 
80 
81 void TimeCDParamsVeloField_ALE(double *in, double *out);
82 
83 int TimeCDParamsVeloFieldN_Params_ALE = 4;
84 int TimeCDParamsVeloFieldN_FEValues_ALE = 4;
85 int TimeCDParamsVeloFieldFEFctIndex_ALE[4] = { 0, 1, 2, 3 };
86 MultiIndex2D TimeCDParamsVeloFieldFEMultiIndex_ALE[4] = { D00, D00, D10, D01 };
87 ParamFct *TimeCDParamsVeloFieldFct_ALE[1] = { TimeCDParamsVeloField_ALE };
88 #endif
89 
90 
91 void MatrixMARhsAssemble_Axial3D(double Mult, double *coeff, double *param,
92  double hK,
93  double **OrigValues, int *N_BaseFuncts,
94  double ***LocMatrices, double **LocRhs);
95 
96 void MatrixMARhsAssemble(double Mult, double *coeff, double *param,
97  double hK, double **OrigValues, int *N_BaseFuncts,
98  double ***LocMatrices, double **LocRhs);
99 
100 void MatrixMARhsALEAssemble_SUPG(double Mult, double *coeff, double *param,
101  double hK,
102  double **OrigValues, int *N_BaseFuncts,
103  double ***LocMatrices, double **LocRhs);
104 
105 void MatrixMRhsALEAssemble_SUPG(double Mult, double *coeff, double *param,
106  double hK,
107  double **OrigValues, int *N_BaseFuncts,
108  double ***LocMatrices, double **LocRhs);
109 
110 void MatrixARhsAssembleHeatLine(double Mult, double *coeff, double *param, double hK,
111  double **OrigValues, int *N_BaseFuncts,
112  double ***LocMatrices, double **LocRhs);
113 
114 void MatrixARhsAssembleHeatLine_Axial3D(double Mult, double *coeff, double *param, double hK,
115  double **OrigValues, int *N_BaseFuncts,
116  double ***LocMatrices, double **LocRhs);