Atomtype::Atomtype(const Trajectory &trj, string name, float sig1, float eps1, float sig2, float eps2, float rc2, float epsfact) { float eps = epsfact * sqrt(eps1 * eps2); float sig = 0.5 * (sig1 + sig2); c6 = 4.0 * eps * pow(sig, 6); c12 = 4.0 * eps * pow(sig, 12); this->name = name; rcut2 = rc2; float ri6 = 1.0/(pow(rc2,3)); float ri3 = 1.0/(pow(sqrt(rc2),3)); n = trj.GetNAtoms(this->name); tail_factor = 4.0/3.0 * M_PI * ri3*(1.0/3.0*c12*ri6 - c6); rcut2_8 = _mm256_set1_ps(rcut2); c12_8 = _mm256_set1_ps(c12); c6_8 = _mm256_set1_ps(c6); }