1 | !-------------------------------------------------------------------------- |
---|
2 | !---------------------------- flux_centered ---------------------------------- |
---|
3 | ! NB : here the input data is a flux and has already the factor l_e in it |
---|
4 | ! Perot reconstruction based on Gauss theorem |
---|
5 | ! u = sum( u.edge_normal * edge_length * (edge_midpoint-cell_centroid) ) /cell_area |
---|
6 | DO l = ll_begin, ll_end |
---|
7 | !DIR$ SIMD |
---|
8 | DO ij=ij_begin, ij_end |
---|
9 | cx=centroid(ij,1) |
---|
10 | cy=centroid(ij,2) |
---|
11 | cz=centroid(ij,3) |
---|
12 | ux=0. ; uy=0. ; uz=0. |
---|
13 | ue_le = ne_rup*ue(ij+u_rup,l) |
---|
14 | ux = ux + ue_le*(.5*(xyz_v(ij+z_rup,1)+xyz_v(ij+z_up,1))-cx) |
---|
15 | uy = uy + ue_le*(.5*(xyz_v(ij+z_rup,2)+xyz_v(ij+z_up,2))-cy) |
---|
16 | uz = uz + ue_le*(.5*(xyz_v(ij+z_rup,3)+xyz_v(ij+z_up,3))-cz) |
---|
17 | ue_le = ne_lup*ue(ij+u_lup,l) |
---|
18 | ux = ux + ue_le*(.5*(xyz_v(ij+z_lup,1)+xyz_v(ij+z_up,1))-cx) |
---|
19 | uy = uy + ue_le*(.5*(xyz_v(ij+z_lup,2)+xyz_v(ij+z_up,2))-cy) |
---|
20 | uz = uz + ue_le*(.5*(xyz_v(ij+z_lup,3)+xyz_v(ij+z_up,3))-cz) |
---|
21 | ue_le = ne_left*ue(ij+u_left,l) |
---|
22 | ux = ux + ue_le*(.5*(xyz_v(ij+z_lup,1)+xyz_v(ij+z_ldown,1))-cx) |
---|
23 | uy = uy + ue_le*(.5*(xyz_v(ij+z_lup,2)+xyz_v(ij+z_ldown,2))-cy) |
---|
24 | uz = uz + ue_le*(.5*(xyz_v(ij+z_lup,3)+xyz_v(ij+z_ldown,3))-cz) |
---|
25 | ue_le = ne_ldown*ue(ij+u_ldown,l) |
---|
26 | ux = ux + ue_le*(.5*(xyz_v(ij+z_ldown,1)+xyz_v(ij+z_down,1))-cx) |
---|
27 | uy = uy + ue_le*(.5*(xyz_v(ij+z_ldown,2)+xyz_v(ij+z_down,2))-cy) |
---|
28 | uz = uz + ue_le*(.5*(xyz_v(ij+z_ldown,3)+xyz_v(ij+z_down,3))-cz) |
---|
29 | ue_le = ne_rdown*ue(ij+u_rdown,l) |
---|
30 | ux = ux + ue_le*(.5*(xyz_v(ij+z_rdown,1)+xyz_v(ij+z_down,1))-cx) |
---|
31 | uy = uy + ue_le*(.5*(xyz_v(ij+z_rdown,2)+xyz_v(ij+z_down,2))-cy) |
---|
32 | uz = uz + ue_le*(.5*(xyz_v(ij+z_rdown,3)+xyz_v(ij+z_down,3))-cz) |
---|
33 | ue_le = ne_right*ue(ij+u_right,l) |
---|
34 | ux = ux + ue_le*(.5*(xyz_v(ij+z_rup,1)+xyz_v(ij+z_rdown,1))-cx) |
---|
35 | uy = uy + ue_le*(.5*(xyz_v(ij+z_rup,2)+xyz_v(ij+z_rdown,2))-cy) |
---|
36 | uz = uz + ue_le*(.5*(xyz_v(ij+z_rup,3)+xyz_v(ij+z_rdown,3))-cz) |
---|
37 | ucenter(ij,l,1)=ux |
---|
38 | ucenter(ij,l,2)=uy |
---|
39 | ucenter(ij,l,3)=uz |
---|
40 | END DO |
---|
41 | END DO |
---|
42 | !---------------------------- flux_centered ---------------------------------- |
---|
43 | !-------------------------------------------------------------------------- |
---|