Work in progress!

The Grid in Octopus


The fundamental element of Octopus is the real space grid, on which all quantities, such as wave functions, densities and potentials are defined.

In general, a grid consists of

The mesh is based on an regular mesh in D dimensions, which can be distorted using so-called curvilinear coordinates.

The underlying internal structure is a mesh of integer coordinates and the important mapping arrays which

The grid is constructed in several steps:

  1. Generation of a regular mesh filling a rectangular volume enclosing the simulation box.
  2. Selecting inner points, enlargement points and ghost points.
  3. re-ordering the points and regeneration of the mapping arrays.

The top level data structure, describing a grid is defined in grid/grid.F90:

  type, extends(mesh_t) :: grid_t
    ! Components are public by default
    type(derivatives_t)         :: der
    type(stencil_t)             :: stencil
    type(symmetries_t)          :: symm
    type(symmetrizer_t)         :: symmetrizer
  end type grid_t