Package ffx.potential.nonbonded.pme
Class PermanentFieldRegion
java.lang.Object
edu.rit.pj.ParallelConstruct
edu.rit.pj.ParallelRegion
ffx.potential.nonbonded.pme.PermanentFieldRegion
- All Implemented Interfaces:
MaskingInterface
Parallel computation of the permanent field.
This class can be executed by a ParallelTeam with exactly 2 threads.
The Real Space and Reciprocal Space Sections will be run concurrently, each with the number of threads defined by their respective ParallelTeam instances.
- Since:
- 1.0
- Author:
- Michael J. Schnieders
-
Field Summary
Modifier and TypeFieldDescriptiondouble[][][]
Dimensions of [nsymm][nAtoms][3]double[][][]
protected int[][]
Polarization groups. -
Constructor Summary
ConstructorDescriptionPermanentFieldRegion
(ParallelTeam pt, ForceField forceField, boolean lambdaTerm) -
Method Summary
Modifier and TypeMethodDescriptionvoid
applyMask
(int i, boolean[] is14, double[]... masks) Apply permanent field masking rules.long
getInitTime
(int threadId) long
getPermTime
(int threadId) long
void
init
(Atom[] atoms, Crystal crystal, double[][][] coordinates, double[][][] globalMultipole, double[][][] inducedDipole, double[][][] inducedDipoleCR, int[][][] neighborLists, ScaleParameters scaleParameters, boolean[] use, int[] molecule, double[] ipdamp, double[] thole, int[][] ip11, int[][] mask12, int[][] mask13, int[][] mask14, LambdaMode lambdaMode, boolean reciprocalSpaceTerm, ReciprocalSpace reciprocalSpace, EwaldParameters ewaldParameters, PCGSolver pcgSolver, IntegerSchedule permanentSchedule, RealSpaceNeighborParameters realSpaceNeighborParameters, AtomicDoubleArray3D field, AtomicDoubleArray3D fieldCR) void
void
removeMask
(int i, boolean[] is14, double[]... masks) Remove permanent field masking rules.void
run()
Execute parallel code.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, start
Methods inherited from class edu.rit.pj.ParallelConstruct
getThreadCount, getThreadIndex, isExecutingInParallel, region, team
-
Field Details
-
inducedDipole
public double[][][] inducedDipoleDimensions of [nsymm][nAtoms][3] -
inducedDipoleCR
public double[][][] inducedDipoleCR -
ip11
protected int[][] ip11Polarization groups.
-
-
Constructor Details
-
PermanentFieldRegion
-
-
Method Details
-
applyMask
public void applyMask(int i, boolean[] is14, double[]... masks) Apply permanent field masking rules.- Specified by:
applyMask
in interfaceMaskingInterface
- Parameters:
i
- The atom whose masking rules should be applied.is14
- True if atom i and the current atom are 1-4 to each other.masks
- One or more masking arrays.
-
initTimings
public void initTimings() -
getRealSpacePermTime
public long getRealSpacePermTime() -
getInitTime
public long getInitTime(int threadId) -
getPermTime
public long getPermTime(int threadId) -
init
public void init(Atom[] atoms, Crystal crystal, double[][][] coordinates, double[][][] globalMultipole, double[][][] inducedDipole, double[][][] inducedDipoleCR, int[][][] neighborLists, ScaleParameters scaleParameters, boolean[] use, int[] molecule, double[] ipdamp, double[] thole, int[][] ip11, int[][] mask12, int[][] mask13, int[][] mask14, LambdaMode lambdaMode, boolean reciprocalSpaceTerm, ReciprocalSpace reciprocalSpace, EwaldParameters ewaldParameters, PCGSolver pcgSolver, IntegerSchedule permanentSchedule, RealSpaceNeighborParameters realSpaceNeighborParameters, AtomicDoubleArray3D field, AtomicDoubleArray3D fieldCR) -
removeMask
public void removeMask(int i, boolean[] is14, double[]... masks) Remove permanent field masking rules.- Specified by:
removeMask
in interfaceMaskingInterface
- Parameters:
i
- The atom whose masking rules should be removed.is14
- True if atom i and the current atom are 1-4 to each other.masks
- One or more masking arrays.
-
run
public void run()Description copied from class:ParallelRegion
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
-