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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddCoulombMultiplier(double multiplier) Add a multiplier to the Coulomb term.voidaddTerms(double[] terms) Accumulates onto existing terms.voidaddTermsSeparate(double[] terms) Accumulates onto existing terms.voidReset the source terms.protected voidsource(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, TlmnjMethods 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:
sourcein 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.
-