Package ffx.numerics.multipole
Class EwaldTensorGlobalSIMD
java.lang.Object
ffx.numerics.multipole.MultipoleTensorSIMD
ffx.numerics.multipole.CoulombTensorGlobalSIMD
ffx.numerics.multipole.EwaldTensorGlobalSIMD
The EwaldMultipoleTensorGlobal class computes derivatives of erfc(r)/|r| via
recursion to arbitrary order for Cartesian multipoles in the global frame.
- Since:
- 1.0
- Author:
- Michael J. Schnieders
- See Also:
-
Field Summary
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, x, y, z
-
Constructor Summary
ConstructorDescriptionEwaldTensorGlobalSIMD
(int order, double beta) Constructor for EwaldMultipoleTensorGlobal. -
Method Summary
Modifier and TypeMethodDescriptionprotected static void
fillEwaldSource
(int order, double beta, double[] ewaldSource, DoubleVector R, DoubleVector[] T000, double[] work) Fill the Ewald source terms.protected void
source
(DoubleVector[] T000) Generate source terms for the Ewald 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, multipoleEnergy, multipoleEnergyAndGradient, multipoleGradient, multipoleTorque, polarizationEnergy, polarizationEnergyAndGradient, polarizationEnergyS, quadrupoleTorque, setR, ti
-
Constructor Details
-
EwaldTensorGlobalSIMD
public EwaldTensorGlobalSIMD(int order, double beta) Constructor for EwaldMultipoleTensorGlobal.- Parameters:
order
- Tensor order.beta
- The Ewald convergence parameter.
-
-
Method Details
-
source
Generate source terms for the Ewald Challacombe et al. recursion.- Overrides:
source
in classCoulombTensorGlobalSIMD
- Parameters:
T000
- Location to store the source terms.
-
fillEwaldSource
protected static void fillEwaldSource(int order, double beta, double[] ewaldSource, DoubleVector R, DoubleVector[] T000, double[] work) Fill the Ewald source terms.- Parameters:
order
- The order plus one.beta
- The Ewald convergence parameter.ewaldSource
- The source terms.R
- The separation distance.T000
- The location to store the source terms.work
- A work array for generation of source terms that cannot be vectorized.
-