DomainDecomposition objects

class quippy.atoms.DomainDecomposition([decomposition, verlet_shell, mode, error])

Bases: quippy.oo_fortran.FortranDerivedType

Initialize the domain decomposition module

Parameters:
decomposition : input rank-1 array(‘i’) with bounds (3), optional
verlet_shell : input float, optional
mode : input int, optional
error : in/output rank-0 array(int,’i’), optional

References

Routine is wrapper around Fortran routine __init__initialise defined in file src/libAtoms/Atoms_types.f95. Class is wrapper around Fortran type DomainDecomposition defined in file src/libAtoms/Atoms_types.f95.

Attributes:
atoms_properties

Fields to communicate if for particles

center

Center of the domain

decomposed

True if domain decomposition is active

decomposition

Type of decomposition

ghost_properties

Fields to communicate for ghosts

ghosts_l

particles send to the left (where they become ghosts)

ghosts_r

particles send to the right (where they become ghosts)

global_to_local

Global index to local index

l

Ranks of left domains in x-, y- and z-direction

lower

Lower domain boundary, in fraction of the total cell

lower_with_border

Lower domain boundary, including border

mpi

MPI communicator

n_ghosts_l

length of the ghost particle lists (left)

n_ghosts_r

length of the ghost particle lists (right)

n_recv_g_tot

Statistics: Number of total ghosts received

n_recv_p_tot

Statistics: Number of total particles received

n_send_g_tot

Statistics: Number of total ghosts send

n_send_p_tot

Statistics: Number of total particles send

nit_g

Statistics: Number of ghost send events

nit_p

Statistics: Number of particle send events

ntotal

Number of total particles in this simulation

off_l

Distance vector to left domain

off_r

Distance vector to right domain

periodic

Periodicity for domain decomposition

r

Ranks of right domains in x-, y- and z-direction

recv_l

buffer for receiving from the left

recv_r

buffer for receiving from the right

reverse_properties

Back-communication after force computations

send_l

buffer for sending to the left

send_r

buffer for sending to the right

upper

Upper domain boundary, in fraction of the total cell

upper_with_border

Upper domain boundary, including border

Methods

allocate(at,[range,error]) Assign global indices Allocate internal buffer
comm_atoms(at,[error]) Communicate particles which left the domains to the neighboring domains (former order routine)
comm_atoms_to_all(at,[error]) Communicate all particles from this domain to all other domains
comm_ghosts(at,new_list,[error]) Communicate ghost particles to neighboring domains (former prebinning routine).
comm_reverse(at,[error]) Communicate forces of ghost particles back.
deepcopy(from) Create a deep copy
disable(at,[error]) Disable domain decomposition, after this call every process retains an identical copy of the system.
enable(…) Enable domain decomposition, after this call every process remains only with the atoms in its local domain.
set_border(at,border,[verlet_shell,error]) Set the communication border
set_comm_property(…) Set which properties to communicate on which events comm_atoms: Communicate when atom is moved to different domain.
allocate(at[, range, error])

Assign global indices Allocate internal buffer

Parameters:
at : Atoms object
range : input rank-1 array(‘i’) with bounds (2), optional
error : in/output rank-0 array(int,’i’), optional

References

Routine is wrapper around Fortran routine __init__allocate defined in file src/libAtoms/Atoms_types.f95.

comm_atoms(at[, error])

Communicate particles which left the domains to the neighboring domains (former order routine)

Parameters:
at : Atoms object
error : in/output rank-0 array(int,’i’), optional

References

Routine is wrapper around Fortran routine comm_atoms defined in file src/libAtoms/Atoms_types.f95.

comm_atoms_to_all(at[, error])

Communicate all particles from this domain to all other domains

Parameters:
at : Atoms object
error : in/output rank-0 array(int,’i’), optional

References

Routine is wrapper around Fortran routine comm_atoms_to_all defined in file src/libAtoms/Atoms_types.f95.

comm_ghosts(at, new_list[, error])

Communicate ghost particles to neighboring domains (former prebinning routine). bwidth is the width of the border.

Parameters:
at : Atoms object
new_list : input int
error : in/output rank-0 array(int,’i’), optional

References

Routine is wrapper around Fortran routine comm_ghosts defined in file src/libAtoms/Atoms_types.f95.

comm_reverse(at[, error])

Communicate forces of ghost particles back. This is needed for rigid object (i.e., water) or to reduce the border size in BOPs.

Parameters:
at : Atoms object
error : in/output rank-0 array(int,’i’), optional

References

Routine is wrapper around Fortran routine comm_reverse defined in file src/libAtoms/Atoms_types.f95.

deepcopy(from)

Create a deep copy

Parameters:
from : DomainDecomposition object
Returns:
to : DomainDecomposition object

References

Routine is wrapper around Fortran routine deepcopy defined in file src/libAtoms/Atoms_types.f95.

disable(at[, error])

Disable domain decomposition, after this call every process retains an identical copy of the system.

Parameters:
at : Atoms object
error : in/output rank-0 array(int,’i’), optional

References

Routine is wrapper around Fortran routine disable defined in file src/libAtoms/Atoms_types.f95.

enable(at[, mpi, decomposition, verlet_shell, mode, error])

Enable domain decomposition, after this call every process remains only with the atoms in its local domain.

Parameters:
at : Atoms object
mpi : MPI_context object, optional
decomposition : input rank-1 array(‘i’) with bounds (3), optional
verlet_shell : input float, optional
mode : input int, optional
error : in/output rank-0 array(int,’i’), optional

References

Routine is wrapper around Fortran routine enable defined in file src/libAtoms/Atoms_types.f95.

set_border(at, border[, verlet_shell, error])

Set the communication border

Parameters:
at : Atoms object
border : input float
verlet_shell : input float, optional
error : in/output rank-0 array(int,’i’), optional

References

Routine is wrapper around Fortran routine set_border defined in file src/libAtoms/Atoms_types.f95.

set_comm_property(propname[, comm_atoms, comm_ghosts, comm_reverse])

Set which properties to communicate on which events comm_atoms: Communicate when atom is moved to different domain.

Forces, for example, may be excluded since they are updated on every time step.
comm_ghosts: Communicate when atoms becomes a ghost on some domain
Masses, for example, might be excluded since atoms are propagated on the domain they reside in only.
comm_reverse: Communicate back from ghost atoms to the original domain atom
and accumulate
Parameters:
propname : input string(len=-1)
comm_atoms : input int, optional
comm_ghosts : input int, optional
comm_reverse : input int, optional

References

Routine is wrapper around Fortran routine set_comm_property defined in file src/libAtoms/Atoms_types.f95.

atoms_properties

Fields to communicate if for particles

center

Center of the domain

decomposed

True if domain decomposition is active

decomposition

Type of decomposition

ghost_properties

Fields to communicate for ghosts

ghosts_l

particles send to the left (where they become ghosts)

ghosts_r

particles send to the right (where they become ghosts)

global_to_local

Global index to local index

l

Ranks of left domains in x-, y- and z-direction

lower

Lower domain boundary, in fraction of the total cell

lower_with_border

Lower domain boundary, including border

mpi

MPI communicator

n_ghosts_l

length of the ghost particle lists (left)

n_ghosts_r

length of the ghost particle lists (right)

n_recv_g_tot

Statistics: Number of total ghosts received

n_recv_p_tot

Statistics: Number of total particles received

n_send_g_tot

Statistics: Number of total ghosts send

n_send_p_tot

Statistics: Number of total particles send

nit_g

Statistics: Number of ghost send events

nit_p

Statistics: Number of particle send events

ntotal

Number of total particles in this simulation

off_l

Distance vector to left domain

off_r

Distance vector to right domain

periodic

Periodicity for domain decomposition

r

Ranks of right domains in x-, y- and z-direction

recv_l

buffer for receiving from the left

recv_r

buffer for receiving from the right

reverse_properties

Back-communication after force computations

send_l

buffer for sending to the left

send_r

buffer for sending to the right

upper

Upper domain boundary, in fraction of the total cell

upper_with_border

Upper domain boundary, including border