Package ffx.numerics.multipole
Class GKTensorGlobal
java.lang.Object
ffx.numerics.multipole.MultipoleTensor
ffx.numerics.multipole.CoulombTensorGlobal
ffx.numerics.multipole.GKTensorGlobal
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
ConstructorDescriptionGKTensorGlobal
(GKMultipoleOrder multipoleOrder, int order, GKSource gkSource, double Eh, double Es) Construct a new GKTensorGlobal 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, DoubleVector 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.CoulombTensorGlobal
chargeIPotentialAtK, chargeKPotentialAtI, codeTensorRecursion, codeVectorTensorRecursion, codeVectorTensorRecursion, dipoleIPotentialAtK, dipoleKPotentialAtI, getd2EdZ2, getdEdZ, 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, getTensor, log, multipoleEnergy, multipoleGradient, multipoleTorque, polarizationEnergy, 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
-
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
GK Permanent multipole energy.- Overrides:
multipoleEnergy
in classMultipoleTensor
- 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 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, 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
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 classCoulombTensorGlobal
- Parameters:
work
- Location to store the source terms.
-