I used the ActiveRotationalDiffusion updater to simulate the rotational diffusion of a single active particle. I attempted to match the simulation results with the theoretical predictions for the velocity and orientation autocorrelation functions (see. Eq. 19 and <e(t)e(t')> https://doi.org/10.1039/D2SM00905F ), but was unsuccessful. After examining the relevant section of the code:
else // 3D: Following Stenhammar, Soft Matter, 2014
{
hoomd::SpherePointGenerator<Scalar> unit_vec;
vec3<Scalar> rand_vec;
unit_vec(rng, rand_vec);
vec3<Scalar> f(h_f_actVec.data[type].x,
h_f_actVec.data[type].y,
h_f_actVec.data[type].z);
vec3<Scalar> fi
= rotate(quati, f); // rotate active force vector from local to global frame
vec3<Scalar> aux_vec = cross(fi, rand_vec); // rotation axis
Scalar aux_vec_mag = slow::rsqrt(dot(aux_vec, aux_vec));
aux_vec *= aux_vec_mag;
Scalar delta_theta = hoomd::NormalDistribution<Scalar>(rotation_constant)(rng);
quat<Scalar> rot_quat = quat<Scalar>::fromAxisAngle(aux_vec, delta_theta);
quati = rot_quat * quati; // rotational diffusion quaternion applied to orientation
quati = quati * (Scalar(1.0) / slow::sqrt(norm2(quati)));
h_orientation.data[idx] = quat_to_scalar4(quati);
}
I am not sure whether this routine produces the correct rotational diffusion coefficient (as described in the documentation and in Ref. Stenhammar 2014). To check for potential errors on my side, I repeated the simulation using the Langevin thermostat with rotational degrees of freedom and a very small moment of inertia. In this case, the simulation produces the expected rotational diffusion coefficient.
I used the ActiveRotationalDiffusion updater to simulate the rotational diffusion of a single active particle. I attempted to match the simulation results with the theoretical predictions for the velocity and orientation autocorrelation functions (see. Eq. 19 and <e(t)e(t')> https://doi.org/10.1039/D2SM00905F ), but was unsuccessful. After examining the relevant section of the code:
I am not sure whether this routine produces the correct rotational diffusion coefficient (as described in the documentation and in Ref. Stenhammar 2014). To check for potential errors on my side, I repeated the simulation using the Langevin thermostat with rotational degrees of freedom and a very small moment of inertia. In this case, the simulation produces the expected rotational diffusion coefficient.