|
Pteros
2.0
Molecular modeling library for human beings!
|
33 #include <unordered_set>
34 #include <unordered_map>
79 float rcoulomb, epsilon_r, epsilon_rf, rcoulomb_switch, rvdw_switch, rvdw;
80 std::string coulomb_type, coulomb_modifier, vdw_type, vdw_modifier;
83 std::vector<Eigen::Vector2i>
bonds;
86 std::vector<Eigen::Vector2i> molecules;
98 float coulomb_prefactor, k_rf, c_rf;
100 Eigen::Vector3f shift_1, shift_6, shift_12;
115 void setup_kernels();
119 Eigen::Vector2f pair_energy(
int at1,
int at2,
float r,
float q1,
float q2,
int type1,
int type2);
float(* LJ_kernel_ptr)(float, float, float, const ForceField &)
Pointer to chosen VDW kernel.
Definition: force_field.h:95
float fudgeQQ
Scaling factor of 1-4 Coulomb interactions.
Definition: force_field.h:77
std::vector< Eigen::Vector2f > LJ14_interactions
The list of distinct types of LJ14 interactions in the format [C6,C12].
Definition: force_field.h:69
std::vector< std::unordered_set< int > > exclusions
Exclusions.
Definition: force_field.h:60
ForceField()
Constructor.
Definition: force_field.cpp:213
ForceField & operator=(ForceField other)
Assignment operator.
Definition: force_field.cpp:241
std::vector< Eigen::Vector2i > bonds
Bonds.
Definition: force_field.h:83
Force field parameters of the system.
Definition: force_field.h:53
float(* coulomb_kernel_ptr)(float, float, float, const ForceField &)
Pointer to chosen coulomb kernel.
Definition: force_field.h:92
Eigen::MatrixXf LJ_C6
Matrices of normal (not excluded, not 1-4) LJ interactions.
Definition: force_field.h:66
float get_cutoff()
Returns "natural" cutoff (currenly min of rcoulomb and rvdw)
Definition: force_field.cpp:209
std::unordered_map< int, int > LJ14_pairs
The list of LJ14 pairs.
Definition: force_field.h:74
bool ready
Is the force field properly set up?
Definition: force_field.h:89