Class CoulombTensorQISIMD

java.lang.Object
ffx.numerics.multipole.MultipoleTensorSIMD
ffx.numerics.multipole.CoulombTensorQISIMD
Direct Known Subclasses:
EwaldTensorQISIMD, GKTensorQISIMD, TholeTensorQISIMD

public class CoulombTensorQISIMD extends MultipoleTensorSIMD
The CoulombTensorQISIMD class computes derivatives of 1/|r| via recursion to arbitrary order for Cartesian multipoles in a quasi-internal frame using SIMD instructions.
Since:
1.0
Author:
Michael J. Schnieders
See Also:
  • Constructor Details

    • CoulombTensorQISIMD

      public CoulombTensorQISIMD(int order)
      Create a new CoulombTensorQI object.
      Parameters:
      order - The tensor order.
  • Method Details

    • setR

      public void setR(DoubleVector dx, DoubleVector dy, DoubleVector dz)
      Set the separation vector.
      Specified by:
      setR in class MultipoleTensorSIMD
      Parameters:
      dx - Separation along the X-axis.
      dy - Separation along the Y-axis.
      dz - Separation along the Z-axis.
    • source

      protected void source(DoubleVector[] T000)
      Generate source terms for the Coulomb Challacombe et al. recursion.
      Specified by:
      source in class MultipoleTensorSIMD
      Parameters:
      T000 - Location to store the source terms.
    • order1

      protected void order1()
      Hard coded tensor computation up to 1st order. This code is auto-generated for both Global and QI frames.
      Specified by:
      order1 in class MultipoleTensorSIMD
    • order2

      protected void order2()
      Hard coded tensor computation up to 2nd order. This code is auto-generated for both Global and QI frames.
      Specified by:
      order2 in class MultipoleTensorSIMD
    • order3

      protected void order3()
      Hard coded tensor computation up to 3rd order. This code is auto-generated for both Global and QI frames.
      Specified by:
      order3 in class MultipoleTensorSIMD
    • order4

      protected void order4()
      Hard coded tensor computation up to 4th order. This code is auto-generated for both Global and QI frames.
      Specified by:
      order4 in class MultipoleTensorSIMD
    • order5

      protected void order5()
      Hard coded tensor computation up to 5th order. This code is auto-generated for both Global and QI frames.
      The 5th order recursion is needed for quadrupole-quadrupole forces.
      Specified by:
      order5 in class MultipoleTensorSIMD
    • order6

      protected void order6()
      Hard coded tensor computation up to 6th order. This code is auto-generated for both Global and QI frames.
      This is needed for quadrupole-quadrupole forces and orthogonal space sampling.
      Specified by:
      order6 in class MultipoleTensorSIMD
    • multipoleKPotentialAtI

      protected void multipoleKPotentialAtI(PolarizableMultipoleSIMD mK, int order)
      Specified by:
      multipoleKPotentialAtI in class MultipoleTensorSIMD
    • chargeKPotentialAtI

      protected void chargeKPotentialAtI(PolarizableMultipoleSIMD mK, int order)
      Compute the field components due to site K charge at site I.
      Specified by:
      chargeKPotentialAtI in class MultipoleTensorSIMD
      Parameters:
      mK - MultipoleTensorSIMD at site K.
      order - Potential order.
    • dipoleKPotentialAtI

      protected void dipoleKPotentialAtI(DoubleVector uxk, DoubleVector uyk, DoubleVector uzk, int order)
      Compute the induced dipole field components due to site K at site I.
      Specified by:
      dipoleKPotentialAtI in class MultipoleTensorSIMD
      Parameters:
      uxk - X-dipole component.
      uyk - Y-dipole component.
      uzk - Z-dipole component.
      order - Potential order.
    • quadrupoleKPotentialAtI

      protected void quadrupoleKPotentialAtI(PolarizableMultipoleSIMD mK, int order)
      Compute the field components due to site K quadrupole at site I.
      Specified by:
      quadrupoleKPotentialAtI in class MultipoleTensorSIMD
      Parameters:
      mK - MultipoleTensorSIMD at site K.
      order - Potential order.
    • multipoleIPotentialAtK

      protected void multipoleIPotentialAtK(PolarizableMultipoleSIMD mI, int order)
      Specified by:
      multipoleIPotentialAtK in class MultipoleTensorSIMD
    • chargeIPotentialAtK

      protected void chargeIPotentialAtK(PolarizableMultipoleSIMD mI, int order)
      Compute the field components due to site I charge at site K.
      Specified by:
      chargeIPotentialAtK in class MultipoleTensorSIMD
      Parameters:
      mI - MultipoleTensorSIMD at site I.
      order - Potential order.
    • dipoleIPotentialAtK

      protected void dipoleIPotentialAtK(DoubleVector uxi, DoubleVector uyi, DoubleVector uzi, int order)
      Compute the induced dipole field components due to site I at site K.
      Specified by:
      dipoleIPotentialAtK in class MultipoleTensorSIMD
      Parameters:
      uxi - X-dipole component.
      uyi - Y-dipole component.
      uzi - Z-dipole component.
      order - Potential order.
    • quadrupoleIPotentialAtK

      protected void quadrupoleIPotentialAtK(PolarizableMultipoleSIMD mI, int order)
      Compute the field components due to site I quadrupole at site K.
      Specified by:
      quadrupoleIPotentialAtK in class MultipoleTensorSIMD
      Parameters:
      mI - MultipoleTensorSIMD at site I.
      order - Potential order.