Package ffx.numerics.multipole
Class CombinedTensorGlobal
java.lang.Object
ffx.numerics.multipole.MultipoleTensor
ffx.numerics.multipole.CoulombTensorGlobal
ffx.numerics.multipole.CombinedTensorGlobal
This class allows for the source terms of tensors to be combined, and therefore
multiple interaction tensors can be computed simultaneously (as a sum).
Non-Ex. Amoeba = M-pole*(Ewald)*M-pole + self Ex. Amoeba PolarizationE = Dipole*(Coulomb - Thole)*M-pol Ex. Amoeba SCF Eval = Dipole*(permPolField + (Coulomb - Thole)*Dipole) (at convergence goes to A PolE)
Ex. Amoeba+ = M-pol*(Ewald - CPenOverlap)*M-pol + Core*(Ewald-CPenDamp)*(Mpole) + Core*(Ewald)*Core + self Ex. Amoeba+ PolE = Dipole*(Ewald - TholeDirect)*M-pol Ex. Amoeba+ SCF Eval = Dipole(permPolField + (Coulomb - Thole)*Dipole) (at convergence this goes to A+ PolE)
-
Field Summary
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addCoulombMultiplier
(double multiplier) Add a multiplier to the Coulomb term.void
addTerms
(double[] terms) Accumulates onto existing terms.void
addTermsSeparate
(double[] terms) Accumulates onto existing terms.void
Reset the source terms.protected void
source
(double[] T000) Generate source terms for 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, multipoleEnergy, multipoleEnergyAndGradient, multipoleGradient, multipoleTorque, polarizationEnergy, polarizationEnergy, polarizationEnergyAndGradient, polarizationEnergyS, potentialMultipoleI, quadrupoleTorque, setR, setTensor, ti, totalEnergy
-
Constructor Details
-
CombinedTensorGlobal
public CombinedTensorGlobal(int order) Constructor for CoulombTensorGlobal.- Parameters:
order
- The order of the tensor.
-
-
Method Details
-
addTerms
public void addTerms(double[] terms) Accumulates onto existing terms. Assumes we add all the elements onto the respective index on existing array. Implicitly adds coulomb interaction.- Parameters:
terms
- The terms to add.
-
resetSource
public void resetSource()Reset the source terms. -
source
protected void source(double[] T000) Generate source terms for the Challacombe et al. recursion.- Overrides:
source
in classCoulombTensorGlobal
- Parameters:
T000
- Location to store the source terms.
-
addCoulombMultiplier
public void addCoulombMultiplier(double multiplier) Add a multiplier to the Coulomb term.- Parameters:
multiplier
- The multiplier to add.
-
addTermsSeparate
public void addTermsSeparate(double[] terms) Accumulates onto existing terms.- Parameters:
terms
- The terms to add.
-