def __init__(self, stepSize, loops, temperature, timeScale, frictionConstant, **kwargs): L = kwargs.pop('L', 1) isoF = propagators.MassiveIsokineticPropagator(temperature, timeScale, L, forceDependent=True) isoN = propagators.MassiveIsokineticPropagator(temperature, timeScale, L, forceDependent=False) v1 = ['v1_{}'.format(i) for i in range(L)] v2 = ['v2_{}'.format(i) for i in range(L)] DOU = propagators.OrnsteinUhlenbeckPropagator( temperature, frictionConstant, v2[0], 'Q2', 'Q1*{}^2 - kT'.format(v1[0]), Q2=kB * temperature * timeScale**2) for i in range(1, L): New = propagators.OrnsteinUhlenbeckPropagator( temperature, frictionConstant, v2[i], 'Q2', 'Q1*{}^2 - kT'.format(v1[i]), Q2=kB * temperature * timeScale**2) DOU = propagators.ChainedPropagator(DOU, New) bath = propagators.TrotterSuzukiPropagator(DOU, isoN) super().__init__(stepSize, loops, None, isoF, bath, **kwargs)
def __init__(self, stepSize, loops, temperature, timeScale, frictionConstant, **kwargs): L = kwargs.pop('L', 1) self._massive = kwargs.pop('massive', True) newF = propagators.NewMethodPropagator(temperature, timeScale, L, forceDependent=True) newN = propagators.NewMethodPropagator(temperature, timeScale, L, forceDependent=False) mass = 'Q_eta' if self._massive else 'NDOF*Q_eta' force = ('{}*m*v*v - kT' if self._massive else '{}*mvv - NDOF*kT').format((L + 1) / L) DOU = propagators.OrnsteinUhlenbeckPropagator( temperature, frictionConstant, 'v_eta', mass, force, overall=(not self._massive), Q_eta=L * kB * temperature * timeScale**2) bath = propagators.TrotterSuzukiPropagator(DOU, newN) super().__init__(stepSize, loops, None, newF, bath, **kwargs)
def __init__(self, stepSize, loops, temperature, frictionConstant, **kwargs): bath = propagators.OrnsteinUhlenbeckPropagator(temperature, frictionConstant, 'v', 'm', kT=kB * temperature) super().__init__(stepSize, loops, None, None, bath, **kwargs)
def __init__(self, stepSize, loops, temperature, timeScale, frictionConstant, **kwargs): scaling = propagators.GenericScalingPropagator('v', 'v2') DOU = propagators.OrnsteinUhlenbeckPropagator(temperature, frictionConstant, 'v2', 'Q2', 'm*v^2 - kT', Q2=kB * temperature * timeScale**2, kT=kB * temperature) bath = propagators.TrotterSuzukiPropagator(DOU, scaling) super().__init__(stepSize, loops, None, None, bath, **kwargs)