Octopus
mesh_partition_oct_m Module Reference

Functions/Subroutines

subroutine, public mesh_partition (mesh, namespace, space, lapl_stencil, vsize)
 This routine converts the mesh given by grid points into a graph. More...
 
subroutine, public mesh_partition_from_parent (mesh, parent)
 create a mesh partition from a given parent mesh More...
 
subroutine, public mesh_partition_dump (restart, mesh, vsize, ierr)
 
subroutine, public mesh_partition_load (restart, mesh, ierr)
 
subroutine, public mesh_partition_write_info (mesh, iunit, namespace)
 
subroutine, public mesh_partition_messages_debug (mesh, namespace)
 

Variables

integer, parameter metis = 1
 
integer, parameter parmetis = 2
 
integer, parameter hilbert = 3
 
integer, parameter rcb = 1
 
integer, parameter graph = 2
 

Function/Subroutine Documentation

◆ mesh_partition()

subroutine, public mesh_partition_oct_m::mesh_partition ( type(mesh_t), intent(inout)  mesh,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(stencil_t), intent(in)  lapl_stencil,
integer, intent(in)  vsize 
)

This routine converts the mesh given by grid points into a graph.

Each point is a vertex in the graph and closest neighbours are connected by an edge (at most 6 in 3D and 4 in 2D, 2 in 1D, fewer at the boundaries). Then calls METIS to get npart partitions. Stored the mapping point no. -> partition no. into part, which has to be allocated beforehand. (mesh_partition_end should be called later.)

Parameters
[in]vsizenumber of partitions to be created. Might be different from the actual number of domains

Definition at line 166 of file mesh_partition.F90.

◆ mesh_partition_from_parent()

subroutine, public mesh_partition_oct_m::mesh_partition_from_parent ( type(mesh_t), intent(inout)  mesh,
type(mesh_t), intent(in)  parent 
)

create a mesh partition from a given parent mesh

Definition at line 540 of file mesh_partition.F90.

◆ mesh_partition_dump()

subroutine, public mesh_partition_oct_m::mesh_partition_dump ( type(restart_t), intent(in)  restart,
type(mesh_t), intent(in)  mesh,
integer, intent(in)  vsize,
integer, intent(out)  ierr 
)

Definition at line 577 of file mesh_partition.F90.

◆ mesh_partition_load()

subroutine, public mesh_partition_oct_m::mesh_partition_load ( type(restart_t), intent(in)  restart,
type(mesh_t), intent(inout)  mesh,
integer, intent(out)  ierr 
)

Definition at line 618 of file mesh_partition.F90.

◆ mesh_partition_write_info()

subroutine, public mesh_partition_oct_m::mesh_partition_write_info ( type(mesh_t), intent(in)  mesh,
integer, intent(in), optional  iunit,
type(namespace_t), intent(in), optional  namespace 
)

Definition at line 677 of file mesh_partition.F90.

◆ mesh_partition_messages_debug()

subroutine, public mesh_partition_oct_m::mesh_partition_messages_debug ( type(mesh_t), intent(in)  mesh,
type(namespace_t), intent(in)  namespace 
)

Definition at line 780 of file mesh_partition.F90.

Variable Documentation

◆ metis

integer, parameter mesh_partition_oct_m::metis = 1
private

Definition at line 144 of file mesh_partition.F90.

◆ parmetis

integer, parameter mesh_partition_oct_m::parmetis = 2
private

Definition at line 144 of file mesh_partition.F90.

◆ hilbert

integer, parameter mesh_partition_oct_m::hilbert = 3
private

Definition at line 144 of file mesh_partition.F90.

◆ rcb

integer, parameter mesh_partition_oct_m::rcb = 1
private

Definition at line 149 of file mesh_partition.F90.

◆ graph

integer, parameter mesh_partition_oct_m::graph = 2
private

Definition at line 149 of file mesh_partition.F90.