6767#include " errorhandling.hpp"
6868#include " exclusions.hpp"
6969#include " thermostat.hpp"
70+ #ifdef NPT
71+ #include " npt.hpp"
72+ #endif
7073
7174#include < utils/Vector.hpp>
7275
@@ -140,20 +143,6 @@ inline Utils::Vector3d calc_central_radial_force(IA_parameters const &ia_params,
140143 return force_factor * d;
141144}
142145
143- inline ParticleForce calc_non_central_force (Particle const &p1,
144- Particle const &p2,
145- IA_parameters const &ia_params,
146- Utils::Vector3d const &d,
147- double const dist) {
148-
149- ParticleForce pf{};
150- /* Gay-Berne */
151- #ifdef GAY_BERNE
152- pf += gb_pair_force (p1.quat (), p2.quat (), ia_params, d, dist);
153- #endif
154- return pf;
155- }
156-
157146inline void apply_opposing_force (ParticleForce &pf, Utils::Vector3d const &d) {
158147#ifdef ROTATION
159148 // if torque is a null vector, the opposing torque is a null vector too
@@ -203,11 +192,11 @@ inline void add_non_bonded_pair_force(
203192 if (do_nonbonded (p1, p2)) {
204193#endif
205194 pf.f += calc_central_radial_force (ia_params, d, dist);
206- #ifdef THOLE
207- pf.f += thole_pair_force (p1, p2, ia_params, d, dist, bonded_ias,
208- coulomb_kernel);
195+ #ifdef GAY_BERNE
196+ if (gb_active (ia_params)) {
197+ pf += gb_pair_force (p1.quat (), p2.quat (), ia_params, d, dist);
198+ }
209199#endif
210- pf += calc_non_central_force (p1, p2, ia_params, d, dist);
211200#ifdef EXCLUSIONS
212201 }
213202#endif
@@ -219,7 +208,9 @@ inline void add_non_bonded_pair_force(
219208 /* electrostatic is calculated by energy */
220209 /* ********************************************************************/
221210#ifdef NPT
222- npt_add_virial_force_contribution (pf.f , d);
211+ if (npt_active ()) {
212+ npt_add_virial_force_contribution (pf.f , d);
213+ }
223214#endif
224215
225216 /* **********************************************/
@@ -231,9 +222,15 @@ inline void add_non_bonded_pair_force(
231222 auto const q1q2 = p1.q () * p2.q ();
232223 if (q1q2 != 0 . and coulomb_kernel != nullptr ) {
233224 pf.f += (*coulomb_kernel)(q1q2, d, dist);
225+ #ifdef THOLE
226+ pf.f += thole_pair_force (p1, p2, ia_params, d, dist, bonded_ias,
227+ coulomb_kernel);
228+ #endif
234229#ifdef NPT
235- npt_add_virial_diagonalSum_contribution (
236- (*coulomb_u_kernel)(p1, p2, q1q2, d, dist));
230+ if (npt_active ()) {
231+ npt_add_virial_diagonalSum_contribution (
232+ (*coulomb_u_kernel)(p1, p2, q1q2, d, dist));
233+ }
237234#endif
238235#ifdef P3M
239236 if (elc_kernel)
@@ -345,7 +342,9 @@ inline bool add_bonded_two_body_force(
345342 p2.force () -= result.value ();
346343
347344#ifdef NPT
348- npt_add_virial_force_contribution (result.value (), dx);
345+ if (npt_active ()) {
346+ npt_add_virial_force_contribution (result.value (), dx);
347+ }
349348#endif
350349 return false ;
351350 }
0 commit comments