Files
lammps/examples/USER/atc/drift_diffusion/in.schrodinger-poisson2d_Jconstraint
rjones 666de878ad ATC version 2.0, date: Aug7
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@10558 f3b2605a-c512-4ea7-a41b-209d697bcdaa
2013-08-07 21:29:05 +00:00

139 lines
5.6 KiB
Plaintext

# needs description
# STEP THE GATE VOLTAGE UP
# NEED TO TURN OFF T EQNS FOR VACUUM
# HACK need to define well and open bcs
echo both
#variable iter equal 2 # need two for potential to affect density
variable iter1 equal 4 # NOTE <<<<
variable iter2 equal 25 # NOTE <<<<
variable r equal 1
variable nx equal 12 # 30 40 10
variable mx equal 4 # 4 2
#variable ny equal ${nx}
variable ny equal 12 # 30 40
variable my equal 8 # 12 6
variable nz equal 1
variable hx equal 1.0
variable hy equal ${hx}*${nx}/${ny}
variable l equal -${hx}*${nx}
variable u equal ${hx}*${nx}
variable w equal ${hy}*${my}
variable q equal ${hx}*${mx}
variable y equal ${nx}+1-${mx}
variable T equal 300
variable S equal 1
variable n0 equal 0.00007
variable J0 equal 40.0 # 100.0 40.0
variable Vs equal 1.0
#variable Vg equal 1.0 # 10.0 0.0
variable tol equal 0.01
#################################################
atom_style atomic
timestep 0.001
boundary f f f
lattice fcc 1.0
region BOX block ${l} ${u} ${l} ${u} 0 1
create_box 1 BOX
mass * 12.01
atom_modify sort 0 1
# ID group atc PhysicsType ParameterFile
fix AtC all atc drift_diffusion-schrodinger-slice SiVacuum_ddm_schrodinger.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create ${nx} ${ny} ${nz} BOX f f p
# surfaces & regions
variable a equal $l-${tol}
variable b equal $l+$q+${tol}
variable c equal -$w-${tol}
variable d equal $w+${tol}
variable e equal $l+$q-${tol}
fix_modify AtC mesh create_nodeset bot -INF INF $a $b -INF INF
fix_modify AtC mesh create_nodeset lbc $a $b -INF INF -INF INF
variable a equal $u-$q-${tol}
variable b equal $u+${tol}
variable e equal $u-$q+${tol}
fix_modify AtC mesh create_nodeset top -INF INF $a $b -INF INF
fix_modify AtC mesh create_nodeset rbc $a $b -INF INF -INF INF
variable a equal -$w-${tol}
variable b equal $w+${tol}
variable c equal $l+$q-${tol}
variable d equal $u-$q+${tol}
fix_modify AtC mesh create_elementset wire $c $d $a $b -INF INF
fix_modify AtC mesh create_nodeset wire $c $d $a $b -INF INF
variable e equal $c+2*${tol}
variable f equal $c+${tol}
fix_modify AtC mesh create_nodeset lwire $c $e $a $b -INF INF
fix_modify AtC mesh create_faceset lwire $f INF $a $b -INF INF
variable e equal $d-2*${tol}
variable f equal $d-${tol}
fix_modify AtC mesh create_nodeset rwire $e $d $a $b -INF INF
fix_modify AtC mesh create_faceset rwire -INF $f $a $b -INF INF
variable e equal $a+2*${tol}
fix_modify AtC mesh create_nodeset bwire $c $d $a $e -INF INF
variable e equal $b-2*${tol}
fix_modify AtC mesh create_nodeset twire $c $d $e $b -INF INF
# new material
fix_modify AtC material wire Si
# simplify
fix_modify AtC extrinsic one_dimensional x wire $y
#fix_modify AtC extrinsic poisson_solver iterative
fix_modify AtC internal_quadrature off
fix_modify AtC control thermal none
fix_modify AtC extrinsic electron_integration implicit 1
fix_modify AtC extrinsic schrodinger_poisson_solver self_consistency ${iter1}
#fix_modify AtC extrinsic conserve density 10
fix_modify AtC extrinsic schrodinger_poisson_solver conserve flux ${iter2}
fix_modify AtC extrinsic schrodinger_poisson_solver initial_fermi_level 0.1
fix_modify AtC extrinsic schrodinger_poisson_solver safe_fermi_increment 0.1
#fix_modify AtC extrinsic initial_fermi_level 0.5
# isolate system:
# diffusion: dn/dx = 0
# drift : n = 0
# fix temperature
fix_modify AtC fix temperature all $T
fix_modify AtC initial electron_temperature all $T
fix_modify AtC fix electron_temperature all $T # <<<
#fix_modify AtC unfix electron_temperature wire
fix_modify AtC fix electron_temperature lbc $T
fix_modify AtC fix electron_temperature rbc $T
### NOTE there seems to be leakage into the vacuum
# electric potential ic
fix_modify AtC initial electric_potential all 0.0
fix_modify AtC fix electric_potential lbc 0
fix_modify AtC fix electric_potential rbc ${Vs}
#fix_modify AtC fix electric_potential bot ${Vg} # remove this if Vg=0
# electron density ic
fix_modify AtC initial electron_density all 0
fix_modify AtC fix electron_density all 0
fix_modify AtC unfix electron_density wire
fix_modify AtC initial electron_density wire ${n0}
fix_modify AtC fix electron_density twire 0.0
fix_modify AtC fix electron_density bwire 0.0
fix_modify AtC fix electron_density lwire ${n0}
fix_modify AtC fix electron_density rwire ${n0}
#fix_modify AtC fix electron_density lbc ${n0}
#fix_modify AtC fix electron_density rbc ${n0}
fix_modify AtC unfix electron_density lwire
fix_modify AtC unfix electron_density rwire
fix_modify AtC fix_flux electron_density lwire -${J0} # <<<<
fix_modify AtC fix_flux electron_density rwire ${J0} # <<<<
# HACK
#fix_modify AtC fix electron_density all 0
# electron wavefunction ic/bcs
fix_modify AtC initial electron_wavefunction all 0.0
fix_modify AtC fix electron_wavefunction top 0.0
fix_modify AtC fix electron_wavefunction bot 0.0
fix_modify AtC fix electron_wavefunction all 0
fix_modify AtC unfix electron_wavefunction wire
#fix_modify AtC fix electron_wavefunction lwire 0.0 # <<<< bit of hack
#fix_modify AtC fix electron_wavefunction rwire 0.0 # <<<< bit of hack
fix_modify AtC fix electron_wavefunction twire 0.0
fix_modify AtC fix electron_wavefunction bwire 0.0
thermo 1
# f_AtC:1 thermal energy, 2 avg T, 3 electron energy, 4 avg Te, 5 total n
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4] f_AtC[5]
thermo_modify format 1 %5i format 2 %7.2g
fix_modify AtC output schrodinger-poisson2d_JconstraintFE $r full_text binary tensor_components
fix_modify AtC mesh output schrodinger-poisson2dMESH
run $r
# NOW BIAS