FE-Project
Loading...
Searching...
No Matches
scale_mesh_rectdom2d::meshrectdom2d Type Reference

Derived type to manage a rectangular 2D computational domain. More...

Inheritance diagram for scale_mesh_rectdom2d::meshrectdom2d:
scale_mesh_base2d::meshbase2d scale_mesh_base::meshbase

Public Member Functions

procedure init (this, negx, negy, dom_xmin, dom_xmax, dom_ymin, dom_ymax, isperiodicx, isperiodicy, refelem, nlocalmeshperprc, nprcx, nprcy, nproc, myrank)
 Initialize an object to manage a 2D rectangular computational mesh.
procedure final (this)
 Finalize an object to manage a 2D rectangular computational mesh.
procedure generate (this)
 Generate meshes for the rectangular domain.
procedure assigndomid (this, tileid_table, panelid_table, pi_table, pj_table)
Public Member Functions inherited from scale_mesh_base2d::meshbase2d
procedure(meshbase2d_generate), deferred generate meshbase2d_generate
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 (global)
integer negy
 Number of elements in Y direction (global)
integer nprcx
 Number of processes in X direction for domain decomposition.
integer nprcy
 Number of processes in Y 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.
integer, dimension(:,:), allocatable rcdomij2lcmeshid
logical isperiodicx
 Flag whether the domain is periodic in X direction.
logical isperiodicy
 Flag whether the domain is periodic in Y direction.
Public Attributes inherited from scale_mesh_base2d::meshbase2d
type(localmesh2d), dimension(:), allocatable lcmesh_list
 Array of local meshes in each MPI process.
type(elementbase2d), pointer refelem2d
 Pointer to an object with a reference element for 2D.
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.

Detailed Description

Derived type to manage a rectangular 2D computational domain.

Definition at line 37 of file scale_mesh_rectdom2d.F90.

Member Function/Subroutine Documentation

◆ init()

procedure scale_mesh_rectdom2d::meshrectdom2d::init ( class(meshrectdom2d), intent(inout) this,
integer, intent(in) negx,
integer, intent(in) negy,
real(rp), intent(in) dom_xmin,
real(rp), intent(in) dom_xmax,
real(rp), intent(in) dom_ymin,
real(rp), intent(in) dom_ymax,
logical, intent(in) isperiodicx,
logical, intent(in) isperiodicy,
type(quadrilateralelement), 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 )

Initialize an object to manage a 2D rectangular computational mesh.

Parameters
[in]negxNumber of elements in X direction (global)
[in]negyNumber of elements in Y direction (global)
[in]dom_xminMinimum X coordinate of the global domain
[in]dom_xmaxMaximum X coordinate of the global domain
[in]dom_yminMinimum Y coordinate of the global domain
[in]dom_ymaxMaximum Y coordinate of the global domain
[in]isperiodicxFlag whether the domain is periodic in X direction
[in]isperiodicyFlag whether the domain is periodic in Y direction
[in]refelemReference element for the 2D mesh
[in]nlocalmeshperprcNumber of local meshes managed by each process
[in]nprcxNumber of processes in X direction for domain decomposition
[in]nprcyNumber of processes in Y direction for domain decomposition
[in]nprocTotal number of processes (if not provided, it will be determined from the parallel environment)
[in]myrankRank of the current process (if not provided, it will be determined from the parallel environment)

Definition at line 54 of file scale_mesh_rectdom2d.F90.

◆ final()

procedure scale_mesh_rectdom2d::meshrectdom2d::final ( class(meshrectdom2d), intent(inout) this)

Finalize an object to manage a 2D rectangular computational mesh.

Definition at line 55 of file scale_mesh_rectdom2d.F90.

◆ generate()

procedure scale_mesh_rectdom2d::meshrectdom2d::generate ( class(meshrectdom2d), intent(inout), target this)

Generate meshes for the rectangular domain.

Definition at line 56 of file scale_mesh_rectdom2d.F90.

◆ assigndomid()

procedure scale_mesh_rectdom2d::meshrectdom2d::assigndomid ( class(meshrectdom2d), intent(inout), target this,
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 )

Member Data Documentation

◆ negx

integer scale_mesh_rectdom2d::meshrectdom2d::negx

Number of elements in X direction (global)

Definition at line 38 of file scale_mesh_rectdom2d.F90.

38 integer :: NeGX !< Number of elements in X direction (global)

◆ negy

integer scale_mesh_rectdom2d::meshrectdom2d::negy

Number of elements in Y direction (global)

Definition at line 39 of file scale_mesh_rectdom2d.F90.

39 integer :: NeGY !< Number of elements in Y direction (global)

◆ nprcx

integer scale_mesh_rectdom2d::meshrectdom2d::nprcx

Number of processes in X direction for domain decomposition.

Definition at line 41 of file scale_mesh_rectdom2d.F90.

41 integer :: NprcX !< Number of processes in X direction for domain decomposition

◆ nprcy

integer scale_mesh_rectdom2d::meshrectdom2d::nprcy

Number of processes in Y direction for domain decomposition.

Definition at line 42 of file scale_mesh_rectdom2d.F90.

42 integer :: NprcY !< Number of processes in Y direction for domain decomposition

◆ xmin_gl

real(rp), public scale_mesh_rectdom2d::meshrectdom2d::xmin_gl

Minimum X coordinate of the global domain.

Definition at line 44 of file scale_mesh_rectdom2d.F90.

44 real(RP), public :: xmin_gl !< Minimum X coordinate of the global domain

◆ xmax_gl

real(rp), public scale_mesh_rectdom2d::meshrectdom2d::xmax_gl

Maximum X coordinate of the global domain.

Definition at line 45 of file scale_mesh_rectdom2d.F90.

45 real(RP), public :: xmax_gl !< Maximum X coordinate of the global domain

◆ ymin_gl

real(rp), public scale_mesh_rectdom2d::meshrectdom2d::ymin_gl

Minimum Y coordinate of the global domain.

Definition at line 46 of file scale_mesh_rectdom2d.F90.

46 real(RP), public :: ymin_gl !< Minimum Y coordinate of the global domain

◆ ymax_gl

real(rp), public scale_mesh_rectdom2d::meshrectdom2d::ymax_gl

Maximum Y coordinate of the global domain.

Definition at line 47 of file scale_mesh_rectdom2d.F90.

47 real(RP), public :: ymax_gl !< Maximum Y coordinate of the global domain

◆ rcdomij2lcmeshid

integer, dimension(:,:), allocatable scale_mesh_rectdom2d::meshrectdom2d::rcdomij2lcmeshid

Definition at line 49 of file scale_mesh_rectdom2d.F90.

49 integer, allocatable :: rcdomIJ2LCMeshID(:,:)

◆ isperiodicx

logical scale_mesh_rectdom2d::meshrectdom2d::isperiodicx

Flag whether the domain is periodic in X direction.

Definition at line 51 of file scale_mesh_rectdom2d.F90.

51 logical :: isPeriodicX !< Flag whether the domain is periodic in X direction

◆ isperiodicy

logical scale_mesh_rectdom2d::meshrectdom2d::isperiodicy

Flag whether the domain is periodic in Y direction.

Definition at line 52 of file scale_mesh_rectdom2d.F90.

52 logical :: isPeriodicY !< Flag whether the domain is periodic in Y direction

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