|
ls1-MarDyn
ls1-MarDyn molecular dynamics code
|
Vectorized calculation of the force. More...
#include <VectorizedCellProcessor.h>
Public Types | |
| typedef std::vector< Component > | ComponentList |
Public Member Functions | |
| VectorizedCellProcessor & | operator= (const VectorizedCellProcessor &)=delete |
| VectorizedCellProcessor (Domain &domain, double cutoffRadius, double LJcutoffRadius) | |
| Construct and set up the internal parameter table. More... | |
| void | initTraversal () |
| Reset macroscopic values to 0.0. More... | |
| void | preprocessCell (ParticleCell &) |
| Load the CellDataSoA for cell. More... | |
| double | processSingleMolecule (Molecule *, ParticleCell &) |
| void | processCell (ParticleCell &cell) |
| Calculate forces between pairs of Molecules in cell. More... | |
| void | processCellPair (ParticleCell &cell1, ParticleCell &cell2, bool sumAll=false) |
| void | postprocessCell (ParticleCell &) |
| Free the LennardJonesSoA for cell. More... | |
| void | endTraversal () |
| Store macroscopic values in the Domain. More... | |
| template<bool calculateMacroscopic> | |
| vcp_inline void | _loopBodyLJ (const RealCalcVec &m1_r_x, const RealCalcVec &m1_r_y, const RealCalcVec &m1_r_z, const RealCalcVec &r1_x, const RealCalcVec &r1_y, const RealCalcVec &r1_z, const RealCalcVec &m2_r_x, const RealCalcVec &m2_r_y, const RealCalcVec &m2_r_z, const RealCalcVec &r2_x, const RealCalcVec &r2_y, const RealCalcVec &r2_z, RealCalcVec &f_x, RealCalcVec &f_y, RealCalcVec &f_z, RealAccumVec &V_x, RealAccumVec &V_y, RealAccumVec &V_z, RealAccumVec &sum_upot6lj, RealAccumVec &sum_virial, const MaskCalcVec &forceMask, const RealCalcVec &eps_24, const RealCalcVec &sig2, const RealCalcVec &shift6) |
| template<bool calculateMacroscopic> | |
| vcp_inline void | _loopBodyCharge (const RealCalcVec &m1_r_x, const RealCalcVec &m1_r_y, const RealCalcVec &m1_r_z, const RealCalcVec &r1_x, const RealCalcVec &r1_y, const RealCalcVec &r1_z, const RealCalcVec &qii, const RealCalcVec &m2_r_x, const RealCalcVec &m2_r_y, const RealCalcVec &m2_r_z, const RealCalcVec &r2_x, const RealCalcVec &r2_y, const RealCalcVec &r2_z, const RealCalcVec &qjj, RealCalcVec &f_x, RealCalcVec &f_y, RealCalcVec &f_z, RealAccumVec &V_x, RealAccumVec &V_y, RealAccumVec &V_z, RealAccumVec &sum_upotXpoles, RealAccumVec &sum_virial, const MaskCalcVec &forceMask) |
| template<bool calculateMacroscopic> | |
| vcp_inline void | _loopBodyChargeDipole (const RealCalcVec &m1_r_x, const RealCalcVec &m1_r_y, const RealCalcVec &m1_r_z, const RealCalcVec &r1_x, const RealCalcVec &r1_y, const RealCalcVec &r1_z, const RealCalcVec &q, const RealCalcVec &m2_r_x, const RealCalcVec &m2_r_y, const RealCalcVec &m2_r_z, const RealCalcVec &r2_x, const RealCalcVec &r2_y, const RealCalcVec &r2_z, const RealCalcVec &e_x, const RealCalcVec &e_y, const RealCalcVec &e_z, const RealCalcVec &p, RealCalcVec &f_x, RealCalcVec &f_y, RealCalcVec &f_z, RealAccumVec &V_x, RealAccumVec &V_y, RealAccumVec &V_z, RealAccumVec &M_x, RealAccumVec &M_y, RealAccumVec &M_z, RealAccumVec &sum_upotXpoles, RealAccumVec &sum_virial, const MaskCalcVec &forceMask) |
| template<bool calculateMacroscopic> | |
| vcp_inline void | _loopBodyDipole (const RealCalcVec &m1_r_x, const RealCalcVec &m1_r_y, const RealCalcVec &m1_r_z, const RealCalcVec &r1_x, const RealCalcVec &r1_y, const RealCalcVec &r1_z, const RealCalcVec &eii_x, const RealCalcVec &eii_y, const RealCalcVec &eii_z, const RealCalcVec &pii, const RealCalcVec &m2_r_x, const RealCalcVec &m2_r_y, const RealCalcVec &m2_r_z, const RealCalcVec &r2_x, const RealCalcVec &r2_y, const RealCalcVec &r2_z, const RealCalcVec &ejj_x, const RealCalcVec &ejj_y, const RealCalcVec &ejj_z, const RealCalcVec &pjj, RealCalcVec &f_x, RealCalcVec &f_y, RealCalcVec &f_z, RealAccumVec &V_x, RealAccumVec &V_y, RealAccumVec &V_z, RealAccumVec &M1_x, RealAccumVec &M1_y, RealAccumVec &M1_z, RealAccumVec &M2_x, RealAccumVec &M2_y, RealAccumVec &M2_z, RealAccumVec &sum_upotXpoles, RealAccumVec &sum_virial, RealAccumVec &sum_myRF, const MaskCalcVec &forceMask, const RealCalcVec &epsRFInvrc3) |
| template<bool calculateMacroscopic> | |
| vcp_inline void | _loopBodyChargeQuadrupole (const RealCalcVec &m1_r_x, const RealCalcVec &m1_r_y, const RealCalcVec &m1_r_z, const RealCalcVec &r1_x, const RealCalcVec &r1_y, const RealCalcVec &r1_z, const RealCalcVec &q, const RealCalcVec &m2_r_x, const RealCalcVec &m2_r_y, const RealCalcVec &m2_r_z, const RealCalcVec &r2_x, const RealCalcVec &r2_y, const RealCalcVec &r2_z, const RealCalcVec &ejj_x, const RealCalcVec &ejj_y, const RealCalcVec &ejj_z, const RealCalcVec &m, RealCalcVec &f_x, RealCalcVec &f_y, RealCalcVec &f_z, RealAccumVec &V_x, RealAccumVec &V_y, RealAccumVec &V_z, RealAccumVec &M_x, RealAccumVec &M_y, RealAccumVec &M_z, RealAccumVec &sum_upotXpoles, RealAccumVec &sum_virial, const MaskCalcVec &forceMask) |
| template<bool calculateMacroscopic> | |
| vcp_inline void | _loopBodyDipoleQuadrupole (const RealCalcVec &m1_r_x, const RealCalcVec &m1_r_y, const RealCalcVec &m1_r_z, const RealCalcVec &r1_x, const RealCalcVec &r1_y, const RealCalcVec &r1_z, const RealCalcVec &eii_x, const RealCalcVec &eii_y, const RealCalcVec &eii_z, const RealCalcVec &p, const RealCalcVec &m2_r_x, const RealCalcVec &m2_r_y, const RealCalcVec &m2_r_z, const RealCalcVec &r2_x, const RealCalcVec &r2_y, const RealCalcVec &r2_z, const RealCalcVec &ejj_x, const RealCalcVec &ejj_y, const RealCalcVec &ejj_z, const RealCalcVec &m, RealCalcVec &f_x, RealCalcVec &f_y, RealCalcVec &f_z, RealAccumVec &V_x, RealAccumVec &V_y, RealAccumVec &V_z, RealAccumVec &M1_x, RealAccumVec &M1_y, RealAccumVec &M1_z, RealAccumVec &M2_x, RealAccumVec &M2_y, RealAccumVec &M2_z, RealAccumVec &sum_upotXpoles, RealAccumVec &sum_virial, const MaskCalcVec &forceMask) |
| template<bool calculateMacroscopic> | |
| vcp_inline void | _loopBodyQuadrupole (const RealCalcVec &m1_r_x, const RealCalcVec &m1_r_y, const RealCalcVec &m1_r_z, const RealCalcVec &r1_x, const RealCalcVec &r1_y, const RealCalcVec &r1_z, const RealCalcVec &eii_x, const RealCalcVec &eii_y, const RealCalcVec &eii_z, const RealCalcVec &mii, const RealCalcVec &m2_r_x, const RealCalcVec &m2_r_y, const RealCalcVec &m2_r_z, const RealCalcVec &r2_x, const RealCalcVec &r2_y, const RealCalcVec &r2_z, const RealCalcVec &ejj_x, const RealCalcVec &ejj_y, const RealCalcVec &ejj_z, const RealCalcVec &mjj, RealCalcVec &f_x, RealCalcVec &f_y, RealCalcVec &f_z, RealAccumVec &V_x, RealAccumVec &V_y, RealAccumVec &V_z, RealAccumVec &Mii_x, RealAccumVec &Mii_y, RealAccumVec &Mii_z, RealAccumVec &Mjj_x, RealAccumVec &Mjj_y, RealAccumVec &Mjj_z, RealAccumVec &sum_upotXpoles, RealAccumVec &sum_virial, const MaskCalcVec &forceMask) |
Public Member Functions inherited from CellProcessor | |
| CellProcessor (const double cutoffRadius, const double LJCutoffRadius) | |
| virtual | ~CellProcessor () |
| double | getCutoffRadius () const |
| double | getLJCutoffRadius () const |
| void | setCutoffRadius (const double c) |
| void | setLJCutoffRadius (const double ljc) |
| double | getCutoffRadiusSquare () const |
| double | getLJCutoffRadiusSquare () const |
| void | setCutoffRadiusSquare (const double c) |
| void | setLJCutoffRadiusSquare (const double ljc) |
Friends | |
| class | VCP1CLJRMMTest |
Additional Inherited Members | |
Protected Attributes inherited from CellProcessor | |
| double | _cutoffRadiusSquare |
| double | _LJCutoffRadiusSquare |
Vectorized calculation of the force.
| VectorizedCellProcessor::VectorizedCellProcessor | ( | Domain & | domain, |
| double | cutoffRadius, | ||
| double | LJcutoffRadius | ||
| ) |
Construct and set up the internal parameter table.
Components and parameters should be finalized before this call.
|
virtual |
Store macroscopic values in the Domain.
Implements CellProcessor.
|
virtual |
Reset macroscopic values to 0.0.
Implements CellProcessor.
|
inlinevirtual |
Free the LennardJonesSoA for cell.
Implements CellProcessor.
|
inlinevirtual |
Load the CellDataSoA for cell.
Implements CellProcessor.
|
virtual |
Calculate forces between pairs of Molecules in cell.
Implements CellProcessor.
|
virtual |
Called for each cell pair within the cutoff radius. Called exactly once per pair (i.e. pairs are not ordered).
Implements CellProcessor.
|
inlinevirtual |
Implements CellProcessor.