12 #include <petsc/finclude/petsc.h>
15 integer(kind=intType),
intent(in) :: npts, sps
16 real(kind=realtype),
intent(inout) :: forces(3, npts)
18 integer(kind=intType) :: mm, nn, i, j, ii, jj, iDim, ierr
19 integer(kind=intType) :: iBeg, iEnd, jBeg, jEnd
20 real(kind=realtype) :: sss(3), v2(3), v1(3), qa, sepsensor, cavitation
21 real(kind=realtype) :: sepsensoravg(3)
22 real(kind=realtype) :: fp(3), fv(3), mp(3), mv(3), yplusmax, qf(3)
26 real(kind=realtype),
dimension(:),
pointer :: localptr
27 real(kind=realtype),
dimension(nCostFunction) :: funcvalues
31 domains:
do nn = 1, ndom
45 domains2:
do nn = 1, ndom
58 forces(:, ii) =
bcdata(mm)%Tp(i, j, :) +
bcdata(mm)%Tv(i, j, :)
60 forces(:, ii) =
bcdata(mm)%F(i, j, :)
81 call terminate(
'getForces',
'getForces() is not implmented for zipper meshes and '&
82 &
'forcesAsTractions=False')
87 dimloop:
do idim = 1, 3
89 call vecgetarrayf90(exch%nodeValLocal, localptr, ierr)
90 call echk(ierr, __file__, __line__)
94 localptr = forces(idim, 1:ii)
97 call vecrestorearrayf90(exch%nodeValLocal, localptr, ierr)
98 call echk(ierr, __file__, __line__)
101 call vecscatterbegin(zipper%scatter, exch%nodeValLocal, &
102 zipper%localVal, insert_values, scatter_forward, ierr)
103 call echk(ierr, __file__, __line__)
105 call vecscatterend(zipper%scatter, exch%nodeValLocal, &
106 zipper%localVal, insert_values, scatter_forward, ierr)
107 call echk(ierr, __file__, __line__)
110 call vecgetarrayf90(zipper%localVal, localptr, ierr)
111 call echk(ierr, __file__, __line__)
115 forces(idim, ii + 1:ii +
size(localptr)) = localptr
118 call vecgetarrayf90(zipper%localVal, localptr, ierr)
119 call echk(ierr, __file__, __line__)
138 #include <petsc/finclude/petsc.h>
141 integer(kind=intType),
intent(in) :: npts, sps
142 real(kind=realtype),
intent(out),
dimension(3, npts) :: forces, forcesd
143 integer(kind=intType) :: mm, nn, i, j, ii, jj, iDim, ierr
144 integer(kind=intType) :: iBeg, iEnd, jBeg, jEnd, ind(4), ni, nj
145 real(kind=realtype) :: qa, qad, qf, qfd
146 real(kind=realtype),
dimension(:),
pointer :: localptr, localptrd
158 domains2:
do nn = 1, ndom
171 forcesd(:, ii) =
bcdatad(mm)%Tp(i, j, :) +
bcdatad(mm)%Tv(i, j, :)
173 forcesd(:, ii) =
bcdatad(mm)%F(i, j, :)
194 call terminate(
'getForces',
'getForces() is not implmented for zipper meshes and '&
195 &
'forcesAsTractions=False')
200 dimloop:
do idim = 1, 3
202 call vecgetarrayf90(exch%nodeValLocal, localptr, ierr)
203 call echk(ierr, __file__, __line__)
207 localptr = forcesd(idim, 1:ii)
210 call vecrestorearrayf90(exch%nodeValLocal, localptr, ierr)
211 call echk(ierr, __file__, __line__)
214 call vecscatterbegin(zipper%scatter, exch%nodeValLocal, &
215 zipper%localVal, insert_values, scatter_forward, ierr)
216 call echk(ierr, __file__, __line__)
218 call vecscatterend(zipper%scatter, exch%nodeValLocal, &
219 zipper%localVal, insert_values, scatter_forward, ierr)
220 call echk(ierr, __file__, __line__)
223 call vecgetarrayf90(zipper%localVal, localptr, ierr)
224 call echk(ierr, __file__, __line__)
228 forcesd(idim, ii + 1:ii +
size(localptr)) = localptr
231 call vecgetarrayf90(zipper%localVal, localptr, ierr)
232 call echk(ierr, __file__, __line__)
251 #include <petsc/finclude/petsc.h>
254 integer(kind=intType),
intent(in) :: npts, sps
255 real(kind=realtype),
intent(inout) :: forcesd(3, npts)
256 integer(kind=intType) :: mm, nn, i, j, ii, iDim, ierr
257 integer(kind=intType) :: iBeg, iEnd, jBeg, jEnd
260 real(kind=realtype),
dimension(:),
pointer :: localptr
261 real(kind=realtype),
dimension(3, npts) :: forces
278 dimloop:
do idim = 1, 3
280 call vecgetarrayf90(zipper%localVal, localptr, ierr)
281 call echk(ierr, __file__, __line__)
286 do i = 1,
size(localptr)
287 localptr(i) = forcesd(idim, ii + i)
288 forcesd(idim, ii + i) =
zero
292 call vecgetarrayf90(zipper%localVal, localptr, ierr)
293 call echk(ierr, __file__, __line__)
296 call vecset(exch%nodeValLocal,
zero, ierr)
297 call echk(ierr, __file__, __line__)
300 call vecscatterbegin(zipper%scatter, zipper%localVal, &
301 exch%nodeValLocal, add_values, scatter_reverse, ierr)
302 call echk(ierr, __file__, __line__)
304 call vecscatterend(zipper%scatter, zipper%localVal, &
305 exch%nodeValLocal, add_values, scatter_reverse, ierr)
306 call echk(ierr, __file__, __line__)
308 call vecgetarrayf90(exch%nodeValLocal, localptr, ierr)
309 call echk(ierr, __file__, __line__)
313 forcesd(idim, 1:ii) = forcesd(idim, 1:ii) + localptr
316 call vecrestorearrayf90(exch%nodeValLocal, localptr, ierr)
317 call echk(ierr, __file__, __line__)
324 domains2:
do nn = 1, ndom
336 bcdatad(mm)%Tp(i, j, :) = forcesd(:, ii)
337 bcdatad(mm)%Tv(i, j, :) = forcesd(:, ii)
339 bcdatad(mm)%F(i, j, :) = forcesd(:, ii)
364 #include <petsc/finclude/petsc.h>
369 integer(kind=intType) :: sps
370 integer(kind=intType) :: mm, nn, i, j, ii, jj, idim, ierr
371 integer(kind=intType) :: ibeg, iend, jbeg, jend, ind(4), ni, nj
372 real(kind=realtype) :: qv
373 real(kind=realtype),
dimension(:),
pointer :: localptr
377 call vecgetarrayf90(exch%nodeValLocal, localptr, ierr)
378 call echk(ierr, __file__, __line__)
396 ind(1) = ii + (j) * ni + i + 1
397 ind(2) = ii + (j) * ni + i + 2
398 ind(3) = ii + (j + 1) * ni + i + 2
399 ind(4) = ii + (j + 1) * ni + i + 1
401 localptr(ind(jj)) = localptr(ind(jj)) + qv
410 call vecrestorearrayf90(exch%nodeValLocal, localptr, ierr)
411 call echk(ierr, __file__, __line__)
414 call vecset(exch%nodeValGlobal,
zero, ierr)
415 call echk(ierr, __file__, __line__)
417 call vecscatterbegin(exch%scatter, exch%nodeValLocal, &
418 exch%nodeValGlobal, add_values, scatter_forward, ierr)
419 call echk(ierr, __file__, __line__)
421 call vecscatterend(exch%scatter, exch%nodeValLocal, &
422 exch%nodeValGlobal, add_values, scatter_forward, ierr)
423 call echk(ierr, __file__, __line__)
426 call vecpointwisemult(exch%nodeValGlobal, exch%nodeValGlobal, &
427 exch%sumGlobal, ierr)
428 call echk(ierr, __file__, __line__)
431 call vecscatterbegin(exch%scatter, exch%nodeValGlobal, &
432 exch%nodeValLocal, insert_values, scatter_reverse, ierr)
433 call echk(ierr, __file__, __line__)
435 call vecscatterend(exch%scatter, exch%nodeValGlobal, &
436 exch%nodeValLocal, insert_values, scatter_reverse, ierr)
437 call echk(ierr, __file__, __line__)
439 call vecgetarrayf90(exch%nodeValLocal, localptr, ierr)
440 call echk(ierr, __file__, __line__)
457 bcdata(mm)%nodeVal(i, j) = localptr(ii)
464 call vecrestorearrayf90(exch%nodeValLocal, localptr, ierr)
465 call echk(ierr, __file__, __line__)
476 #include <petsc/finclude/petsc.h>
480 integer(kind=intType) :: sps
481 integer(kind=intType) :: mm, nn, i, j, ii, jj, idim, ierr
482 integer(kind=intType) :: ibeg, iend, jbeg, jend, ind(4), ni, nj
483 real(kind=realtype) :: qf, qa
484 real(kind=realtype),
dimension(:),
pointer :: localptr
488 call vecgetarrayf90(exch%nodeValLocal, localptr, ierr)
489 call echk(ierr, __file__, __line__)
509 ind(1) = ii + (j) * ni + i + 1
510 ind(2) = ii + (j) * ni + i + 2
511 ind(3) = ii + (j + 1) * ni + i + 2
512 ind(4) = ii + (j + 1) * ni + i + 1
514 localptr(ind(jj)) = localptr(ind(jj)) + qa
523 call vecrestorearrayf90(exch%nodeValLocal, localptr, ierr)
524 call echk(ierr, __file__, __line__)
527 call vecset(exch%sumGlobal,
zero, ierr)
528 call echk(ierr, __file__, __line__)
530 call vecscatterbegin(exch%scatter, exch%nodeValLocal, &
531 exch%sumGlobal, add_values, scatter_forward, ierr)
532 call echk(ierr, __file__, __line__)
534 call vecscatterend(exch%scatter, exch%nodeValLocal, &
535 exch%sumGlobal, add_values, scatter_forward, ierr)
536 call echk(ierr, __file__, __line__)
542 call vecgetarrayf90(exch%sumGlobal, localptr, ierr)
543 call echk(ierr, __file__, __line__)
544 do i = 1,
size(localptr)
545 if (localptr(i) ==
zero)
then
548 localptr(i) =
one / localptr(i)
552 call vecrestorearrayf90(exch%sumGlobal, localptr, ierr)
553 call echk(ierr, __file__, __line__)
564 integer(kind=intType),
intent(in) :: sps
565 integer(kind=intType) :: mm, nn, i, j, ii, jj, iDim, ierr
566 integer(kind=intType) :: iBeg, iEnd, jBeg, jEnd, ind(4), ni, nj
567 real(kind=realtype) :: qf, qa
568 real(kind=realtype),
dimension(:),
pointer :: localptr
589 fpfvloop:
do idim = 1, 6
622 #include <petsc/finclude/petsc.h>
625 integer(kind=intType),
intent(in) :: sps
626 integer(kind=intType) :: mm, nn, i, j, ii, jj, idim, ierr
627 integer(kind=intType) :: ibeg, iend, jbeg, jend, ind(4), ni, nj
628 real(kind=realtype) :: qa, qad, qf, qfd
629 real(kind=realtype),
dimension(:),
pointer :: localptr, localptrd
631 vec nodevallocald, nodevalglobald, sumglobald, tmp
635 call vecduplicate(exch%nodeValLocal, nodevallocald, ierr)
636 call echk(ierr, __file__, __line__)
638 call vecduplicate(exch%nodeValGlobal, nodevalglobald, ierr)
639 call echk(ierr, __file__, __line__)
641 call vecduplicate(exch%sumGlobal, sumglobald, ierr)
642 call echk(ierr, __file__, __line__)
644 call vecduplicate(exch%sumGlobal, tmp, ierr)
645 call echk(ierr, __file__, __line__)
647 call vecgetarrayf90(exch%nodeValLocal, localptr, ierr)
648 call echk(ierr, __file__, __line__)
650 call vecgetarrayf90(nodevallocald, localptrd, ierr)
651 call echk(ierr, __file__, __line__)
673 qa =
fourth *
bcdata(mm)%area(i + ibeg + 1, j + jbeg + 1)
675 ind(1) = ii + (j) * ni + i + 1
676 ind(2) = ii + (j) * ni + i + 2
677 ind(3) = ii + (j + 1) * ni + i + 2
678 ind(4) = ii + (j + 1) * ni + i + 1
680 localptrd(ind(jj)) = localptrd(ind(jj)) + qad
681 localptr(ind(jj)) = localptr(ind(jj)) + qa
689 call vecrestorearrayf90(exch%nodeValLocal, localptr, ierr)
690 call echk(ierr, __file__, __line__)
692 call vecrestorearrayf90(nodevallocald, localptrd, ierr)
693 call echk(ierr, __file__, __line__)
696 call vecset(exch%sumGlobal,
zero, ierr)
697 call echk(ierr, __file__, __line__)
699 call vecscatterbegin(exch%scatter, exch%nodeValLocal, &
700 exch%sumGlobal, add_values, scatter_forward, ierr)
701 call echk(ierr, __file__, __line__)
703 call vecscatterend(exch%scatter, exch%nodeValLocal, &
704 exch%sumGlobal, add_values, scatter_forward, ierr)
705 call echk(ierr, __file__, __line__)
708 call vecset(sumglobald,
zero, ierr)
709 call echk(ierr, __file__, __line__)
711 call vecscatterbegin(exch%scatter, nodevallocald, &
712 sumglobald, add_values, scatter_forward, ierr)
713 call echk(ierr, __file__, __line__)
715 call vecscatterend(exch%scatter, nodevallocald, &
716 sumglobald, add_values, scatter_forward, ierr)
717 call echk(ierr, __file__, __line__)
722 call vecgetarrayf90(exch%sumGlobal, localptr, ierr)
723 call echk(ierr, __file__, __line__)
725 call vecgetarrayf90(sumglobald, localptrd, ierr)
726 call echk(ierr, __file__, __line__)
728 localptrd = -(localptrd / localptr**2)
729 localptr =
one / localptr
731 call vecgetarrayf90(exch%sumGlobal, localptr, ierr)
732 call echk(ierr, __file__, __line__)
734 call vecrestorearrayf90(sumglobald, localptrd, ierr)
735 call echk(ierr, __file__, __line__)
738 dimloop:
do idim = 1, 6
740 call vecgetarrayf90(exch%nodeValLocal, localptr, ierr)
741 call echk(ierr, __file__, __line__)
743 call vecgetarrayf90(nodevallocald, localptrd, ierr)
744 call echk(ierr, __file__, __line__)
764 qf =
fourth *
bcdata(mm)%Fp(i + ibeg + 1, j + jbeg + 1, idim)
765 qfd =
fourth *
bcdatad(mm)%Fp(i + ibeg + 1, j + jbeg + 1, idim)
767 qf =
fourth *
bcdata(mm)%Fv(i + ibeg + 1, j + jbeg + 1, idim - 3)
768 qfd =
fourth *
bcdatad(mm)%Fv(i + ibeg + 1, j + jbeg + 1, idim - 3)
771 ind(1) = ii + (j) * ni + i + 1
772 ind(2) = ii + (j) * ni + i + 2
773 ind(3) = ii + (j + 1) * ni + i + 2
774 ind(4) = ii + (j + 1) * ni + i + 1
776 localptr(ind(jj)) = localptr(ind(jj)) + qf
777 localptrd(ind(jj)) = localptrd(ind(jj)) + qfd
786 call vecrestorearrayf90(exch%nodeValLocal, localptr, ierr)
787 call echk(ierr, __file__, __line__)
789 call vecrestorearrayf90(nodevallocald, localptrd, ierr)
790 call echk(ierr, __file__, __line__)
793 call vecset(exch%nodeValGlobal,
zero, ierr)
794 call echk(ierr, __file__, __line__)
796 call vecscatterbegin(exch%scatter, exch%nodeValLocal, &
797 exch%nodeValGlobal, add_values, scatter_forward, ierr)
798 call echk(ierr, __file__, __line__)
800 call vecscatterend(exch%scatter, exch%nodeValLocal, &
801 exch%nodeValGlobal, add_values, scatter_forward, ierr)
802 call echk(ierr, __file__, __line__)
805 call vecset(nodevalglobald,
zero, ierr)
806 call echk(ierr, __file__, __line__)
808 call vecscatterbegin(exch%scatter, nodevallocald, &
809 nodevalglobald, add_values, scatter_forward, ierr)
810 call echk(ierr, __file__, __line__)
812 call vecscatterend(exch%scatter, nodevallocald, &
813 nodevalglobald, add_values, scatter_forward, ierr)
814 call echk(ierr, __file__, __line__)
821 call vecpointwisemult(nodevalglobald, nodevalglobald, &
822 exch%sumGlobal, ierr)
823 call echk(ierr, __file__, __line__)
826 call vecpointwisemult(tmp, exch%nodeValGlobal, sumglobald, ierr)
827 call echk(ierr, __file__, __line__)
830 call vecaxpy(nodevalglobald,
one, tmp, ierr)
831 call echk(ierr, __file__, __line__)
834 call vecscatterbegin(exch%scatter, nodevalglobald, &
835 nodevallocald, insert_values, scatter_reverse, ierr)
836 call echk(ierr, __file__, __line__)
838 call vecscatterend(exch%scatter, nodevalglobald, &
839 nodevallocald, insert_values, scatter_reverse, ierr)
840 call echk(ierr, __file__, __line__)
842 call vecgetarrayf90(nodevallocald, localptrd, ierr)
843 call echk(ierr, __file__, __line__)
859 bcdatad(mm)%Tp(i, j, idim) = localptrd(ii)
861 bcdatad(mm)%Tv(i, j, idim - 3) = localptrd(ii)
869 call vecrestorearrayf90(nodevallocald, localptrd, ierr)
870 call echk(ierr, __file__, __line__)
874 call vecdestroy(nodevallocald, ierr)
875 call echk(ierr, __file__, __line__)
877 call vecdestroy(nodevalglobald, ierr)
878 call echk(ierr, __file__, __line__)
880 call vecdestroy(sumglobald, ierr)
881 call echk(ierr, __file__, __line__)
883 call vecdestroy(tmp, ierr)
884 call echk(ierr, __file__, __line__)
901 #include <petsc/finclude/petsc.h>
905 integer(kind=intType),
intent(in) :: sps
906 integer(kind=intType) :: mm, nn, i, j, ii, jj, idim, ierr
907 integer(kind=intType) :: ibeg, iend, jbeg, jend, ind(4), ni, nj
908 real(kind=realtype) :: qf_b, qf, qa, qa_b
909 real(kind=realtype),
dimension(:),
pointer :: localptr, localptr_b
911 vec nodevallocal_b, nodevalglobal_b, sumglobal_b, tmp, tmp_b, t_b
916 call vecduplicate(exch%nodeValLocal, nodevallocal_b, ierr)
917 call echk(ierr, __file__, __line__)
919 call vecduplicate(exch%nodeValGlobal, nodevalglobal_b, ierr)
920 call echk(ierr, __file__, __line__)
922 call vecduplicate(exch%sumGlobal, sumglobal_b, ierr)
923 call echk(ierr, __file__, __line__)
925 call vecduplicate(exch%sumGlobal, tmp, ierr)
926 call echk(ierr, __file__, __line__)
928 call vecduplicate(tmp, t_b, ierr)
929 call echk(ierr, __file__, __line__)
938 call vecgetarrayf90(exch%nodeValLocal, localptr, ierr)
939 call echk(ierr, __file__, __line__)
959 qa =
fourth *
bcdata(mm)%area(i + ibeg + 1, j + jbeg + 1)
960 ind(1) = ii + (j) * ni + i + 1
961 ind(2) = ii + (j) * ni + i + 2
962 ind(3) = ii + (j + 1) * ni + i + 2
963 ind(4) = ii + (j + 1) * ni + i + 1
965 localptr(ind(jj)) = localptr(ind(jj)) + qa
974 call vecrestorearrayf90(exch%nodeValLocal, localptr, ierr)
975 call echk(ierr, __file__, __line__)
978 call vecset(exch%sumGlobal,
zero, ierr)
979 call echk(ierr, __file__, __line__)
981 call vecscatterbegin(exch%scatter, exch%nodeValLocal, &
982 exch%sumGlobal, add_values, scatter_forward, ierr)
983 call echk(ierr, __file__, __line__)
985 call vecscatterend(exch%scatter, exch%nodeValLocal, &
986 exch%sumGlobal, add_values, scatter_forward, ierr)
987 call echk(ierr, __file__, __line__)
992 call vecgetarrayf90(exch%sumGlobal, localptr, ierr)
993 call echk(ierr, __file__, __line__)
995 localptr =
one / localptr
997 call vecrestorearrayf90(exch%sumGlobal, localptr, ierr)
998 call echk(ierr, __file__, __line__)
1005 dimloop:
do idim = 1, 6
1010 call vecgetarrayf90(exch%nodeValLocal, localptr, ierr)
1011 call echk(ierr, __file__, __line__)
1021 ni = iend - ibeg + 1
1022 nj = jend - jbeg + 1
1029 qf =
fourth *
bcdata(mm)%Fp(i + ibeg + 1, j + jbeg + 1, idim)
1031 qf =
fourth *
bcdata(mm)%Fv(i + ibeg + 1, j + jbeg + 1, idim - 3)
1034 ind(1) = ii + (j) * ni + i + 1
1035 ind(2) = ii + (j) * ni + i + 2
1036 ind(3) = ii + (j + 1) * ni + i + 2
1037 ind(4) = ii + (j + 1) * ni + i + 1
1039 localptr(ind(jj)) = localptr(ind(jj)) + qf
1048 call vecrestorearrayf90(exch%nodeValLocal, localptr, ierr)
1049 call echk(ierr, __file__, __line__)
1052 call vecset(exch%nodeValGlobal,
zero, ierr)
1053 call echk(ierr, __file__, __line__)
1055 call vecscatterbegin(exch%scatter, exch%nodeValLocal, &
1056 exch%nodeValGlobal, add_values, scatter_forward, ierr)
1057 call echk(ierr, __file__, __line__)
1059 call vecscatterend(exch%scatter, exch%nodeValLocal, &
1060 exch%nodeValGlobal, add_values, scatter_forward, ierr)
1061 call echk(ierr, __file__, __line__)
1068 call vecgetarrayf90(nodevallocal_b, localptr_b, ierr)
1069 call echk(ierr, __file__, __line__)
1072 domains:
do nn = 1, ndom
1085 localptr_b(ii) =
bcdatad(mm)%Tp(i, j, idim)
1087 localptr_b(ii) =
bcdatad(mm)%Tv(i, j, idim - 3)
1095 call vecrestorearrayf90(nodevallocal_b, localptr_b, ierr)
1096 call echk(ierr, __file__, __line__)
1098 call vecset(t_b,
zero, ierr)
1099 call echk(ierr, __file__, __line__)
1101 call vecscatterbegin(exch%scatter, nodevallocal_b, &
1102 t_b, add_values, scatter_forward, ierr)
1103 call echk(ierr, __file__, __line__)
1105 call vecscatterend(exch%scatter, nodevallocal_b, &
1106 t_b, add_values, scatter_forward, ierr)
1107 call echk(ierr, __file__, __line__)
1121 call vecpointwisemult(nodevalglobal_b, exch%sumGlobal, t_b, ierr)
1122 call echk(ierr, __file__, __line__)
1124 call vecpointwisemult(tmp, exch%nodeValGlobal, t_b, ierr)
1125 call echk(ierr, __file__, __line__)
1128 call vecaxpy(sumglobal_b,
one, tmp, ierr)
1129 call echk(ierr, __file__, __line__)
1133 call vecscatterbegin(exch%scatter, nodevalglobal_b, &
1134 nodevallocal_b, insert_values, scatter_reverse, ierr)
1135 call echk(ierr, __file__, __line__)
1137 call vecscatterend(exch%scatter, nodevalglobal_b, &
1138 nodevallocal_b, insert_values, scatter_reverse, ierr)
1139 call echk(ierr, __file__, __line__)
1145 call vecgetarrayf90(nodevallocal_b, localptr_b, ierr)
1146 call echk(ierr, __file__, __line__)
1155 ni = iend - ibeg + 1
1156 nj = jend - jbeg + 1
1164 ind(1) = ii + (j) * ni + i + 1
1165 ind(2) = ii + (j) * ni + i + 2
1166 ind(3) = ii + (j + 1) * ni + i + 2
1167 ind(4) = ii + (j + 1) * ni + i + 1
1170 qf_b = qf_b + localptr_b(ind(jj))
1175 bcdatad(mm)%Fp(i + ibeg + 1, j + jbeg + 1, idim) = &
1176 bcdatad(mm)%Fp(i + ibeg + 1, j + jbeg + 1, idim) + qf_b
1178 bcdatad(mm)%Fv(i + ibeg + 1, j + jbeg + 1, idim - 3) = &
1179 bcdatad(mm)%Fv(i + ibeg + 1, j + jbeg + 1, idim - 3) + qf_b
1189 call vecrestorearrayf90(nodevallocal_b, localptr_b, ierr)
1190 call echk(ierr, __file__, __line__)
1205 call vecgetarrayf90(sumglobal_b, localptr_b, ierr)
1206 call echk(ierr, __file__, __line__)
1208 call vecgetarrayf90(exch%sumGlobal, localptr, ierr)
1209 call echk(ierr, __file__, __line__)
1213 localptr_b = -localptr_b * localptr**2
1215 call vecrestorearrayf90(sumglobal_b, localptr_b, ierr)
1216 call echk(ierr, __file__, __line__)
1218 call vecrestorearrayf90(exch%sumGlobal, localptr, ierr)
1219 call echk(ierr, __file__, __line__)
1222 call vecscatterbegin(exch%scatter, sumglobal_b, &
1223 nodevallocal_b, insert_values, scatter_reverse, ierr)
1224 call echk(ierr, __file__, __line__)
1226 call vecscatterend(exch%scatter, sumglobal_b, &
1227 nodevallocal_b, insert_values, scatter_reverse, ierr)
1228 call echk(ierr, __file__, __line__)
1230 call vecgetarrayf90(nodevallocal_b, localptr_b, ierr)
1231 call echk(ierr, __file__, __line__)
1240 ni = iend - ibeg + 1
1241 nj = jend - jbeg + 1
1249 ind(1) = ii + (j) * ni + i + 1
1250 ind(2) = ii + (j) * ni + i + 2
1251 ind(3) = ii + (j + 1) * ni + i + 2
1252 ind(4) = ii + (j + 1) * ni + i + 1
1255 qa_b = qa_b + localptr_b(ind(jj))
1258 bcdatad(mm)%area(i + ibeg + 1, j + jbeg + 1) = &
1259 bcdatad(mm)%area(i + ibeg + 1, j + jbeg + 1) + qa_b
1267 call vecrestorearrayf90(nodevallocal_b, localptr_b, ierr)
1268 call echk(ierr, __file__, __line__)
1271 call vecdestroy(nodevallocal_b, ierr)
1272 call echk(ierr, __file__, __line__)
1274 call vecdestroy(nodevalglobal_b, ierr)
1275 call echk(ierr, __file__, __line__)
1277 call vecdestroy(sumglobal_b, ierr)
1278 call echk(ierr, __file__, __line__)
1280 call vecdestroy(tmp, ierr)
1281 call echk(ierr, __file__, __line__)
1283 call vecdestroy(t_b, ierr)
1284 call echk(ierr, __file__, __line__)
1299 integer(kind=intType),
intent(in) :: sps
1301 integer(kind=intType) :: mm, nn, i, j
1302 integer(kind=intType) :: ibeg, iend, jbeg, jend
1303 real(kind=realtype) :: qf(3)
1318 bcdata(mm)%F(i - 1, j, :) =
bcdata(mm)%F(i - 1, j, :) + qf
1319 bcdata(mm)%F(i, j - 1, :) =
bcdata(mm)%F(i, j - 1, :) + qf
1320 bcdata(mm)%F(i - 1, j - 1, :) =
bcdata(mm)%F(i - 1, j - 1, :) + qf
1337 integer(kind=intType),
intent(in) :: sps
1339 integer(kind=intType) :: mm, nn, i, j
1340 integer(kind=intType) :: ibeg, iend, jbeg, jend
1341 real(kind=realtype) :: qfd(3)
1358 bcdatad(mm)%F(i - 1, j - 1, :) =
bcdatad(mm)%F(i - 1, j - 1, :) + qfd
1375 integer(kind=intType),
intent(in) :: sps
1377 integer(kind=intType) :: mm, nn, i, j
1378 integer(kind=intType) :: ibeg, iend, jbeg, jend
1379 real(kind=realtype) :: qf_b(3)
1381 domains:
do nn = 1, ndom
1415 integer(kind=intType),
intent(in) :: npts, sps
1416 real(kind=realtype),
intent(out) :: hflux(npts)
1418 integer(kind=intType) :: mm, nn, i, j, ii
1419 integer(kind=intType) :: ibeg, iend, jbeg, jend
1467 hflux(ii) =
bcdata(mm)%nodeHeatFlux(i, j)
1493 integer(kind=intType) :: i, j, ii, mm
1494 real(kind=realtype) :: fact, scaledim
1495 real(kind=realtype) :: qw, qa
1496 logical :: heatedSubface
1530 bcdata(mm)%cellHeatFlux(i, j) = -fact * scaledim * &
1531 sqrt(
ssi(i, j, 1)**2 +
ssi(i, j, 2)**2 +
ssi(i, j, 3)**2) * &
1550 integer(kind=intType),
intent(in) :: npts, sps
1551 real(kind=realtype),
intent(in) :: tnsw(npts)
1554 integer(kind=intType) :: mm, nn, i, j, ii
1555 integer(kind=intType) :: iBeg, iEnd, jBeg, jEnd
1558 domains:
do nn = 1, ndom
1639 integer(kind=intType),
intent(in) :: npts, sps
1640 real(kind=realtype),
intent(out) :: tnsw(npts)
1643 integer(kind=intType) :: mm, nn, i, j, ii
1644 integer(kind=intType) :: iBeg, iEnd, jBeg, jEnd
1647 domains:
do nn = 1, ndom
subroutine getheatflux(hflux, npts, sps)
subroutine computenodalforces(sps)
subroutine getforces(forces, npts, sps)
subroutine gettnswall(tnsw, npts, sps)
subroutine computeweighting(exch)
subroutine computenodalforces_d(sps)
subroutine getforces_b(forcesd, npts, sps)
subroutine surfacecellcentertonode(exch)
subroutine computenodaltractions(sps)
subroutine computenodalforces_b(sps)
subroutine computenodaltractions_b(sps)
subroutine computenodaltractions_d(sps)
subroutine getforces_d(forces, forcesd, npts, sps)
subroutine settnswall(tnsw, npts, sps)
real(kind=realtype), dimension(:, :, :), pointer ssi
type(viscsubfacetype), dimension(:), pointer viscsubface
type(bcdatatype), dimension(:), pointer bcdatad
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 nlocalvalues
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
integer(kind=inttype), parameter imin
real(kind=realtype), parameter fourth
integer(kind=inttype), parameter nswallisothermal
integer(kind=inttype), parameter ibcgroupwalls
integer(kind=inttype), parameter kmax
integer(kind=inttype), parameter jmin
real(kind=realtype) rhoref
type(zippermesh), dimension(nfamexchange), target zippermeshes
logical function faminlist(famID, famList)
real(kind=realtype), dimension(:, :), allocatable, target zeronodeval
real(kind=realtype), dimension(:, :), allocatable, target zerocellval
integer(kind=inttype), dimension(:), allocatable fullfamlist
type(familyexchange), dimension(:, :), allocatable, target bcfamexchange
subroutine integratesurfaces(localValues, famList)
logical function iswalltype(bType)
subroutine setbcpointers(nn, spatialPointers)
subroutine setpointers_d(nn, level, sps)
subroutine echk(errorcode, file, line)
subroutine setpointers(nn, mm, ll)
subroutine terminate(routineName, errorMessage)