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
FieldsModifier and TypeFieldDescriptiondouble[][][]Dimensions of [nsymm][nAtoms][3]double[][][]protected int[][]Polarization groups. -
Constructor Summary
ConstructorsConstructorDescriptionPermanentFieldRegion(ParallelTeam pt, ForceField forceField, boolean lambdaTerm) -
Method Summary
Modifier and TypeMethodDescriptionvoidapplyMask(int i, boolean[] is14, double[]... masks) Apply permanent field masking rules.longgetInitTime(int threadId) longgetPermTime(int threadId) longvoidinit(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) voidvoidremoveMask(int i, boolean[] is14, double[]... masks) Remove permanent field masking rules.voidrun()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, startMethods 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:
applyMaskin 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:
removeMaskin 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:ParallelRegionExecute parallel code. All threads of the parallel team call therun()method concurrently.The
run()method must be implemented in a subclass.- Specified by:
runin classParallelRegion
-