45#ifndef NONBONDED_NONBONDEDINTERACTION_HPP
46#define NONBONDED_NONBONDEDINTERACTION_HPP
51#include "types/AtomType.hpp"
73 N_INTERACTION_FAMILIES = 7
82 const static int LJ_INTERACTION = (1 << 1);
83 const static int EAM_INTERACTION = (1 << 2);
84 const static int SC_INTERACTION = (1 << 3);
85 const static int STICKY_INTERACTION = (1 << 4);
86 const static int GB_INTERACTION = (1 << 5);
87 const static int MORSE_INTERACTION = (1 << 6);
88 const static int REPULSIVEPOWER_INTERACTION = (1 << 7);
89 const static int MAW_INTERACTION = (1 << 8);
90 const static int MIE_INTERACTION = (1 << 9);
91 const static int BUCKINGHAM_INTERACTION = (1 << 10);
92 const static int INVERSEPOWERSERIES_INTERACTION = (1 << 11);
203 virtual int getHash() = 0;
204 virtual RealType getSuggestedCutoffRadius(
205 pair<AtomType*, AtomType*> atypes) = 0;
206 virtual string getName() = 0;
209 using NonBondedInteractionPtr = std::shared_ptr<NonBondedInteraction>;
228 virtual void calcSelfCorrection(
SelfData& sdat) = 0;
241 virtual void calcFunctional(
SelfData& sdat) = 0;
The basic interface for electrostatic interactions.
The basic interface for hydrogen bonding interactions.
The basic interface for non-bonded interactions.
The basic interface for van der Waals interactions.
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.
static const int ELECTROSTATIC_INTERACTION
Boolean flags for the iHash_ and sHash_ data structures.
InteractionFamily
The InteractionFamily enum.
@ HYDROGENBONDING_FAMILY
Short-range directional interactions.
@ VANDERWAALS_FAMILY
Long-range dispersion and short-range pauli repulsion.
@ NO_FAMILY
No family defined.
@ METALLIC_EMBEDDING_FAMILY
Transition metal interactions involving electron density.
@ BONDED_FAMILY
directly bonded 1-2, 1-3, or 1-4 interactions
@ METALLIC_PAIR_FAMILY
Transition metal interactions involving pair potentials.
@ ELECTROSTATIC_FAMILY
Coulombic and point-multipole interactions.
The InteractionData struct.
bool shiftedPot
shift the potential up inside the cutoff?
Vector3d d
interatomic vector (already wrapped into box)
RealType sPot2
site potential on second atom
Vector3d D_1
dipole vector of first atom
RealType skippedCharge1
charge skipped on atom1 in pairwise interaction loop with atom2
RealType dVdFQ1
fluctuating charge force on atom1
RealType dVdFQ2
fluctuating charge force on atom2
RealType particlePot2
particle potential for atom2
RealType electroMult
multiplier for electrostatic interactions
int atid1
atomType ident for atom 1
potVec pot
total potential
potVec selePot
potential energies of the selected sites
RealType flucQ2
fluctuating charge on atom2
bool sameRegion
are these atoms specified to be in the same region?
bool excluded
is this excluded from direct pairwise interactions? (some indirect interactions may still apply)
RealType rho2
total electron density at second atom
RealType sw
switching function value at rij
Vector3d eField1
electric field on first atom
RotMat3x3d A2
rotation matrix of second atom
bool isSelected
one of the particles has been selected for selection potential
RotMat3x3d A1
rotation matrix of first atom
bool doElectricField
should we bother with the electric field?
RealType flucQ1
fluctuating charge on atom1
Mat3x3d Q_2
quadrupole tensor of first atom
Vector3d eField2
electric field on second atom
Vector3d t1
torque on first atom
Vector3d t2
torque on second atom
RealType vpair
pair potential
RealType sPot1
site potential on first atom
int atid2
atomType ident for atom 2
bool doSitePotential
should we bother with electrostatic site potential
bool shiftedForce
shifted forces smoothly inside the cutoff?
int topoDist
topological distance between atoms
RealType rcut
cutoff radius for this interaction
Vector3d D_2
dipole vector of first atom
RealType skippedCharge2
charge skipped on atom2 in pairwise interaction loop with atom1
RealType dfrho2
derivative of functional for atom 2
potVec excludedPot
potential energy excluded from the overall calculation
RealType vdwMult
multiplier for van der Waals interactions
RealType frho2
density functional at second atom
bool doParticlePot
should we bother with the particle pot?
RealType dfrho1
derivative of functional for atom 1
Mat3x3d Q_1
quadrupole tensor of first atom
RealType frho1
density functional at first atom
Vector3d f1
force between the two atoms
RealType rij
interatomic separation
RealType particlePot1
particle potential for atom1
RealType rho1
total electron density at first atom
potVec selePot
potential energy of the selected site
RealType flucQfrc
fluctuating charge derivative
RealType frho
value of density functional for atom
RealType dfrhodrho
derivative of density functional for atom
potVec selfPot
total potential (including embedding energy)
RealType particlePot
contribution to potential from this particle
RealType rho
electron density
bool isSelected
this site has been selected for selection potential
RealType flucQ
current value of atom's fluctuating charge
RealType skippedCharge
charge skipped in pairwise interaction loop
bool doParticlePot
should we bother with the particle pot?
int atid
atomType ident for the atom