Octopus
mesh_oct_m::mesh_t Type Reference

Describes mesh distribution to nodes. More...

Detailed Description

Describes mesh distribution to nodes.

Some general things: All members of type(mesh_t) are equal on all nodes when running parallel except

  • np, np_part
  • x, vol_pp These four are defined for all the points the node is responsible for.

Many routines need access to the information about number of points, but not to the derivatives. For these routines, it is sufficient to pass the mesh object.

Definition at line 186 of file mesh.F90.

Inheritance diagram for mesh_oct_m::mesh_t:
Inheritance graph

Private Member Functions

procedure end => mesh_end
 
procedure init => mesh_init
 
procedure write_info => mesh_write_info
 
procedure dmesh_allreduce_0
 
 zmesh_allreduce_0
 
 imesh_allreduce_0
 
 lmesh_allreduce_0
 
procedure dmesh_allreduce_1
 
 zmesh_allreduce_1
 
 imesh_allreduce_1
 
 lmesh_allreduce_1
 
procedure dmesh_allreduce_2
 
 zmesh_allreduce_2
 
 imesh_allreduce_2
 
 lmesh_allreduce_2
 
procedure dmesh_allreduce_3
 
 zmesh_allreduce_3
 
 imesh_allreduce_3
 
 lmesh_allreduce_3
 
procedure dmesh_allreduce_4
 
 zmesh_allreduce_4
 
 imesh_allreduce_4
 
 lmesh_allreduce_4
 
procedure dmesh_allreduce_5
 
 zmesh_allreduce_5
 
 imesh_allreduce_5
 
 lmesh_allreduce_5
 
generic allreduce => dmesh_allreduce_0, zmesh_allreduce_0, imesh_allreduce_0, lmesh_allreduce_0
 
generic allreduce => dmesh_allreduce_1, zmesh_allreduce_1, imesh_allreduce_1, lmesh_allreduce_1
 
generic allreduce => dmesh_allreduce_2, zmesh_allreduce_2, imesh_allreduce_2, lmesh_allreduce_2
 
generic allreduce => dmesh_allreduce_3, zmesh_allreduce_3, imesh_allreduce_3, lmesh_allreduce_3
 
generic allreduce => dmesh_allreduce_4, zmesh_allreduce_4, imesh_allreduce_4, lmesh_allreduce_4
 
generic allreduce => dmesh_allreduce_5, zmesh_allreduce_5, imesh_allreduce_5, lmesh_allreduce_5
 

Private Attributes

class(box_t), pointer box
 simulation box; polymorphic pointer More...
 
class(coordinate_system_t), pointer coord_system
 the underlying coordinate system (affine, cubic, curvilinear, etc.) More...
 
type(index_tidx
 the indexing scheme. More...
 
logical use_curvilinear
 
real(real64), dimension(:), allocatable spacing
 the (constant) spacing between the points More...
 
integer np
 Local number of points in mesh. More...
 
integer np_part
 Local points plus ghost points plus boundary points. More...
 
integer(int64) np_global
 Global number of points in mesh. More...
 
integer(int64) np_part_global
 Global number of inner points and boundary points. More...
 
logical parallel_in_domains
 will I run parallel in domains? More...
 
type(mpi_grp_tmpi_grp
 the mpi group describing parallelization in domains More...
 
type(par_vec_tpv
 describes parallel vectors defined on the mesh. More...
 
type(partition_tpartition
 describes how the inner points are assigned to the domains More...
 
real(real64), dimension(:,:), allocatable x
 The (local) points. More...
 
real(real64) volume_element
 The global volume element. More...
 
real(real64), dimension(:), allocatable vol_pp
 Element of volume for curvilinear coordinates. More...
 
logical masked_periodic_boundaries
 flag whether to use the mask defined below More...
 
character(len=256) periodic_boundary_mask
 mask for which the periodic boundary conditions are replaced by zero boundary conditions More...
 

Member Function/Subroutine Documentation

◆ end()

procedure mesh_oct_m::mesh_t::end
private

Definition at line 215 of file mesh.F90.

◆ init()

procedure mesh_oct_m::mesh_t::init
private

Definition at line 216 of file mesh.F90.

◆ write_info()

procedure mesh_oct_m::mesh_t::write_info
private

Definition at line 217 of file mesh.F90.

◆ dmesh_allreduce_0()

procedure mesh_oct_m::mesh_t::dmesh_allreduce_0
private

Definition at line 218 of file mesh.F90.

◆ zmesh_allreduce_0()

mesh_oct_m::mesh_t::zmesh_allreduce_0
private

Definition at line 218 of file mesh.F90.

◆ imesh_allreduce_0()

mesh_oct_m::mesh_t::imesh_allreduce_0
private

Definition at line 218 of file mesh.F90.

◆ lmesh_allreduce_0()

mesh_oct_m::mesh_t::lmesh_allreduce_0
private

Definition at line 218 of file mesh.F90.

◆ dmesh_allreduce_1()

procedure mesh_oct_m::mesh_t::dmesh_allreduce_1
private

Definition at line 219 of file mesh.F90.

◆ zmesh_allreduce_1()

mesh_oct_m::mesh_t::zmesh_allreduce_1
private

Definition at line 219 of file mesh.F90.

◆ imesh_allreduce_1()

mesh_oct_m::mesh_t::imesh_allreduce_1
private

Definition at line 219 of file mesh.F90.

◆ lmesh_allreduce_1()

mesh_oct_m::mesh_t::lmesh_allreduce_1
private

Definition at line 219 of file mesh.F90.

◆ dmesh_allreduce_2()

procedure mesh_oct_m::mesh_t::dmesh_allreduce_2
private

Definition at line 220 of file mesh.F90.

◆ zmesh_allreduce_2()

mesh_oct_m::mesh_t::zmesh_allreduce_2
private

Definition at line 220 of file mesh.F90.

◆ imesh_allreduce_2()

mesh_oct_m::mesh_t::imesh_allreduce_2
private

Definition at line 220 of file mesh.F90.

◆ lmesh_allreduce_2()

mesh_oct_m::mesh_t::lmesh_allreduce_2
private

Definition at line 220 of file mesh.F90.

◆ dmesh_allreduce_3()

procedure mesh_oct_m::mesh_t::dmesh_allreduce_3
private

Definition at line 221 of file mesh.F90.

◆ zmesh_allreduce_3()

mesh_oct_m::mesh_t::zmesh_allreduce_3
private

Definition at line 221 of file mesh.F90.

◆ imesh_allreduce_3()

mesh_oct_m::mesh_t::imesh_allreduce_3
private

Definition at line 221 of file mesh.F90.

◆ lmesh_allreduce_3()

mesh_oct_m::mesh_t::lmesh_allreduce_3
private

Definition at line 221 of file mesh.F90.

◆ dmesh_allreduce_4()

procedure mesh_oct_m::mesh_t::dmesh_allreduce_4
private

Definition at line 222 of file mesh.F90.

◆ zmesh_allreduce_4()

mesh_oct_m::mesh_t::zmesh_allreduce_4
private

Definition at line 222 of file mesh.F90.

◆ imesh_allreduce_4()

mesh_oct_m::mesh_t::imesh_allreduce_4
private

Definition at line 222 of file mesh.F90.

◆ lmesh_allreduce_4()

mesh_oct_m::mesh_t::lmesh_allreduce_4
private

Definition at line 222 of file mesh.F90.

◆ dmesh_allreduce_5()

procedure mesh_oct_m::mesh_t::dmesh_allreduce_5
private

Definition at line 223 of file mesh.F90.

◆ zmesh_allreduce_5()

mesh_oct_m::mesh_t::zmesh_allreduce_5
private

Definition at line 223 of file mesh.F90.

◆ imesh_allreduce_5()

mesh_oct_m::mesh_t::imesh_allreduce_5
private

Definition at line 223 of file mesh.F90.

◆ lmesh_allreduce_5()

mesh_oct_m::mesh_t::lmesh_allreduce_5
private

Definition at line 223 of file mesh.F90.

◆ allreduce() [1/6]

generic mesh_oct_m::mesh_t::allreduce
private

Definition at line 224 of file mesh.F90.

◆ allreduce() [2/6]

generic mesh_oct_m::mesh_t::allreduce
private

Definition at line 225 of file mesh.F90.

◆ allreduce() [3/6]

generic mesh_oct_m::mesh_t::allreduce
private

Definition at line 226 of file mesh.F90.

◆ allreduce() [4/6]

generic mesh_oct_m::mesh_t::allreduce
private

Definition at line 227 of file mesh.F90.

◆ allreduce() [5/6]

generic mesh_oct_m::mesh_t::allreduce
private

Definition at line 228 of file mesh.F90.

◆ allreduce() [6/6]

generic mesh_oct_m::mesh_t::allreduce
private

Definition at line 229 of file mesh.F90.

Member Data Documentation

◆ box

class(box_t), pointer mesh_oct_m::mesh_t::box
private

simulation box; polymorphic pointer

Definition at line 188 of file mesh.F90.

◆ coord_system

class(coordinate_system_t), pointer mesh_oct_m::mesh_t::coord_system
private

the underlying coordinate system (affine, cubic, curvilinear, etc.)

Definition at line 189 of file mesh.F90.

◆ idx

type(index_t) mesh_oct_m::mesh_t::idx
private

the indexing scheme.

Definition at line 190 of file mesh.F90.

◆ use_curvilinear

logical mesh_oct_m::mesh_t::use_curvilinear
private

Definition at line 191 of file mesh.F90.

◆ spacing

real(real64), dimension(:), allocatable mesh_oct_m::mesh_t::spacing
private

the (constant) spacing between the points

Definition at line 193 of file mesh.F90.

◆ np

integer mesh_oct_m::mesh_t::np
private

Local number of points in mesh.

Definition at line 198 of file mesh.F90.

◆ np_part

integer mesh_oct_m::mesh_t::np_part
private

Local points plus ghost points plus boundary points.

Definition at line 199 of file mesh.F90.

◆ np_global

integer(int64) mesh_oct_m::mesh_t::np_global
private

Global number of points in mesh.

Definition at line 200 of file mesh.F90.

◆ np_part_global

integer(int64) mesh_oct_m::mesh_t::np_part_global
private

Global number of inner points and boundary points.

Definition at line 201 of file mesh.F90.

◆ parallel_in_domains

logical mesh_oct_m::mesh_t::parallel_in_domains
private

will I run parallel in domains?

Definition at line 202 of file mesh.F90.

◆ mpi_grp

type(mpi_grp_t) mesh_oct_m::mesh_t::mpi_grp
private

the mpi group describing parallelization in domains

Definition at line 203 of file mesh.F90.

◆ pv

type(par_vec_t) mesh_oct_m::mesh_t::pv
private

describes parallel vectors defined on the mesh.

Definition at line 204 of file mesh.F90.

◆ partition

type(partition_t) mesh_oct_m::mesh_t::partition
private

describes how the inner points are assigned to the domains

Definition at line 205 of file mesh.F90.

◆ x

real(real64), dimension(:,:), allocatable mesh_oct_m::mesh_t::x
private

The (local) points.

Definition at line 207 of file mesh.F90.

◆ volume_element

real(real64) mesh_oct_m::mesh_t::volume_element
private

The global volume element.

Definition at line 208 of file mesh.F90.

◆ vol_pp

real(real64), dimension(:), allocatable mesh_oct_m::mesh_t::vol_pp
private

Element of volume for curvilinear coordinates.

Definition at line 209 of file mesh.F90.

◆ masked_periodic_boundaries

logical mesh_oct_m::mesh_t::masked_periodic_boundaries
private

flag whether to use the mask defined below

Definition at line 211 of file mesh.F90.

◆ periodic_boundary_mask

character(len=256) mesh_oct_m::mesh_t::periodic_boundary_mask
private

mask for which the periodic boundary conditions are replaced by zero boundary conditions

Definition at line 212 of file mesh.F90.


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