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) |
![]() | |
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 | |
![]() | |
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.