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
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, PMETimings pmeTimings) 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.
-
getRealSpacePermTotal
public long getRealSpacePermTotal() -
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, PMETimings pmeTimings) -
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
-