Package ffx.numerics.multipole
Class GKTensorQI
java.lang.Object
ffx.numerics.multipole.MultipoleTensor
ffx.numerics.multipole.CoulombTensorQI
ffx.numerics.multipole.GKTensorQI
The GeneralizedKirkwoodTensor class contains utilities for generated Generalized Kirkwood
interaction tensors.
- Since:
- 1.0
- Author:
- Michael J. Schnieders
-
Field Summary
Modifier and TypeFieldDescriptionprotected final GKMultipoleOrder
The GK tensor can be constructed for monopoles (GB), dipoles or quadrupoles.Fields inherited from class ffx.numerics.multipole.MultipoleTensor
coordinates, coulombSource, il, im, in, o1, operator, order, R, r2, size, t000, T000, t001, t002, t003, t004, t005, t006, t010, t011, t012, t013, t014, t015, t020, t021, t022, t023, t024, t030, t031, t032, t033, t040, t041, t042, t050, t051, t060, t100, t101, t102, t103, t104, t105, t110, t111, t112, t113, t114, t120, t121, t122, t123, t130, t131, t132, t140, t141, t150, t200, t201, t202, t203, t204, t210, t211, t212, t213, t220, t221, t222, t230, t231, t240, t300, t301, t302, t303, t310, t311, t312, t320, t321, t330, t400, t401, t402, t410, t411, t420, t500, t501, t510, t600, work, x, y, z
-
Constructor Summary
ConstructorDescriptionGKTensorQI
(GKMultipoleOrder multipoleOrder, int order, GKSource gkSource, double Eh, double Es) Create a new GKTensorQI object. -
Method Summary
Modifier and TypeMethodDescriptionprotected double
dipoleEnergyAndGradient
(PolarizableMultipole mI, PolarizableMultipole mK, double[] Gi, double[] Gk, double[] Ti, double[] Tk) Permanent multipole energy and gradient using the GK dipole tensor.double
dipolePolarizationEnergyAndGradient
(PolarizableMultipole mI, PolarizableMultipole mK, double mutualMask, double[] Gi, double[] Ti, double[] Tk) Dipole Polarization Energy and Gradient.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.double
monopolePolarizationEnergyAndGradient
(PolarizableMultipole mI, PolarizableMultipole mK, double[] Gi) Monopole Polarization Energy and Gradient.double
GK Permanent multipole energy.double
multipoleEnergyAndGradient
(PolarizableMultipole mI, PolarizableMultipole mK, double[] Gi, double[] Gk, double[] Ti, double[] Tk) GK Permanent multipole energy and gradient.double
GK Permanent multipole Born grad.double
GK Mutual Polarization Contribution to the Born grad.double
GK Polarization Energy.double
polarizationEnergy
(PolarizableMultipole mI, PolarizableMultipole mK, double scaleEnergy) GK Polarization Energy.double
polarizationEnergyAndGradient
(PolarizableMultipole mI, PolarizableMultipole mK, double inductionMask, double energyMask, double mutualMask, double[] Gi, double[] Ti, double[] Tk) Polarization Energy and Gradient.double
GK Polarization Energy.double
GK Direct Polarization Born grad.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.double
quadrupolePolarizationEnergyAndGradient
(PolarizableMultipole mI, PolarizableMultipole mK, double[] Gi, double[] Ti, double[] Tk) Quadrupole Polarization Energy and Gradient.protected void
source
(double[] work) Generate source terms for the Kirkwood version of the Challacombe et al. recursion.Methods inherited from class ffx.numerics.multipole.CoulombTensorQI
chargeIPotentialAtK, chargeKPotentialAtI, codeTensorRecursion, codeVectorTensorRecursion, dipoleIPotentialAtK, dipoleKPotentialAtI, multipoleIPotentialAtK, multipoleKPotentialAtI, noStorageRecursion, noStorageRecursion, order1, order2, order3, order4, order5, order6, quadrupoleIPotentialAtK, quadrupoleKPotentialAtI, recursion, recursion, setR, Tlmnj
Methods inherited from class ffx.numerics.multipole.MultipoleTensor
codePotentialMultipoleI, codePotentialMultipoleISIMD, codePotentialMultipoleK, codePotentialMultipoleKSIMD, contractMultipoleI, dipoleTorque, generateTensor, generateTensor, getd2EdZ2, getdEdZ, getTensor, log, multipoleEnergy, multipoleGradient, multipoleTorque, polarizationEnergy, polarizationEnergyS, potentialMultipoleI, quadrupoleTorque, setR, setTensor, ti, totalEnergy
-
Field Details
-
multipoleOrder
The GK tensor can be constructed for monopoles (GB), dipoles or quadrupoles.
-
-
Constructor Details
-
GKTensorQI
public GKTensorQI(GKMultipoleOrder multipoleOrder, int order, GKSource gkSource, double Eh, double Es) Create a new GKTensorQI object.- Parameters:
multipoleOrder
- The multipole order.order
- The tensor order.gkSource
- Generate the source terms for the GK recurrence.Eh
- Homogeneous dielectric constant.Es
- Solvent dielectric constant.
-
-
Method Details
-
multipoleEnergy
GK Permanent multipole energy.- Overrides:
multipoleEnergy
in classMultipoleTensor
- Parameters:
mI
- PolarizableMultipole at site I.mK
- PolarizableMultipole at site K.- Returns:
- the GK permanent multipole energy.
-
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 classMultipoleTensor
- 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
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, double scaleEnergy) GK Polarization Energy.- Overrides:
polarizationEnergy
in classMultipoleTensor
- Parameters:
mI
- PolarizableMultipole at site I.mK
- PolarizableMultipole at site K.scaleEnergy
- This is ignored, since masking/scaling is not applied to GK interactions.- Returns:
- a double.
-
polarizationEnergy
GK Polarization Energy.- Parameters:
mI
- PolarizableMultipole at site I.mK
- PolarizableMultipole at site K.- Returns:
- a double.
-
polarizationEnergyBorn
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 classMultipoleTensor
- 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 ofinvalid reference
double
Ti
- an array ofinvalid reference
double
Tk
- an array ofinvalid reference
double
- 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 ofinvalid reference
double
- 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 ofinvalid reference
double
Ti
- an array ofinvalid reference
double
Tk
- an array ofinvalid reference
double
- 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 ofinvalid reference
double
Ti
- an array ofinvalid reference
double
Tk
- an array ofinvalid reference
double
- Returns:
- a double.
-
polarizationEnergyBornGrad
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
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 classCoulombTensorQI
- Parameters:
work
- Location to store the source terms.
-