--- /dev/null
+Notes on ONETEP parallelisation
+-------------------------------
+
+In comms
+pub_total_num_nodes - the number of nodes
+pub_my_node_id - my node id
+
+index of first row/column on given node (presumably global and NGWF (not atom) indexed)
+sparse_first_elem_on_node(matrix, node, 'R' or 'C')
+
+given a matrix index, finds the atom index of that row/column (presumably global)
+sparse_atom_of_elem(index, matrix, 'R' or 'C')
+
+global index of first atom on node
+pub_first_atom_on_node(node)
+
+This appears to be a structure that can be indexed by *local* atom to give another index
+that can be used to index the sparse_idx structure again.
+sparse_generate_index(sparse_idx, matrix)
+idx <- sparse_idx(col_atom)
+row_atom <- sparse_idx(idx)
+
+assigns a value to the sparse matrix (row and col appear to be global)
+sparse_put_element(element, matrix, row, col)
+
+gives the node id holding the globally indexed row or column
+sparse_node_of_elem(row, matrix, 'R' or 'C')
+
+total number of functions in basis
+basis%num
+
+number of functions on current node
+basis%node_num
+
+number of functions on each node
+basis%num_on_node
+
+first function on each node
+basis%first_on_node
+
+number of functions on each atom
+basis%num_on_atom
+
+first function on each atom
+basis%first_on_atom
+
+node of each function
+basis%node_of_func
+
+atom of each function
+basis%atom_of_func