Package ffx.numerics.multipole
Class CoulombTensorQISIMD
java.lang.Object
ffx.numerics.multipole.MultipoleTensorSIMD
ffx.numerics.multipole.CoulombTensorQISIMD
- Direct Known Subclasses:
EwaldTensorQISIMD,GKTensorQISIMD,TholeTensorQISIMD
The CoulombTensorQISIMD class computes derivatives of 1/|r| via recursion to arbitrary order
for Cartesian multipoles in a quasi-internal frame using SIMD instructions.
- 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, work, x, y, z -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidchargeIPotentialAtK(PolarizableMultipoleSIMD mI, int order) Compute the field components due to site I charge at site K.protected voidchargeKPotentialAtI(PolarizableMultipoleSIMD mK, int order) Compute the field components due to site K charge at site I.protected voiddipoleIPotentialAtK(DoubleVector uxi, DoubleVector uyi, DoubleVector uzi, int order) Compute the induced dipole field components due to site I at site K.protected voiddipoleKPotentialAtI(DoubleVector uxk, DoubleVector uyk, DoubleVector uzk, int order) Compute the induced dipole field components due to site K at site I.protected voidmultipoleIPotentialAtK(PolarizableMultipoleSIMD mI, int order) Compute the field components due to site I multipole at site K.protected voidmultipoleKPotentialAtI(PolarizableMultipoleSIMD mK, int order) Compute the field components due to site K multipole at site I.protected voidorder1()Hard coded tensor computation up to 1st order.protected voidorder2()Hard coded tensor computation up to 2nd order.protected voidorder3()Hard coded tensor computation up to 3rd order.protected voidorder4()Hard coded tensor computation up to 4th order.protected voidorder5()Hard coded tensor computation up to 5th order.protected voidorder6()Hard coded tensor computation up to 6th order.protected voidquadrupoleIPotentialAtK(PolarizableMultipoleSIMD mI, int order) Compute the field components due to site I quadrupole at site K.protected voidquadrupoleKPotentialAtI(PolarizableMultipoleSIMD mK, int order) Compute the field components due to site K quadrupole at site I.voidsetR(DoubleVector dx, DoubleVector dy, DoubleVector dz) Set the separation vector.protected voidsource(DoubleVector[] T000) Generate source terms for the Coulomb Challacombe et al. recursion.Methods inherited from class ffx.numerics.multipole.MultipoleTensorSIMD
dipoleTorque, generateTensor, getSource, multipoleEnergy, multipoleEnergy, multipoleEnergyAndGradient, multipoleGradient, multipoleTorque, polarizationEnergy, polarizationEnergyAndGradient, polarizationEnergyS, quadrupoleTorque, setR, ti
-
Constructor Details
-
CoulombTensorQISIMD
public CoulombTensorQISIMD(int order) Create a new CoulombTensorQI object.- Parameters:
order- The tensor order.
-
-
Method Details
-
setR
Set the separation vector.- Specified by:
setRin classMultipoleTensorSIMD- Parameters:
dx- Separation along the X-axis.dy- Separation along the Y-axis.dz- Separation along the Z-axis.
-
source
Generate source terms for the Coulomb Challacombe et al. recursion.- Specified by:
sourcein classMultipoleTensorSIMD- Parameters:
T000- Location to store the source terms.
-
order1
protected void order1()Hard coded tensor computation up to 1st order. This code is auto-generated for both Global and QI frames.- Specified by:
order1in classMultipoleTensorSIMD
-
order2
protected void order2()Hard coded tensor computation up to 2nd order. This code is auto-generated for both Global and QI frames.- Specified by:
order2in classMultipoleTensorSIMD
-
order3
protected void order3()Hard coded tensor computation up to 3rd order. This code is auto-generated for both Global and QI frames.- Specified by:
order3in classMultipoleTensorSIMD
-
order4
protected void order4()Hard coded tensor computation up to 4th order. This code is auto-generated for both Global and QI frames.- Specified by:
order4in classMultipoleTensorSIMD
-
order5
protected void order5()Hard coded tensor computation up to 5th order. This code is auto-generated for both Global and QI frames.
The 5th order recursion is needed for quadrupole-quadrupole forces.- Specified by:
order5in classMultipoleTensorSIMD
-
order6
protected void order6()Hard coded tensor computation up to 6th order. This code is auto-generated for both Global and QI frames.
This is needed for quadrupole-quadrupole forces and orthogonal space sampling.- Specified by:
order6in classMultipoleTensorSIMD
-
multipoleKPotentialAtI
Compute the field components due to site K multipole at site I.- Specified by:
multipoleKPotentialAtIin classMultipoleTensorSIMD- Parameters:
mK- PolarizableMultipoleSIMD at site I.order- Potential order.
-
chargeKPotentialAtI
Compute the field components due to site K charge at site I.- Specified by:
chargeKPotentialAtIin classMultipoleTensorSIMD- Parameters:
mK- PolarizableMultipoleSIMD at site K.order- Potential order.
-
dipoleKPotentialAtI
Compute the induced dipole field components due to site K at site I.- Specified by:
dipoleKPotentialAtIin classMultipoleTensorSIMD- Parameters:
uxk- X-dipole component.uyk- Y-dipole component.uzk- Z-dipole component.order- Potential order.
-
quadrupoleKPotentialAtI
Compute the field components due to site K quadrupole at site I.- Specified by:
quadrupoleKPotentialAtIin classMultipoleTensorSIMD- Parameters:
mK- MultipoleTensorSIMD at site K.order- Potential order.
-
multipoleIPotentialAtK
Compute the field components due to site I multipole at site K.- Specified by:
multipoleIPotentialAtKin classMultipoleTensorSIMD- Parameters:
mI- PolarizableMultipoleSIMD at site I.order- Potential order.
-
chargeIPotentialAtK
Compute the field components due to site I charge at site K.- Specified by:
chargeIPotentialAtKin classMultipoleTensorSIMD- Parameters:
mI- PolarizableMultipoleSIMD at site I.order- Potential order.
-
dipoleIPotentialAtK
Compute the induced dipole field components due to site I at site K.- Specified by:
dipoleIPotentialAtKin classMultipoleTensorSIMD- Parameters:
uxi- X-dipole component.uyi- Y-dipole component.uzi- Z-dipole component.order- Potential order.
-
quadrupoleIPotentialAtK
Compute the field components due to site I quadrupole at site K.- Specified by:
quadrupoleIPotentialAtKin classMultipoleTensorSIMD- Parameters:
mI- MultipoleTensorSIMD at site I.order- Potential order.
-