ParMooN
 All Classes Functions Variables Friends Pages
Windtunnel_3d4d.h
1 /****************************************************************************************
2  * *
3  * windtunnel_3d4d.h *
4  * ------------------- *
5  * *
6  ***************************************************************************************/
7 
8 #ifndef __WINDTUNNEL_3D4D__
9 #define __WINDTUNNEL_3D4D__
10 double DROPS_bound_cound_from_velo_inflow(int coord_x, int coord_y, int coord_z, double r,
11  int N_x, int N_y, int N_z, int N_r);
12 
13 
14 
15 void Windtunnel_FWE_FDM_Upwind_4D(TCollection *coll,
16  TFEFunction3D *velocity1, TFEFunction3D *velocity2, TFEFunction3D *velocity3,
17  double *f_old,
18  int N_x, int N_y, int N_z, int N_a,
19  double *x_coord, double *y_coord, double *z_coord, double *a_coord,
20  double x_min, double x_max, double y_min, double y_max,
21  double z_min, double z_max, double a_min, double a_max,
22  double *velo1, double *velo2, double *velo3,
23  int *correspond_3dgrid, double ***diff_velo_air_drops);
24 
25 
26 void Windtunnel_BWE_FDM_Upwind_4D(TCollection *coll,
27  TFEFunction3D *velocity1, TFEFunction3D *velocity2, TFEFunction3D *velocity3,
28  double *sol,
29  int *correspond_3dgrid,
30  int N_x, int N_y, int N_z, int N_a, double x_min, double x_max,
31  double y_min, double y_max, double z_min,
32  double z_max, double a_min, double a_max,
33  double *x_coord, double *y_coord, double *z_coord, double *a_coord, double ***diff_velo_air_drops, TSquareMatrix3D *mat);
34 
35 void FEM_FCT_Matrix_Q1_4D_Windtunnel(TCollection *coll,
36  TFEFunction3D *velocity1, TFEFunction3D *velocity2,
37  TFEFunction3D *velocity3, double ***diff_velo_air_drops,
38  double *sol, double *oldsol,
39  double *lump_mass_PSD, double *matrix_D_Entries_PSD,
40  int *correspond_3dgrid,
41  int N_x, int N_y, int N_z, int N_a,
42  double *x_coord, double *y_coord, double *z_coord, double *a_coord,
43  TSquareMatrix3D *mat,
44  TSquareMatrix3D *matM_cons,
45  TSquareMatrix3D *matM,
46  int *index_test_ansatz,
47  int N_neum_to_diri,
48  int *neum_to_diri,
49  double *neum_to_diri_x,
50  double *neum_to_diri_y,
51  double *neum_to_diri_z,
52  double *neum_to_diri_a);
53 
54 
55 void Compute_Neum_To_Diri_FEM_FCT_Windtunnel(int N_x, int N_y, int N_z, int N_a,
56  double *x_coord, double *y_coord,
57  double *z_coord, double *a_coord,
58  int &N_neum_to_diri,
59  int* &neum_to_diri,
60  double* &neum_to_diri_x,
61  double* &neum_to_diri_y,
62  double* &neum_to_diri_z,
63  double* &neum_to_diri_a);
64 
65 void Build_4D_FEM_FCT_MassMatrix_Q1_Windtunnel(TCollection *coll,
66  int N_x, int N_y, int N_z, int N_a,
67  double *x_coord, double *y_coord, double *z_coord, double *a_coord,
68  int* &index_test_ansatz,
69  TSquareMatrix3D *matM,
70  double *lump_mass_PSD);
71 
72 void Build_4D_FEM_FCT_Matrices_Q1_GroupFEM_Windtunnel(TCollection *coll,
73 int N_x, int N_y, int N_z, int N_a,
74 double *x_coord, double *y_coord, double *z_coord, double *a_coord,
75 TSquareMatrix3D *matM, TSquareMatrix3D *matU1,
76 TSquareMatrix3D *matU2, TSquareMatrix3D *matU3,
77 TSquareMatrix3D *matG,
78 double *lump_mass_PSD,double *psd_coeff);
79 
80 void FEM_FCT_Matrix_Q1_GroupFEM_4D_Windtunnel(TCollection *coll,
81 TFEFunction3D *velocity1, TFEFunction3D *velocity2,
82 TFEFunction3D *velocity3, double ***diff_velo_air_drops,
83 double *sol, double *oldsol, double *rhs_psd, double *rhs_psd_old,
84 double *lump_mass_PSD, double *matrix_D_Entries_PSD,
85 int *correspond_3dgrid,
86 int N_x, int N_y, int N_z, int N_a,
87 double *x_coord, double *y_coord, double *z_coord, double *a_coord, double *a_layers_coord,
88 TSquareMatrix3D *mat,
89 TSquareMatrix3D *matM_cons,
90 TSquareMatrix3D *matM,
91 TSquareMatrix3D *matU1,
92 TSquareMatrix3D *matU2,
93 TSquareMatrix3D *matU3,
94 TSquareMatrix3D *matG,
95 double *psd_coeff,
96 int N_neum_to_diri,
97 int *neum_to_diri,
98 double *neum_to_diri_x,
99 double *neum_to_diri_y,
100 double *neum_to_diri_z,
101 double *neum_to_diri_a);
102 
103 
104 double normal_rand();
105 
106 double log_normal_rand(double mu, double sigma, double scal);
107 double calc_log_normal(double x, double sigma, double mu, double scal);
108 
109 void write_vtk_file_yzlayer( int N_x, int N_y, int N_z, int N_a, double x_fix_coord,
110  double *x_coord, double *y_coord, double *z_coord, double *a_coord,
111  double *f_old, const char *name);
112 void write_data_file_meanvalue(double ***mean_value_outflow, double *a_layers_coord, int N_x, int N_y ,int N_z, int N_a, const char *name);
113 void compute_coordinate(int index, int *coord_x, int *coord_y,
114  int *coord_z, int *coord_a, int N_x, int N_y,
115  int N_z, int N_a);
116 
117 void midpointflow(double *x_coord, double *y_coord,
118  double *z_coord, double *a_coord, int N_x, int N_y,
119  int N_z, int N_a, double *sol );
120 void compute_mean_value_outflow(int*** mean_value_outflow_indices, double*** mean_value_outflow, double*sol, double* x_coord,
121  int N_x, int N_y, int N_z, int N_a, int *only_first_time);
122 double calc_velo_u1(double *** diff_velo_air_drops, int coord_int_x, int coord_int_y, int coord_int_z,
123  int a_coord_int, int N_x, int N_y, int N_z, int N_a);
124 void alloc_cubix(double ****cubix, int dim_x, int dim_y, int dim_z);
125 void disalloc_cubix(double ****cubix, int dim_x, int dim_y, int dim_z);
126 void alloc_cubix_int(int ****cubix, int dim_x, int dim_y, int dim_z);
127 void disalloc_cubix_int(int ****cubix, int dim_x, int dim_y, int dim_z);
128 void alloc_matrix(double ***matrix, int dim_x, int dim_y);
129 void disalloc_matrix(double **matrix, int dim_x, int dim_y);
130 void alloc_matrix_int(int ***matrix, int dim_x, int dim_y);
131 void disalloc_matrix_int(int **matrix, int dim_x, int dim_y);
132 
133 void Q_criterion(TCollection *Coll,
134 TFEFunction3D *velocity1, TFEFunction3D *velocity2,
135 TFEFunction3D *velocity3,
136 int N_x, int N_y, int N_z, int N_a,
137 double *x_coord, double *y_coord, double *z_coord, double *Qcrit);
138 
139 void calc_inflow_outflow_mass(double *a_layers_coord, double *f, double *x_coord, int N_x,
140 int N_y, int N_z, int N_r, double *mass_inflow, double *mass_outflow );
141 
142 void calc_inflow_outflow_mass_m3(double *a_layers_coord, double *f, double *x_coord, double *y_coord, int N_x,
143 int N_y, int N_z, int N_r, double *mass_inflow, double *mass_outflow );
144 
145 void write_vtk_q_crit( int N_x, int N_y, int N_z, int N_a, double *x_coord, double *y_coord, double *z_coord, double *a_coord,
146 double *q_crit, const char *name);
147 
148 void ComputeIntegralLengthScale(TCollection *coll,
149 TFEFunction3D *velocity1,
150 int N_x, int N_y, int N_z,
151 double *x_coord, double *y_coord, double *z_coord,
152 int *correspond_3dgrid);
153 
154 #endif
155 
156 
Definition: SquareMatrix3D.h:20
store cells in an array, used by cell iterators
Definition: Collection.h:18
Definition: FEFunction3D.h:25