ParMooN
 All Classes Functions Variables Friends Pages
Urea_3d4d.h
1 /****************************************************************************************
2  * *
3  * Urea_3d4d.h *
4  * ------------- *
5  * *
6  ***************************************************************************************/
7 
8 #ifndef __UREA_3D4D__
9 #define __UREA_3D4D__
10 double growth_rate(double c, double temp);
11 double b_nuc(double c, double temp);
12 double InletPSD(double a);
13 double psd_boundary_urea(double x, double y, double z, double a,
14  double c, double temp);
15 int PSD_bound_cond_from_velo_inflow_urea(double x, double y, double z);
16 int PSD_bound_cond_from_velo_inflow_urea_pipe(double x, double y, double z);
17 void Urea_FWE_FDM_Upwind_4D(TCollection *coll,
18  TFEFunction3D *velocity1, TFEFunction3D *velocity2, TFEFunction3D *velocity3,
19  TFEFunction3D *concent_C,
20  TFEFunction3D *Temp,
21  double *f_old, double *f_new,
22  double *rhs_psd,
23  int N_x, int N_y, int N_z, int N_a,
24  double *x_coord, double *y_coord, double *z_coord, double *a_coord,
25  double x_min, double x_max, double y_min, double y_max,
26  double z_min, double z_max, double a_min, double a_max,
27  double *velo1, double *velo2, double *velo3,
28  double *concent_C_array, double *Temp_array,
29  int *correspond_3dgrid);
30 
31 void Urea_RKV_FDM_4D(TCollection *coll,
32 TFEFunction3D *velocity1, TFEFunction3D *velocity2, TFEFunction3D *velocity3,
33 TFEFunction3D *concent_C,
34 TFEFunction3D *Temp,
35 double *f_old, double *rhs_psd, double **stages,
36 int N_x, int N_y, int N_z, int N_a,
37 double *x_coord, double *y_coord, double *z_coord, double *a_coord,
38 double *velo1, double *velo2, double *velo3, double *concent_C_array, double *Temp_array,
39  int *correspond_3dgrid);
40 
41 
42 void Urea_BWE_FDM_Upwind_4D(TCollection *coll,
43  TFEFunction3D *velocity1, TFEFunction3D *velocity2, TFEFunction3D *velocity3,
44  TFEFunction3D *concent_C,
45  TFEFunction3D *Temp,
46  double *sol,
47  double *rhs_psd,
48  int *correspond_3dgrid,
49  int N_x, int N_y, int N_z, int N_a,
50  double *x_coord, double *y_coord, double *z_coord, double *a_coord,
51  TSquareMatrix3D *mat);
52 
53 
54 void Urea_Compute_Neum_To_Diri_FEM_FCT(int N_x, int N_y, int N_z, int N_a,
55 double *x_coord, double *y_coord,
56 double *z_coord, double *a_coord,
57 int &N_neum_to_diri,
58 int* &neum_to_diri,
59 double* &neum_to_diri_x,
60 double* &neum_to_diri_y,
61 double* &neum_to_diri_z,
62  double* &neum_to_diri_a);
63 
64 void Urea_Build_4D_FEM_FCT_Matrix_Q1(TCollection *coll,
65 TFEFunction3D *velocity1, TFEFunction3D *velocity2,
66 TFEFunction3D *velocity3,
67 TFEFunction3D *concent_C,
68 TFEFunction3D *Temp,
69 double *sol, double *oldsol,double *rhs_psd, double *rhs_psd_old,
70 double *lump_mass_PSD, double *matrix_D_Entries_PSD,
71 int *correspond_3dgrid,
72 int N_x, int N_y, int N_z, int N_a,
73 double *x_coord, double *y_coord, double *z_coord, double *a_coord,
74 TSquareMatrix3D *mat,
75 TSquareMatrix3D *matM_cons,
76 TSquareMatrix3D *matM,
77 int *index_test_ansatz,
78 int N_neum_to_diri,
79 int *neum_to_diri,
80 double *neum_to_diri_x,
81 double *neum_to_diri_y,
82 double *neum_to_diri_z,
83  double *neum_to_diri_a);
84 
85 void FEM_FCT_Matrix_Q1_GroupFEM_4D_Urea(TCollection *coll,
86 TFEFunction3D *velocity1, TFEFunction3D *velocity2,
87 TFEFunction3D *velocity3,
88 TFEFunction3D *concent_C,
89 TFEFunction3D *Temp,
90 double *sol, double *oldsol, double *rhs_psd, double *rhs_psd_old,
91 double *lump_mass_PSD, double *matrix_D_Entries_PSD,
92 int *correspond_3dgrid,
93 int N_x, int N_y, int N_z, int N_a,
94 double *x_coord, double *y_coord, double *z_coord, double *a_coord,
95 double *x_coord_pipe, double *y_coord_pipe, double *z_coord_pipe,
96 TSquareMatrix3D *mat,
97 TSquareMatrix3D *matM_cons,
98 TSquareMatrix3D *matM,
99 TSquareMatrix3D *matU1,
100 TSquareMatrix3D *matU2,
101 TSquareMatrix3D *matU3,
102 TSquareMatrix3D *matG,
103 double *psd_coeff,
104 int N_neum_to_diri,
105 int *neum_to_diri,
106 double *neum_to_diri_x,
107 double *neum_to_diri_y,
108 double *neum_to_diri_z,
109 double *neum_to_diri_a);
110 
111 void Build_4D_FEM_FCT_Matrices_Q1_GroupFEM_Urea(TCollection *coll,
112  int N_x, int N_y, int N_z, int N_a,
113  double *x_coord, double *y_coord, double *z_coord, double *a_coord,
114  TSquareMatrix3D *matM, TSquareMatrix3D *matU1,
115  TSquareMatrix3D *matU2, TSquareMatrix3D *matU3,
116  TSquareMatrix3D *matG,
117  double *lump_mass_PSD);
118 
119 void Build_4D_FEM_FCT_Matrices_Q1_GroupFEM_Urea_Pipe(TCollection *coll, int *correspond_3dgrid,
120  int N_x, int N_y, int N_z, int N_a,
121  double *x_coord, double *y_coord, double *z_coord, double *a_coord,
122  double *x_coord_pipe, double *y_coord_pipe, double *z_coord_pipe,
123  TSquareMatrix3D *matM, TSquareMatrix3D *matU1,
124  TSquareMatrix3D *matU2, TSquareMatrix3D *matU3,
125  TSquareMatrix3D *matG,
126  double *lump_mass_PSD);
127 
128 
129 double calculate_q_3(int N, double a_layers_coord, double sol_psd);
130 
131 void Evaluate_f_at_outflow1(int N_x, int N_y, int N_z, int N_a,
132  double *x_coord, double *y_coord,double *z_coord,
133  double *a_coord, double *f);
134 
135 
136 void Calculate_Volume_Distribution(TCollection *Coll,int N_x, int N_y, int N_z, int N_a,
137  double *x_coord, double *y_coord, double *z_coord,
138  double *a_layers_coord, double *f);
139 
140 void Calculate_PSD_on_node(int N_x, int N_y, int N_z, int N_a,
141 double *x_coord, double *y_coord, double *z_coord,
142  double *a_layers_coord, double *sol_psd, double x, double y, double z);
143 
144 void Calculate_PSD_outflow(TCollection *Coll,int N_x, int N_y, int N_z, int N_a,
145 double *x_coord, double *y_coord, double *z_coord,
146  double *a_layers_coord, double *sol_psd,int *step, double x_end);
147 
148 void PrepareAgglomerationBreakage(TCollection *Coll,
149 TFEFunction3D *velocity1, TFEFunction3D *velocity2,
150 TFEFunction3D *velocity3,
151 TFEFunction3D *temperature,
152 int N_x, int N_y, int N_z, int N_a,
153 double *x_coord, double *y_coord, double *z_coord,
154  double *a_layers_coord, double *f, double *rhs_new);
155 
156 
157 
158 void call_apply_integral_operator(int nx, int ny, int nz, int na, double* input, double* v,
159  double* grad_v, double* temp, double* output, double* grid,
160  double* params);
161 
162 double kernel_urea_old(double x, double x_bar);
163 double gauss_source_urea_old(int j, int index, double *a_layers_coordinate,
164  double a_layers_coordinate_outerLoop, double *f, int N3, int Na);
165 double gauss_sink_urea_old(int j, int index, double *a_layers_coordinate,
166  double a_layers_coordinate_outerLoop, double *f, int N3);
167 void aggregation_conv_urea_old(TCollection *Coll,int N_x, int N_y, int N_z, int N_a, double *x_coord, double *y_coord, double *z_coord,
168  double *f, double *rhs_new, double *a_layers_coord, TFEFunction3D *temperature);
169 double kernel_urea(double x, double x_bar, double shear_rate);
170 double psd_value(double *f, double *a_layers_coord, double val, int index, int N_a, int N3);
171 double gauss_source_urea(int j, int index, double *a_layers_coordinate, double a_layers_coordinate_outerLoop, double *f, int N3, int Na, double shear_rate);
172 double gauss_sink_urea(int j, int index, double *a_layers_coordinate, double a_layers_coordinate_outerLoop, double *f, int N3, double shear_rate);
173 void aggregation_conv_urea(TCollection *Coll,double *x_coord, double *y_coord, double *z_coord,
174  int N_x, int N_y, int N_z, int N_a,
175  double *f, double *rhs_new, double *a_layers_coord, TFEFunction3D *temperature);
176 
177 #endif
178 
179 
Definition: SquareMatrix3D.h:20
store cells in an array, used by cell iterators
Definition: Collection.h:18
Definition: FEFunction3D.h:25