Clear[profile,completeProfile];profile[ω_,{ω0_,aw_,as_,D_,LC_,ΔC_,reνHC_,imνHC_},lnumber_]:=Module{ωD,reνH,imνH,fSDVPstar,SDVPstar1,SDVPstar2,result},ωD=;fSDVPstar[y_,ω1_,{ω01_,aw1_,as1_,D1_,LC1_,ΔC1_,reνHC1_,imνHC1_},lnumber1_]:=Module{Bw,Bs,ωD1,pressure1,ω0R,u,L,Δ,reνH1,imνH1,d,Γ,z,g,func1,func2},Bw=1+aw1*-;Bs=1+as1*-;ωD1=;pressure1=p[ω1];ω0R=unperturbedFrequency[ω1,ω01,shift];u=;If[lnumber12,(L=LC1*pressure1;Δ=ΔC1*pressure1;reνH1=reνHC1*pressure1;imνH1=imνHC1*pressure1),(L=LC1;Δ=ΔC1;reνH1=reνHC1;imνH1=imνHC1)];d=;Γ=;z=;g=;func1=*y*ArcTan+*Log1+;func2=π*z*func1;Return[{func1,func2}];;SDVPstar1=NIntegrate[fSDVPstar[y,ω,{ω0,aw,as,D,LC,ΔC,reνHC,imνHC},lnumber][[1]],{y,-7,7},MaxRecursion->20,Method->{Automatic,"SymbolicProcessing"->0}];SDVPstar2=NIntegrate[fSDVPstar[y,ω,{ω0,aw,as,D,LC,ΔC,reνHC,imνHC},lnumber][[2]],{y,-7,7},MaxRecursion->20,Method->{Automatic,"SymbolicProcessing"->0}];result=*Divide[SDVPstar1,(1-SDVPstar2)];Return[result];completeProfile[ω_,lineparams_,areaparams_,BGparams_,etalonParams_]:=Module[{dummy1,check,dummy2,dummy3},dummy1=Sum[(profile[ω,lineparams[[lineno]],lineno]*areaFunc[ω,areaparams,lineno]),{lineno,1,noOfLines}];check[x_,chiku_]:=If[x<crossoverFrequency,Re[chiku],((2.99792458**mulFactor)/(4*π*1.))*Im[chiku]];dummy2=check[ω,dummy1]+background[ω,BGparams]+etalon[ω,etalonParams];Return[dummy2];]
D
2
Log[2]
2
y
3
2
2
y
3
2
D1
2
Log[2]
ω1-ω0R
ωD1
Δ
ωD1
L
2
reνH1+imνH1I
ωD1
Γ
ωD1
2
3
2
π
-
2
y
u-d*Bs+y
(g*Bw)+z
2
2
u-d*Bs+y
(g*Bw)+z
1
ωD
10
10
Clear[myfit]AbsoluteTiming[myfit=NonlinearModelFit[completeSortedData,completeProfile[ω,paramstobefitted,Areaparamstobefitted,BGparamstobefitted,etalonParamstobefitted],guessValue,ω,WorkingPrecision6,Method->"LevenbergMarquardt",MaxIterations5000,StepMonitorPrint[paramstobefitted,Areaparamstobefitted,etalonParamstobefitted,BGparamstobefitted]]]