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