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
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
chargeIPotentialAtK
(PolarizableMultipoleSIMD mI, int order) Compute the field components due to site I charge at site K.protected void
chargeKPotentialAtI
(PolarizableMultipoleSIMD mK, int order) Compute the field components due to site K charge at site I.protected void
dipoleIPotentialAtK
(DoubleVector uxi, DoubleVector uyi, DoubleVector uzi, int order) Compute the induced dipole field components due to site I at site K.protected void
dipoleKPotentialAtI
(DoubleVector uxk, DoubleVector uyk, DoubleVector uzk, int order) Compute the induced dipole field components due to site K at site I.protected void
multipoleIPotentialAtK
(PolarizableMultipoleSIMD mI, int order) protected void
multipoleKPotentialAtI
(PolarizableMultipoleSIMD mK, int order) protected void
order1()
Hard coded tensor computation up to 1st order.protected void
order2()
Hard coded tensor computation up to 2nd order.protected void
order3()
Hard coded tensor computation up to 3rd order.protected void
order4()
Hard coded tensor computation up to 4th order.protected void
order5()
Hard coded tensor computation up to 5th order.protected void
order6()
Hard coded tensor computation up to 6th order.protected void
quadrupoleIPotentialAtK
(PolarizableMultipoleSIMD mI, int order) Compute the field components due to site I quadrupole at site K.protected void
quadrupoleKPotentialAtI
(PolarizableMultipoleSIMD mK, int order) Compute the field components due to site K quadrupole at site I.void
setR
(DoubleVector dx, DoubleVector dy, DoubleVector dz) Set the separation vector.protected void
source
(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:
setR
in 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:
source
in 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:
order1
in 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:
order2
in 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:
order3
in 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:
order4
in 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:
order5
in 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:
order6
in classMultipoleTensorSIMD
-
multipoleKPotentialAtI
- Specified by:
multipoleKPotentialAtI
in classMultipoleTensorSIMD
-
chargeKPotentialAtI
Compute the field components due to site K charge at site I.- Specified by:
chargeKPotentialAtI
in classMultipoleTensorSIMD
- Parameters:
mK
- MultipoleTensorSIMD at site K.order
- Potential order.
-
dipoleKPotentialAtI
Compute the induced dipole field components due to site K at site I.- Specified by:
dipoleKPotentialAtI
in 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:
quadrupoleKPotentialAtI
in classMultipoleTensorSIMD
- Parameters:
mK
- MultipoleTensorSIMD at site K.order
- Potential order.
-
multipoleIPotentialAtK
- Specified by:
multipoleIPotentialAtK
in classMultipoleTensorSIMD
-
chargeIPotentialAtK
Compute the field components due to site I charge at site K.- Specified by:
chargeIPotentialAtK
in classMultipoleTensorSIMD
- Parameters:
mI
- MultipoleTensorSIMD at site I.order
- Potential order.
-
dipoleIPotentialAtK
Compute the induced dipole field components due to site I at site K.- Specified by:
dipoleIPotentialAtK
in 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:
quadrupoleIPotentialAtK
in classMultipoleTensorSIMD
- Parameters:
mI
- MultipoleTensorSIMD at site I.order
- Potential order.
-