Class GKEnergyQI

java.lang.Object
ffx.numerics.multipole.GKEnergyQI

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

    • GKEnergyQI

      public GKEnergyQI(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(double[] r, double r2, double rbi, double 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(double[] r, double r2, double rbi, double 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

      public double multipoleEnergy(PolarizableMultipole mI, PolarizableMultipole mK)
      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 double polarizationEnergy(PolarizableMultipole mI, PolarizableMultipole 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 double multipoleEnergyAndGradient(PolarizableMultipole mI, PolarizableMultipole mK, double[] gradI, double[] torqueI, double[] torqueK)
      Compute the multipole energy and gradient.
      Parameters:
      mI - The polarizable multipole of atom i.
      mK - The polarizable multipole of atom k.
      gradI - The gradient for atom i.
      torqueI - The torque on atom i.
      torqueK - The torque on atom k.
      Returns:
      The multipole energy.
    • polarizationEnergyAndGradient

      public double polarizationEnergyAndGradient(PolarizableMultipole mI, PolarizableMultipole mK, double mutualMask, double[] gradI, double[] torqueI, double[] torqueK)
      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.
      gradI - The gradient for atom i.
      torqueI - The torque on atom i.
      torqueK - The torque on atom k.
      Returns:
      The polarization energy.
    • multipoleEnergyBornGrad

      public double multipoleEnergyBornGrad(PolarizableMultipole mI, PolarizableMultipole 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 double polarizationEnergyBornGrad(PolarizableMultipole mI, PolarizableMultipole 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 - True if mutual polarization is included.
      Returns:
      The Born chain-rule term.