Germanium Solar Cell Simulation. Template inspired from:
[ Ссылка ]
Code:
go atlas
###meshing###
set length=100
mesh
x.mesh loc=0 spacing=10
x.mesh loc=100 spacing=10
y.mesh loc=0 spacing=0.01
y.mesh loc=0.3 spacing=0.01
y.mesh loc=1.5 spacing=0.1
y.mesh loc=50 spacing=1
###structure###
region num=1 x.min=0 x.max=100 y.min=0 y.max=1 material=ingap
region num=2 x.min=0 x.max=100 y.min=1 y.max=1.2 material=germanium
region num=3 x.min=0 x.max=100 y.min=1.2 y.max=51.2 material=germanium
#region num= user.material=a-si y.min=51.2 y.max=51.22 name=a-si
###contacts###
electrode name=cathode num=1 top x.max=20
electrode name=anode num=2 bottom
###refractive index###
material material=ingap index.file=solarex04.nk
material material=germanium sopra=Ge.nk
###doping for materials###
doping reg=1 uniform n.type conc=8e17
doping reg=2 uniform n.type conc=6e18
doping reg=3 uniform p.type conc=8.5e17
###surface velocity###
#interface s.s y.min= y.max= s.n=1e6 s.p=
###user defined materials or/and parameters###
#material material=a-si user.group=semiconductor user.default=silicon mun=20 mup=2 nc300=2.5e20 nv300=2.5e20 eg300=1.7 AFFINITY=3.9
###including models in simulation###
models srh conmob fermi ni.fermi bgn optr auger print
#material material=silicon taun0=5e-4 taup0=5e-4
###SUNLIGHT###
beam num=1 x.origin=50 y.origin=-5 angle=90 AM1.5 WAVEL.START=0.3 WAVEL.END=2.2 WAVEL.NUM=100
#beam num=2 x.o=50 y.o=60 angle=270 power.file=100Albedo_Spectra.spec SIMILARLY FOR TANDEM
###SOLVING###
solve b1=1
output con.band val.band band.para u.srh u.aug flowlines opt.int charge traps u.trap
#############################################_Voltage_Ramp_##############################################
LOG OUTFILE="anodeVsweep.LOG"
#
probe name="total recombination" RECOMBIN integrate x.min=0 x.max=100 y.min=0 y.max=51.2
probe name="total photogeneration" PHOTOGEN integrate x.min=0 x.max=100 y.min=0 y.max=51.2
#
SOLVE VANODE=0 NAME=ANODE VSTEP=0.05 VFINAL=0.15
SOLVE NAME=ANODE VSTEP=0.01 VFINAL=0.3
###_Post_Processing_###
extract init infile="anodeVsweep.LOG"
extract name="Isc" y.val from curve(v."anode", i."anode") where x.val=0.0
extract name="JscmAcm2" $Isc*1e08*1e03/$length
extract name="Voc" x.val from curve(v."anode", i."anode") where y.val=0.0
extract name="P" curve(v."anode", i."anode") outf="IV.LOG"
extract name="P" curve(v."anode", (i."anode"*1e08*1e03/$length)) outf="JV.LOG"
extract name="Pm" min(curve(v."anode", (v."anode" * i."anode")))
extract name="myPm" min(curve(v."anode", (v."anode" * i."anode"*1e08*1e03/$length)))
extract name="Vm" x.val from curve(v."anode", (v."anode"*i."anode") ) where y.val=$"Pm"
extract name="Im" $"Pm"/$"Vm"
extract name="myIm" $"myPm"/$"Vm"
extract name="FF" $"Pm"/($"Isc"*$"Voc")
## AM1.5 is 100 mW/cm2
extract name="Eff" $myPm/100
###_Plotting_###
TONYPLOT JV.LOG
save outf=solarex04.str
tonyplot solarex04.str
###_Frequency_Ramp_###
LOG OUTFILE="Ge_Frequency_SPECTRA.LOG"
SOLVE B1=1 Name=ramp LAMBDA=0.3 WSTEP=0.02 WFINAL=2.2 SPECTRUM="Ge_Frequency_SPECTRA.LOG"
#Solve name=ramp LAMBDA=0.7 WSTEP=0.002 WFINAL=0.81 SPECTRUM="SPECTRUM_HIT.LOG"
#Solve name=ramp LAMBDA=0.81 WSTEP=0.02 WFINAL=1.8 SPECTRUM="SPECTRUM_HIT.LOG"
quit
Ещё видео!