FE-Project
Loading...
Searching...
No Matches
scale_file_common_meshfield::file_common_meshfield_get_axis Interface Reference

Public Member Functions

subroutine file_common_meshfield_get_axis1d (mesh1d, dimsinfo, x, force_uniform_grid)
subroutine file_common_meshfield_get_axis2d (mesh2d, dimsinfo, x, y, force_uniform_grid)
subroutine file_common_meshfield_get_axis2d_cubedsphere (mesh2d, dimsinfo, x, y)
subroutine file_common_meshfield_get_axis3d (mesh3d, dimsinfo, x, y, z, force_uniform_grid)
subroutine file_common_meshfield_get_axis3d_cubedsphere (mesh3d, dimsinfo, x, y, z)

Detailed Description

Definition at line 69 of file scale_file_common_meshfield.F90.

Member Function/Subroutine Documentation

◆ file_common_meshfield_get_axis1d()

subroutine scale_file_common_meshfield::file_common_meshfield_get_axis::file_common_meshfield_get_axis1d ( class(meshbase1d), intent(in), target mesh1d,
type(file_common_meshfield_diminfo), dimension(meshbase1d_dimtype_num), intent(in) dimsinfo,
real(rp), dimension(dimsinfo(meshbase1d_dimtypeid_x)%size), intent(out) x,
logical, intent(in), optional force_uniform_grid )

Definition at line 156 of file scale_file_common_meshfield.F90.

158 implicit none
159
160 class(MeshBase1D), target, intent(in) :: mesh1D
161 type(FILE_common_meshfield_diminfo), intent(in) :: dimsinfo(MeshBase1D_DIMTYPE_NUM)
162 real(RP), intent(out) :: x(dimsinfo(MeshBase1D_DIMTYPEID_X)%size)
163 logical, intent(in), optional :: force_uniform_grid
164
165 integer :: n
166 integer :: i
167 integer :: is, ie
168 type(ElementBase1D), pointer :: refElem
169 type(LocalMesh1D), pointer :: lcmesh
170
171 logical :: uniform_grid = .false.
172 real(RP), allocatable :: x_local(:)
173 !-------------------------------------------------
174
175 if ( present(force_uniform_grid) ) uniform_grid = force_uniform_grid
176
177 do n=1,mesh1d%LOCAL_MESH_NUM
178 lcmesh => mesh1d%lcmesh_list(n)
179 refelem => lcmesh%refElem1D
180
181 allocate( x_local(refelem%Np) )
182
183 do i=1,mesh1d%NeG
184 x_local(:) = lcmesh%pos_en(:,i,1)
185 if ( uniform_grid ) call get_uniform_grid1d( x_local, refelem%Nfp )
186
187 is = 1 + (i-1)*refelem%Np + (n-1)*refelem%Np*lcmesh%Ne
188 ie = is + refelem%Np -1
189 x(is:ie) = x_local(:)
190 end do
191
192 deallocate( x_local )
193 end do
194
195 return

◆ file_common_meshfield_get_axis2d()

subroutine scale_file_common_meshfield::file_common_meshfield_get_axis::file_common_meshfield_get_axis2d ( class(meshrectdom2d), intent(in), target mesh2d,
type(file_common_meshfield_diminfo), dimension(meshbase2d_dimtype_num), intent(in) dimsinfo,
real(rp), dimension(dimsinfo(meshbase2d_dimtypeid_x)%size), intent(out) x,
real(rp), dimension(dimsinfo(meshbase2d_dimtypeid_y)%size), intent(out) y,
logical, intent(in), optional force_uniform_grid )

Definition at line 453 of file scale_file_common_meshfield.F90.

455 implicit none
456
457 class(MeshRectDom2D), target, intent(in) :: mesh2D
458 type(FILE_common_meshfield_diminfo), intent(in) :: dimsinfo(MeshBase2D_DIMTYPE_NUM)
459 real(RP), intent(out) :: x(dimsinfo(MeshBase2D_DIMTYPEID_X)%size)
460 real(RP), intent(out) :: y(dimsinfo(MeshBase2D_DIMTYPEID_Y)%size)
461 logical, intent(in), optional :: force_uniform_grid
462
463 integer :: n
464 integer :: ni, nj
465 integer :: k
466 integer :: i, j
467 type(ElementBase2D), pointer :: refElem
468 type(LocalMesh2D), pointer :: lcmesh
469
470 integer :: is, js, ie, je, igs, jgs
471
472 logical :: uniform_grid = .false.
473 real(RP), allocatable :: x_local(:)
474 real(RP), allocatable :: y_local(:)
475 !-------------------------------------------------
476
477 if ( present(force_uniform_grid) ) uniform_grid = force_uniform_grid
478
479 igs = 0; jgs = 0
480 do nj=1, size(mesh2d%rcdomIJ2LCMeshID,2)
481 do ni=1, size(mesh2d%rcdomIJ2LCMeshID,1)
482 n = mesh2d%rcdomIJ2LCMeshID(ni,nj)
483 lcmesh => mesh2d%lcmesh_list(n)
484 refelem => lcmesh%refElem2D
485
486 allocate( x_local(refelem%Nfp), y_local(refelem%Nfp) )
487
488 do j=1, lcmesh%NeY
489 do i=1, lcmesh%NeX
490 k = i + (j-1) * lcmesh%NeX
491 if ( j==1 .and. nj == 1 ) then
492 x_local(:) = lcmesh%pos_en(refelem%Fmask(:,1),k,1)
493 if ( uniform_grid ) call get_uniform_grid1d( x_local, refelem%Nfp )
494
495 is = igs + 1 + (i-1)*refelem%Nfp
496 ie = is + refelem%Nfp - 1
497 x(is:ie) = x_local(:)
498 end if
499 if ( i==1 .and. ni == 1 ) then
500 y_local(:) = lcmesh%pos_en(refelem%Fmask(:,4),k,2)
501 if ( uniform_grid ) call get_uniform_grid1d( y_local, refelem%Nfp )
502
503 js = jgs + 1 + (j-1)*refelem%Nfp
504 je = js + refelem%Nfp - 1
505 y(js:je) = y_local(:)
506 end if
507 end do
508 end do
509
510 igs = ie; jgs = je
511 deallocate( x_local, y_local )
512 end do
513 end do
514
515 return

◆ file_common_meshfield_get_axis2d_cubedsphere()

subroutine scale_file_common_meshfield::file_common_meshfield_get_axis::file_common_meshfield_get_axis2d_cubedsphere ( class(meshcubedspheredom2d), intent(in), target mesh2d,
type(file_common_meshfield_diminfo), dimension(meshbase2d_dimtype_num), intent(in) dimsinfo,
real(rp), dimension(dimsinfo(meshbase2d_dimtypeid_x)%size), intent(out) x,
real(rp), dimension(dimsinfo(meshbase2d_dimtypeid_y)%size), intent(out) y )

Definition at line 519 of file scale_file_common_meshfield.F90.

520 use scale_const, only: &
521 pi => const_pi
522 implicit none
523
524 class(MeshCubedSphereDom2D), target, intent(in) :: mesh2D
525 type(FILE_common_meshfield_diminfo), intent(in) :: dimsinfo(MeshBase2D_DIMTYPE_NUM)
526 real(RP), intent(out) :: x(dimsinfo(MeshBase2D_DIMTYPEID_X)%size)
527 real(RP), intent(out) :: y(dimsinfo(MeshBase2D_DIMTYPEID_Y)%size)
528
529 integer :: ni, nj, np, n
530 integer :: k
531 integer :: i, j
532 type(ElementBase2D), pointer :: refElem
533 type(LocalMesh2D), pointer :: lcmesh
534
535 integer :: is, js, ie, je, igs, jgs
536
537 logical :: uniform_grid = .false.
538 real(RP), allocatable :: x_local(:)
539 real(RP), allocatable :: y_local(:)
540 !-------------------------------------------------
541
542 igs = 0; jgs = 0
543
544 do np=1, size(mesh2d%rcdomIJP2LCMeshID,3)
545 do nj=1, size(mesh2d%rcdomIJP2LCMeshID,2)
546 do ni=1, size(mesh2d%rcdomIJP2LCMeshID,1)
547 n = mesh2d%rcdomIJP2LCMeshID(ni,nj,np)
548 lcmesh => mesh2d%lcmesh_list(n)
549 refelem => lcmesh%refElem2D
550
551 allocate( x_local(refelem%Nfp), y_local(refelem%Nfp) )
552
553 do j=1, lcmesh%NeY
554 do i=1, lcmesh%NeX
555 k = i + (j-1) * lcmesh%NeX
556 if ( j==1 .and. nj == 1 .and. np == 1) then
557 x_local(:) = lcmesh%pos_en(refelem%Fmask(:,1),k,1)
558
559 is = igs + 1 + (i-1)*refelem%Nfp
560 ie = is + refelem%Nfp - 1
561 x(is:ie) = x_local(:)
562 end if
563 if ( i==1 .and. ni == 1 ) then
564 y_local(:) = lcmesh%pos_en(refelem%Fmask(:,4),k,2) &
565 + ( lcmesh%panelID - 1.0_rp ) * 0.5_rp * pi
566
567 js = jgs + 1 + (j-1)*refelem%Nfp
568 je = js + refelem%Nfp - 1
569 y(js:je) = y_local(:)
570 end if
571 end do
572 end do
573
574 igs = ie; jgs = je
575 deallocate( x_local, y_local )
576 end do
577 end do
578 end do
579
580 return

◆ file_common_meshfield_get_axis3d()

subroutine scale_file_common_meshfield::file_common_meshfield_get_axis::file_common_meshfield_get_axis3d ( class(meshcubedom3d), intent(in), target mesh3d,
type(file_common_meshfield_diminfo), dimension(meshbase3d_dimtype_num), intent(in) dimsinfo,
real(rp), dimension(dimsinfo(meshbase3d_dimtypeid_x)%size), intent(out) x,
real(rp), dimension(dimsinfo(meshbase3d_dimtypeid_y)%size), intent(out) y,
real(rp), dimension(dimsinfo(meshbase3d_dimtypeid_z)%size), intent(out) z,
logical, intent(in), optional force_uniform_grid )

Definition at line 1036 of file scale_file_common_meshfield.F90.

1038 implicit none
1039
1040 class(MeshCubeDom3D), target, intent(in) :: mesh3D
1041 type(FILE_common_meshfield_diminfo), intent(in) :: dimsinfo(MESHBASE3D_DIMTYPE_NUM)
1042 real(RP), intent(out) :: x(dimsinfo(MeshBase3D_DIMTYPEID_X)%size)
1043 real(RP), intent(out) :: y(dimsinfo(MeshBase3D_DIMTYPEID_Y)%size)
1044 real(RP), intent(out) :: z(dimsinfo(MeshBase3D_DIMTYPEID_Z)%size)
1045 logical, intent(in), optional :: force_uniform_grid
1046
1047 integer :: n, kelem
1048 integer :: i, j, k
1049 type(ElementBase3D), pointer :: refElem
1050 type(LocalMesh3D), pointer :: lcmesh
1051
1052 integer :: is, js, ks, ie, je, ke, igs, jgs, kgs
1053 integer :: Nnode_h1D, Nnode_v
1054
1055 logical :: uniform_grid = .false.
1056 real(RP), allocatable :: x_local(:)
1057 real(RP), allocatable :: y_local(:)
1058 real(RP), allocatable :: z_local(:)
1059 !------------------------------------------------------------------------------------------
1060
1061 if ( present(force_uniform_grid) ) uniform_grid = force_uniform_grid
1062
1063 igs = 0; jgs = 0; kgs = 0
1064
1065 do n=1 ,mesh3d%LOCAL_MESH_NUM
1066 lcmesh => mesh3d%lcmesh_list(n)
1067 refelem => lcmesh%refElem3D
1068 nnode_h1d = refelem%Nnode_h1D
1069 nnode_v = refelem%Nnode_v
1070
1071 allocate( x_local(nnode_h1d), y_local(nnode_h1d) )
1072 allocate( z_local(nnode_v) )
1073
1074 do k=1, lcmesh%NeZ
1075 do j=1, lcmesh%NeY
1076 do i=1, lcmesh%NeX
1077 kelem = i + (j-1)*lcmesh%NeX + (k-1)*lcmesh%NeX*lcmesh%NeY
1078 if ( j==1 .and. k==1) then
1079 x_local(:) = lcmesh%pos_en(refelem%Fmask_h(1:nnode_h1d,1),kelem,1)
1080 if ( uniform_grid ) call get_uniform_grid1d( x_local, nnode_h1d )
1081
1082 is = igs + 1 + (i-1)*nnode_h1d
1083 ie = is + nnode_h1d - 1
1084 x(is:ie) = x_local(:)
1085 end if
1086 if ( i==1 .and. k==1) then
1087 y_local(:) = lcmesh%pos_en(refelem%Fmask_h(1:nnode_h1d,4),kelem,2)
1088 if ( uniform_grid ) call get_uniform_grid1d( y_local, nnode_h1d )
1089
1090 js = jgs + 1 + (j-1)*nnode_h1d
1091 je = js + nnode_h1d - 1
1092 y(js:je) = y_local(:)
1093 end if
1094 if ( i==1 .and. j==1) then
1095 z_local(:) = lcmesh%pos_en(refelem%Colmask(:,1),kelem,3)
1096 if ( uniform_grid ) call get_uniform_grid1d( z_local, nnode_v )
1097
1098 ks = kgs + 1 + (k-1)*nnode_v
1099 ke = ks + nnode_v - 1
1100 z(ks:ke) = z_local(:)
1101 end if
1102 end do
1103 end do
1104 end do
1105
1106 igs = ie; jgs = je; kgs = ke
1107 deallocate( x_local, y_local )
1108 deallocate( z_local )
1109 end do
1110
1111 return

◆ file_common_meshfield_get_axis3d_cubedsphere()

subroutine scale_file_common_meshfield::file_common_meshfield_get_axis::file_common_meshfield_get_axis3d_cubedsphere ( class(meshcubedspheredom3d), intent(in), target mesh3d,
type(file_common_meshfield_diminfo), dimension(meshbase3d_dimtype_num), intent(in) dimsinfo,
real(rp), dimension(dimsinfo(meshbase3d_dimtypeid_x)%size), intent(out) x,
real(rp), dimension(dimsinfo(meshbase3d_dimtypeid_y)%size), intent(out) y,
real(rp), dimension(dimsinfo(meshbase3d_dimtypeid_z)%size), intent(out) z )

Definition at line 1115 of file scale_file_common_meshfield.F90.

1116 implicit none
1117
1118 class(MeshCubedSphereDom3D), target, intent(in) :: mesh3D
1119 type(FILE_common_meshfield_diminfo), intent(in) :: dimsinfo(MESHBASE3D_DIMTYPE_NUM)
1120 real(RP), intent(out) :: x(dimsinfo(MeshBase3D_DIMTYPEID_X)%size)
1121 real(RP), intent(out) :: y(dimsinfo(MeshBase3D_DIMTYPEID_Y)%size)
1122 real(RP), intent(out) :: z(dimsinfo(MeshBase3D_DIMTYPEID_Z)%size)
1123
1124 integer :: n, ni, nj, nk, np
1125 integer :: kelem
1126 integer :: i, j, k
1127 type(ElementBase3D), pointer :: refElem
1128 type(LocalMesh3D), pointer :: lcmesh
1129
1130 integer :: is, js, ks, ie, je, ke, igs, jgs, kgs
1131
1132 logical :: uniform_grid = .false.
1133 real(RP), allocatable :: x_local(:)
1134 real(RP), allocatable :: y_local(:)
1135 real(RP), allocatable :: z_local(:)
1136 !-------------------------------------------------
1137
1138 igs = 0; jgs = 0; kgs = 0
1139
1140 do np=1, size(mesh3d%rcdomIJKP2LCMeshID,4)
1141 do nk=1, size(mesh3d%rcdomIJKP2LCMeshID,3)
1142 do nj=1, size(mesh3d%rcdomIJKP2LCMeshID,2)
1143 do ni=1, size(mesh3d%rcdomIJKP2LCMeshID,1)
1144 n = mesh3d%rcdomIJKP2LCMeshID(ni,nj,nk,np)
1145 lcmesh => mesh3d%lcmesh_list(n)
1146 refelem => lcmesh%refElem3D
1147
1148 allocate( x_local(refelem%Nnode_h1D), y_local(refelem%Nnode_h1D), z_local(refelem%Nnode_v) )
1149
1150 do k=1, lcmesh%NeZ
1151 do j=1, lcmesh%NeY
1152 do i=1, lcmesh%NeX
1153 kelem = i + (j-1) * lcmesh%NeX + (k-1) * lcmesh%NeX * lcmesh%NeY
1154 if ( j==1 .and. nj == 1 .and. k==1 .and. nk == 1 .and. np == 1) then
1155 x_local(:) = lcmesh%pos_en(refelem%Fmask_h(1:refelem%Nnode_h1D,1),kelem,1)
1156
1157 is = igs + 1 + (i-1)*refelem%Nnode_h1D
1158 ie = is + refelem%Nnode_h1D - 1
1159 x(is:ie) = x_local(:)
1160 end if
1161 if ( i==1 .and. ni == 1 .and. k==1 .and. nk == 1 .and. np == 1 ) then
1162 y_local(:) = lcmesh%pos_en(refelem%Fmask_h(1:refelem%Nnode_h1D,4),kelem,2)
1163
1164 js = jgs + 1 + (j-1)*refelem%Nnode_h1D
1165 je = js + refelem%Nnode_h1D - 1
1166 y(js:je) = y_local(:)
1167 end if
1168 if ( i==1 .and. ni == 1 .and. j == 1 .and. nj == 1 ) then
1169 z_local(:) = lcmesh%pos_en(refelem%Colmask(:,1),kelem,3) &
1170 + ( lcmesh%panelID - 1.0_rp ) * ( mesh3d%zmax_gl - mesh3d%zmin_gl )
1171
1172 ks = kgs + 1 + (k-1)*refelem%Nnode_v
1173 ke = ks + refelem%Nnode_v - 1
1174 z(ks:ke) = z_local(:)
1175 end if
1176 end do
1177 end do
1178 end do
1179
1180 igs = ie; jgs = je; kgs = ke
1181 deallocate( x_local, y_local, z_local )
1182 end do
1183 end do
1184 end do
1185 end do
1186
1187 return

The documentation for this interface was generated from the following file: