Package ffx.xray
Class BulkSolventList
java.lang.Object
edu.rit.pj.ParallelConstruct
edu.rit.pj.ParallelRegion
ffx.xray.BulkSolventList
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.
- 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 distanceRcut
plus a buffer distancedelta
:
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 Summary
ConstructorDescriptionBulkSolventList
(Crystal crystal, Atom[] atoms, double cutoff, ParallelTeam parallelTeam) Constructor for the NeighborList class. -
Method Summary
Modifier and TypeMethodDescriptionvoid
buildList
(double[][][] coordinates, boolean[][] selected, boolean log) This method can be called as necessary to build/rebuild the neighbor lists.void
finish()
Perform finalization actions after parallel execution ends.void
run()
Execute parallel code.void
start()
Perform initialization actions before parallel execution begins.Methods inherited from class edu.rit.pj.ParallelRegion
barrier, barrier, critical, critical, criticalNonexclusive, criticalNonexclusive, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute
Methods inherited from class edu.rit.pj.ParallelConstruct
getThreadCount, getThreadIndex, isExecutingInParallel, region, team
-
Constructor Details
-
BulkSolventList
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 thefinish()
method.The
finish()
method may be overridden in a subclass. If not overridden, thefinish()
method does nothing.This is method should not be called; it is invoked by Parallel Java.
since 0.1
- Overrides:
finish
in classParallelRegion
-
run
public void run()Execute parallel code. All threads of the parallel team call therun()
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 classParallelRegion
- Since:
- 1.0
-
start
public void start()Perform initialization actions before parallel execution begins. Only one thread calls thestart()
method.The
start()
method may be overridden in a subclass. If not overridden, thestart()
method does nothing.This is method should not be called; it is invoked by Parallel Java.
- Overrides:
start
in classParallelRegion
- Since:
- 1.0
-