80 template <
typename T>
double operator()(T
const &protocol)
const {
81 return protocol.pos_offset(m_time);
96 template <
typename T>
double operator()(T
const &protocol)
const {
97 return protocol.shear_velocity(m_time);
Vector implementation and trait types for boost qvm interoperability.
double operator()(T const &protocol) const
PosOffsetGetter(double time)
Visitor to get shear velocity from the Lees-Edwards protocol.
double operator()(T const &protocol) const
ShearVelocityGetter(double time)
std::variant< Off, LinearShear, OscillatoryShear > ActiveProtocol
Type which holds the currently active protocol.
double get_shear_velocity(double time, ActiveProtocol const &protocol)
Calculation of current velocity.
double get_pos_offset(double time, ActiveProtocol const &protocol)
Lees-Edwards protocol for linear shearing.
double m_initial_pos_offset
double pos_offset(double time) const
double shear_velocity(double) const
LinearShear(double initial_offset, double shear_velocity, double time_0)
Lees-Edwards protocol for un-altered periodic boundary conditions.
double pos_offset(double) const
double shear_velocity(double) const
Lees-Edwards protocol for oscillatory shearing.
double m_initial_pos_offset
double shear_velocity(double time) const
OscillatoryShear(double initial_offset, double amplitude, double omega, double time_0)
double pos_offset(double time) const