Class GKTensorGlobal


public class GKTensorGlobal extends CoulombTensorGlobal
The GeneralizedKirkwoodTensor class contains utilities for generated Generalized Kirkwood interaction tensors.
Since:
1.0
Author:
Michael J. Schnieders
  • Field Details

    • multipoleOrder

      protected final GKMultipoleOrder multipoleOrder
      The GK tensor can be constructed for monopoles (GB), dipoles or quadrupoles.
  • Constructor Details

    • GKTensorGlobal

      public GKTensorGlobal(GKMultipoleOrder multipoleOrder, int order, GKSource gkSource, double Eh, double Es)
      Construct a new GKTensorGlobal object.
      Parameters:
      multipoleOrder - The multipole order.
      order - The number of derivatives to complete.
      gkSource - Generate the source terms for the GK recurrence.
      Eh - Homogeneous dielectric constant.
      Es - Solvent dielectric constant.
  • Method Details

    • multipoleEnergy

      public double multipoleEnergy(PolarizableMultipole mI, PolarizableMultipole mK)
      GK Permanent multipole energy.
      Overrides:
      multipoleEnergy in class MultipoleTensor
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Returns:
      a double.
    • multipoleEnergyAndGradient

      public double multipoleEnergyAndGradient(PolarizableMultipole mI, PolarizableMultipole mK, double[] Gi, double[] Gk, double[] Ti, double[] Tk)
      GK Permanent multipole energy and gradient.
      Overrides:
      multipoleEnergyAndGradient in class MultipoleTensor
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Gi - Coordinate gradient at site I.
      Gk - Coordinate gradient at site K.
      Ti - Torque at site I.
      Tk - Torque at site K.
      Returns:
      the permanent multipole GK energy.
    • monopoleEnergyAndGradient

      protected double monopoleEnergyAndGradient(PolarizableMultipole mI, PolarizableMultipole mK, double[] Gi, double[] Gk, double[] Ti, double[] Tk)
      Permanent multipole energy and gradient using the GK monopole tensor.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Gi - Coordinate gradient at site I.
      Gk - Coordinate gradient at site K.
      Ti - Torque at site I.
      Tk - Torque at site K.
      Returns:
      the permanent multipole GK energy.
    • dipoleEnergyAndGradient

      protected double dipoleEnergyAndGradient(PolarizableMultipole mI, PolarizableMultipole mK, double[] Gi, double[] Gk, double[] Ti, double[] Tk)
      Permanent multipole energy and gradient using the GK dipole tensor.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Gi - Coordinate gradient at site I.
      Gk - Coordinate gradient at site K.
      Ti - Torque at site I.
      Tk - Torque at site K.
      Returns:
      the permanent multipole GK energy.
    • quadrupoleEnergyAndGradient

      protected double quadrupoleEnergyAndGradient(PolarizableMultipole mI, PolarizableMultipole mK, double[] Gi, double[] Gk, double[] Ti, double[] Tk)
      Permanent multipole energy and gradient using the GK quadrupole tensor.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Gi - Coordinate gradient at site I.
      Gk - Coordinate gradient at site K.
      Ti - Torque at site I.
      Tk - Torque at site K.
      Returns:
      the permanent multipole GK energy.
    • multipoleEnergyBornGrad

      public double multipoleEnergyBornGrad(PolarizableMultipole mI, PolarizableMultipole mK)
      GK Permanent multipole Born grad.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Returns:
      a double.
    • polarizationEnergy

      public double polarizationEnergy(PolarizableMultipole mI, PolarizableMultipole mK, DoubleVector scaleEnergy)
      GK Polarization Energy.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      scaleEnergy - This is ignored, since masking/scaling is not applied to GK interactions (everything is intermolecular).
      Returns:
      a double.
    • polarizationEnergy

      public double polarizationEnergy(PolarizableMultipole mI, PolarizableMultipole mK)
      GK Polarization Energy.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Returns:
      a double.
    • polarizationEnergyBorn

      public double polarizationEnergyBorn(PolarizableMultipole mI, PolarizableMultipole mK)
      GK Polarization Energy.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Returns:
      a double.
    • polarizationEnergyAndGradient

      public double polarizationEnergyAndGradient(PolarizableMultipole mI, PolarizableMultipole mK, double inductionMask, double energyMask, double mutualMask, double[] Gi, double[] Ti, double[] Tk)
      Polarization Energy and Gradient.
      Overrides:
      polarizationEnergyAndGradient in class MultipoleTensor
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      inductionMask - This is ignored, since masking/scaling is not applied to GK interactions (everything is intermolecular).
      energyMask - This is ignored, since masking/scaling is not applied to GK interactions (everything is intermolecular).
      mutualMask - This should be set to zero for direction polarization.
      Gi - an array of
      invalid reference
      double
      objects.
      Ti - an array of
      invalid reference
      double
      objects.
      Tk - an array of
      invalid reference
      double
      objects.
      Returns:
      a double.
    • monopolePolarizationEnergyAndGradient

      public double monopolePolarizationEnergyAndGradient(PolarizableMultipole mI, PolarizableMultipole mK, double[] Gi)
      Monopole Polarization Energy and Gradient.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Gi - an array of
      invalid reference
      double
      objects.
      Returns:
      a double.
    • dipolePolarizationEnergyAndGradient

      public double dipolePolarizationEnergyAndGradient(PolarizableMultipole mI, PolarizableMultipole mK, double mutualMask, double[] Gi, double[] Ti, double[] Tk)
      Dipole Polarization Energy and Gradient.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      mutualMask - This should be set to zero for direction polarization.
      Gi - an array of
      invalid reference
      double
      objects.
      Ti - an array of
      invalid reference
      double
      objects.
      Tk - an array of
      invalid reference
      double
      objects.
      Returns:
      a double.
    • quadrupolePolarizationEnergyAndGradient

      public double quadrupolePolarizationEnergyAndGradient(PolarizableMultipole mI, PolarizableMultipole mK, double[] Gi, double[] Ti, double[] Tk)
      Quadrupole Polarization Energy and Gradient.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Gi - an array of
      invalid reference
      double
      objects.
      Ti - an array of
      invalid reference
      double
      objects.
      Tk - an array of
      invalid reference
      double
      objects.
      Returns:
      a double.
    • polarizationEnergyBornGrad

      public double polarizationEnergyBornGrad(PolarizableMultipole mI, PolarizableMultipole mK)
      GK Direct Polarization Born grad.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Returns:
      Partial derivative of the Polarization energy with respect to a Born grad.
    • mutualPolarizationEnergyBornGrad

      public double mutualPolarizationEnergyBornGrad(PolarizableMultipole mI, PolarizableMultipole mK)
      GK Mutual Polarization Contribution to the Born grad.
      Parameters:
      mI - PolarizableMultipole at site I.
      mK - PolarizableMultipole at site K.
      Returns:
      Mutual Polarization contribution to the partial derivative with respect to a Born grad.
    • source

      protected void source(double[] work)
      Generate source terms for the Kirkwood version of the Challacombe et al. recursion.
      Overrides:
      source in class CoulombTensorGlobal
      Parameters:
      work - Location to store the source terms.