36#ifdef ESPRESSO_GAY_BERNE
62 auto const chi1 =
ia_params.gay_berne.chi1;
63 auto const chi2 =
ia_params.gay_berne.chi2;
67 auto const dui = d *
ui;
68 auto const duj = d *
uj;
69 auto const rui = r *
ui;
70 auto const ruj = r *
uj;
83 auto const e1 = 1. / (1. - sqr(chi1 *
uij));
84 auto const e2 = 1. - 0.5 *
Brhi2;
87 auto const s1 = 1. / sqrt(1. - 0.5 *
Brhi1);
88 auto const s =
s0 *
s1;
147 auto const chi1 =
ia_params.gay_berne.chi1;
148 auto const chi2 =
ia_params.gay_berne.chi2;
154 auto const rui = r *
ui;
155 auto const ruj = r *
uj;
162 auto const e1 = std::pow(1. - sqr(chi1 *
uij), -0.5 * nu);
163 auto const e2 = std::pow(1. - 0.5 * chi2 * (
t1 +
t2), mu);
166 auto const s1 = 1. / std::sqrt(1. - 0.5 * chi1 * (
o1 +
o2));
167 auto const s =
s0 *
s1;
169 auto r_eff = [=](
double r) {
return (r - s +
s0) /
s0; };
170 auto E = [=](
double r) {
Vector implementation and trait types for boost qvm interoperability.
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
__device__ void vector_product(float const *a, float const *b, float *out)
double gb_pair_energy(Utils::Quaternion< double > const &qi, Utils::Quaternion< double > const &qj, IA_parameters const &ia_params, Utils::Vector3d const &d, double dist)
Calculate Gay-Berne energy.
ParticleForce gb_pair_force(Utils::Vector3d const &ui, Utils::Vector3d const &uj, IA_parameters const &ia_params, Utils::Vector3d const &d, double dist)
Calculate Gay-Berne force and torques.
Vector< T, 3 > convert_quaternion_to_director(Quaternion< T > const &quat)
Convert quaternion to director.
DEVICE_QUALIFIER constexpr T sqr(T x)
Calculates the SQuaRe of x.
DEVICE_QUALIFIER constexpr T int_pow(T x)
Calculate integer powers.
Various procedures concerning interactions between particles.
Quaternion implementation and trait types for boost qvm interoperability.
Parameters for non-bonded interactions.
Force information on a particle.
Quaternion representation.