phase match KDP

define constants, dispersion

constants: internal units um, fs,degrees

ns=(10^6);ps=1000; fs=1;
nm=.001;mm=1000;um=1;
c=0.3;

define a general form for the Sellmeier dispersion equation (these empirical equations are not always formatted this way).
the equation assumes the wavelength is in microns.

indexSellmeier[lambda_,aA_,bB_,cC_,dD_,eE_]:=(Sqrt[aA+((bB (lambda^2))/((lambda^2)-cC))+(dD/((lambda^2)-eE))])

KD*P: deuterated KDP

aoDKDP=2.2409;
boDKDP=2.2470;
coDKDP=126.9205;
doDKDP=0.0097;
eoDKDP=0.0156;
aeDKDP=2.1260;
beDKDP=0.7844;
ceDKDP=123.4032;
deDKDP=0.0086;
eeDKDP=0.0120;

no[λ_]=indexSellmeier[λ,aoDKDP,boDKDP,coDKDP,doDKDP,eoDKDP];
ne[λ_]=indexSellmeier[λ,aeDKDP,beDKDP,ceDKDP,deDKDP,eeDKDP];
netheta[λ_,θ_]=(Sqrt[1/((((Cos[θ Degree])^2)/((no[λ])^2))+(((Sin[θ Degree])^2)/((ne[λ])^2)))]);

KDP

aoKDP=2.259276;
boKDP=13.00522;
coKDP=400;
doKDP=0.01008956;
eoKDP=0.012942625;
aeKDP=2.132668;
beKDP=3.2279924;
ceKDP=400;
deKDP=0.008637494;
eeKDP=0.012281043;

no[λ_]=indexSellmeier[λ,aoDKDP,boDKDP,coDKDP,doDKDP,eoDKDP];
ne[λ_]=indexSellmeier[λ,aeDKDP,beDKDP,ceDKDP,deDKDP,eeDKDP];
netheta[λ_,θ_]=(Sqrt[1/((((Cos[θ Degree])^2)/((no[λ])^2))+(((Sin[θ Degree])^2)/((ne[λ])^2)))]);

BBO Sellmeier equations (from Casix, lambda in microns, theta in degrees)

no[lambda_]=Sqrt[2.7359+0.01878/(lambda^2-0.01822)-0.01354 lambda^2];
ne[lambda_]=Sqrt[2.3753+0.01224/(lambda^2-0.01667)-0.01516 lambda^2];
netheta[lambda_,theta_]=Sqrt[1/(Cos[theta (2 Pi/360)]^2/no[lambda]^2
				+Sin[theta (2 Pi/360)]^2/ne[lambda]^2)];

phase matching angles and group velocity walkoff

Type I

In Type I, the fundamental travels as an ordinary wave and the harmonic as an extraordinary wave, so the phases (and group delay) of each should be treated accordingly.  The group delay is dphi=d(phi)/dw. (Type I)

phiEwave[λ_,θ_,len_]=((2 π)/λ)  netheta[λ,θ] len;
phiOwave[λ_,len_]=((2 π)/λ)  no[λ] len;
dphiEwave[λ_,θ_,len_]=-((λ^2)/(2 π c)) D[phiEwave[λ,θ,len],λ];
dphiOwave[λ_,len_]=-((λ^2)/(2 π c)) D[phiOwave[λ,len],λ];
groupDelay[λ_,θ_,len_]=dphiEwave[λ/2,θ,len]-dphiOwave[λ,len];

Find phase-matching angle for negative uniaxial crystal, where no(fundamental)=ne(SH).

λFund=1 um;θTst=36;
Plot[{no[λFund],netheta[((λFund)/2),θ]},{θ,0,90},
PlotRange->All,PlotStyle->{Red,Green}]
θroot=FindRoot[no[λFund]-netheta[((λFund)/2),θ]==0,{θ,θTst}];
θpmI=θ/.θroot;
Print["phase matching angle: ",θpmI," deg"];

cryLen=1mm;
Print[" for a crystal length of: ",cryLen/mm," mm, the relative group delay is: ",groupDelay[λFund,θpmI,cryLen]/fs," fs"];

Plot[{(dphiEwave[λFund/2,theta,cryLen]-dphiOwave[λFund,cryLen])/fs},{theta,0,90}]

type II doubling: shortest wavelength to double is .75 um

λFund=1 um;θTst=36;
Plot[{
no[λFund]+netheta[λFund,θ],
2 netheta[((λFund)/2),θ]
},{θ,0,90},PlotRange->All,PlotStyle->{Red,Green}]
θroot=FindRoot[no[λFund]+netheta[λFund,θ]-2 netheta[((λFund)/2),θ]==0,{θ,θTst}];
θpmII=θ/.θroot;
Print["optimum phase matching angle (Type II) ",θpmII," degrees"];

Walkoff - The group delay in fs for a 1 mm crystal would be:

cryLen=1mm;
Print["For a crystal length of: ",cryLen/mm," mm"];
Print["the relative group delay is: ",
(dphiEwave[λFund/2,θpmII,cryLen]-dphiOwave[λFund,cryLen])/fs," fs between the E wave harmonic and the O wave fundamental"];
Print["the relative group delay is: ",
(dphiEwave[λFund/2,θpmII,cryLen]-dphiEwave[λFund,θpmII,cryLen])/fs," fs between the E wave fundamental and harmonic"];

Plot the group delay as a function of angle, assuming a crystal of length l=1000 microns.

Acceptance: Bandwidth and angular

keθ[λ_,θ_]:=((2 π)/λ)  netheta[λ,θ] ;
ko[λ_]:=((2 π)/λ)  no[λ] ;
ΔkTypeIdoubling[λ_,θ_]=keθ[λ/2,θ ]-2ko[λ];
ΔkTypeIIdoubling[λ_,θ_]=keθ[λ/2,θ]-ko[λ]-keθ[λ,θ];
pmConvFactor[Δk_,len_]:=(((Sin[Δk len/2])^2)/(((Δk len/2))^2));

θRange=3;
lenTst=2 mm;
Plot[ΔkTypeIdoubling[λFund,θpmI+θTst],{θTst,-θRange,θRange},PlotRange->All]
Plot[pmConvFactor[ΔkTypeIdoubling[λFund,θpmI+θTst],lenTst],{θTst,-θRange,θRange},PlotRange->All]

Calculate the bandwidth such that (sinc^2)(Δk L/2)<50%.

dlam[tau_,lam_]:=(lam^2) .44/(c tau);
τPulse=20.fs;
Print["fundamental input pulse duration: ",τPulse/fs," fs. wavelength bandwidth: ",dlam[τPulse,λFund]/nm," nm"];
Print["ideal harmonic pulse duration:",τPulse/(Sqrt[2])/fs," fs. wavelength bandwidth: ",dlam[τPulse/(Sqrt[2]),λFund/2]/nm," nm"];

See what the effect of limited phase matching bandwidth is on the converted spectrum
θTweak changes incident angle away from optimum

gauss[om_,dom_,omCtr_]:= Exp[-2 ((((omCtr-om)/dom))^2)];

ω0=((2 π c)/(λFund));
Δω=((dlam[τPulse,λFund])/(λFund))ω0;
θTweak=0.0;
λRange=50nm;

cryLen=5mm;
Plot[{
gauss[2 π c/lamTst,Δω,ω0],
gauss[2π c/lamTst,Δω,ω0]pmConvFactor[ΔkTypeIdoubling[lamTst,θpmI+θTweak],cryLen]
},
{lamTst,λFund-λRange,λFund+λRange}]

Nonlinear Coefficients

For LBO, Type I phase-matching, effective third-order nonlinear coefficient is:
(d32 in pm/V)

d32=-0.98;
defflbo[alpha_]=d32 Cos[alpha]

defflbo[alphaval]

For BBO, the Casix guide says that the deff for SHG is 5.3 *d36(KDP)
the nonlinear optical coefficient for KDP is .43 pm/V.

deffbbo=5.3 0.43

The ratio of deff/walkoff for each crystal is:

defflbo[alphaval]/delaybbo[.8,29.1781,1000]
deffbbo/delaylbo[.8,alphaval,1000]