Class PermanentFieldRegion

java.lang.Object
edu.rit.pj.ParallelConstruct
edu.rit.pj.ParallelRegion
ffx.potential.nonbonded.pme.PermanentFieldRegion
All Implemented Interfaces:
MaskingInterface

public class PermanentFieldRegion extends ParallelRegion implements 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 Details

    • inducedDipole

      public double[][][] inducedDipole
      Dimensions of [nsymm][nAtoms][3]
    • inducedDipoleCR

      public double[][][] inducedDipoleCR
    • ip11

      protected int[][] ip11
      Polarization groups.
  • Constructor Details

    • PermanentFieldRegion

      public PermanentFieldRegion(ParallelTeam pt, ForceField forceField, boolean lambdaTerm)
  • Method Details

    • applyMask

      public void applyMask(int i, boolean[] is14, double[]... masks)
      Apply permanent field masking rules.
      Specified by:
      applyMask in interface MaskingInterface
      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 interface MaskingInterface
      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 the run() method concurrently.

      The run() method must be implemented in a subclass.

      Specified by:
      run in class ParallelRegion