Package ffx.potential.nonbonded.implicit
Class DispersionRegion
java.lang.Object
edu.rit.pj.ParallelConstruct
edu.rit.pj.ParallelRegion
ffx.potential.nonbonded.implicit.DispersionRegion
Parallel calculation of continuum dispersion energy via pairwise descreening.
- Since:
- 1.0
- Author:
- Michael J. Schnieders
-
Field Summary
Modifier and TypeFieldDescriptionprotected Atom[]
An ordered array of atoms in the system.static final double
The dispersion integral begins for each atom at: Rmin_ij + DISPERSION_OFFSETstatic final double
Each solute atom blocks dispersion interactions with solvent: Rmin + SOLUTE_OFFSET -
Constructor Summary
ConstructorDescriptionDispersionRegion
(int nt, Atom[] atoms, ForceField forceField) DispersionRegion constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Allocate storage given the Atom array.double
The dispersion integral begins offset from the vdW radius.double
double
double
void
init
(Atom[] atoms, Crystal crystal, boolean[] use, int[][][] neighborLists, double[] x, double[] y, double[] z, double cut2, boolean gradient, AtomicDoubleArray3D grad) Initialize the DispersionRegion for energy calculation.void
run()
Execute parallel code.void
setDispersionOffest
(double dispersionOffest) The dispersion integral begins offset from the vdW radius.void
setDispersionOverlapFactor
(double dispersionOverlapFactor) Set the dispersion overlap HCT scale factor.void
setSoluteOffset
(double soluteOffset) 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, finish
Methods inherited from class edu.rit.pj.ParallelConstruct
getThreadCount, getThreadIndex, isExecutingInParallel, region, team
-
Field Details
-
DEFAULT_DISPERSION_OFFSET
public static final double DEFAULT_DISPERSION_OFFSETThe dispersion integral begins for each atom at: Rmin_ij + DISPERSION_OFFSET- See Also:
-
DEFAULT_SOLUTE_OFFSET
public static final double DEFAULT_SOLUTE_OFFSETEach solute atom blocks dispersion interactions with solvent: Rmin + SOLUTE_OFFSET- See Also:
-
atoms
An ordered array of atoms in the system.
-
-
Constructor Details
-
DispersionRegion
DispersionRegion constructor.- Parameters:
nt
- Number of threads.atoms
- Atom array.forceField
- ForceField in use.
-
-
Method Details
-
allocate
Allocate storage given the Atom array.- Parameters:
atoms
- Atom array in use.
-
setDispersionOffest
public void setDispersionOffest(double dispersionOffest) The dispersion integral begins offset from the vdW radius.- Parameters:
dispersionOffest
- The dispersion integral offset.
-
getDispersionOffset
public double getDispersionOffset()The dispersion integral begins offset from the vdW radius.- Returns:
- the dispersion integral offset.
-
getDispersionOverlapFactor
public double getDispersionOverlapFactor() -
setDispersionOverlapFactor
public void setDispersionOverlapFactor(double dispersionOverlapFactor) Set the dispersion overlap HCT scale factor.- Parameters:
dispersionOverlapFactor
- The dispersion integral HCT scale factor.
-
getEnergy
public double getEnergy() -
getSoluteOffset
public double getSoluteOffset() -
setSoluteOffset
public void setSoluteOffset(double soluteOffset) -
init
public void init(Atom[] atoms, Crystal crystal, boolean[] use, int[][][] neighborLists, double[] x, double[] y, double[] z, double cut2, boolean gradient, AtomicDoubleArray3D grad) Initialize the DispersionRegion for energy calculation.- Parameters:
atoms
- Atom array.crystal
- Crystal for periodic boundary conditions.use
- Flag to indicate an atom is to be used.neighborLists
- Neighbor-list for each atom.x
- X-coordinate array.y
- Y-coordinate array.z
- Z-coordinate array.cut2
- The cut-off distance squared.gradient
- If true, compute the gradient.grad
- Array to store the gradient.
-
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.- Specified by:
run
in classParallelRegion
-
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.- Overrides:
start
in classParallelRegion
-