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

Detailed Description

Multi-Level grid implementation using nested meshes.

Authors
George Marklin and Chris Hansen
Date
December 2009

Data Types

type  multigrid_inter
 Level to level interface structure. More...
 
type  multigrid_mesh
 Multigrid meshes and ML context structure. More...
 

Functions/Subroutines

subroutine hexmesh_mg_globals (mg_mesh, self, fmesh)
 Update global indices following refinement.
 
subroutine multigrid_base_popcc (mg_mesh, bccg, bcc, n)
 Transfer a cell based field from the base level to the distributed mesh.
 
subroutine multigrid_base_pushcc (mg_mesh, bccl, bcc, n)
 Transfer a cell based field from the distributed to base level.
 
subroutine multigrid_brefine (mg_mesh)
 Refine the current boundary mesh level once.
 
subroutine multigrid_hybrid_base (mg_mesh)
 Generate a transfer level for local to global mapping.
 
subroutine multigrid_hybrid_bmesh (mg_mesh)
 Generate a transfer level for local to global mapping for the boundary mesh.
 
subroutine multigrid_level (mg_mesh, level)
 Set mesh level in ML mesh.
 
subroutine multigrid_reffix_ho (mg_mesh)
 Adjust points to CAD boundary and propogate CAD linkage.
 
subroutine multigrid_reffix_ho_surf (mg_mesh)
 Adjust points to CAD boundary and propogate CAD linkage.
 
subroutine multigrid_refine (mg_mesh)
 Refine the current mesh level once.
 
subroutine multigrid_reset (mg_mesh)
 Construct multi-level mesh.
 
subroutine quadmesh_mg_globals (mg_mesh, self, fmesh)
 Update global indices following refinement.
 
subroutine tetmesh_mg_globals (mg_mesh, self, fmesh)
 Update global indices following refinement.
 
subroutine trimesh_mg_globals (mg_mesh, self, fmesh)
 Update global indices following refinement.
 

Function/Subroutine Documentation

◆ hexmesh_mg_globals()

subroutine hexmesh_mg_globals ( type(multigrid_mesh), intent(inout)  mg_mesh,
class(oft_mesh), intent(in)  self,
class(oft_mesh), intent(inout)  fmesh 
)

Update global indices following refinement.

  • Populate new indices using consistent mapping

◆ multigrid_base_popcc()

subroutine multigrid_base_popcc ( type(multigrid_mesh), intent(inout)  mg_mesh,
real(r8), dimension(:,:), intent(in)  bccg,
real(r8), dimension(:,:), intent(out)  bcc,
integer(i4), intent(in)  n 
)

Transfer a cell based field from the base level to the distributed mesh.

  • Sample local cell variables from the base level
    Parameters
    [in]bccgCell field on base mesh [n,basenc]
    [out]bccCell field on local domain [n,localnc]
    [in]nNumber of values per cell

◆ multigrid_base_pushcc()

subroutine multigrid_base_pushcc ( type(multigrid_mesh), intent(inout)  mg_mesh,
real(r8), dimension(:,:), intent(in)  bccl,
real(r8), dimension(:,:), intent(out)  bcc,
integer(i4), intent(in)  n 
)

Transfer a cell based field from the distributed to base level.

  • Synchronize cell variables to the base mesh
    Parameters
    [in]bcclCell field on local domain [n,localnc]
    [out]bccCell field on base mesh [n,basenc]
    [in]nNumber of values per cell

◆ multigrid_brefine()

subroutine multigrid_brefine ( type(multigrid_mesh), intent(inout)  mg_mesh)

Refine the current boundary mesh level once.

  • Add new points at the center of each edge
  • Update face lists

◆ multigrid_hybrid_base()

subroutine multigrid_hybrid_base ( type(multigrid_mesh), intent(inout)  mg_mesh)

Generate a transfer level for local to global mapping.

  • Populate global indexing for grid block

◆ multigrid_hybrid_bmesh()

subroutine multigrid_hybrid_bmesh ( type(multigrid_mesh), intent(inout)  mg_mesh)

Generate a transfer level for local to global mapping for the boundary mesh.

  • Populate global indexing for grid block

◆ multigrid_level()

subroutine multigrid_level ( type(multigrid_mesh), intent(inout)  mg_mesh,
integer(i4), intent(in)  level 
)

Set mesh level in ML mesh.

Parameters
[in]levelDesired mesh level

◆ multigrid_reffix_ho()

subroutine multigrid_reffix_ho ( type(multigrid_mesh), intent(inout)  mg_mesh)

Adjust points to CAD boundary and propogate CAD linkage.

◆ multigrid_reffix_ho_surf()

subroutine multigrid_reffix_ho_surf ( type(multigrid_mesh), intent(inout)  mg_mesh)

Adjust points to CAD boundary and propogate CAD linkage.

◆ multigrid_refine()

subroutine multigrid_refine ( type(multigrid_mesh), intent(inout)  mg_mesh)

Refine the current mesh level once.

  • Add new points at the center of each edge
  • Update cell lists

◆ multigrid_reset()

subroutine multigrid_reset ( type(multigrid_mesh), intent(inout)  mg_mesh)

Construct multi-level mesh.

  • Read in mesh options
  • Load base mesh
  • Setup local meshes
  • Decompose mesh
  • Setup distributed meshes

◆ quadmesh_mg_globals()

subroutine quadmesh_mg_globals ( type(multigrid_mesh), intent(inout)  mg_mesh,
class(oft_bmesh), intent(in)  self,
class(oft_bmesh), intent(inout)  fmesh 
)

Update global indices following refinement.

  • Populate new indices using consistent mapping

◆ tetmesh_mg_globals()

subroutine tetmesh_mg_globals ( type(multigrid_mesh), intent(inout)  mg_mesh,
class(oft_mesh), intent(in)  self,
class(oft_mesh), intent(inout)  fmesh 
)

Update global indices following refinement.

  • Populate new indices using consistent mapping

◆ trimesh_mg_globals()

subroutine trimesh_mg_globals ( type(multigrid_mesh), intent(inout)  mg_mesh,
class(oft_bmesh), intent(in)  self,
class(oft_bmesh), intent(inout)  fmesh 
)

Update global indices following refinement.

  • Populate new indices using consistent mapping