Class GKEnergyQISIMD

java.lang.Object
ffx.numerics.multipole.GKEnergyQISIMD

public class GKEnergyQISIMD extends Object
The GKEnergyQI class computes the Generalized Kirkwood energy and forces using a QI frame.
  • Constructor Details

    • GKEnergyQISIMD

      public GKEnergyQISIMD(double soluteDielectric, double solventDielectric, double gkc, boolean gradient)
      Compute the GK Energy using a QI frame.
      Parameters:
      soluteDielectric - Solute dielectric constant.
      solventDielectric - Solvent dielectric constant.
      gkc - The GK interaction parameter.
      gradient - If true, the gradient will be computed.
  • Method Details

    • initPotential

      public void initPotential(DoubleVector[] r, DoubleVector r2, DoubleVector rbi, DoubleVector rbk)
      Initialize the potential.
      Parameters:
      r - The separation. vector.
      r2 - The squared separation.
      rbi - The Born radius of atom i.
      rbk - The Born radius of atom k.
    • initBorn

      public void initBorn(DoubleVector[] r, DoubleVector r2, DoubleVector rbi, DoubleVector rbk)
      Initialize for computing Born chain-rule terms.
      Parameters:
      r - The separation vector.
      r2 - The squared separation.
      rbi - The Born radius of atom i.
      rbk - The Born radius of atom k.
    • multipoleEnergy

      Compute the multipole energy.
      Parameters:
      mI - The polarizable multipole of atom i.
      mK - The polarizable multipole of atom k.
      Returns:
      The multipole energy.
    • polarizationEnergy

      public DoubleVector polarizationEnergy(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK)
      Compute the polarization energy.
      Parameters:
      mI - The polarizable multipole of atom i.
      mK - The polarizable multipole of atom k.
      Returns:
      The polarization energy.
    • multipoleEnergyAndGradient

      public DoubleVector multipoleEnergyAndGradient(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] gI, DoubleVector[] tI, DoubleVector[] tK)
      Compute the multipole energy and gradient.
      Parameters:
      mI - The polarizable multipole of atom i.
      mK - The polarizable multipole of atom k.
      gI - The gradient for atom i.
      tI - The torque on atom i.
      tK - The torque on atom k.
      Returns:
      The multipole energy.
    • polarizationEnergyAndGradient

      public DoubleVector polarizationEnergyAndGradient(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector mutualMask, DoubleVector[] gI, DoubleVector[] tI, DoubleVector[] tK)
      Compute the polarization energy and gradient.
      Parameters:
      mI - The polarizable multipole of atom i.
      mK - The polarizable multipole of atom k.
      mutualMask - The mutual polarization mask.
      gI - The gradient for atom i.
      tI - The torque on atom i.
      tK - The torque on atom k.
      Returns:
      The polarization energy.
    • multipoleEnergyBornGrad

      public DoubleVector multipoleEnergyBornGrad(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK)
      Compute the Born chain-rule term for the multipole energy.
      Parameters:
      mI - The polarizable multipole of atom i.
      mK - The polarizable multipole of atom k.
      Returns:
      The Born chain-rule term.
    • polarizationEnergyBornGrad

      public DoubleVector polarizationEnergyBornGrad(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, boolean mutual)
      Compute the Born chain-rule term for the polarization energy.
      Parameters:
      mI - The polarizable multipole of atom i.
      mK - The polarizable multipole of atom k.
      mutual - If true, compute the mutual polarization contribution.
      Returns:
      The Born chain-rule term.