PySciBlog

Python is under investigation of future

Чисельное решение системы уравнений Статца-де Марса для ND:YAG лазера

Вступление

В этом посте я постараюсь расказать как посчитать балансно кинетические уравнения для ND:YAG лазера. Замечу, что здесь не будет расчитываться дипольная матрица переходов. Также для нахождения коэфициентов Эйнштейна я использую диполное приближение


Схема энергетических уровней ND:YAG лазера

Теория

Пусть \(N_1, N_2, N_3\) населенности первых 3-ох уровней. Для ND:YAG лазера время переходов между 3 и 4 уровнями незначительное, поэтому им можно пренебречь, и положить \(N_4=0\). Исходя из этого схема превратиться в 3-ох уровневую. Изменение населенностей для первого уровня запишем как:

\[\frac{dN_1}{dt} = -w_p N_1(t) + w_{21} N_2(t)\tag{1}\]

Второй уровень в даной системе есть нижним енергентическим уровнем перехода на нем осусчествляесть генерация излучения. Из-за этого необходимо ввести плотность энергии этой волны \(U(t)\). Запишем второе уравнение:

\[\frac{dN_2}{dt}=-w_{21} N_2{t} + w_{32} N_3(t) - w_i N_2(t) U(t) + w_i N_3(t) U(t)\tag{2}\]

В данных уравнениях константа \(w_i\) отвечает коэфициентам Эйнштейна для вынужденых переходов \(B_{23}=B_{32}\). Для уровня 3:

\[\frac{dN_3}{dt}=-w_{32} N_3{t} + w_{p} N_1(t) + w_i N_2(t) U(t) - w_i N_3(t) U(t)\tag{3}\]

После некоторых упрощений запишем систему балансно кинетических уравнений

\[\begin{cases}\dot{N}= (w_{p}+w_{32}-\frac{1}{2}w_{21})N_{1}+\frac{1}{2}w_{21}(N_{V}-N)-w_{32}(N_{V}+N)-2w_{i}\\ \dot{N_{1}}=(w_{p}+\frac{1}{2}w_{21})N_{1}+\frac{1}{2}w_{21}(N_{V}-N)\\ \dot{U} = - \frac{U}{\tau_{c}} + w_{i} N U \end{cases}\tag{4}\]

где \(w_p=w_{13}\) - скорость накачки, \(\tau_c = \frac{Q\lambda}{2 \pi c}\)- время жизни фотона в резонаторе, \(Q\) - добротность резонатора.

In [2]:
%pylab inline
from ipywidgets import StaticInteract,RangeWidget
import matplotlib.gridspec as gridspec
import warnings
warnings.filterwarnings('ignore')
Populating the interactive namespace from numpy and matplotlib

In [3]:
def kinetic_system(aw21,atc,awp): 
    
    Nv=0.3*10**20
    w32=1.0/(0.23*10**-3)
    w21=aw21*w32*10**3
    wi=(1.8*10**-11)
    tc=atc*10**-9
    wp=awp*10**6

    N0=(wi*tc)**-1
    Ns=Nv*(wp/(wp+w32))
    t0=(2*wp+w21)/(wp*w21+w21*w32+wp*w32)
    U0=tc/t0*(Ns-N0)

    N=0;N1=Nv;U=U0*10**-20

    def Nf(N,N1,Nv,U,wp,w32,w21,wi):
        return (wp+w32-0.5*w21)*N1+0.5*w21*(Nv-N)-w32*(Nv+N)-2*wi*N*U
    def Nf1(N,N1,Nv,wp,w21): 
        return -(wp+0.5*w21)*N1+0.5*w21*(Nv-N)
    def Uf(N,U,tc,wi):
        return -U/tc+wi*N*U

    t=linspace(0,1,600)

    dx=0.00000001
    Na=[];Ua=[]
    for i in range(len(t)):
        Na+=[N];Ua+=[U]
        N+=dx*Nf(N,N1,Nv,U,wp,w32,w21,wi)
        N1+=dx*Nf1(N,N1,Nv,wp,w21)
        U+=dx*Uf(N,U,tc,wi)
        
    gs = gridspec.GridSpec(2, 1)
    fig=figure()
    ax1=fig.add_subplot(gs[0])
    axhline(y=1,linewidth=2,color='g',linestyle='--')
    plot(t,array(Na)/N0)
    ax2=fig.add_subplot(gs[1])
    plot(t,array(Ua)/U0)
    ax1.set_ylabel(r'$\frac{N}{N_{0}}$',fontsize=16)
    ax2.set_ylabel(r'$\frac{U}{U_{0}}$',fontsize=16)
    ax2.set_xlabel('$t$',fontsize=16)
    return fig
In [18]:
StaticInteract(kinetic_system,
         aw21=RangeWidget(0.3, 1, 0.1, description='$w_{21}$'),
         atc=RangeWidget(2, 6, 1, description='$t_c$'),
         awp=RangeWidget(4.7, 5, 0.1,  description='$w_p$'))
Out[18]:
$t_c$
$w_{21}$
$w_p$
In []:
    

In this post I try to show how calculate Stanz deMars(knetic balance) equation for HeNe laser.

At first i must say that I willnot not be compose dipole matrix, i just use dipole aproximation for finding Einshein coefficients.