Home-made stochastic integrators#

Implements homemade integrators for stochastic systems, that is, taking into account fluctuations due to photon scattering

class atomsmltr.simulation.simulator.stochastic.EulerSt(config: Configuration = None, enable_fluct: bool = True)[source]#

Bases: CustomSimulationBase

A homemade simulator based on simple Euler integration method, taking into account spontaneous emission.

Parameters:
  • config (Configuration, optional) – the configuration to consider for the simulation

  • enable_fluct (Boolean, optional (default=True)) – if set to True, fluctations are enabled. Otherwise, the simulator boils down to a deterministic Euler simulator

References

TODO: put here

class atomsmltr.simulation.simulator.stochastic.RK4St(config: Configuration = None)[source]#

Bases: CustomSimulationBase

A homemade simulator based on fourth order Runge-Kutta method, taking into account spontaneous emission.

Parameters:

config (Configuration, optional) – the configuration to consider for the simulation

References

https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods

atomsmltr.simulation.simulator.stochastic.random_unit_vector(shape=(1,))[source]#

Generates a random unit vector

Parameters:

shape (tuple, optional) – shape of the output will be (**shape, 3), by default (1,)

Returns:

vec – the random unit vector

Return type:

array