Hello all;
I am trying to simulate a simple Schottky solar cell with Atlas but the obtained results are incorrect (open circuit voltage, short circuit current, fill factor, efficiency,...), and for this I hope for your cooperation because I use Silvaco for the first time.
Here is the used code:
go atlas
mesh space.mult=1.0
#
x.mesh loc=0.00 spac=0.5
x.mesh loc=3.00 spac=0.2
x.mesh loc=6.00 spac=0.2
x.mesh loc=9.00 spac=0.5
#
y.mesh loc=0.00 spac=0.01
y.mesh loc=3.00 spac=0.05
y.mesh loc=50.00 spac=0.2
region num=1 silicon
electr name=anode x.min=3 length=3
electr name=cathode bot
#.... N-doping
doping n.type conc=5.e17 uniform
material taun0=1e-6 taup0=1e-6
save outf=optoex02_0.str
#tonyplot optoex02_0.str -set optoex02_0.set
model conmob srh fermi
contact name=anode workf=4.97
beam num=1 x.origin=4.0 y.origin=-1.0 angle=90 \
back.refl front.refl \ power.file=optoex02.spec wavel.start=0.2 wavel.end=2.5 wavel.num=580
method gummel newton maxtraps=10 itlimit=25 climit=1e-4 dvmax=0.1
solve init
log outf=optoex02.log master
solve b1=1.0 index.check
solve vanode=0 vstep=0.05 vfinal=1.0 name=anode
extract init
infile="optoex02.log"
extract name="Jsc" y.val from curve(v."anode", i."cathode") where x.val=0.0
extract name="Voc" x.val from curve(v."anode", i."cathode") where y.val=0.0
extract name="iv" curve(v."anode", i."cathode")
outfile="optoex02.dat"
extract name="Power" curve(v."anode", (v."anode" * i."cathode")) outf="Power.dat"
# Min since negative values
extract name="Pmax" min(curve(v."anode", (v."anode" * i."cathode")))
extract name="Vmax" x.val from curve(v."anode", (v."anode"*i."cathode") ) \ where y.val=$"Pmax"
extract name="Jmax" $"Pmax"/$"Vmax"
extract name="FF" $"Pmax"/($"Jsc"*$"Voc")
#Use AMO of 0.1353 W/cm2
extract name="Eff" $Pmax/0.1353
#################
#OUTPUT
#################
tonyplot optoex02.log -set optoex02_1.set
tonyplot optoex02.dat
save outf= optoex02.dat
log off
quit