|
FE-Project
|
Derived type to manage a cubic 3D computational domain. More...
Public Member Functions | |
| procedure | init (this, negx, negy, negz, dom_xmin, dom_xmax, dom_ymin, dom_ymax, dom_zmin, dom_zmax, isperiodicx, isperiodicy, isperiodicz, refelem, nlocalmeshperprc, nprcx, nprcy, nproc, myrank, fz) |
| Initialize an object to manage a cubic 3D domain. | |
| procedure | final (this) |
| Finalize an object to manage a cubic 3D domain. | |
| procedure | generate (this) |
| Generate a cubic 3D computational domain based on the parameters set in the initialization. | |
| procedure | getmesh2d (this, ptr_mesh2d) |
| procedure | set_geometric_with_vcoord (this, lcdomid, gsqrtv_lc, zlev_lc, g13_lc, g23_lc) |
| Set 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 for the global mesh. | |
| integer | negy |
| Number of elements in Y direction for the global mesh. | |
| integer | negz |
| Number of elements in Z direction for the global mesh. | |
| integer | nprcx |
| Number of processes in X direction for domain decomposition. | |
| integer | nprcy |
| Number of processes in Y direction for domain decomposition. | |
| integer | nprcz |
| Number of processes in Z direction for domain decomposition. | |
| real(rp), public | xmin_gl |
| Minimum X coordinate of the global domain. | |
| real(rp), public | xmax_gl |
| Maximum X coordinate of the global domain. | |
| real(rp), public | ymin_gl |
| Minimum Y coordinate of the global domain. | |
| real(rp), public | ymax_gl |
| Maximum Y coordinate of the global domain. | |
| 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 | rcdomijk2lcmeshid |
| logical | isperiodicx |
| Flag whether the domain is periodic in X direction. | |
| logical | isperiodicy |
| Flag whether the domain is periodic in Y direction. | |
| logical | isperiodicz |
| Flag whether the domain is periodic in Z direction. | |
| type(meshrectdom2d) | mesh2d |
| 2D mesh for the horizontal plane (X-Y plane) | |
| type(quadrilateralelement) | refelem2d |
| Reference element for the 2D mesh. | |
| 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 cubic 3D computational domain.
Definition at line 46 of file scale_mesh_cubedom3d.F90.
| procedure scale_mesh_cubedom3d::meshcubedom3d::init | ( | class(meshcubedom3d), intent(inout) | this, |
| integer, intent(in) | negx, | ||
| integer, intent(in) | negy, | ||
| integer, intent(in) | negz, | ||
| real(rp), intent(in) | dom_xmin, | ||
| real(rp), intent(in) | dom_xmax, | ||
| real(rp), intent(in) | dom_ymin, | ||
| real(rp), intent(in) | dom_ymax, | ||
| real(rp), intent(in) | dom_zmin, | ||
| real(rp), intent(in) | dom_zmax, | ||
| logical, intent(in) | isperiodicx, | ||
| logical, intent(in) | isperiodicy, | ||
| logical, intent(in) | isperiodicz, | ||
| type(hexahedralelement), intent(in), target | refelem, | ||
| integer, intent(in) | nlocalmeshperprc, | ||
| integer, intent(in) | nprcx, | ||
| integer, intent(in) | nprcy, | ||
| integer, intent(in), optional | nproc, | ||
| integer, intent(in), optional | myrank, | ||
| real(rp), dimension(negz+1), intent(in), optional | fz ) |
Initialize an object to manage a cubic 3D domain.
| [in] | negx | Number of elements in X direction for the global mesh |
| [in] | negy | Number of elements in Y direction for the global mesh |
| [in] | negz | Number of elements in Z direction for the global mesh |
| [in] | dom_xmin | Minimum X coordinate of the global domain |
| [in] | dom_xmax | Maximum X coordinate of the global domain |
| [in] | dom_ymin | Minimum Y coordinate of the global domain |
| [in] | dom_ymax | Maximum Y coordinate of the global domain |
| [in] | dom_zmin | Minimum Z coordinate of the global domain |
| [in] | dom_zmax | Maximum Z coordinate of the global domain |
| [in] | isperiodicx | Flag whether the domain is periodic in X direction |
| [in] | isperiodicy | Flag whether the domain is periodic in Y direction |
| [in] | isperiodicz | Flag whether the domain is periodic in Z direction |
| [in] | refelem | Reference element for the 3D mesh |
| [in] | nlocalmeshperprc | Number of local meshes managed by each process |
| [in] | nprcx | Number of processes in X direction for domain decomposition |
| [in] | nprcy | Number of processes in Y direction for domain decomposition |
| [in] | nproc | Total number of processes (if not provided, it will be determined from the parallel environment) |
| [in] | myrank | Rank of the current process (if not provided, it will be determined from the parallel environment) |
| [in] | fz | Optional array of Z coordinates for the mesh |
Definition at line 73 of file scale_mesh_cubedom3d.F90.
| procedure scale_mesh_cubedom3d::meshcubedom3d::final | ( | class(meshcubedom3d), intent(inout) | this | ) |
Finalize an object to manage a cubic 3D domain.
Definition at line 74 of file scale_mesh_cubedom3d.F90.
| procedure scale_mesh_cubedom3d::meshcubedom3d::generate | ( | class(meshcubedom3d), intent(inout), target | this | ) |
Generate a cubic 3D computational domain based on the parameters set in the initialization.
Definition at line 75 of file scale_mesh_cubedom3d.F90.
| procedure scale_mesh_cubedom3d::meshcubedom3d::getmesh2d | ( | class(meshcubedom3d), intent(in), target | this, |
| class(meshbase2d), intent(out), pointer | ptr_mesh2d ) |
Definition at line 76 of file scale_mesh_cubedom3d.F90.
| procedure scale_mesh_cubedom3d::meshcubedom3d::set_geometric_with_vcoord | ( | class(meshcubedom3d), 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 geometric information of the local mesh with the vertical coordinate transformation.
Definition at line 77 of file scale_mesh_cubedom3d.F90.
References scale_mesh_cubedom3d::meshcubedom3d_coord_conv().
| integer scale_mesh_cubedom3d::meshcubedom3d::negx |
Number of elements in X direction for the global mesh.
Definition at line 47 of file scale_mesh_cubedom3d.F90.
| integer scale_mesh_cubedom3d::meshcubedom3d::negy |
Number of elements in Y direction for the global mesh.
Definition at line 48 of file scale_mesh_cubedom3d.F90.
| integer scale_mesh_cubedom3d::meshcubedom3d::negz |
Number of elements in Z direction for the global mesh.
Definition at line 49 of file scale_mesh_cubedom3d.F90.
| integer scale_mesh_cubedom3d::meshcubedom3d::nprcx |
Number of processes in X direction for domain decomposition.
Definition at line 51 of file scale_mesh_cubedom3d.F90.
| integer scale_mesh_cubedom3d::meshcubedom3d::nprcy |
Number of processes in Y direction for domain decomposition.
Definition at line 52 of file scale_mesh_cubedom3d.F90.
| integer scale_mesh_cubedom3d::meshcubedom3d::nprcz |
Number of processes in Z direction for domain decomposition.
Definition at line 53 of file scale_mesh_cubedom3d.F90.
| real(rp), public scale_mesh_cubedom3d::meshcubedom3d::xmin_gl |
Minimum X coordinate of the global domain.
Definition at line 55 of file scale_mesh_cubedom3d.F90.
| real(rp), public scale_mesh_cubedom3d::meshcubedom3d::xmax_gl |
Maximum X coordinate of the global domain.
Definition at line 56 of file scale_mesh_cubedom3d.F90.
| real(rp), public scale_mesh_cubedom3d::meshcubedom3d::ymin_gl |
Minimum Y coordinate of the global domain.
Definition at line 57 of file scale_mesh_cubedom3d.F90.
| real(rp), public scale_mesh_cubedom3d::meshcubedom3d::ymax_gl |
Maximum Y coordinate of the global domain.
Definition at line 58 of file scale_mesh_cubedom3d.F90.
| real(rp), public scale_mesh_cubedom3d::meshcubedom3d::zmin_gl |
Minimum Z coordinate of the global domain.
Definition at line 59 of file scale_mesh_cubedom3d.F90.
| real(rp), public scale_mesh_cubedom3d::meshcubedom3d::zmax_gl |
Maximum Z coordinate of the global domain.
Definition at line 60 of file scale_mesh_cubedom3d.F90.
| real(rp), dimension(:), allocatable scale_mesh_cubedom3d::meshcubedom3d::fz |
Definition at line 62 of file scale_mesh_cubedom3d.F90.
| integer, dimension(:,:,:), allocatable scale_mesh_cubedom3d::meshcubedom3d::rcdomijk2lcmeshid |
Definition at line 64 of file scale_mesh_cubedom3d.F90.
| logical scale_mesh_cubedom3d::meshcubedom3d::isperiodicx |
Flag whether the domain is periodic in X direction.
Definition at line 66 of file scale_mesh_cubedom3d.F90.
| logical scale_mesh_cubedom3d::meshcubedom3d::isperiodicy |
Flag whether the domain is periodic in Y direction.
Definition at line 67 of file scale_mesh_cubedom3d.F90.
| logical scale_mesh_cubedom3d::meshcubedom3d::isperiodicz |
Flag whether the domain is periodic in Z direction.
Definition at line 68 of file scale_mesh_cubedom3d.F90.
| type(meshrectdom2d) scale_mesh_cubedom3d::meshcubedom3d::mesh2d |
2D mesh for the horizontal plane (X-Y plane)
Definition at line 70 of file scale_mesh_cubedom3d.F90.
| type(quadrilateralelement) scale_mesh_cubedom3d::meshcubedom3d::refelem2d |
Reference element for the 2D mesh.
Definition at line 71 of file scale_mesh_cubedom3d.F90.