The Open FUSION Toolkit 1.0.0-beta6
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
oft_mesh_global Module Reference

Detailed Description

MPI constructs and subroutines for global operations.

MPI types for global mesh information

  • Global Mesh indices
  • Proc to proc linkage information

Functions to intialize the MPI structure

  • Preform mesh decomposition and scatter
  • Construct MPI linkage information
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