How to run SATE : Static-Field Analysis Toolkit (Educational)
2010.1.21, 4.10, 4.13.4.19 .5.30, 9.15 , 2012.11.5, 2018.7.20, 2019.3.22, 2020.5.21,
2020.8.7/8.8a/9.8, 2021.5.6 2022.1.28 by T. Kondo
MESHの作成 | ESTATを動かす | Rho(Neff)値の求め方 | RamoPotentialの計算
SATEのダウンロード
http://www.fieldp.com/sate.htmlからsateというfree softwareをダウンロードする。
日本語のページ
video解説
SATE(フリーウェア)(2017.8.9)
SATEの起動
SATE(application名 tc)をクリックするとProgram Launcher(右図)が出てくる。
PROGRAM FOLDER(SATEフォルダー)とDATA FOLDER(当面はsimulationフォルダー)を指定する。
MESHの作成
- Program LauncherからMESHをクリックする。
- FILE->Create script graphicsで右図が出る。数値を入れる。あるいはFILE->Create script, textを選びMIN枠を記入した後にMIN.txtをGLOBAL以下をcut&pasteで直接書き込んでsaveし下のstep 16に移ってもいい。
- OKでgraphicsが出る。
- 入力などに失敗したらEDIT->Undo last operationで一つ前に戻れる。
- Settings->Snap controlでsnap調整を行う。
- □(Rectangle)でReg 1の四辺形を作る(y=0-285,x=0-320)。
- STEEINGS->Region properties で Reg 1 を fill にする。
- View->ToggleFillDisplayをクリックしてfillされたか確認する(例)。
- 確認後View->ToggleFillDisplayをもう一度クリックして画面を元に戻す。
![](mesh.jpg)
- Insert->Start next regionでReg #を2に上げ、HVライン(0,0)->(320,0)を引く。Reg 2が表示される。
- 終了するには画面を右クリックする。
- 同様にReg #3でstripsを引く。0->10,70->90,150->170,230->250,310->320
- exit->saveでSCTstrips.MINが作られる。
- FILE->Load->Load script (MIN)でSCTstrips.MINをloadする。左下にcurrent file名が出る。
- Edit script->Edit script, testでSCTstrips.MINをeditしmeshの一部(250-285)をSCTstrips.MINのように2 unitまでに細かくする。saveするとSCTstrips.MLSができる。
- FILE->Load->Load script (MIN)でSCTstrips.MINを選択し、左下に出ているCurrent fileを確認する。
- Process mesh(緑の■)をクリックする。右下のmesh processedを確認してからPlot /repair menuでmesh(右図)を表示する。
- Returnの後、FILE->Save mesh (MOU)でSCTstrips.MOUを作る。右下にMesh savedと表示される。
ESTATを動かす
- Program LauncherからESTATをクリックしてEStatパネルを開く。
- button#1をclickしてSCTstrips.MOUを選んで諸事項をEStat scrip setupパネルに入れる。
ここでRho(charge density)の単位はCoulomb/m3である。d=285um,VD=65VでNeff,0 = VD*2*epsilion'*epsilon0/e/(d**2) = 65[V]*2*11.6*8.85E-14[F/cm]/1.6E-19[Coulomb]/(0.0285[cm]*0.0285[cm]) =
1.027E12[V*F/cm/Coulomb/cm/cm]=1.027E12[cm-3] => 1.027E12*1.6E-19*E6[Coulomb/m**3] = 0.164[Coulomb/m3] しかし離散したstripの影響を考慮に入れると65Vでfull depletionに達するには0.1415 Coulomb/m3だった。VD=70V(150V)だと0.154(0.3265)C/m3-->See
E-field page
- OKでSCTstripsXXX.EIN(XXXは指定)が生成される。ファイル名文字に . は入れないこと。
- button#2をclickしてSCTstripsXXX.EINを選ぶと iteretion が自動的に始まる。10秒くらいかかる。終わるとSCTstripsXXX.EOUとSCTstripsXXX.ELSが生成される。
- button#3をclickしてSCTstripsXXX.EOUを選ぶとPotential分布がプロットされる。
- PLOTS->Plot settins->Plot quantityを使ってphi,Ex,Ey等の分布がプロットされる。
- FILE->Create scriptでAnalysisFunctionsを参考にしてscan script.Screen Saverを作る。この時 input には.EOUのファイル名を、outputには出力ファイル名XXXを入れる。注意:パラメーター変える毎にcreateで新しいScreen Saverを作ること。
- FILE->Run scriptでscan script.Screen Saverを走らせるとSCT_70_150.txtが出来る。version7では出力がこのように違った。
- cleanup.C, make_ExOnly.C, make_EyOnly.C, make_ExOnly_short.C, make_ExOnly_short.C, plot_Ey.Cをコピーしてから source FEM.sh(or FEM\short.sh)を実行しFEM_ExEy.cxx(FEM_ExEy_short.cxx)をつくる。
VFDに対する入力パラメターRho(Neff)値の求め方
離散したstrip電極の影響でFull depletion voltage VFDがFlat Diodeの場合(Neff = VFD*2*e*e0/(q0*d**2). Rho(charge density [Coulomb/m**3]) = Neff*q0*e6)から16%程ずれる。その値はEyの正負が変わる点を探せばいい。
- VFD=-30Vと決めたら
- Program LauncherからESTATをクリックしてEStatパネルを開く。
- 1でinput meshのSCT.MOUを選ぶ。
- 諸事項をEStat_script_setup-30パネルに入れる。
- SCT_M30_0066で保存するとSCT_M30_0066.EINファイルができる。
- 2でSCT_M30_0066.EINを選ぶ。15秒ほど計算しSCT_M30_0066.EOUファイルができる。
- 3でSCT_M30_0066.EOUを選ぶとEy分布が表示される。
- File->Create scriptでSCT_M30_0066と書き込むと「このファイルは存在しません」とでる。OKで開いた枠にINPUTとOUTPUTを指定したScriptを書き込む。
- File->Run scriptでSCT_M30_0066.SCRを選ぶとSCT_M30_0066.txtができる。
- VFD<0なのでymaxの出力からでEy=-2.754419E+04[V/m]をとる。VFD>0ならy=0のEy値をとる。
- ReturnでEStatパネルに戻り違うRho値で繰り返す。
- y=0 or y=285um(VB<0の場合)のEyをコピペしてdopeDependence_70.txtを作る。
- root -l -b -q plot_dopeDependence.CでdopeDependence_70.pngやdopeDependence_-30.pngが出来る。
- これから目で判断してVFD=(70,30,-30,-70)Vに対しzero-crossing Rho=(0.155, 0.0664, -0.0755,-0.177)Coulomb/m**3, Neff=Rho/(q0*e6)=(0.968e12,0.414e12,-0.471e12,-1.105e12)[cm**-3]だとわかる。
- root -l -b -q plot_VFD_Neff.CでVFD_Neff.pngが作られる。Neff<0の時はFlat Diode Modelと殆ど同じだった。
VFD[V] | -240 | -210 | -180 | -150 | -120 | -90 | -60 | -30 | 0 | 30 | 70
|
Neff[/cm**3] | -3.8208e12 | -3.3432e12 | -2.8656e12 | -2.388e12 | -1.9104e12 | -1.4328e12 | -9.552e11 | -4.776e11 | 0 | .776e11 | 1.1144e12
|
rho[C/m**3] | -0.612 | -0.536 | -0.459 | -0.383 | -0.306 | -0.230 | -0.153 | -0.0765 | 0 | 0.0765 | 0.1785
|
zero crossing | | | | | | | | -0.0755 | 0 | 0.0664 | 0.155
|
Weighting potentialの計算
- Weighting.MIN
- Weighting.MLS
- Weighting.MOU-->Weighting.MOU.png
- Weighting_setup.png --> Weighting.EIN
- Weighting_Potential.png,
- FILE->Create scriptでSCTstripFlatDiodeSaver.txtを作る。input には.EOUのファイル名を、outputには出力ファイル名XXXを入れる.
- FILE->Run scriptでSCTscriptFlatDiodeWeigtingを拾って走らせるとMeshExamples/にXXX_DATが出来る。notepadで読める。
- WeightingHV_setup.png
- WeightingHV_SATEdata.DAT
-
- cleanup_WeightingSATEdata.cxx -->WeightingPotential.DAT, WeightingPotentialHV.DAT,
- XXX_DATをlxplus/SCTcalib/FEM/に移してXXX.datとする。
- root -l -b -q cleanup_new.C
- root -l -b -q make_WeightingPotentialArray.C
- mv temp.txt GetPotential_FlatDiode.cxxを作ったらRamo/にコピーする
href="make_WeightingPotentialArray.cxx.txt">make_WeightingPotentialArray.cxx-->GetPotential.cxx, GetPotentialHV.cxx
- plot_inducedCharge.C, sub_induced.cxx --> InducedCharge.png