Package ffx.xray

Class BulkSolventList


public class BulkSolventList extends ParallelRegion
The BulkSolventList class builds a list of atoms in symmetry mates that are within a cutoff distance of an atom in the asymmetric unit. This is done in parallel via a spatial decomposition.
  1. The unit cell is partitioned into nA * nB * nC smaller axis-aligned cells, where nA, nB and nC are chosen as large as possible subject to the criteria that the length of each side of a sub-volume (rCellA, rCellB, rCellC) multiplied by (nEdgeA, nEdgeB, nEdgeC), respectively, must be greater than the cutoff distance Rcut plus a buffer distance delta:
    rCellA * nEdgeA .GE. (Rcut + delta)
    rCellB * nEdgeB .GE. (Rcut + delta)
    rCellC * nEdgeC .GE. (Rcut + delta) All neighbors of an atom are in a block of (2*nEdgeA+1)(2*nEdgeB+1)(2*nEdgeC+1) neighborCells.
Since:
1.0
Author:
Michael J. Schnieders
  • Constructor Details

    • BulkSolventList

      public BulkSolventList(Crystal crystal, Atom[] atoms, double cutoff, ParallelTeam parallelTeam)
      Constructor for the NeighborList class.
      Parameters:
      crystal - Definition of the unit cell and space group.
      atoms - The atoms to generate Verlet lists for.
      cutoff - The cutoff distance.
      parallelTeam - Specifies the parallel environment.
      Since:
      1.0
  • Method Details

    • buildList

      public void buildList(double[][][] coordinates, boolean[][] selected, boolean log)
      This method can be called as necessary to build/rebuild the neighbor lists.
      Parameters:
      coordinates - The coordinates of each atom [nSymm][nAtoms*3].
      selected - The list of selected atoms [nSymm][nAtoms].
      log - a boolean.
      Since:
      1.0
    • finish

      public void finish()
      Perform finalization actions after parallel execution ends. Only one thread calls the finish() method.

      The finish() method may be overridden in a subclass. If not overridden, the finish() method does nothing.

      This is method should not be called; it is invoked by Parallel Java.

      since 0.1

      Overrides:
      finish in class ParallelRegion
    • run

      public void run()
      Execute parallel code. All threads of the parallel team call the run() method concurrently.

      The run() method must be implemented in a subclass.

      This is method should not be called; it is invoked by Parallel Java.

      Specified by:
      run in class ParallelRegion
      Since:
      1.0
    • start

      public void start()
      Perform initialization actions before parallel execution begins. Only one thread calls the start() method.

      The start() method may be overridden in a subclass. If not overridden, the start() method does nothing.

      This is method should not be called; it is invoked by Parallel Java.

      Overrides:
      start in class ParallelRegion
      Since:
      1.0