ParMooN
 All Classes Functions Variables Friends Pages
Bulk_3d4d.h
1 /****************************************************************************************
2  * *
3  * Bulk_3d4d.h *
4  * ------------- *
5  * *
6  ***************************************************************************************/
7 
8 #ifndef __BULK_3D4D__
9 #define __BULK_3D4D__
10 
11 void grid_generator_4d(TCollection *coll, int &N_x, int &N_y, int &N_z,
12  double &x_min, double &x_max, double &y_min,
13  double &y_max, double &z_min, double &z_max,
14  double a_min, double a_max, int N_a,
15  double* &x_coord, double* &y_coord, double* &z_coord,
16  double* &a_coord, double *a_layers_coord);
17 
18 void grid_generator_4d_pipe(int N_x, int N_y, int N_z, int N_a,
19  double* &x_coord, double* &y_coord,
20  double* &z_coord,
21  double* &x_coord_pipe, double* &y_coord_pipe,
22  double* &z_coord_pipe);
23 
24 void grid_generator_5d(TCollection *coll, int &N_x, int &N_y, int &N_z,
25  double &x_min, double &x_max, double &y_min,
26  double &y_max, double &z_min, double &z_max,
27  double a_min, double a_max, double b_min, double b_max,
28  int N_a,int N_b, double* &x_coord, double* &y_coord,
29  double* &z_coord, double* &a_coord, double* &b_coord,
30  double *a_layers_coord,double *b_layers_coord);
31 
32 
33 int PSD_bound_cound_from_velo_inflow(double x, double y, double z);
34 
35 void Bulk_FWE_FDM_Upwind_4D(TCollection *coll, TFEFunction3D *velocity1,
36  TFEFunction3D *velocity2, TFEFunction3D *velocity3,
37  TFEFunction3D *concent_C,
38  double *f_old,
39  int N_x, int N_y, int N_z, int N_a,
40  double *x_coord, double *y_coord, double *z_coord,
41  double *a_coord,
42  double x_min, double x_max,
43  double y_min, double y_max,
44  double z_min, double z_max,
45  double a_min, double a_max,
46  double *velo1, double *velo2, double *velo3,
47  double *concent_C_array, int *correspond_3dgrid);
48 
49 
50 void Bulk_BWE_FDM_Upwind_4D(TCollection *coll,
51  TFEFunction3D *velocity1, TFEFunction3D *velocity2,
52  TFEFunction3D *velocity3, TFEFunction3D *concent_C,
53  double *sol, int *correspond_3dgrid,
54  int N_x, int N_y, int N_z, int N_a,
55  double *x_coord, double *y_coord, double *z_coord,
56  double *a_coord, TSquareMatrix3D *mat);
57 
58 void Compute_Q1_Value_Gradient_4D(double *coeff, double x, double y, double z,
59  double a, double *val);
60 void Compute_Q1_Value_4D(double *coeff, double x, double y, double z, double a,
61  double *val);
62 void Compute_Q1_Gradient_4D(double *coeff, double x, double y, double z,
63  double a, double *val);
64 
65 void generate_correspond_3d_grid(int N_x, int N_y, int N_z,
66  double *x_coord, double *y_coord,
67  double *z_coord,
68  TCollection *coll, int *correspond_3dgrid);
69 
70 void generate_correspond_3d_grid_urea_pipe(int N_x, int N_y, int N_z,
71  double *x_coord, double *y_coord,
72  double *z_coord,
73  TCollection *coll,
74  int *correspond_3dgrid);
75 
76 void CoordsTrafo_SquareToCircle(double x, double y, double& nx, double& ny);
77 
78 
79 void filling_row_and_col_ptr(int *N_Entries, int Nodes,
80  int N_x, int N_y, int N_z,
81  double x_max, double x_min,
82  double y_max, double y_min,
83  double z_max, double z_min,
84  double a_max, double a_min,
85  double *x_coord, double *y_coord, double *z_coord,
86  double *a_coord, int *row_ptr, int *col_ptr);
87 
88 
89 double Bulk_mesh_size_in_convection_direction(double hK, double b1, double b2,
90  double b3, double b4, double *x,
91  double *y, double *z,
92  double *a_4d);
93 
94 
95 void Build_4D_FEM_Matrix_Q1(TCollection *coll,
96  TFEFunction3D *velocity1, TFEFunction3D *velocity2,
97  TFEFunction3D *velocity3, TFEFunction3D *concent_C,
98  double *sol, double *oldsol,
99  double *lump_mass_PSD, double *matrix_D_Entries_PSD,
100  int *correspond_3dgrid,
101  int N_x, int N_y, int N_z, int N_a,
102  double *x_coord, double *y_coord, double *z_coord,
103  double *a_coord,
104  TSquareMatrix3D *mat, TSquareMatrix3D *matM);
105 
106 void Compute_Neum_To_Diri_FEM_FCT(int N_x, int N_y, int N_z, int N_a,
107  double *x_coord, double *y_coord,
108  double *z_coord, double *a_coord,
109  int &N_neum_to_diri,
110  int* &neum_to_diri,
111  double* &neum_to_diri_x,
112  double* &neum_to_diri_y,
113  double* &neum_to_diri_z,
114  double* &neum_to_diri_a);
115 
116 void Build_4D_FEM_FCT_MassMatrix_Q1(TCollection *coll,
117  int N_x, int N_y, int N_z, int N_a,
118  double *x_coord, double *y_coord,
119  double *z_coord, double *a_coord,
120  int* &index_test_ansatz,
121  TSquareMatrix3D *matM,
122  double *lump_mass_PSD);
123 
124 void Build_4D_FEM_FCT_Matrix_Q1(TCollection *coll,
125  TFEFunction3D *velocity1,
126  TFEFunction3D *velocity2,
127  TFEFunction3D *velocity3,
128  TFEFunction3D *concent_C,
129  double *sol, double *oldsol,
130  double *lump_mass_PSD,
131  double *matrix_D_Entries_PSD,
132  int *correspond_3dgrid,
133  int N_x, int N_y, int N_z, int N_a,
134  double *x_coord, double *y_coord,
135  double *z_coord, double *a_coord,
136  TSquareMatrix3D *mat,
137  TSquareMatrix3D *matM_cons,
138  TSquareMatrix3D *matM,
139  int *index_test_ansatz,
140  int N_neum_to_diri,
141  int *neum_to_diri,
142  double *neum_to_diri_x,
143  double *neum_to_diri_y,
144  double *neum_to_diri_z,
145  double *neum_to_diri_a);
146 
147 void Integral_For_Particle_Increase_Term(TFESpace3D *fespace,
148  TFEFunction3D *fefct,
149  int N_x, int N_y, int N_z, int N_a,
150  double *x_coord, double *y_coord,
151  double *z_coord, double *a_coord,
152  double *concent_C_array, double *f);
153 
154 void Integral_For_Particle_Increase_Term_2D(TFESpace3D *fespace,
155  TFEFunction3D *fefct,
156  TFEFunction3D *fefct_2,
157  int N_x, int N_y, int N_z,
158  int N_a, int N_b,
159  double *x_coord, double *y_coord,
160  double *z_coord,
161  double *a_coord, double *b_coord,
162  double *f);
163 
164 
165 void Evaluate_f_at_outflow(int N_x, int N_y, int N_z, int N_a,
166  double *x_coord, double *y_coord,
167  double *a_coord, double *f,
168  double *average_median, int *average_step);
169 
170 void write_vtk_file( int N_x, int N_y, int N_z, int N_a, double cut_coord,
171  double *x_coord, double *y_coord, double *z_coord,
172  double *a_coord, double *f_old, const char *name);
173 
174 void save_f_old_in_txt_file( int Nodes, double *f_old, const char *name);
175 
176 void read_in_f_old_from_txt_file(int Nodes, double *f_old, const char *name);
177 
178 void Compute_psd_level(TCollection *coll, TFESpace3D *psd_level_space,
179  TFEFunction3D *psd_level_fe_fct,
180  int N_x, int N_y, int N_z, int N_a,
181  double *x_coord, double *y_coord,
182  double *z_coord, double *a_coord, double *f);
183 #endif
184 
185 
Definition: SquareMatrix3D.h:20
Definition: FESpace3D.h:22
store cells in an array, used by cell iterators
Definition: Collection.h:18
Definition: FEFunction3D.h:25