Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
3日目(デバイスシミュレーション) | ||||||||
Line: 89 to 89 | ||||||||
ただし、構造体をsdeで作った際に電極になる場所を作っておく必要があります。前回の sdegeo:define-contact-set を参照。 | ||||||||
Changed: | ||||||||
< < | Simple2D_des.cmdのなかでストリップ電極数(cathode1,2,3)+裏面(anode)の4つの電極を作って、それぞれを 0.0 Vに設定します。 | |||||||
> > | Simple2D_des.cmdのなかでストリップ電極(cathode1,2,3)+裏面(anode)の4つの電極を作って、それぞれを 0.0 Vに設定します。 | |||||||
eRecVelocity や hRecVelocityは再結合モビリティー(単位は cm/s)。 | ||||||||
Line: 154 to 154 | ||||||||
CurrentPlot section | ||||||||
Changed: | ||||||||
< < | CurrentPlot { eLifeTime(Maximum(material="Silicon")) hLifeTime(Maximum(material="Silicon")) eAvalanche(Maximum(material="Silicon")) hAvalanche(Maximum(material="Silicon")) } | |||||||
> > | 基本的に結果のアウトプットは二種類あります。
CurrentPlot { eLifeTime(Maximum(material="Silicon")) hLifeTime(Maximum(material="Silicon")) eAvalanche(Maximum(material="Silicon")) hAvalanche(Maximum(material="Silicon")) } | |||||||
Math section | ||||||||
Changed: | ||||||||
< < | Math { ##CDensityMin=1e-100 Extrapolate Derivatives Avalderivatives Digits=5 Notdamped=1000 Iterations=20 RelerrControl ErrRef (electron)=1e6 ErrRef (hole)=1e6 RhsMin =1e-15 eMobilityAveraging=ElementEdge hMobilityAveraging=ElementEdge ParallelToInterfaceInBoundaryLayer (-ExternalBoundary) ##Method=Blocked ##SubMethod=ILS (set=1) ##Method=ILS (set=1) Method=Pardiso ILSrc = " set(1) { iterative( gmres(100), tolrel=1e-8, tolunprec=1e-4, tolabs=0, maxit=200 ); preconditioning( ilut(0.0001,-1), left ); ordering( symmetric=nd, nonsymmetric=mpsilst ); options( compact=yes, verbose=0, refineresidual=0 ); }; " number_of_threads=4 } | |||||||
> > | デバイスシミュレータは(基本的には部分積分)方程式を各メッシュごとに、矛盾することなくイテレーション(反復)しながら解いていきます。
各 Iterationで適度に小さい誤差で数値が収束する必要があります。Math sectionでは数値解析の様々なオプションを設定します。
全部は説明しませんが、それぞれの項目が何を表しているかをSentaurus Device Usr Guide マニュアルのp.1432 Table 205を参照してください。
Math { ##CDensityMin=1e-100 Extrapolate Derivatives Avalderivatives Digits=5 Notdamped=1000 Iterations=20 RelerrControl ErrRef (electron)=1e6 ErrRef (hole)=1e6 RhsMin =1e-15 eMobilityAveraging=ElementEdge hMobilityAveraging=ElementEdge ParallelToInterfaceInBoundaryLayer (-ExternalBoundary) ##Method=Blocked ##SubMethod=ILS (set=1) ##Method=ILS (set=1) Method=Pardiso ILSrc = " set(1) { iterative( gmres(100), tolrel=1e-8, tolunprec=1e-4, tolabs=0, maxit=200 ); preconditioning( ilut(0.0001,-1), left ); ordering( symmetric=nd, nonsymmetric=mpsilst ); options( compact=yes, verbose=0, refineresidual=0 ); }; " number_of_threads=4 } | |||||||
Solve Section | ||||||||
Changed: | ||||||||
< < | Solve { Poisson plugin { Poisson Electron Hole } Coupled { Poisson Electron Hole } NewCurrent ="IV_" Quasistationary ( DoZero MaxStep =1 MinStep =1e-8 InitialStep =1e-5 Increment=1.6 Decrement=4.0 Goal { Name="anode" Voltage=-120} BreakCriteria {Current (Contact = "anode" minval = -1e-7 )} ) { Coupled { Poisson Electron Hole } } Quasistationary ( DoZero MaxStep =1 MinStep =1e-8 InitialStep =1e-5 Increment=1.6 Decrement=4.0 Goal { Name="anode" Voltage=@Vop@} BreakCriteria {Current (Contact = "anode" minval = -1e-7 )} ) { Coupled { Poisson Electron Hole } } system("") } | |||||||
> > | デバイスシミュレーションでなんの解を求めてもらうかを指定する場所です。ここの部分が最も大事です。
Solve { Poisson plugin { Poisson Electron Hole } Coupled { Poisson Electron Hole } NewCurrent ="IV_" Quasistationary ( DoZero MaxStep =1 MinStep =1e-8 InitialStep =1e-5 Increment=1.6 Decrement=4.0 Goal { Name="anode" Voltage=-120} BreakCriteria {Current (Contact = "anode" minval = -1e-7 )} ) { Coupled { Poisson Electron Hole } } Quasistationary ( DoZero MaxStep =1 MinStep =1e-8 InitialStep =1e-5 Increment=1.6 Decrement=4.0 Goal { Name="anode" Voltage=@Vop@} BreakCriteria {Current (Contact = "anode" minval = -1e-7 )} ) { Coupled { Poisson Electron Hole } } system("") } | |||||||
Plot SectionPlot { Current/Vector eCurrent/Vector hCurrent/Vector eDensity hDensity ElectricField /Vector Potential CurrentPotential DopingConcentration eMobility hMobility DonorConcentration AcceptorConcentration AvalancheGeneration eAvalanche hAvalanche eLifeTime hLifeTime } |