Sunday, March 6, 2022

Amorphous solar cell


 code:-

go atlas


mesh auto

#

x.mesh loc=0.0 spacing=0.1

x.mesh loc=1.0 spacing=0.1


region material=Silicon bot ny=50 thick=0.5

#

elec num=1 name=anode y.max=0.05 material=ITO

elec num=2 name=cathode y.min=0.45 y.max=0.5 material=Ito


doping uniform conc=1e12 n.type

doping gaus peak=0.05 char=0.01 conc=1e16 p.type dir=y

doping gaus peak=0.45 char=0.01 conc=1e16 n.type dir=y


material mat=Silicon mun=20 mup=1.5 nc300=2.5e18 nv300=1.9e19 eg300=1.9

defects mat=silicon nta=1.e19 ntd=1.e19 wta=0.033 wtd=0.049 \

nga=1.5e15 ngd=1.5e15 ega=0.62 egd=0.78 wga=0.15 wgd=0.15 \

sigtae=1.e-16 sigtah=1.e-15 sigtde=1.e-15 sigtdh=1.e-16 \

siggae=2.e-16 siggah=2.e-15 siggde=2.e-15 siggdh=2.e-16 \

continuous


material mat=ITO sopra=Ito2.nk


models srh auger fermi ni.fermi conmob print

method newton trap


beam num=1 am1.5g x.o=0 y.o=-1.0 angle=90 tr.mat


save outf=abc.str

tonyplot abc.str



solve init

solve b1=1.0


log outf=abc.log

solve vanode=0.0 name=anode vstep=0.01 vfinal=1.2

tonyplot abc.log


extract init infile="abc.log"

extract name="Jsc" max(curve(v."anode", i."cathode")) outf="I.log"

extract name="JscmAcm2" $Jsc*1e08*1e03 outf="J.dat"

extract name="Voc" x.val from curve(v."anode",i."cathode") where y.val=0.0 outf="V.dat"

extract name="Pm" max(curve(v."anode", (v."anode" *i."cathode"*(-1))))

extract name="FF" ($"Pm"/($"Jsc"*$"Voc"))*100

extract name="Opt_int" max(beam."1")

extract name="Eff" (1e8*$Pm/$Opt_int)*100 outf="E.dat"

quit



Result:-






pervoskite solar cell

All the contents are free

 silvaco code:-

go atlas

mesh space.mult=1


x.m l=0.0 s=.05

x.m l=1.0 s=.05


y.m l=0 s=0.01

y.m l=0.135 s=.01

y.m l=0.455 s=.02

y.m l=0.525 s=.02

y.m l=0.550 s=.1          



region num=1 mat=air x.min=0 y.min=0

region num=2 mat=ITO x.min=0 x.max=1.0 y.min=0 y.max=0.055

region num=3 user.material=NiO x.min=0 x.max=1.0 y.min=0.055 y.max=0.135

region num=4 user.material=pervoskite x.min=0 x.max=1.0 y.min=.135 y.max=.455

region num=5 material=ZnO x.min=0 x.max=1.0 y.min=.455 y.max=0.525



elec num=1 name=anode x.min=0.0 x.max=1.0 y.min=0 y.max=0.055 mat=ITO

elec num=2 name=cathode x.min=0 x.max=1.0 y.min=0.525 y.max=0.550 mat=aluminium


doping uniform p.type conc=2e16 reg=2   


doping uniform p.type conc=5.6e16 reg=3

doping uniform n.type conc=1e15 reg=4

doping uniform n.type conc=1e16 reg=5



material material=air real.index=1.0 imag.index=0

material material=ITO eg300=3.5 affinity=2.3 permittivity=9 NC300=2.2e18 NV300=1.8e19 MUN=30 MUP=5 sopra=Ito2.nk taun0=1e-7 taup0=1e-7

material material=NiO eg300=3.5 affinity=2.2 permittivity=9 NC300=2.2e18 NV300=1.8e19 MUN=4.7 MUP=4.7 \

user.group=semiconductor user.default=sio2 sopra=Tio2b.nk taun0=1e-7 taup0=1e-7


material name=pervoskite eg300=1.55 affinity=3.93 permittivity=10.0 NC300=2.2e18 NV300=1.8e19 MUN=2 MUP=2 sopra=pervoskite.nk taun0=1e-7 taup0=1e-7 \

user.group=semiconductor user.default=GaN


material material=ZnO eg300=3.2 affinity=4 permittivity=8.5 NC300=2.2e18 NV300=1.8e19 MUN=100 MUP=30 sopra=ito2.nk \

taun0=1e-7 taup0=1e-7


#


save outf= struc.str

tonyplot struc.str


beam num=1 am1.5g x.o=0 y.o=-1 angle=90 



models srh fermi ni.fermi optr auger bgn print


method newton autonr trap maxtrap=10


output con.band val.band band.par e.mobility e.velocity



contact name=anode workf=5.75

contact name=cathode reflect=0.5 workf=4.7


solve init

solve prev

solve b1=1

log outf=illumination.log

solve name=anode vanode=0 vstep=0.01 vfinal=0.6

log off

tonyplot illumination.log


extract init infile="illumination.log"

extract name="Jsc" max(curve(v."anode", i."cathode")) outf="I.log"

extract name="JscmAcm2" $Jsc*1e08*1e03 outf="J.dat"

extract name="Voc" x.val from curve(v."anode",i."cathode") where y.val=0.0 outf="V.dat"

extract name="Pm" max(curve(v."anode", (v."anode" *i."cathode"*(-1))))


extract name="FF" ($"Pm"/($"Jsc"*$"Voc"))*100

extract name="Opt_int" max(beam."1")

extract name="Eff" (1e8*$Pm/$Opt_int)*100 outf="E.dat"

extract name="Power" curve(v."anode", (v."anode" * i."anode" *(-1))) outf="P.dat"




quit



result:-








telegram me at t.me/KST1729 if you need any help (sorry for older one this is new one)

 sorry for older one this is new one