|
FE-Project
|
Derived type to manage a cubed-sphere 3D computational domain. More...
Public Member Functions | |
| procedure | init (this, negx, negy, negz, rplanet, dom_zmin, dom_zmax, refelem, nlocalmeshperprc, nproc, myrank, fz, shallow_approx) |
| Initialize an object to manage a cubed-sphere 3D computational domain. | |
| procedure | final (this) |
| Finalize an object managing a cubed-sphere 3D computational domain. | |
| procedure | generate (this) |
| Generate the cubed-sphere 3D computational domain. | |
| procedure | assigndomid (this, nprcx_lc, nprcy_lc, nprcz_lc, tileid_table, panelid_table, pi_table, pj_table, pk_table) |
| procedure | getmesh2d (this, ptr_mesh2d) |
| procedure | set_geometric_with_vcoord (this, lcdomid, gsqrtv_lc, zlev_lc, g13_lc, g23_lc) |
| Set the geometric information of the local mesh with the vertical coordinate transformation. | |
| Public Member Functions inherited from scale_mesh_base3d::meshbase3d | |
| procedure(meshbase3d_generate), deferred | generate meshbase3d_generate |
| procedure(meshbase3d_getmesh2d), deferred | getmesh2d meshbase3d_getmesh2d |
| procedure(meshbase3d_set_geometric_with_vcoord), deferred | set_geometric_with_vcoord meshbase3d_set_geometric_with_vcoord |
| procedure | getlocalmesh (this, id, ptr_lcmesh) |
| Public Member Functions inherited from scale_mesh_base::meshbase | |
| procedure(meshbase_get_localmesh), deferred | getlocalmesh meshbase_get_localmesh |
| procedure | setdiminfo (this, dimid, name, unit, desc, positive_down) |
Public Attributes | |
| integer | negx |
| Number of elements in X direction in a panel of the cubed-sphere mesh. | |
| integer | negy |
| Number of elements in Y direction in a panel of the cubed-sphere mesh. | |
| integer | negz |
| Number of elements in Z direction in a panel of the cubed-sphere mesh. | |
| real(rp), public | xmin_gl |
| Minimum x-coordinate in a panel of the cubed-sphere mesh. | |
| real(rp), public | xmax_gl |
| Maximum x-coordinate in a panel of the cubed-sphere mesh. | |
| real(rp), public | ymin_gl |
| Minimum y-coordinate in a panel of the cubed-sphere mesh. | |
| real(rp), public | ymax_gl |
| Maximum y-coordinate in a panel of the cubed-sphere mesh. | |
| real(rp), public | zmin_gl |
| Minimum z-coordinate of the global domain. | |
| real(rp), public | zmax_gl |
| Maximum z-coordinate of the global domain. | |
| real(rp), dimension(:), allocatable | fz |
| integer, dimension(:,:,:,:), allocatable | rcdomijkp2lcmeshid |
| Mapping from (i,j,k,panel) to local mesh ID. | |
| real(rp) | rplanet |
| Radius of the planet (or sphere) for the cubed-sphere mesh. | |
| type(meshcubedspheredom2d) | mesh2d |
| type(quadrilateralelement) | refelem2d |
| logical | shallow_approx |
| Flag to indicate if the shallow water approximation is used. | |
| Public Attributes inherited from scale_mesh_base3d::meshbase3d | |
| type(localmesh3d), dimension(:), allocatable | lcmesh_list |
| type(elementbase3d), pointer | refelem3d |
| Public Attributes inherited from scale_mesh_base::meshbase | |
| integer | local_mesh_num |
| Number of local meshes in each MPI process. | |
| integer | prc_num |
| Number of MPI processes. | |
| integer | local_mesh_num_global |
| Total number of local meshes across all MPI processes. | |
| integer, dimension(:,:), allocatable | tileid_globalmap |
| integer, dimension(:,:), allocatable | tilefaceid_globalmap |
| integer, dimension(:,:), allocatable | tilepanelid_globalmap |
| integer, dimension(:), allocatable | tileid_global2localmap |
| integer, dimension(:), allocatable | prcrank_globalmap |
| class(elementbase), pointer | refelem |
| Pointer to an object with a reference element. | |
| type(meshdiminfo), dimension(:), allocatable | diminfo |
| Array of information for each dimension. | |
| real(rp) | dom_vol |
| Total volume of the computational domain. | |
| logical | isgenerated |
| Flag whether the mesh is generated. | |
Derived type to manage a cubed-sphere 3D computational domain.
Definition at line 48 of file scale_mesh_cubedspheredom3d.F90.
| procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::init | ( | class(meshcubedspheredom3d), intent(inout) | this, |
| integer, intent(in) | negx, | ||
| integer, intent(in) | negy, | ||
| integer, intent(in) | negz, | ||
| real(rp), intent(in) | rplanet, | ||
| real(rp), intent(in) | dom_zmin, | ||
| real(rp), intent(in) | dom_zmax, | ||
| type(hexahedralelement), intent(in), target | refelem, | ||
| integer, intent(in) | nlocalmeshperprc, | ||
| integer, intent(in), optional | nproc, | ||
| integer, intent(in), optional | myrank, | ||
| real(rp), dimension(negz+1), intent(in), optional | fz, | ||
| logical, intent(in), optional | shallow_approx ) |
Initialize an object to manage a cubed-sphere 3D computational domain.
Definition at line 71 of file scale_mesh_cubedspheredom3d.F90.
| procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::final | ( | class(meshcubedspheredom3d), intent(inout) | this | ) |
Finalize an object managing a cubed-sphere 3D computational domain.
Definition at line 72 of file scale_mesh_cubedspheredom3d.F90.
| procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::generate | ( | class(meshcubedspheredom3d), intent(inout), target | this | ) |
Generate the cubed-sphere 3D computational domain.
Definition at line 73 of file scale_mesh_cubedspheredom3d.F90.
| procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::assigndomid | ( | class(meshcubedspheredom3d), intent(inout), target | this, |
| integer, intent(in) | nprcx_lc, | ||
| integer, intent(in) | nprcy_lc, | ||
| integer, intent(in) | nprcz_lc, | ||
| integer, dimension(this%local_mesh_num, this%prc_num), intent(out) | tileid_table, | ||
| integer, dimension(this%local_mesh_num*this%prc_num), intent(out) | panelid_table, | ||
| integer, dimension(this%local_mesh_num*this%prc_num), intent(out) | pi_table, | ||
| integer, dimension(this%local_mesh_num*this%prc_num), intent(out) | pj_table, | ||
| integer, dimension(this%local_mesh_num*this%prc_num), intent(out) | pk_table ) |
Definition at line 74 of file scale_mesh_cubedspheredom3d.F90.
| procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::getmesh2d | ( | class(meshcubedspheredom3d), intent(in), target | this, |
| class(meshbase2d), intent(out), pointer | ptr_mesh2d ) |
Definition at line 75 of file scale_mesh_cubedspheredom3d.F90.
| procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::set_geometric_with_vcoord | ( | class(meshcubedspheredom3d), intent(inout), target | this, |
| integer, intent(in) | lcdomid, | ||
| real(rp), dimension(this%refelem3d%np,this%lcmesh_list(lcdomid)%nea), intent(in) | gsqrtv_lc, | ||
| real(rp), dimension(this%refelem3d%np,this%lcmesh_list(lcdomid)%nea), intent(in) | zlev_lc, | ||
| real(rp), dimension(this%refelem3d%np,this%lcmesh_list(lcdomid)%nea), intent(in) | g13_lc, | ||
| real(rp), dimension(this%refelem3d%np,this%lcmesh_list(lcdomid)%nea), intent(in) | g23_lc ) |
Set the geometric information of the local mesh with the vertical coordinate transformation.
Definition at line 76 of file scale_mesh_cubedspheredom3d.F90.
| integer scale_mesh_cubedspheredom3d::meshcubedspheredom3d::negx |
Number of elements in X direction in a panel of the cubed-sphere mesh.
Definition at line 49 of file scale_mesh_cubedspheredom3d.F90.
| integer scale_mesh_cubedspheredom3d::meshcubedspheredom3d::negy |
Number of elements in Y direction in a panel of the cubed-sphere mesh.
Definition at line 50 of file scale_mesh_cubedspheredom3d.F90.
| integer scale_mesh_cubedspheredom3d::meshcubedspheredom3d::negz |
Number of elements in Z direction in a panel of the cubed-sphere mesh.
Definition at line 51 of file scale_mesh_cubedspheredom3d.F90.
| real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::xmin_gl |
Minimum x-coordinate in a panel of the cubed-sphere mesh.
Definition at line 53 of file scale_mesh_cubedspheredom3d.F90.
| real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::xmax_gl |
Maximum x-coordinate in a panel of the cubed-sphere mesh.
Definition at line 54 of file scale_mesh_cubedspheredom3d.F90.
| real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::ymin_gl |
Minimum y-coordinate in a panel of the cubed-sphere mesh.
Definition at line 55 of file scale_mesh_cubedspheredom3d.F90.
| real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::ymax_gl |
Maximum y-coordinate in a panel of the cubed-sphere mesh.
Definition at line 56 of file scale_mesh_cubedspheredom3d.F90.
| real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::zmin_gl |
Minimum z-coordinate of the global domain.
Definition at line 57 of file scale_mesh_cubedspheredom3d.F90.
| real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::zmax_gl |
Maximum z-coordinate of the global domain.
Definition at line 58 of file scale_mesh_cubedspheredom3d.F90.
| real(rp), dimension(:), allocatable scale_mesh_cubedspheredom3d::meshcubedspheredom3d::fz |
Definition at line 60 of file scale_mesh_cubedspheredom3d.F90.
| integer, dimension(:,:,:,:), allocatable scale_mesh_cubedspheredom3d::meshcubedspheredom3d::rcdomijkp2lcmeshid |
Mapping from (i,j,k,panel) to local mesh ID.
Definition at line 62 of file scale_mesh_cubedspheredom3d.F90.
| real(rp) scale_mesh_cubedspheredom3d::meshcubedspheredom3d::rplanet |
Radius of the planet (or sphere) for the cubed-sphere mesh.
Definition at line 64 of file scale_mesh_cubedspheredom3d.F90.
| type(meshcubedspheredom2d) scale_mesh_cubedspheredom3d::meshcubedspheredom3d::mesh2d |
Definition at line 66 of file scale_mesh_cubedspheredom3d.F90.
| type(quadrilateralelement) scale_mesh_cubedspheredom3d::meshcubedspheredom3d::refelem2d |
Definition at line 67 of file scale_mesh_cubedspheredom3d.F90.
| logical scale_mesh_cubedspheredom3d::meshcubedspheredom3d::shallow_approx |
Flag to indicate if the shallow water approximation is used.
Definition at line 69 of file scale_mesh_cubedspheredom3d.F90.