"3D DDCC" 修訂間的差異

出自 DDCC TCAD TOOL Manual
前往: 導覽搜尋
(已建立頁面,內容為 "3D DDCC is named from three dimensional Drift-diffusion Charge Control solver. This is 3D finite element based Poisson and drift-diffusion solver developed by Dr. Yu...")
 
(Thermal Solver)
 
(未顯示由 3 位使用者於中間所作的 54 次修訂)
行 3: 行 3:
   
 
== Input File ==
 
== Input File ==
  +
  +
  +
[[$gmshfile]]<br>
  +
[[$useperiodicboun]]<br>
  +
[[$geninpbymatlab]]<br>
  +
[[$gencompositionmap]]<br>
  +
<br>
  +
  +
=== Strain solver ===
  +
  +
[[$callstrainsolver]]<br>
  +
[[$justsolvestrain]]<br>
  +
[[$layernumber]]<br>
  +
[[$fixedsurface]]<br>
  +
[[$fixedsurftype]]<br>
  +
[[$type]]<br>
  +
[[$meshfilename]]<br>
  +
[[$latticeconstant]]<br>
  +
[[$elasticconstant]]<br>
  +
[[$piezoelectric]]<br>
  +
[[$physicalgroup]]<br>
  +
[[$substratelattice]]<br>
  +
[[$usecgsolver]]<br>
  +
[[$uselocalelement]]<br>
  +
[[$usegmshphys]]<br>
  +
[[$physicalgroup]]<br>
  +
[[$stresssurface]]<br>
  +
[[$strainoutfile]]<br>
  +
<br>
  +
  +
[[$PBCpoint_x]]<br>
  +
[[$PBCpoint_y]]<br>
  +
<br>
  +
Testing commands<br>
  +
[[$NonlineariterStrain]]<br>
  +
[[$solveheatstrain]]<br>
  +
[[$heatstrainsteps]]<br>
  +
[[$Thermallattice]]<br>
  +
[[$TdepelasticC]] <br>
  +
[[$useExtTasRef]] <br>
  +
  +
=== Thermal Solver ===
  +
  +
[[$ifsolveheat]]<br>
  +
[[$Boundary]]<br>
  +
[[$Thermalcoe]]<br>
  +
[[$solvethermalddcc]]<br>
  +
[[$thermalheatEJdir]]<br>
  +
  +
=== Eletrical solver ===
  +
<br>
  +
[[$addbiascontact]]<br>
  +
[[$schottkyba]]<br>
  +
[[$ifelectrode]]<br>
  +
[[$ElBoundary]]<br>
  +
[[$extraElBoundary]]<br>
  +
[[$ifusepolfromstrain]]<br>
  +
[[$ifddccusecgsolver]]<br>
  +
[[$ifpolfromstrainfile]]<br>
  +
[[$extraElBoundaries]]<br>
  +
[[$Electriccoe]]<br>
  +
[[$Solve2DSecSchrodn]]<br>
  +
[[$Solve2DSecdggev]]<br>
  +
[[$Solve2Dlandscape]]<br>
  +
[[$gaussiantraps]]<br>
  +
[[$DoEalloyfluc]]<br>
  +
[[$additionalElecmodify]]<br>
  +
[[$additionalVolshape]]<br>
  +
[[$additionalVolshape]]<br>
  +
[[$additionalElecmodify]]<br>
  +
[[$additionalElecshape]]<br>
  +
[[$Extragaussiantraps]]<br>
  +
[[$ifimpact_ion]]<br>
  +
[[$useDinBTBT]]<br>
  +
[[$useBTBT]]<br>
  +
  +
[[$DoEalloyfluc_add]]<br>
  +
[[$ifoutputall]]<br>
  +
[[$ifimpact_ion_add]]<br>
  +
[[$ifuseEvsVforn]]<br>
  +
[[$precision]]<br>
  +
[[$outfile]]<br>
  +
[[$currentprecision]]<br>
  +
[[$outputpol]]<br>
  +
[[$outsetting]]<br>
  +
[[$usedynaohmic]]<br>
  +
[[$savebinary]]<br>
  +
[[$usegenfunc]]<br>
  +
[[$ifuseEvsVforp]]<br>
  +
[[$useemunfunc]]<br>
  +
[[$useemupfunc]]<br>
  +
[[$UseAuger]]<br>
  +
[[$ifpulsemode]]<br>
  +
[[$ifusewsmp]]<br>
  +
[[$ifdynarecombine]]<br>
  +
[[$eigen3Dusefeast]]<br>
  +
[[$eigen3Dusedggev]]<br>
  +
[[$eigensolvecomplex]]<br>
  +
[[$ifdirectrecombine]]<br>
  +
[[$ifgeneration]]<br>
  +
[[$ifschockley]]<br>
  +
[[$assignparbyfunc (3D)]]<br>
  +
[[$assignGenRembyfunc]]<br>
  +
[[$assignGenRembyEle]]<br>
  +
[[$assignGenRembyRoutine]]<br>
  +
[[$ifsolveddn]]<br>
  +
[[$ifboltzmann]]<br>
  +
[[$ifnotsolvehole]]<br>
  +
[[$ifnotsolveelectron]]<br>
  +
[[$maxsteps]]<br>
  +
  +
[[$solveeigenvalue]]<br>
  +
[[$eigensetting]]<br>
  +
[[$eigencalEl]]<br>
  +
[[$landscape3D]]<br>
  +
[[$landscapeDOS (3D)]]<br>
  +
[[$landshiftEcv]]<br>
  +
  +
[[$ifuseadditionalheat]]<br>
  +
[[$ifzscaled]]<br>
  +
[[$ifxscaled]]<br>
  +
[[$ifyscaled]]<br>
  +
[[$ifuseadditionalcharge]]<br>
  +
[[$RoomT]]<br>
  +
  +
[[$gateworkc]]<br>
  +
[[$drainworkc]]<br>
  +
[[$sourceworkc]]<br>
  +
[[$backvbworkc]]<br>
  +
[[$affinity (3D)]]<br>
  +
[[$useadditionalaffinity (3D)]]<br>
  +
[[$usemuTfactor]] <br>
  +
  +
== 1D NEGF coupled with 3D solver commands ==
  +
  +
[[$ifsolvenegf]]<br>
  +
[[$negfsubbandnumber]]<br>
  +
[[$negfifmaterial]]<br>
  +
[[$negfefmasselectron]]<br>
  +
[[$negfefmasshole]]<br>
  +
[[$negfifscaled]]<br>
  +
[[$negfenergygrid]]<br>
  +
[[$negfsectionarea]]<br>
  +
[[$negferrortolerance]]<br>
  +
[[$negfifscattering]]<br>
  +
[[$negfintervalleyopticalphonon]]<br>
  +
[[$negfpolaropticalphonon]]<br>
  +
[[$negfacousticphonon]]<br>
  +
[[$negfsurfaceroughness]]<br>
  +
[[$negfionizedimpurity]]<br>
  +
[[$negfoverlapcalculation]]<br>
  +
[[$negfpoissonselfconsistent]]<br>
  +
  +
== Output File ==
  +
  +
Accessible parameters: <br>
  +
[[*negf.Ec.dat ]] <br>
  +
[[*negf.Ef.dat ]] <br>
  +
[[*negf.Error.dat ]] <br>
  +
[[*negf.ErrorSC.dat ]] <br>
  +
[[*negf.info.dat ]] <br>
  +
[[*negf.infoSC.dat ]] <br>
  +
[[*negf.JScattering.dat ]] <br>
  +
[[*negf.JtotalIteration.dat ]] <br>
  +
[[*negf.JtotalIterationSC.dat ]] <br>
  +
[[*negf.NdxNemaxNstate.dat ]] <br>
  +
[[*negf.Nel.dat ]] <br>
  +
[[*negf.Ner.dat ]] <br>
  +
[[*negf.npNEGF ]] <br>
  +
[[*outPoissonNEGF ]] <br>
  +
[[*.Nsum 3D]]<br>
  +
[[*.ivn 3D]]<br>
  +
[[*.QE 3D]]<br>
  +
[[*.np]]<br>
  +
[[*.out]]<br>
  +
[[*.Ev]]<br>
  +
[[*.ef]]<br>
  +
[[*.Err]]<br>
  +
[[*.T]]<br>
  +
[[*.L]]<br>
  +
[[*.Lp]]<br>
  +
[[*.LpLH]]<br>
  +
[[*.Rad]]<br>
  +
[[*.nonRad]]<br>
  +
[[*.Auger]]<br>
  +
[[*.pHHLH]]<br>
  +
[[*.nda]]<br>
  +
[[*.Trap]]<br>
  +
[[*.gen (3D)]]<br>
  +
[[*.Evhhlh]]<br>
  +
[[*.E]]<br>
  +
[[*.Jn]]<br>
  +
[[*.Jp]]<br>
  +
[[*.Jns]]<br>
  +
[[*.Jps]]<br>
  +
[[*.impactG]]<br>
  +
[[*.heatsource"]]<br>
  +
[[*.matset1]]<br>
  +
[[*.matset2]]<br>
  +
[[*.matset3]]<br>
  +
[[*.matset4]]<br>
  +
  +
== Definition of some key system Variables that user may access using external libraries==
  +
  +
  +
=== Variables in 3D-DDCC main solver ===
  +
  +
Accessible parameters: <br>
  +
[[Type mshnd (mshnd%x, mshnd%y ...) ]] <br>
  +
[[Type material (material%eg ...) ]] <br>
  +
[[Type mshelectric (mshelectric%Eg) ]] <br>
  +
[[Type mshel (mshel%realvolume ) ]] <br>
  +
[[generation]] <br>
  +
  +
  +
TYPE(meshformat) :: mshformat
  +
TYPE(node) :: mshnd
  +
TYPE(elements) :: mshel
  +
TYPE(surface) :: mshsurface
  +
TYPE(volume) :: mshvolume
  +
TYPE(Boundary) :: mshboun
  +
TYPE(ELBoundary) :: mshelboun
  +
TYPE(sprs2_DP) :: sprsA,sprstem
  +
TYPE(Thermalcoe) :: mshthermal
  +
TYPE(Electriccoe) :: mshelectric
  +
TYPE(NODEMATERIAL) :: material
  +
  +
=== Variables in 3D-DDCC strain solver ===
  +
<br>
  +
[[totalelements]] <br>
  +
[[elementelasticconstant(6,6,Nel)]] <br>
  +
[[elementlatticeconstant(Nel,3)]] <br>
  +
[[elementsnodes(Nel,10)]] <br>
  +
[[elementepiezoelectric(3,Nel)]] <br>
  +
  +
== external library ==
  +
  +
[[subroutine mod3dpar]] <br>
  +
[[subroutine compositionmapgen]] <br>
  +
  +
[[subroutine readEG]] used in strain solver <br>

於 2024年9月6日 (五) 14:37 的最新修訂

3D DDCC is named from three dimensional Drift-diffusion Charge Control solver. This is 3D finite element based Poisson and drift-diffusion solver developed by Dr. Yuh-Renn Wu. This solver initially developed with the 3D FEM thermal solver by Dr. Chi-kang Li when he was PhD student in Dr. Wu's group. Then the Poisson and drift-diffusion solver was added by Dr. Wu into this project. This solver was basically an expansion of 2D program into 3D program. Therefore, all new algorithm added in 2D program will be soon added into 3D program if no errors was found. The mesh algorithm was from Gmsh program. It also accept other mesh algorithm as long as it can be converged into gmsh format. The 3D FEM based Schrodinger eigen solver was also added. It also accept additional module to read in the optical field from 3D FD-TD program so that it can consider the solar cell problem. Then the 3D ray tracing program was developing. This solver now can solve many different problems such as trap problem, Gaussian shape tail state models, field dependent mobility, thermal, light extraction. Recently, 3D localization landscape model was also added into this program so that it can calculate the effective quantum potential very efficiently. This code is written with Fortran language.


Input File

$gmshfile
$useperiodicboun
$geninpbymatlab
$gencompositionmap

Strain solver

$callstrainsolver
$justsolvestrain
$layernumber
$fixedsurface
$fixedsurftype
$type
$meshfilename
$latticeconstant
$elasticconstant
$piezoelectric
$physicalgroup
$substratelattice
$usecgsolver
$uselocalelement
$usegmshphys
$physicalgroup
$stresssurface
$strainoutfile

$PBCpoint_x
$PBCpoint_y

Testing commands
$NonlineariterStrain
$solveheatstrain
$heatstrainsteps
$Thermallattice
$TdepelasticC
$useExtTasRef

Thermal Solver

$ifsolveheat
$Boundary
$Thermalcoe
$solvethermalddcc
$thermalheatEJdir

Eletrical solver


$addbiascontact
$schottkyba
$ifelectrode
$ElBoundary
$extraElBoundary
$ifusepolfromstrain
$ifddccusecgsolver
$ifpolfromstrainfile
$extraElBoundaries
$Electriccoe
$Solve2DSecSchrodn
$Solve2DSecdggev
$Solve2Dlandscape
$gaussiantraps
$DoEalloyfluc
$additionalElecmodify
$additionalVolshape
$additionalVolshape
$additionalElecmodify
$additionalElecshape
$Extragaussiantraps
$ifimpact_ion
$useDinBTBT
$useBTBT

$DoEalloyfluc_add
$ifoutputall
$ifimpact_ion_add
$ifuseEvsVforn
$precision
$outfile
$currentprecision
$outputpol
$outsetting
$usedynaohmic
$savebinary
$usegenfunc
$ifuseEvsVforp
$useemunfunc
$useemupfunc
$UseAuger
$ifpulsemode
$ifusewsmp
$ifdynarecombine
$eigen3Dusefeast
$eigen3Dusedggev
$eigensolvecomplex
$ifdirectrecombine
$ifgeneration
$ifschockley
$assignparbyfunc (3D)
$assignGenRembyfunc
$assignGenRembyEle
$assignGenRembyRoutine
$ifsolveddn
$ifboltzmann
$ifnotsolvehole
$ifnotsolveelectron
$maxsteps

$solveeigenvalue
$eigensetting
$eigencalEl
$landscape3D
$landscapeDOS (3D)
$landshiftEcv

$ifuseadditionalheat
$ifzscaled
$ifxscaled
$ifyscaled
$ifuseadditionalcharge
$RoomT

$gateworkc
$drainworkc
$sourceworkc
$backvbworkc
$affinity (3D)
$useadditionalaffinity (3D)
$usemuTfactor

1D NEGF coupled with 3D solver commands

$ifsolvenegf
$negfsubbandnumber
$negfifmaterial
$negfefmasselectron
$negfefmasshole
$negfifscaled
$negfenergygrid
$negfsectionarea
$negferrortolerance
$negfifscattering
$negfintervalleyopticalphonon
$negfpolaropticalphonon
$negfacousticphonon
$negfsurfaceroughness
$negfionizedimpurity
$negfoverlapcalculation
$negfpoissonselfconsistent

Output File

Accessible parameters:
*negf.Ec.dat
*negf.Ef.dat
*negf.Error.dat
*negf.ErrorSC.dat
*negf.info.dat
*negf.infoSC.dat
*negf.JScattering.dat
*negf.JtotalIteration.dat
*negf.JtotalIterationSC.dat
*negf.NdxNemaxNstate.dat
*negf.Nel.dat
*negf.Ner.dat
*negf.npNEGF
*outPoissonNEGF
*.Nsum 3D
*.ivn 3D
*.QE 3D
*.np
*.out
*.Ev
*.ef
*.Err
*.T
*.L
*.Lp
*.LpLH
*.Rad
*.nonRad
*.Auger
*.pHHLH
*.nda
*.Trap
*.gen (3D)
*.Evhhlh
*.E
*.Jn
*.Jp
*.Jns
*.Jps
*.impactG
*.heatsource"
*.matset1
*.matset2
*.matset3
*.matset4

Definition of some key system Variables that user may access using external libraries

Variables in 3D-DDCC main solver

Accessible parameters:
Type mshnd (mshnd%x, mshnd%y ...)
Type material (material%eg ...)
Type mshelectric (mshelectric%Eg)
Type mshel (mshel%realvolume )
generation


TYPE(meshformat)  :: mshformat
TYPE(node)  :: mshnd
TYPE(elements)  :: mshel
TYPE(surface)  :: mshsurface
TYPE(volume)  :: mshvolume
TYPE(Boundary)  :: mshboun
TYPE(ELBoundary)  :: mshelboun
TYPE(sprs2_DP) :: sprsA,sprstem
TYPE(Thermalcoe) :: mshthermal
TYPE(Electriccoe) :: mshelectric
TYPE(NODEMATERIAL) :: material

Variables in 3D-DDCC strain solver


totalelements
elementelasticconstant(6,6,Nel)
elementlatticeconstant(Nel,3)
elementsnodes(Nel,10)
elementepiezoelectric(3,Nel)

external library

subroutine mod3dpar
subroutine compositionmapgen

subroutine readEG used in strain solver