The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
Functions/Subroutines
oft_mesh_global Module Reference

Detailed Description

MPI constructs and subroutines for global operations.

MPI types for global mesh information

Functions to intialize the MPI structure

Author
Chris Hansen
Date
Spring 2010

Functions/Subroutines

subroutine bmesh_global_init (self)
 Driver for global mesh initialization.
 
subroutine bmesh_global_link (self, parent)
 Driver for global seam linkage construction.
 
subroutine elinkage_from_parent (self, parent)
 Construct processor to processor edge linkage for stitching operations.
 
subroutine mesh_global_decomp (self, part_meth)
 Perform mesh decomposition and local construction.
 
subroutine mesh_global_elinkage (self)
 Construct processor to processor edge linkage for stitching operations.
 
subroutine mesh_global_flinkage (self)
 Construct processor to processor face linkage for stitching operations.
 
subroutine mesh_global_init (self)
 Driver for global mesh initialization.
 
subroutine mesh_global_link (self)
 Driver for global seam linkage construction.
 
subroutine mesh_global_partition (self, meshpart, part_meth)
 Perform mesh decomposition (METIS) and local construction.
 
subroutine mesh_global_plinkage (self)
 Construct processor to processor point linkage for stitching operations.
 
subroutine mesh_global_proccon (self, lptmp, np)
 Determine neighboring processors for MPI linkage.
 
subroutine mesh_global_sync (self)
 Scatters base mesh information to all processors.
 
subroutine plinkage_from_parent (self, parent)
 Construct processor to processor point linkage for stitching operations.
 
subroutine smesh_global_init (self)
 Driver for global mesh initialization.
 

Function/Subroutine Documentation

◆ bmesh_global_init()

subroutine bmesh_global_init ( class(oft_mesh), intent(inout)  self)

Driver for global mesh initialization.

Initialize global mesh enviroment

  • Sync mesh information from proc 0 to all
  • Set base global geometry counts, indices and boundary info
  • Construct lowest level mesh
    Parameters
    [in,out]selfMesh object

◆ bmesh_global_link()

subroutine bmesh_global_link ( class(oft_bmesh), intent(inout)  self,
class(oft_mesh), intent(inout), optional  parent 
)

Driver for global seam linkage construction.

Construct inter-processor linkage information

  • Link seam points, edges and faces
    Parameters
    [in,out]selfMesh object
    [in,out]parentParent volume mesh (if present)

◆ elinkage_from_parent()

subroutine elinkage_from_parent ( class(oft_bmesh), intent(inout)  self,
class(oft_mesh), intent(inout)  parent 
)

Construct processor to processor edge linkage for stitching operations.

  • Create linkage of boundary edges to other processors with orientation.
  • Determine ownership for shared edges
    Parameters
    [in,out]selfMesh object
    [in,out]parentParent volume mesh

◆ mesh_global_decomp()

subroutine mesh_global_decomp ( class(oft_amesh), intent(inout)  self,
integer(i4), intent(in)  part_meth 
)

Perform mesh decomposition and local construction.

  • Decompose global mesh
  • Perform mesh construction of local domain
    Parameters
    [in,out]selfMesh object
    [in]part_methMethod to use for partitioning (see mesh_global_partition)

◆ mesh_global_elinkage()

subroutine mesh_global_elinkage ( class(oft_amesh), intent(inout)  self)

Construct processor to processor edge linkage for stitching operations.

  • Create linkage of boundary edges to other processors with orientation.
  • Determine ownership for shared edges
    Parameters
    [in,out]selfMesh object

◆ mesh_global_flinkage()

subroutine mesh_global_flinkage ( class(oft_mesh), intent(inout)  self)

Construct processor to processor face linkage for stitching operations.

  • Create linkage of boundary faces to other processors.
  • Determine ownership for shared faces
  • Set global boundary face flag
    Parameters
    [in,out]selfMesh object

◆ mesh_global_init()

subroutine mesh_global_init ( class(oft_mesh), intent(inout)  self)

Driver for global mesh initialization.

Initialize global mesh enviroment

  • Sync mesh information from proc 0 to all
  • Set base global geometry counts, indices and boundary info
  • Construct lowest level mesh
    Parameters
    [in,out]selfMesh object

◆ mesh_global_link()

subroutine mesh_global_link ( class(oft_mesh), intent(inout)  self)

Driver for global seam linkage construction.

Construct inter-processor linkage information

  • Link seam points, edges and faces
    Parameters
    [in,out]selfMesh object

◆ mesh_global_partition()

subroutine mesh_global_partition ( class(oft_amesh), intent(inout)  self,
integer(i4), dimension(:), intent(inout)  meshpart,
integer(i4), intent(in)  part_meth 
)

Perform mesh decomposition (METIS) and local construction.

  • Decompose domain of head task using METIS library.
  • Scatter decomposition to all tasks.

Supported partition methods are:

  • part_meth==1: Partition using METIS library
  • 2 <= part_meth <= 4: Axial spatial partitioning along coordinate part_meth-1
  • part_meth==5: Cylindrical spatial partitioning in azimuthal direction
    Parameters
    [in,out]selfMesh object
    [in,out]meshpartPartition flag [selfnc]
    [in]part_methMethod to use for partitioning

◆ mesh_global_plinkage()

subroutine mesh_global_plinkage ( class(oft_amesh), intent(inout)  self)

Construct processor to processor point linkage for stitching operations.

  • Create linkage of boundary points to other processors
  • Determine ownership for shared points
    Parameters
    [in,out]selfMesh object

◆ mesh_global_proccon()

subroutine mesh_global_proccon ( class(oft_amesh), intent(inout)  self,
integer(i4), dimension(np), intent(in)  lptmp,
integer(i4), intent(in)  np 
)

Determine neighboring processors for MPI linkage.

Parameters
[in,out]selfMesh object
[in]lptmpList of global point indices from initialization
[in]npnumber of points

◆ mesh_global_sync()

subroutine mesh_global_sync ( class(oft_amesh), intent(inout)  self)

Scatters base mesh information to all processors.

Scatters mesh information from head task to all other tasks using MPI_BCAST calls.

  • Communicates base mesh information (np,nc,lc,r)
    Parameters
    [in,out]selfMesh object

◆ plinkage_from_parent()

subroutine plinkage_from_parent ( class(oft_bmesh), intent(inout)  self,
class(oft_mesh), intent(inout)  parent 
)

Construct processor to processor point linkage for stitching operations.

  • Create linkage of boundary points to other processors
  • Determine ownership for shared points
    Parameters
    [in,out]selfMesh object
    [in,out]parentParent volume mesh

◆ smesh_global_init()

subroutine smesh_global_init ( class(oft_bmesh), intent(inout)  self)

Driver for global mesh initialization.

Initialize global mesh enviroment

  • Sync mesh information from proc 0 to all
  • Set base global geometry counts, indices and boundary info
  • Construct lowest level mesh
    Parameters
    [in,out]selfMesh object