1 subroutine getareas(areas, pts, npts, sps_in, axis)
13 integer(kind=intType),
intent(in) :: npts, sps_in
14 real(kind=realtype),
intent(in) :: pts(3, npts), axis(3)
15 real(kind=realtype),
intent(out) :: areas(3, npts)
17 integer(kind=intType) :: mm, nn, i, j, ii, sps
18 integer(kind=intType) :: iBeg, iEnd, jBeg, jEnd
19 integer(kind=intType) :: lower_left, lower_right, upper_left, upper_right
20 real(kind=realtype) :: da, fact, fact2
29 domains:
do nn = 1, ndom
31 if (flowdoms(nn, 1_inttype, sps)%rightHanded)
then
80 lower_left = ii + (j - jbeg) * (iend - ibeg + 2) + i - ibeg + 1
81 lower_right = lower_left + 1
82 upper_left = lower_right + iend - ibeg + 1
83 upper_right = upper_left + 1
86 pts(:, lower_left), pts(:, lower_right), &
87 pts(:, upper_left), pts(:, upper_right), &
89 da =
fourth * da * fact * fact2
93 areas(1, lower_left) = areas(1, lower_left) + da
94 areas(1, lower_right) = areas(1, lower_right) + da
95 areas(1, upper_left) = areas(1, upper_left) + da
96 areas(1, upper_right) = areas(1, upper_right) + da
104 ii = ii + (jend - jbeg + 2) * (iend - ibeg + 2)
123 integer(kind=intType),
intent(in) :: npts, sps_in
124 real(kind=realtype),
intent(in) :: pts(3, npts), axis(3)
125 real(kind=realtype),
intent(out) :: darea(3, npts)
127 integer(kind=intType) :: mm, nn, i, j, ii, sps
128 integer(kind=intType) :: iBeg, iEnd, jBeg, jEnd
129 integer(kind=intType) :: lower_left, lower_right, upper_left, upper_right
130 real(kind=realtype) :: area, areab, pt1b(3), pt2b(3), pt3b(3), pt4b(3)
131 real(kind=realtype) :: fact, fact2, da
140 domains:
do nn = 1, ndom
142 if (flowdoms(nn, 1_inttype, sps)%rightHanded)
then
189 lower_left = ii + (j - jbeg) * (iend - ibeg + 2) + i - ibeg + 1
190 lower_right = lower_left + 1
191 upper_left = lower_right + iend - ibeg + 1
192 upper_right = upper_left + 1
198 pts(:, lower_left), pts(:, lower_right), &
199 pts(:, upper_left), pts(:, upper_right), &
202 da =
fourth * da * fact * fact2
207 pts(:, lower_left), pt1b, &
208 pts(:, lower_right), pt2b, &
209 pts(:, upper_left), pt3b, &
210 pts(:, upper_right), pt4b, &
213 darea(:, lower_left) = darea(:, lower_left) + pt1b
214 darea(:, lower_right) = darea(:, lower_right) + pt2b
215 darea(:, upper_left) = darea(:, upper_left) + pt3b
216 darea(:, upper_right) = darea(:, upper_right) + pt4b
224 ii = ii + (jend - jbeg + 2) * (iend - ibeg + 2)
238 real(kind=realtype),
intent(in) :: p1(3), p2(3), p3(3), p4(3), axis(3)
239 real(kind=realtype),
intent(out) :: area
242 real(kind=realtype) :: v1(3), v2(3), sss(3)
249 sss(1) =
half * (v1(2) * v2(3) - v1(3) * v2(2))
250 sss(2) =
half * (v1(3) * v2(1) - v1(1) * v2(3))
251 sss(3) =
half * (v1(1) * v2(2) - v1(2) * v2(1))
253 area = sss(1) * axis(1) + sss(2) * axis(2) + sss(3) * axis(3)
265 SUBROUTINE quad_area_b(p1, p1b, p2, p2b, p3, p3b, p4, p4b, axis, area, &
272 REAL(kind=realtype),
INTENT(IN) :: p1(3), p2(3), p3(3), p4(3), axis(3)
273 REAL(kind=realtype) :: p1b(3), p2b(3), p3b(3), p4b(3)
274 REAL(kind=realtype) :: area
275 REAL(kind=realtype) :: areab
277 REAL(kind=realtype) :: v1(3), v2(3), sss(3)
278 REAL(kind=realtype) :: v1b(3), v2b(3), sssb(3)
279 REAL(kind=realtype) :: tempb1
280 REAL(kind=realtype) :: tempb0
282 REAL(kind=realtype) :: tempb
287 sss(1) =
half * (v1(2) * v2(3) - v1(3) * v2(2))
288 sss(2) =
half * (v1(3) * v2(1) - v1(1) * v2(3))
289 sss(3) =
half * (v1(1) * v2(2) - v1(2) * v2(1))
290 IF (sss(1) * axis(1) + sss(2) * axis(2) + sss(3) * axis(3) .GE. 0.)
THEN
292 sssb(1) = axis(1) * areab
293 sssb(2) = axis(2) * areab
294 sssb(3) = axis(3) * areab
297 sssb(1) = -(axis(1) * areab)
298 sssb(2) = -(axis(2) * areab)
299 sssb(3) = -(axis(3) * areab)
303 tempb =
half * sssb(3)
304 v1b(1) = v2(2) * tempb
305 v2b(2) = v1(1) * tempb
306 v1b(2) = -(v2(1) * tempb)
308 tempb0 =
half * sssb(2)
309 v2b(1) = v1(3) * tempb0 - v1(2) * tempb
310 v1b(3) = v1b(3) + v2(1) * tempb0
311 v1b(1) = v1b(1) - v2(3) * tempb0
313 tempb1 =
half * sssb(1)
314 v2b(3) = v2b(3) + v1(2) * tempb1 - v1(1) * tempb0
315 v1b(2) = v1b(2) + v2(3) * tempb1
316 v1b(3) = v1b(3) - v2(2) * tempb1
317 v2b(2) = v2b(2) - v1(3) * tempb1
subroutine getareas(areas, pts, npts, sps_in, axis)
subroutine getareasensitivity(darea, pts, npts, sps_in, axis)
subroutine quad_area_b(p1, p1b, p2, p2b, p3, p3b, p4, p4b, axis, area, areab)
subroutine quad_area(p1, p2, p3, p4, axis, area)
integer(kind=inttype), dimension(:), pointer bcfaceid
integer(kind=inttype) nbocos
integer(kind=inttype), dimension(:), pointer bctype
integer(kind=inttype), parameter eulerwall
real(kind=realtype), parameter zero
integer(kind=inttype), parameter imax
integer(kind=inttype), parameter kmin
integer(kind=inttype), parameter jmax
integer(kind=inttype), parameter nswalladiabatic
real(kind=realtype), parameter one
real(kind=realtype), parameter half
integer(kind=inttype), parameter imin
real(kind=realtype), parameter fourth
integer(kind=inttype), parameter nswallisothermal
integer(kind=inttype), parameter kmax
integer(kind=inttype), parameter jmin
subroutine setpointers(nn, mm, ll)