from pylgs.lgssystem import LGSSystem
import numpy as npChirped LGS
This notebook simulates atoms pumped by frequency-modulated laser light. Calculations are performed for both sinusoidal and ramp modulation. A simple two-level atomic system is assumed in order to reduce computation time.
Load a two-level LGS system and fix all parameters except for pump laser detuning.
lgs = LGSSystem(
'NaD1_Toy',
dict(
# Repump beam parameters
# DetuningHz1=0,
LaserWidthHz1=0.0e6,
IntensitySI1=5.,
# Environmental parameters
SDampingCollisionRatePerS=4081.63,
BeamTransitRatePerS=131.944,
VccRatePerS=28571.,
TemperatureK=185.,
RecoilParameter=1
)
)Solve the system with sinusoidally modulated pump detuning and plot the return flux as a function of time:
mu = dict(nu=2*np.pi*4e3)
model, sol = lgs.adaptive_stationary_floquet_model(
dict(
DetuningHz1="620e5 * sin(nu * t)",
),
np.linspace(0, 2/4e3, 200),
60,
mu_refine=mu,
rtol=.01,
)
model.reconstructed_total_flux(sol, mu).real.visualize()Plot an animation in time of the return flux as a function of atomic velocity:
model.reconstructed_flux_distribution(sol, mu).real.visualize(markers=True, xaxis_range=(-.2, .2))Plot each Fourier coefficient of the time-dependent return flux as a function of atomic velocity:
model.flux_distribution(sol, mu).real.visualize(markers=True, xaxis_range=(-.2, .2))Solve the system with linearly chirped pump detuning and plot the return flux as a function of time:
mu = dict(nu=2*np.pi*4e3)
model, sol = lgs.adaptive_stationary_floquet_model(
dict(
DetuningHz1="620e5 * 2 * (nu * t)/(2 * pi)",
),
np.linspace(0, 2/4e3, 200),
60,
mu_refine=mu,
rtol=.01,
)
model.reconstructed_total_flux(sol, mu).real.visualize()Plot an animation in time of the return flux as a function of atomic velocity:
model.reconstructed_flux_distribution(sol, mu).real.visualize(markers=True, xaxis_range=(-.2, .2))Plot each Fourier coefficient of the time-dependent return flux as a function of atomic velocity:
model.flux_distribution(sol, mu).real.visualize(markers=True, xaxis_range=(-.2, .2))