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
ConstructorsConstructorDescriptionEwaldTensorGlobalSIMD(int order, double beta) Constructor for EwaldMultipoleTensorGlobal. -
Method Summary
Modifier and TypeMethodDescriptionprotected static voidfillEwaldSource(int order, double beta, double[] ewaldSource, DoubleVector R, DoubleVector[] T000, double[] work) Fill the Ewald source terms.protected voidsource(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, setRMethods 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:
sourcein 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.
-