Package ffx.numerics.multipole
Class GKTensorGlobalSIMD
java.lang.Object
ffx.numerics.multipole.MultipoleTensorSIMD
ffx.numerics.multipole.CoulombTensorGlobalSIMD
ffx.numerics.multipole.GKTensorGlobalSIMD
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.MultipoleTensorSIMD
coordinates, coulombSource, E000, E001, E002, E003, E010, E011, E012, E020, E021, E030, E100, E101, E102, E110, E111, E120, E200, E201, E210, E300, il, im, in, o1, operator, order, R, R000, R001, R002, R003, R004, R005, R006, R010, R011, R012, R013, R014, R015, R020, R021, R022, R023, R024, R030, R031, R032, R033, R040, R041, R042, R050, R051, R060, R100, R101, R102, R103, R104, R105, R110, R111, R112, R113, R114, R120, R121, R122, R123, R130, R131, R132, R140, R141, R150, r2, R200, R201, R202, R203, R204, R210, R211, R212, R213, R220, R221, R222, R230, R231, R240, R300, R301, R302, R303, R310, R311, R312, R320, R321, R330, R400, R401, R402, R410, R411, R420, R500, R501, R510, R600, size, 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
ConstructorDescriptionGKTensorGlobalSIMD
(GKMultipoleOrder multipoleOrder, int order, GKSourceSIMD gkSource, double Eh, double Es) Construct a new GKTensorGlobal object. -
Method Summary
Modifier and TypeMethodDescriptionprotected DoubleVector
dipoleEnergyAndGradient
(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] Gi, DoubleVector[] Gk, DoubleVector[] Ti, DoubleVector[] Tk) Permanent multipole energy and gradient using the GK dipole tensor.dipolePolarizationEnergyAndGradient
(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector mutualMask, DoubleVector[] Gi, DoubleVector[] Ti, DoubleVector[] Tk) Dipole Polarization Energy and Gradient.protected DoubleVector
monopoleEnergyAndGradient
(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] Gi, DoubleVector[] Gk, DoubleVector[] Ti, DoubleVector[] Tk) Permanent multipole energy and gradient using the GK monopole tensor.monopolePolarizationEnergyAndGradient
(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] Gi) Monopole Polarization Energy and Gradient.GK Permanent multipole energy.multipoleEnergyAndGradient
(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] Gi, DoubleVector[] Gk, DoubleVector[] Ti, DoubleVector[] Tk) GK Permanent multipole energy and gradient.GK Permanent multipole Born grad.GK Mutual Polarization Contribution to the Born grad.GK Polarization Energy.polarizationEnergy
(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector scaleEnergy) GK Polarization Energy.polarizationEnergyAndGradient
(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector inductionMask, DoubleVector energyMask, DoubleVector mutualMask, DoubleVector[] Gi, DoubleVector[] Ti, DoubleVector[] Tk) Polarization Energy and Gradient.GK Polarization Energy.GK Direct Polarization Born grad.protected DoubleVector
quadrupoleEnergyAndGradient
(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] Gi, DoubleVector[] Gk, DoubleVector[] Ti, DoubleVector[] Tk) Permanent multipole energy and gradient using the GK quadrupole tensor.quadrupolePolarizationEnergyAndGradient
(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] Gi, DoubleVector[] Ti, DoubleVector[] Tk) Quadrupole Polarization Energy and Gradient.protected void
source
(DoubleVector[] work) Generate source terms for the Kirkwood version of the Challacombe et al. recursion.Methods inherited from class ffx.numerics.multipole.CoulombTensorGlobalSIMD
chargeIPotentialAtK, chargeKPotentialAtI, dipoleIPotentialAtK, dipoleKPotentialAtI, multipoleIPotentialAtK, multipoleKPotentialAtI, order1, order2, order3, order4, order5, order6, quadrupoleIPotentialAtK, quadrupoleKPotentialAtI, setR
Methods inherited from class ffx.numerics.multipole.MultipoleTensorSIMD
dipoleTorque, generateTensor, getSource, multipoleEnergy, multipoleGradient, multipoleTorque, polarizationEnergy, polarizationEnergyS, quadrupoleTorque, setR, ti
-
Field Details
-
multipoleOrder
The GK tensor can be constructed for monopoles (GB), dipoles or quadrupoles.
-
-
Constructor Details
-
GKTensorGlobalSIMD
public GKTensorGlobalSIMD(GKMultipoleOrder multipoleOrder, int order, GKSourceSIMD 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 classMultipoleTensorSIMD
- Parameters:
mI
- PolarizableMultipole at site I.mK
- PolarizableMultipole at site K.- Returns:
- a double.
-
multipoleEnergyAndGradient
public DoubleVector multipoleEnergyAndGradient(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] Gi, DoubleVector[] Gk, DoubleVector[] Ti, DoubleVector[] Tk) GK Permanent multipole energy and gradient.- Overrides:
multipoleEnergyAndGradient
in classMultipoleTensorSIMD
- 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 DoubleVector monopoleEnergyAndGradient(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] Gi, DoubleVector[] Gk, DoubleVector[] Ti, DoubleVector[] 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 DoubleVector dipoleEnergyAndGradient(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] Gi, DoubleVector[] Gk, DoubleVector[] Ti, DoubleVector[] 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 DoubleVector quadrupoleEnergyAndGradient(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] Gi, DoubleVector[] Gk, DoubleVector[] Ti, DoubleVector[] 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 DoubleVector multipoleEnergyBornGrad(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK) GK Permanent multipole Born grad.- Parameters:
mI
- PolarizableMultipole at site I.mK
- PolarizableMultipole at site K.- Returns:
- a double.
-
polarizationEnergy
public DoubleVector polarizationEnergy(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD 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
public DoubleVector polarizationEnergyBorn(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK) GK Polarization Energy.- Parameters:
mI
- PolarizableMultipole at site I.mK
- PolarizableMultipole at site K.- Returns:
- a double.
-
polarizationEnergyAndGradient
public DoubleVector polarizationEnergyAndGradient(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector inductionMask, DoubleVector energyMask, DoubleVector mutualMask, DoubleVector[] Gi, DoubleVector[] Ti, DoubleVector[] Tk) Polarization Energy and Gradient.- Overrides:
polarizationEnergyAndGradient
in classMultipoleTensorSIMD
- 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 DoubleVector monopolePolarizationEnergyAndGradient(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] 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 DoubleVector dipolePolarizationEnergyAndGradient(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector mutualMask, DoubleVector[] Gi, DoubleVector[] Ti, DoubleVector[] 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 DoubleVector quadrupolePolarizationEnergyAndGradient(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD mK, DoubleVector[] Gi, DoubleVector[] Ti, DoubleVector[] 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
public DoubleVector polarizationEnergyBornGrad(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD 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 DoubleVector mutualPolarizationEnergyBornGrad(PolarizableMultipoleSIMD mI, PolarizableMultipoleSIMD 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
Generate source terms for the Kirkwood version of the Challacombe et al. recursion.- Overrides:
source
in classCoulombTensorGlobalSIMD
- Parameters:
work
- Location to store the source terms.
-