Documentation for module qs_neighbor_list_types

Define the neighbor list data types and the corresponding functionality

source: qs_neighbor_list_types.F
Loading...

public Types:

neighbor_list_set_p_type
...
neighbor_list_set_type
...
neighbor_list_p_type
...
neighbor_list_task_type
...
neighbor_list_iterator_p_type
...

public Subroutines/Functions:

Add a new neighbor list to a neighbor list set.
Add a new neighbor list node to a neighbor list.
Allocate and initialize a set of neighbor lists.
Deallocate a neighbor list set.
...
Captures the current state of the iterator in a neighbor_list_task_type
Return the components of a neighbor list set.
Return the components of the first neighbor list set.
...
Neighbor list iterator functions
...
...
FUNCTION
INTEGER
nl_sub_iterate (iterator_set, mepos)
...

public Types:

TYPE :: neighbor_list_iterator_p_type

...


POINTER :: neighbor_list_iterator ...
INTEGER
:: last ...

TYPE :: neighbor_list_p_type

...


POINTER :: neighbor_list ...

TYPE :: neighbor_list_set_p_type

...


POINTER :: neighbor_list_set ...

TYPE :: neighbor_list_set_type

...


POINTER :: first_neighbor_list ...
POINTER :: last_neighbor_list ...
INTEGER
:: nlist ...
LOGICAL
:: symmetric ...

TYPE :: neighbor_list_task_type

...


INTEGER
:: iatom ...
INTEGER
:: jatom ...
INTEGER
:: ikind ...
INTEGER
:: jkind ...
INTEGER
:: nkind ...
INTEGER
:: ilist ...
INTEGER
:: nlist ...
INTEGER
:: inode ...
INTEGER
:: nnode ...
REAL(dp),
DIMENSION(3) :: r ...
INTEGER,
DIMENSION(3) :: cell ...
POINTER :: next ...

SUBROUTINEadd_neighbor_list(neighbor_list_set, atom, neighbor_list)

Add a new neighbor list to a neighbor list set.

Arguments:
POINTER
:: neighbor_list_set ...
INTEGER,
INTENT(in)
:: atom ...
POINTER
:: neighbor_list ...

SUBROUTINEadd_neighbor_node(neighbor_list, neighbor, cell, r, exclusion_list, nkind)

Add a new neighbor list node to a neighbor list.

Arguments:
POINTER
:: neighbor_list ...
INTEGER,
INTENT(in)
:: neighbor ...
INTEGER,
INTENT(in)
:: cell(3) ...
REAL(dp),
INTENT(in)
:: r(3) ...
INTEGER,
OPTIONAL, POINTER
:: exclusion_list(:) ...
INTEGER,
INTENT(in),
OPTIONAL
:: nkind ...

SUBROUTINEallocate_neighbor_list_set(neighbor_list_set, symmetric)

Allocate and initialize a set of neighbor lists.

Arguments:
POINTER
:: neighbor_list_set ...
LOGICAL,
INTENT(in)
:: symmetric ...

SUBROUTINEdeallocate_neighbor_list_set(neighbor_list_set)

Deallocate a neighbor list set.

Arguments:
POINTER
:: neighbor_list_set ...

SUBROUTINEget_iterator_info(iterator_set, mepos, ikind, jkind, nkind, ilist, nlist, inode, nnode, iatom, jatom, r, cell)

...

Arguments:
POINTER
:: iterator_set(:) ...
INTEGER,
OPTIONAL
:: mepos ...
INTEGER,
OPTIONAL
:: ikind ...
INTEGER,
OPTIONAL
:: jkind ...
INTEGER,
OPTIONAL
:: nkind ...
INTEGER,
OPTIONAL
:: ilist ...
INTEGER,
OPTIONAL
:: nlist ...
INTEGER,
OPTIONAL
:: inode ...
INTEGER,
OPTIONAL
:: nnode ...
INTEGER,
OPTIONAL
:: iatom ...
INTEGER,
OPTIONAL
:: jatom ...
REAL(dp),
OPTIONAL
:: r(3) ...
INTEGER,
OPTIONAL
:: cell(3) ...

SUBROUTINEget_iterator_task(iterator_set, task, mepos)

Captures the current state of the iterator in a neighbor_list_task_type

Arguments:
POINTER
:: iterator_set(:) the iterator / array of iterators (for multiple threads)
INTENT(out)
:: task the task structure which is returned
INTEGER,
OPTIONAL
:: mepos OpenMP thread index

SUBROUTINEget_neighbor_list_set(neighbor_list_set, nlist, symmetric)

Return the components of a neighbor list set.

Arguments:
POINTER
:: neighbor_list_set ...
INTEGER,
INTENT(out),
OPTIONAL
:: nlist ...
LOGICAL,
INTENT(out),
OPTIONAL
:: symmetric ...

SUBROUTINEget_neighbor_list_set_p(neighbor_list_sets, nlist, symmetric)

Return the components of the first neighbor list set.

Arguments:
POINTER
:: neighbor_list_sets(:) ...
INTEGER,
INTENT(out),
OPTIONAL
:: nlist ...
LOGICAL,
INTENT(out),
OPTIONAL
:: symmetric ...

FUNCTIONneighbor_list_iterate(iterator_set, mepos)

...

Return Value ::
INTEGER
Arguments:
POINTER
:: iterator_set(:) ...
INTEGER,
OPTIONAL
:: mepos ...

SUBROUTINEneighbor_list_iterator_create(iterator_set, nl, search, nthread)

Neighbor list iterator functions

Arguments:
POINTER
:: iterator_set(:) ...
POINTER
:: nl(:) ...
LOGICAL,
INTENT(in),
OPTIONAL
:: search ...
INTEGER,
INTENT(in),
OPTIONAL
:: nthread ...

SUBROUTINEneighbor_list_iterator_release(iterator_set)

...

Arguments:
POINTER
:: iterator_set(:) ...

SUBROUTINEnl_set_sub_iterator(iterator_set, ikind, jkind, iatom, mepos)

...

Arguments:
POINTER
:: iterator_set(:) ...
INTEGER,
INTENT(in)
:: ikind ...
INTEGER,
INTENT(in)
:: jkind ...
INTEGER,
INTENT(in)
:: iatom ...
INTEGER,
INTENT(in),
OPTIONAL
:: mepos ...

FUNCTIONnl_sub_iterate(iterator_set, mepos)

...

Return Value ::
INTEGER
Arguments:
POINTER
:: iterator_set(:) ...
INTEGER,
INTENT(in),
OPTIONAL
:: mepos ...

private Parameters/Types:

private Types:

TYPE :: list_search_type

...


INTEGER
:: nlist ...
INTEGER,
DIMENSION(:), POINTER :: atom_list ...
INTEGER,
DIMENSION(:), POINTER :: atom_index ...
DIMENSION(:), POINTER :: neighbor_list ...

TYPE :: neighbor_list_iterator_type

...


INTEGER
:: ikind ...
INTEGER
:: jkind ...
INTEGER
:: ilist ...
INTEGER
:: inode ...
INTEGER
:: nkind ...
INTEGER
:: nlist ...
INTEGER
:: nnode ...
INTEGER
:: iatom ...
INTEGER
:: jatom ...
DIMENSION(:), POINTER :: nl ...
POINTER :: neighbor_list ...
POINTER :: neighbor_node ...
DIMENSION(:), POINTER :: list_search ...

TYPE :: neighbor_list_type

...


POINTER :: next_neighbor_list ...
POINTER :: first_neighbor_node ...
POINTER :: last_neighbor_node ...
INTEGER
:: atom ...
INTEGER
:: nnode ...

TYPE :: neighbor_node_type

...


POINTER :: next_neighbor_node ...
REAL(dp),
DIMENSION(3) :: r ...
INTEGER,
DIMENSION(3) :: cell ...
INTEGER
:: neighbor ...