Class PolarizableMultipoleSIMD

java.lang.Object
ffx.numerics.multipole.PolarizableMultipoleSIMD

public class PolarizableMultipoleSIMD extends Object
The PolarizableMultipole class defines a polarizable multipole.
Since:
1.0
Author:
Michael J. Schnieders
  • Field Details

    • q

      protected DoubleVector q
      Partial charge.
    • dx

      protected DoubleVector dx
      Dipole x-component.
    • dy

      protected DoubleVector dy
      Dipole y-component.
    • dz

      protected DoubleVector dz
      Dipole z-component.
    • qxx

      protected DoubleVector qxx
      Quadrupole xx-component multiplied by 1/3.
    • qyy

      protected DoubleVector qyy
      Quadrupole yy-component multiplied by 1/3.
    • qzz

      protected DoubleVector qzz
      Quadrupole zz-component multiplied by 1/3.
    • qxy

      protected DoubleVector qxy
      Quadrupole xy-component multiplied by 2/3.
    • qxz

      protected DoubleVector qxz
      Quadrupole xz-component multiplied by 2/3.
    • qyz

      protected DoubleVector qyz
      Quadrupole xz-component multiplied by 2/3.
    • ux

      protected DoubleVector ux
      Induced dipole x-component.
    • uy

      protected DoubleVector uy
      Induced dipole y-component.
    • uz

      protected DoubleVector uz
      Induced dipole z-component.
    • px

      protected DoubleVector px
      Induced dipole chain rule x-component.
    • py

      protected DoubleVector py
      Induced dipole chain rule y-component.
    • pz

      protected DoubleVector pz
      Induced dipole chain rule z-component.
    • sx

      protected DoubleVector sx
      Averaged induced dipole + induced dipole chain-rule x-component: sx = 0.5 * (ux + px).
    • sy

      protected DoubleVector sy
      Averaged induced dipole + induced dipole chain-rule y-component: sy = 0.5 * (uy + py).
    • sz

      protected DoubleVector sz
      Averaged induced dipole + induced dipole chain-rule z-component: sz = 0.5 * (uz + pz).
  • Constructor Details

    • PolarizableMultipoleSIMD

      public PolarizableMultipoleSIMD()
      PolarizableMultipole constructor with zero moments.
    • PolarizableMultipoleSIMD

      public PolarizableMultipoleSIMD(double[][] Q, double[][] u, double[][] uCR)
      PolarizableMultipole constructor.
      Parameters:
      Q - Multipoles Q[q, dx, dy, dz, qxx, qyy, qzz, qxy, qxz, qyz]
      u - Induced dipoles u[ux, uy, uz]
      uCR - Induced dipole chain-rules uCR[ux, uy, uz]
  • Method Details

    • set

      public void set(double[][] Q, double[][] u, double[][] uCR)
      Set the permanent multipole.

      Note that the quadrupole trace components are multiplied by 1/3 and the off-diagonal components are multiplied by 2/3.

      Parameters:
      Q - Multipoles Q[q, dx, dy, dz, qxx, qyy, qzz, qxy, qxz, qyz]
      u - Induced dipoles u[ux, uy, uz]
      uCR - Induced dipole chain-rules uCR[ux, uy, uz]
    • setPermanentMultipole

      public final void setPermanentMultipole(double[][] Q)
      Set the permanent multipole.

      Note that the quadrupole trace components are multiplied by 1/3 and the off-diagonal components are multiplied by 2/3.

      Parameters:
      Q - Multipole Q[q, dx, dy, dz, qxx, qyy, qzz, qxy, qxz, qyz]
    • setInducedDipole

      public final void setInducedDipole(double[][] u, double[][] uCR)
      Set the induced dipole.
      Parameters:
      u - Induced dipole u[ux, uy, uz]
      uCR - Induced dipole chain-rule uCR[ux, uy, uz]
    • applyMasks

      public final void applyMasks(DoubleVector scaleInduction, DoubleVector scaleEnergy)
      Compute the scaled and averaged induced dipole.
      Parameters:
      scaleInduction - Induction mask scale factor.
      scaleEnergy - Energy mask scale factor.