1 | /* |
2 | * stoke_flow_eq_3d.hpp |
3 | * |
4 | * Created on: May 28, 2016 |
5 | * Author: i-bird |
6 | */ |
7 | |
8 | #ifndef OPENFPM_NUMERICS_SRC_EQUATIONS_STOKE_FLOW_EQ_3D_HPP_ |
9 | #define OPENFPM_NUMERICS_SRC_EQUATIONS_STOKE_FLOW_EQ_3D_HPP_ |
10 | |
11 | constexpr unsigned int x = 0; |
12 | constexpr unsigned int y = 1; |
13 | constexpr unsigned int z = 2; |
14 | |
15 | // Model the equations |
16 | |
17 | constexpr unsigned int v[] = {0,1,2}; |
18 | constexpr unsigned int P = 3; |
19 | |
20 | typedef Field<v[x],lid_nn_3d> v_x; |
21 | typedef Field<v[y],lid_nn_3d> v_y; |
22 | typedef Field<v[z],lid_nn_3d> v_z; |
23 | typedef Field<P,lid_nn_3d> Prs; |
24 | |
25 | // Eq1 V_x |
26 | |
27 | typedef mul<eta,Lap<v_x,lid_nn_3d>,lid_nn_3d> eta_lap_vx; |
28 | typedef D<x,Prs,lid_nn_3d> p_x; |
29 | typedef minus<p_x,lid_nn_3d> m_p_x; |
30 | typedef sum<eta_lap_vx,m_p_x,lid_nn_3d> vx_eq; |
31 | |
32 | // Eq2 V_y |
33 | |
34 | typedef mul<eta,Lap<v_y,lid_nn_3d>,lid_nn_3d> eta_lap_vy; |
35 | typedef D<y,Prs,lid_nn_3d> p_y; |
36 | typedef minus<p_y,lid_nn_3d> m_p_y; |
37 | typedef sum<eta_lap_vy,m_p_y,lid_nn_3d> vy_eq; |
38 | |
39 | // Eq3 V_z |
40 | |
41 | typedef mul<eta,Lap<v_z,lid_nn_3d>,lid_nn_3d> eta_lap_vz; |
42 | typedef D<z,Prs,lid_nn_3d> p_z; |
43 | typedef minus<p_z,lid_nn_3d> m_p_z; |
44 | typedef sum<eta_lap_vz,m_p_z,lid_nn_3d> vz_eq; |
45 | |
46 | // Eq4 Incompressibility |
47 | |
48 | typedef D<x,v_x,lid_nn_3d,FORWARD> dx_vx; |
49 | typedef D<y,v_y,lid_nn_3d,FORWARD> dy_vy; |
50 | typedef D<z,v_z,lid_nn_3d,FORWARD> dz_vz; |
51 | typedef sum<dx_vx,dy_vy,dz_vz,lid_nn_3d> ic_eq; |
52 | |
53 | |
54 | // Directional Avg |
55 | typedef Avg<x,v_y,lid_nn_3d> avg_x_vy; |
56 | typedef Avg<z,v_y,lid_nn_3d> avg_z_vy; |
57 | |
58 | typedef Avg<y,v_x,lid_nn_3d> avg_y_vx; |
59 | typedef Avg<z,v_x,lid_nn_3d> avg_z_vx; |
60 | |
61 | typedef Avg<y,v_z,lid_nn_3d> avg_y_vz; |
62 | typedef Avg<x,v_z,lid_nn_3d> avg_x_vz; |
63 | |
64 | // Directional Avg |
65 | |
66 | typedef Avg<x,v_y,lid_nn_3d,FORWARD> avg_x_vy_f; |
67 | typedef Avg<z,v_y,lid_nn_3d,FORWARD> avg_z_vy_f; |
68 | |
69 | typedef Avg<y,v_x,lid_nn_3d,FORWARD> avg_y_vx_f; |
70 | typedef Avg<z,v_x,lid_nn_3d,FORWARD> avg_z_vx_f; |
71 | |
72 | typedef Avg<y,v_z,lid_nn_3d,FORWARD> avg_y_vz_f; |
73 | typedef Avg<x,v_z,lid_nn_3d,FORWARD> avg_x_vz_f; |
74 | |
75 | #define EQ_1 0 |
76 | #define EQ_2 1 |
77 | #define EQ_3 2 |
78 | #define EQ_4 3 |
79 | |
80 | |
81 | #endif /* OPENFPM_NUMERICS_SRC_EQUATIONS_STOKE_FLOW_EQ_3D_HPP_ */ |
82 | |