"3D DDCC" 修訂間的差異
(→Definition of some key system Varables) |
(→Thermal Solver) |
||
(未顯示由 3 位使用者於中間所作的 51 次修訂) | |||
行 3: | 行 3: | ||
== Input File == |
== Input File == |
||
+ | |||
[[$gmshfile]]<br> |
[[$gmshfile]]<br> |
||
[[$useperiodicboun]]<br> |
[[$useperiodicboun]]<br> |
||
+ | [[$geninpbymatlab]]<br> |
||
+ | [[$gencompositionmap]]<br> |
||
+ | <br> |
||
+ | |||
+ | === Strain solver === |
||
+ | |||
[[$callstrainsolver]]<br> |
[[$callstrainsolver]]<br> |
||
[[$justsolvestrain]]<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> |
[[$Boundary]]<br> |
||
[[$Thermalcoe]]<br> |
[[$Thermalcoe]]<br> |
||
− | [[$ |
+ | [[$solvethermalddcc]]<br> |
+ | [[$thermalheatEJdir]]<br> |
||
+ | |||
+ | === Eletrical solver === |
||
+ | <br> |
||
+ | [[$addbiascontact]]<br> |
||
[[$schottkyba]]<br> |
[[$schottkyba]]<br> |
||
[[$ifelectrode]]<br> |
[[$ifelectrode]]<br> |
||
行 34: | 行 73: | ||
[[$useDinBTBT]]<br> |
[[$useDinBTBT]]<br> |
||
[[$useBTBT]]<br> |
[[$useBTBT]]<br> |
||
+ | |||
[[$DoEalloyfluc_add]]<br> |
[[$DoEalloyfluc_add]]<br> |
||
[[$ifoutputall]]<br> |
[[$ifoutputall]]<br> |
||
行 42: | 行 82: | ||
[[$currentprecision]]<br> |
[[$currentprecision]]<br> |
||
[[$outputpol]]<br> |
[[$outputpol]]<br> |
||
+ | [[$outsetting]]<br> |
||
[[$usedynaohmic]]<br> |
[[$usedynaohmic]]<br> |
||
[[$savebinary]]<br> |
[[$savebinary]]<br> |
||
行 48: | 行 89: | ||
[[$useemunfunc]]<br> |
[[$useemunfunc]]<br> |
||
[[$useemupfunc]]<br> |
[[$useemupfunc]]<br> |
||
+ | [[$UseAuger]]<br> |
||
[[$ifpulsemode]]<br> |
[[$ifpulsemode]]<br> |
||
[[$ifusewsmp]]<br> |
[[$ifusewsmp]]<br> |
||
行 57: | 行 99: | ||
[[$ifgeneration]]<br> |
[[$ifgeneration]]<br> |
||
[[$ifschockley]]<br> |
[[$ifschockley]]<br> |
||
− | [[$assignparbyfunc]]<br> |
+ | [[$assignparbyfunc (3D)]]<br> |
[[$assignGenRembyfunc]]<br> |
[[$assignGenRembyfunc]]<br> |
||
[[$assignGenRembyEle]]<br> |
[[$assignGenRembyEle]]<br> |
||
行 66: | 行 108: | ||
[[$ifnotsolveelectron]]<br> |
[[$ifnotsolveelectron]]<br> |
||
[[$maxsteps]]<br> |
[[$maxsteps]]<br> |
||
+ | |||
[[$solveeigenvalue]]<br> |
[[$solveeigenvalue]]<br> |
||
[[$eigensetting]]<br> |
[[$eigensetting]]<br> |
||
[[$eigencalEl]]<br> |
[[$eigencalEl]]<br> |
||
[[$landscape3D]]<br> |
[[$landscape3D]]<br> |
||
− | [[$landscapeDOS]]<br> |
+ | [[$landscapeDOS (3D)]]<br> |
[[$landshiftEcv]]<br> |
[[$landshiftEcv]]<br> |
||
+ | |||
[[$ifuseadditionalheat]]<br> |
[[$ifuseadditionalheat]]<br> |
||
[[$ifzscaled]]<br> |
[[$ifzscaled]]<br> |
||
行 78: | 行 122: | ||
[[$ifuseadditionalcharge]]<br> |
[[$ifuseadditionalcharge]]<br> |
||
[[$RoomT]]<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 == |
== 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> |
||
+ | |||
⚫ | |||
+ | |||
+ | |||
⚫ | |||
+ | 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