Class ReciprocalSpace

java.lang.Object
ffx.potential.nonbonded.ReciprocalSpace

public class ReciprocalSpace extends Object
The Reciprocal Space class computes the reciprocal space contribution to ParticleMeshEwald for the AMOEBA force field.
  1. Assignment of polarizable multipole charge density to the 3D grid, via b-Splines, is parallelized using a spatial decomposition.
  2. The convolution depends on methods of the Real3DParallel and Complex3DParallel classes.
  3. Finally, the electric potential and its gradients are collected, in parallel, off the grid using b-Splines.
Since:
1.0
Author:
Michael J. Schnieders
  • Constructor Details

  • Method Details

    • cartToFracInducedDipole

      public void cartToFracInducedDipole(double[] inducedDipole, double[] inducedDipoleCR, double[] fracInducedDipole, double[] fracInducedDipoleCR)
      cartToFracInducedDipoles
      Parameters:
      inducedDipole - Input Cartesian induced dipole.
      inducedDipoleCR - Input Cartesian induced dipole CR.
      fracInducedDipole - Output fractional induced dipole.
      fracInducedDipoleCR - Output fractional induced dipole CR.
    • computeBSplines

      public void computeBSplines()
      computeBSplines
    • computeInducedPhi

      public void computeInducedPhi(double[][] cartInducedDipolePhi, double[][] cartInducedDipoleCRPhi, double[][] fracInducedDipolePhi, double[][] fracInducedDipoleCRPhi)
      computeInducedPhi
      Parameters:
      cartInducedDipolePhi - an array of double.
      cartInducedDipoleCRPhi - an array of double.
      fracInducedDipolePhi - an array of double.
      fracInducedDipoleCRPhi - an array of double.
    • computePermanentPhi

      public void computePermanentPhi(double[][] cartPermanentPhi, double[][] fracPermanentPhi)
      Compute the potential Phi and its derivatives for all atoms.
      Parameters:
      cartPermanentPhi - an array of double.
      fracPermanentPhi - an array of double.
    • getXDim

      public int getXDim()
      getXDim
      Returns:
      a double.
    • getYDim

      public int getYDim()
      getYDim
      Returns:
      a double.
    • getZDim

      public int getZDim()
      getZDim
      Returns:
      a double.
    • performConvolution

      public void performConvolution()
      Compute the reciprocal space field using a convolution.
    • initTimings

      public void initTimings()
      initTimings.
    • printTimings

      public void printTimings()
      printTimings.
    • setAtoms

      public void setAtoms(Atom[] atoms)
      Setter for the field atoms.
      Parameters:
      atoms - an array of Atom objects.
    • setCrystal

      public void setCrystal(Crystal crystal)
      Setter for the field crystal.
      Parameters:
      crystal - a Crystal object.
    • splineInducedDipoles

      public void splineInducedDipoles(double[][][] inducedDipole, double[][][] inducedDipoleCR, boolean[] use)
      Place the induced dipoles onto the FFT grid for the atoms in use.
      Parameters:
      inducedDipole - Induced dipoles.
      inducedDipoleCR - Chain rule term for induced dipole gradient.
      use - The atoms in use.
    • splinePermanentMultipoles

      public void splinePermanentMultipoles(double[][][] globalMultipoles, double[][][] fracMultipoles, boolean[] use)
      Use b-Splines to place the permanent multipoles onto the FFT grid for the atoms in use.
      Parameters:
      globalMultipoles - an array of double.
      fracMultipoles - an array of double.
      use - an array of boolean.
    • toFractionalDipole

      public void toFractionalDipole(double[] gd, double[] fd)
      Convert a dipole in the global frame into a factional dipole.
      Parameters:
      gd - an array of
      invalid reference
      double
      objects.
      fd - an array of
      invalid reference
      double
      objects.