479 integer :: patch_id, airfoil_id, model_id, encoded_patch_id, i, j, k, il, ir, jl, jr, kl, kr, xp, yp, zp
480 integer :: xp_lower, xp_upper, yp_lower, yp_upper, zp_lower, zp_upper
481 real(wp),
dimension(3) :: center, xyz_local, length
482 real(wp) :: radius, eta
485# 60 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
486#if defined(MFC_OpenACC)
487# 60 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
489# 60 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
490#elif defined(MFC_OpenMP)
491# 60 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
493# 60 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
495# 61 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
498 if (num_dims == 3)
then
500 do xp = xp_lower, xp_upper
501 do yp = yp_lower, yp_upper
502 do zp = zp_lower, zp_upper
503 do patch_id = 1, num_ibs
504 center(1) = patch_ib(patch_id)%x_centroid + real(xp, wp)*(
glb_bounds(1)%end -
glb_bounds(1)%beg)
505 center(2) = patch_ib(patch_id)%y_centroid + real(yp, wp)*(
glb_bounds(2)%end -
glb_bounds(2)%beg)
506 center(3) = patch_ib(patch_id)%z_centroid + real(zp, wp)*(
glb_bounds(3)%end -
glb_bounds(3)%beg)
515 if (ir < il .or. jr < jl .or. kr < kl) cycle
518# 82 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
520# 82 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
521#if defined(MFC_OpenACC)
522# 82 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
524# 82 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
525#elif defined(MFC_OpenMP)
526# 82 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
528# 82 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
530# 82 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
532# 82 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
534# 82 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
536# 82 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
538# 84 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
543 xyz_local = [
x_cc(i) - center(1),
y_cc(j) - center(2),
z_cc(k) - center(3)]
545 xyz_local = matmul(patch_ib(patch_id)%rotation_matrix_inverse, xyz_local)
548 if (patch_ib(patch_id)%geometry == 8)
then
550 radius = patch_ib(patch_id)%radius
553 & radius)) ib_markers%sf(i, j, k) = encoded_patch_id
554 else if (patch_ib(patch_id)%geometry == 9)
then
556 length = [patch_ib(patch_id)%length_x, patch_ib(patch_id)%length_y, &
557 & patch_ib(patch_id)%length_z]
559 & length)) ib_markers%sf(i, j, k) = encoded_patch_id
560 else if (patch_ib(patch_id)%geometry == 10)
then
562 radius = patch_ib(patch_id)%radius
564 & patch_ib(patch_id)%length_x)) ib_markers%sf(i, j, k) = encoded_patch_id
565 else if (patch_ib(patch_id)%geometry == 11)
then
567 airfoil_id = patch_ib(patch_id)%airfoil_id
568 xyz_local = xyz_local - patch_ib(patch_id)%centroid_offset
570 & patch_ib(patch_id)%length_z, airfoil_id)) ib_markers%sf(i, j, &
571 & k) = encoded_patch_id
572 else if (patch_ib(patch_id)%geometry == 12)
then
574 xyz_local = xyz_local - patch_ib(patch_id)%centroid_offset
575 model_id = patch_ib(patch_id)%model_id
577 if (eta > stl_models(model_id)%model_threshold)
then
578 ib_markers%sf(i, j, k) = encoded_patch_id
585# 129 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
586#if defined(MFC_OpenACC)
587# 129 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
589# 129 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
590#elif defined(MFC_OpenMP)
591# 129 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
593# 129 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
595# 129 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
597# 130 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
604 else if (num_dims == 2)
then
606 do xp = xp_lower, xp_upper
607 do yp = yp_lower, yp_upper
608 do patch_id = 1, num_ibs
609 center(1) = patch_ib(patch_id)%x_centroid + real(xp, wp)*(
glb_bounds(1)%end -
glb_bounds(1)%beg)
610 center(2) = patch_ib(patch_id)%y_centroid + real(yp, wp)*(
glb_bounds(2)%end -
glb_bounds(2)%beg)
620 if (ir < il .or. jr < jl) cycle
623# 154 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
625# 154 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
626#if defined(MFC_OpenACC)
627# 154 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
629# 154 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
630#elif defined(MFC_OpenMP)
631# 154 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
633# 154 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
635# 154 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
637# 154 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
639# 154 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
641# 154 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
643# 156 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
647 xyz_local = [
x_cc(i) - center(1),
y_cc(j) - center(2), 0._wp]
649 xyz_local = matmul(patch_ib(patch_id)%rotation_matrix_inverse, xyz_local)
652 if (patch_ib(patch_id)%geometry == 2)
then
654 radius = patch_ib(patch_id)%radius
656 & j, 0) = encoded_patch_id
657 else if (patch_ib(patch_id)%geometry == 3)
then
659 length = [patch_ib(patch_id)%length_x, patch_ib(patch_id)%length_y, 0._wp]
660 if (
f_is_inside_cuboid(xyz_local(1), xyz_local(2), xyz_local(3), length)) ib_markers%sf(i, j, &
661 & 0) = encoded_patch_id
662 else if (patch_ib(patch_id)%geometry == 4)
then
664 airfoil_id = patch_ib(patch_id)%airfoil_id
665 xyz_local = xyz_local - patch_ib(patch_id)%centroid_offset
667 & airfoil_id)) ib_markers%sf(i, j, 0) = encoded_patch_id
668 else if (patch_ib(patch_id)%geometry == 5)
then
670 xyz_local = xyz_local - patch_ib(patch_id)%centroid_offset
671 model_id = patch_ib(patch_id)%model_id
673 if (eta > stl_models(model_id)%model_threshold)
then
674 ib_markers%sf(i, j, 0) = encoded_patch_id
676 else if (patch_ib(patch_id)%geometry == 6)
then
678 length = [patch_ib(patch_id)%length_x, patch_ib(patch_id)%length_y, 0._wp]
680 & 0) = encoded_patch_id
685# 196 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
686#if defined(MFC_OpenACC)
687# 196 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
689# 196 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
690#elif defined(MFC_OpenMP)
691# 196 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
693# 196 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
695# 196 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
697# 197 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
708 integer :: patch_id, airfoil_id, model_id, encoded_patch_id, i, j, k, il, ir, jl, jr, kl, kr, xp, yp, zp
709 integer :: xp_lower, xp_upper, yp_lower, yp_upper, zp_lower, zp_upper
710 real(wp),
dimension(3) :: center, xyz_local, length
711 real(wp) :: radius, eta
713 if (num_dims == 3)
then
717 do xp = xp_lower, xp_upper
718 do yp = yp_lower, yp_upper
719 do zp = zp_lower, zp_upper
721# 219 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
723# 219 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
724#if defined(MFC_OpenACC)
725# 219 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
727# 219 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
728#elif defined(MFC_OpenMP)
729# 219 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
731# 219 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
733# 219 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
735# 219 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
737# 219 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
739# 219 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
741# 221 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
742 do patch_id = 1, num_ibs
743 center(1) = patch_ib(patch_id)%x_centroid + real(xp, wp)*(
glb_bounds(1)%end -
glb_bounds(1)%beg)
744 center(2) = patch_ib(patch_id)%y_centroid + real(yp, wp)*(
glb_bounds(2)%end -
glb_bounds(2)%beg)
745 center(3) = patch_ib(patch_id)%z_centroid + real(zp, wp)*(
glb_bounds(3)%end -
glb_bounds(3)%beg)
757 xyz_local = [
x_cc(i) - center(1),
y_cc(j) - center(2),
z_cc(k) - center(3)]
759 xyz_local = matmul(patch_ib(patch_id)%rotation_matrix_inverse, xyz_local)
767 if (patch_ib(patch_id)%geometry == 8)
then
769 radius = patch_ib(patch_id)%radius
773# 251 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
774#if defined(MFC_OpenACC)
775# 251 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
777# 251 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
778#elif defined(MFC_OpenMP)
779# 251 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
781# 251 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
783# 252 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
784 ib_markers%sf(i, j, k) = max(ib_markers%sf(i, j, k), encoded_patch_id)
786 else if (patch_ib(patch_id)%geometry == 9)
then
788 length = [patch_ib(patch_id)%length_x, patch_ib(patch_id)%length_y, &
789 & patch_ib(patch_id)%length_z]
792# 259 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
793#if defined(MFC_OpenACC)
794# 259 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
796# 259 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
797#elif defined(MFC_OpenMP)
798# 259 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
800# 259 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
802# 260 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
803 ib_markers%sf(i, j, k) = max(ib_markers%sf(i, j, k), encoded_patch_id)
805 else if (patch_ib(patch_id)%geometry == 10)
then
807 radius = patch_ib(patch_id)%radius
809 & patch_ib(patch_id)%length_x))
then
811# 267 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
812#if defined(MFC_OpenACC)
813# 267 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
815# 267 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
816#elif defined(MFC_OpenMP)
817# 267 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
819# 267 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
821# 268 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
822 ib_markers%sf(i, j, k) = max(ib_markers%sf(i, j, k), encoded_patch_id)
824 else if (patch_ib(patch_id)%geometry == 11)
then
826 airfoil_id = patch_ib(patch_id)%airfoil_id
827 xyz_local = xyz_local - patch_ib(patch_id)%centroid_offset
829 & patch_ib(patch_id)%length_z, airfoil_id))
then
831# 276 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
832#if defined(MFC_OpenACC)
833# 276 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
835# 276 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
836#elif defined(MFC_OpenMP)
837# 276 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
839# 276 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
841# 277 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
842 ib_markers%sf(i, j, k) = max(ib_markers%sf(i, j, k), encoded_patch_id)
844 else if (patch_ib(patch_id)%geometry == 12)
then
846 xyz_local = xyz_local - patch_ib(patch_id)%centroid_offset
847 model_id = patch_ib(patch_id)%model_id
849 if (eta > stl_models(model_id)%model_threshold)
then
851# 285 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
852#if defined(MFC_OpenACC)
853# 285 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
855# 285 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
856#elif defined(MFC_OpenMP)
857# 285 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
859# 285 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
861# 286 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
862 ib_markers%sf(i, j, k) = max(ib_markers%sf(i, j, k), encoded_patch_id)
870# 293 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
871#if defined(MFC_OpenACC)
872# 293 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
874# 293 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
875#elif defined(MFC_OpenMP)
876# 293 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
878# 293 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
880# 293 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
882# 294 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
886 else if (num_dims == 2)
then
890 do xp = xp_lower, xp_upper
891 do yp = yp_lower, yp_upper
893# 303 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
895# 303 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
896#if defined(MFC_OpenACC)
897# 303 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
899# 303 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
900#elif defined(MFC_OpenMP)
901# 303 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
903# 303 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
905# 303 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
907# 303 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
909# 303 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
911# 303 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
913# 305 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
914 do patch_id = 1, num_ibs
915 center(1) = patch_ib(patch_id)%x_centroid + real(xp, wp)*(
glb_bounds(1)%end -
glb_bounds(1)%beg)
916 center(2) = patch_ib(patch_id)%y_centroid + real(yp, wp)*(
glb_bounds(2)%end -
glb_bounds(2)%beg)
928 xyz_local = [
x_cc(i) - center(1),
y_cc(j) - center(2), 0._wp]
930 xyz_local = matmul(patch_ib(patch_id)%rotation_matrix_inverse, xyz_local)
938 if (patch_ib(patch_id)%geometry == 2)
then
940 radius = patch_ib(patch_id)%radius
943# 333 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
944#if defined(MFC_OpenACC)
945# 333 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
947# 333 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
948#elif defined(MFC_OpenMP)
949# 333 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
951# 333 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
953# 334 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
954 ib_markers%sf(i, j, 0) = max(ib_markers%sf(i, j, 0), encoded_patch_id)
956 else if (patch_ib(patch_id)%geometry == 3)
then
958 length = [patch_ib(patch_id)%length_x, patch_ib(patch_id)%length_y, 0._wp]
961# 340 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
962#if defined(MFC_OpenACC)
963# 340 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
965# 340 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
966#elif defined(MFC_OpenMP)
967# 340 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
969# 340 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
971# 341 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
972 ib_markers%sf(i, j, 0) = max(ib_markers%sf(i, j, 0), encoded_patch_id)
974 else if (patch_ib(patch_id)%geometry == 4)
then
976 airfoil_id = patch_ib(patch_id)%airfoil_id
977 xyz_local = xyz_local - patch_ib(patch_id)%centroid_offset
980# 348 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
981#if defined(MFC_OpenACC)
982# 348 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
984# 348 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
985#elif defined(MFC_OpenMP)
986# 348 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
988# 348 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
990# 349 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
991 ib_markers%sf(i, j, 0) = max(ib_markers%sf(i, j, 0), encoded_patch_id)
993 else if (patch_ib(patch_id)%geometry == 5)
then
995 xyz_local = xyz_local - patch_ib(patch_id)%centroid_offset
996 model_id = patch_ib(patch_id)%model_id
998 if (eta > stl_models(model_id)%model_threshold)
then
1000# 357 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1001#if defined(MFC_OpenACC)
1002# 357 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1004# 357 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1005#elif defined(MFC_OpenMP)
1006# 357 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1008# 357 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1010# 358 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1011 ib_markers%sf(i, j, 0) = max(ib_markers%sf(i, j, 0), encoded_patch_id)
1013 else if (patch_ib(patch_id)%geometry == 6)
then
1015 length = [patch_ib(patch_id)%length_x, patch_ib(patch_id)%length_y, 0._wp]
1018# 364 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1019#if defined(MFC_OpenACC)
1020# 364 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1022# 364 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1023#elif defined(MFC_OpenMP)
1024# 364 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1026# 364 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1028# 365 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1029 ib_markers%sf(i, j, 0) = max(ib_markers%sf(i, j, 0), encoded_patch_id)
1036# 371 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1037#if defined(MFC_OpenACC)
1038# 371 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1040# 371 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1041#elif defined(MFC_OpenMP)
1042# 371 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1044# 371 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1046# 371 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1048# 372 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1059 integer :: i,
j, airfoil_id, np
1060 real(wp) :: ca_in, pa, ma, ta
1061 real(wp) :: xa, yc, dycdxc, yt, xu, yu, xl, yl, sin_c, cos_c
1062 real(wp) :: edge(1:2)
1063 real(wp) :: min_grid_spacing
1065 if (.not. any(patch_ib(1:num_ibs)%geometry == 4 .or. patch_ib(1:num_ibs)%geometry == 11))
return
1068 min_grid_spacing = min(dx_min, dy_min)
1072 if (patch_ib(i)%geometry /= 4 .and. patch_ib(i)%geometry /= 11) cycle
1074 airfoil_id = patch_ib(i)%airfoil_id
1075 ca_in = ib_airfoil(airfoil_id)%c
1076 pa = ib_airfoil(airfoil_id)%p
1077 ma = ib_airfoil(airfoil_id)%m
1078 ta = ib_airfoil(airfoil_id)%t
1080 np = int(10._wp*ca_in/min_grid_spacing) + 1
1083# 405 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1084#if defined(MFC_OpenACC)
1085# 405 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1087# 405 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1088#elif defined(MFC_OpenMP)
1089# 405 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1091# 405 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1093# 406 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1097# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1099# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1100 use iso_fortran_env,
only: output_unit
1101# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1103# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1104 print *,
'm_ib_patches.fpp:408: ',
'@:ALLOCATE(ib_airfoil_grids(airfoil_id)%upper(1:Np - 1, 1:3, 1:2))'
1105# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1107# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1108 call flush (output_unit)
1109# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1111# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1113# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1115# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1117# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1119# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1120#if defined(MFC_OpenACC)
1121# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1123# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1124#elif defined(MFC_OpenMP)
1125# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1127# 408 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1129# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1131# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1133# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1134 use iso_fortran_env,
only: output_unit
1135# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1137# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1138 print *,
'm_ib_patches.fpp:409: ',
'@:ALLOCATE(ib_airfoil_grids(airfoil_id)%lower(1:Np - 1, 1:3, 1:2))'
1139# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1141# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1142 call flush (output_unit)
1143# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1145# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1147# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1148 allocate (ib_airfoil_grids(airfoil_id)%lower(1:np - 1, 1:3, 1:2))
1149# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1151# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1153# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1154#if defined(MFC_OpenACC)
1155# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1157# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1158#elif defined(MFC_OpenMP)
1159# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1161# 409 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1163# 410 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1166 ib_airfoil_grids(airfoil_id)%upper(1, 1,:) = 0._wp
1167 ib_airfoil_grids(airfoil_id)%lower(1, 1,:) = 0._wp
1172 xa = 0.5_wp*(1._wp - cos(pi*real(
j, wp)/real(np - 1, wp)))
1174 yc = (ma/pa**2)*(2*pa*xa - xa**2)
1175 dycdxc = (2*ma/pa**2)*(pa - xa)
1177 yc = (ma/(1 - pa)**2)*(1 - 2*pa + 2*pa*xa - xa**2)
1178 dycdxc = (2*ma/(1 - pa)**2)*(pa - xa)
1181 yt = (5._wp*ta)*(0.2969_wp*xa**0.5_wp - 0.126_wp*xa - 0.3516_wp*xa**2._wp + 0.2843_wp*xa**3 - 0.1015_wp*xa**4)
1182 sin_c = dycdxc/(1 + dycdxc**2)**0.5_wp
1183 cos_c = 1/(1 + dycdxc**2)**0.5_wp
1185 xu = (xa - yt*sin_c)*ca_in
1186 yu = (yc + yt*cos_c)*ca_in
1187 xl = (xa + yt*sin_c)*ca_in
1188 yl = (yc - yt*cos_c)*ca_in
1191 ib_airfoil_grids(airfoil_id)%upper(
j, 2,:) = [xu, yu]
1192 ib_airfoil_grids(airfoil_id)%upper(
j + 1, 1,:) = [xu, yu]
1193 ib_airfoil_grids(airfoil_id)%lower(
j, 2,:) = [xl, yl]
1194 ib_airfoil_grids(airfoil_id)%lower(
j + 1, 1,:) = [xl, yl]
1197 ib_airfoil_grids(airfoil_id)%upper(np - 1, 2,:) = [ca_in, 0._wp]
1198 ib_airfoil_grids(airfoil_id)%lower(np - 1, 2,:) = [ca_in, 0._wp]
1202 edge = ib_airfoil_grids(airfoil_id)%upper(
j, 2,:) - ib_airfoil_grids(airfoil_id)%upper(
j, 1,:)
1203 ib_airfoil_grids(airfoil_id)%upper(
j, 3,:) = [-edge(2), edge(1)]/norm2(edge)
1204 edge = ib_airfoil_grids(airfoil_id)%lower(
j, 2,:) - ib_airfoil_grids(airfoil_id)%lower(
j, 1,:)
1205 ib_airfoil_grids(airfoil_id)%lower(
j, 3,:) = [edge(2), -edge(1)]/norm2(edge)
1209# 454 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1210#if defined(MFC_OpenACC)
1211# 454 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1213# 454 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1214#elif defined(MFC_OpenMP)
1215# 454 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1217# 454 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1219# 455 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1223# 457 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1224#if defined(MFC_OpenACC)
1225# 457 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1227# 457 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1228#elif defined(MFC_OpenMP)
1229# 457 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1231# 457 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1233# 458 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1242# 465 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1244# 465 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1246# 465 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1248# 465 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1250# 465 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1252# 465 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1254# 465 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1256# 466 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1258 integer,
intent(in) :: patch_id
1259 real(wp),
dimension(3, 3, 3) :: rotation
1264 if (num_dims == 3)
then
1266 angle = patch_ib(patch_id)%angles(1)
1267 rotation(1, 1,:) = [1._wp, 0._wp, 0._wp]
1268 rotation(1, 2,:) = [0._wp, cos(angle), -sin(angle)]
1269 rotation(1, 3,:) = [0._wp, sin(angle), cos(angle)]
1271 angle = patch_ib(patch_id)%angles(2)
1272 rotation(2, 1,:) = [cos(angle), 0._wp, sin(angle)]
1273 rotation(2, 2,:) = [0._wp, 1._wp, 0._wp]
1274 rotation(2, 3,:) = [-sin(angle), 0._wp, cos(angle)]
1277 patch_ib(patch_id)%rotation_matrix(:,:) = matmul(rotation(1,:,:), rotation(2,:,:))
1278 patch_ib(patch_id)%rotation_matrix_inverse(:,:) = matmul(transpose(rotation(2,:,:)), transpose(rotation(1,:,:)))
1282 angle = patch_ib(patch_id)%angles(3)
1283 rotation(3, 1,:) = [cos(angle), -sin(angle), 0._wp]
1284 rotation(3, 2,:) = [sin(angle), cos(angle), 0._wp]
1285 rotation(3, 3,:) = [0._wp, 0._wp, 1._wp]
1287 if (num_dims == 3)
then
1289 patch_ib(patch_id)%rotation_matrix(:,:) = matmul(patch_ib(patch_id)%rotation_matrix(:,:), rotation(3,:,:))
1290 patch_ib(patch_id)%rotation_matrix_inverse(:,:) = matmul(transpose(rotation(3,:,:)), &
1291 & patch_ib(patch_id)%rotation_matrix_inverse(:,:))
1294 patch_ib(patch_id)%rotation_matrix(:,:) = rotation(3,:,:)
1295 patch_ib(patch_id)%rotation_matrix_inverse(:,:) = transpose(rotation(3,:,:))
1303# 511 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1305# 511 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1307# 511 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1309# 511 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1311# 511 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1313# 511 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1315# 511 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1317# 512 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1319 type(ib_patch_parameters),
intent(in) :: patch
1320 real(wp),
intent(out) :: bound
1321 real(wp),
dimension(2) :: lx, ly, lz
1323 if (patch%geometry == 2 .or. patch%geometry == 8)
then
1325 bound = patch%radius
1326 else if (patch%geometry == 3)
then
1327 bound = 0.5_wp*sqrt(patch%length_x**2 + patch%length_y**2)
1328 else if (patch%geometry == 4 .or. patch%geometry == 11)
then
1330 bound = ib_airfoil(patch%airfoil_id)%c
1331 else if (patch%geometry == 5)
then
1333 lx(1) = stl_bounding_boxes(patch%model_id, 1, 1)
1334 lx(2) = stl_bounding_boxes(patch%model_id, 1, 3)
1335 ly(1) = stl_bounding_boxes(patch%model_id, 2, 1)
1336 ly(2) = stl_bounding_boxes(patch%model_id, 2, 3)
1338 bound = 0.5_wp*sqrt((lx(2) - lx(1))**2 + (ly(2) - ly(1))**2)
1339 else if (patch%geometry == 6)
then
1341 bound = 0.5_wp*max(patch%length_x, patch%length_y)
1342 else if (patch%geometry == 9)
then
1344 bound = 0.5_wp*sqrt(patch%length_x**2 + patch%length_y**2 + patch%length_z**2)
1345 else if (patch%geometry == 10)
then
1347 bound = sqrt(patch%radius**2 + patch%length_x**2)
1348 else if (patch%geometry == 12)
then
1350 lx(1) = stl_bounding_boxes(patch%model_id, 1, 1) + patch%centroid_offset(1)
1351 lx(2) = stl_bounding_boxes(patch%model_id, 1, 3) + patch%centroid_offset(1)
1352 ly(1) = stl_bounding_boxes(patch%model_id, 2, 1) + patch%centroid_offset(2)
1353 ly(2) = stl_bounding_boxes(patch%model_id, 2, 3) + patch%centroid_offset(2)
1354 lz(1) = stl_bounding_boxes(patch%model_id, 3, 1) + patch%centroid_offset(3)
1355 lz(2) = stl_bounding_boxes(patch%model_id, 3, 3) + patch%centroid_offset(3)
1357 bound = 0.5_wp*sqrt((lx(2) - lx(1))**2 + (ly(2) - ly(1))**2 + (lz(2) - lz(1))**2)
1365# 558 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1367# 558 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1369# 558 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1371# 558 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1373# 558 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1375# 558 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1377# 558 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1379# 559 "/home/runner/work/MFC/MFC/src/simulation/m_ib_patches.fpp"
1381 type(ib_patch_parameters),
intent(in) :: patch
1382 real(wp),
dimension(3),
intent(in) :: center
1383 integer,
intent(out) :: il, ir, jl, jr, kl, kr
1384 real(wp),
dimension(3) :: bbox_min, bbox_max, local_corner, world_corner
1385 real(wp),
dimension(2) :: lx, ly, lz
1387 integer :: cx, cy, cz
1388 logical :: outside_domain
1390 if (patch%geometry == 5)
then
1392 lx(1) = stl_bounding_boxes(patch%model_id, 1, 1) + patch%centroid_offset(1)
1393 lx(2) = stl_bounding_boxes(patch%model_id, 1, 3) + patch%centroid_offset(1)
1394 ly(1) = stl_bounding_boxes(patch%model_id, 2, 1) + patch%centroid_offset(2)
1395 ly(2) = stl_bounding_boxes(patch%model_id, 2, 3) + patch%centroid_offset(2)
1402 local_corner = [lx(cx), ly(cy), 0._wp]
1403 world_corner = matmul(patch%rotation_matrix, local_corner) + center
1404 bbox_min(1) = min(bbox_min(1), world_corner(1))
1405 bbox_min(2) = min(bbox_min(2), world_corner(2))
1406 bbox_max(1) = max(bbox_max(1), world_corner(1))
1407 bbox_max(2) = max(bbox_max(2), world_corner(2))
1410 else if (patch%geometry == 12)
then
1412 lx(1) = stl_bounding_boxes(patch%model_id, 1, 1) + patch%centroid_offset(1)
1413 lx(2) = stl_bounding_boxes(patch%model_id, 1, 3) + patch%centroid_offset(1)
1414 ly(1) = stl_bounding_boxes(patch%model_id, 2, 1) + patch%centroid_offset(2)
1415 ly(2) = stl_bounding_boxes(patch%model_id, 2, 3) + patch%centroid_offset(2)
1416 lz(1) = stl_bounding_boxes(patch%model_id, 3, 1) + patch%centroid_offset(3)
1417 lz(2) = stl_bounding_boxes(patch%model_id, 3, 3) + patch%centroid_offset(3)
1425 local_corner = [lx(cx), ly(cy), lz(cz)]
1426 world_corner = matmul(patch%rotation_matrix, local_corner) + center
1427 bbox_min(1) = min(bbox_min(1), world_corner(1))
1428 bbox_min(2) = min(bbox_min(2), world_corner(2))
1429 bbox_min(3) = min(bbox_min(3), world_corner(3))
1430 bbox_max(1) = max(bbox_max(1), world_corner(1))
1431 bbox_max(2) = max(bbox_max(2), world_corner(2))
1432 bbox_max(3) = max(bbox_max(3), world_corner(3))
1439 bbox_min = center - bound
1440 bbox_max = center + bound
1446 outside_domain = bbox_min(1) > x_cc(m + buff_size) .or. bbox_max(1) < x_cc(-buff_size) .or. bbox_min(2) > y_cc(n &
1447 & + buff_size) .or. bbox_max(2) < y_cc(-buff_size)
1448 if (num_dims == 3)
then
1449 outside_domain = outside_domain .or. bbox_min(3) > z_cc(p + buff_size) .or. bbox_max(3) < z_cc(-buff_size)
1452 if (outside_domain)
then