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の作成

    1. Program LauncherからMESHをクリックする。
    2. FILE->Create script graphics右図が出る。数値を入れる。あるいはFILE->Create script, textを選びMIN枠を記入した後にMIN.txtをGLOBAL以下をcut&pasteで直接書き込んでsaveし下のstep 16に移ってもいい。
    3. OKでgraphicsが出る。
    4. 入力などに失敗したらEDIT->Undo last operationで一つ前に戻れる。
    5. Settings->Snap controlsnap調整を行う。
    6. □(Rectangle)でReg 1の四辺形を作る(y=0-285,x=0-320)。
    7. STEEINGS->Region propertiesReg 1 を fill にする。
    8. View->ToggleFillDisplayをクリックしてfillされたか確認する()。
    9. 確認後View->ToggleFillDisplayをもう一度クリックして画面を元に戻す。
    10. Insert->Start next regionでReg #を2に上げ、HVライン(0,0)->(320,0)を引く。Reg 2が表示される。
    11. 終了するには画面を右クリックする。
    12. 同様にReg #3でstripsを引く。0->10,70->90,150->170,230->250,310->320
    13. exit->saveSCTstrips.MINが作られる。
    14. FILE->Load->Load script (MIN)でSCTstrips.MINをloadする。左下にcurrent file名が出る。
    15. Edit script->Edit script, testでSCTstrips.MINをeditしmeshの一部(250-285)をSCTstrips.MINのように2 unitまでに細かくする。saveするとSCTstrips.MLSができる。
    16. FILE->Load->Load script (MIN)でSCTstrips.MINを選択し、左下に出ているCurrent fileを確認する。
    17. Process mesh(緑の■)をクリックする。右下のmesh processedを確認してからPlot /repair menumesh(右図)を表示する。
    18. Returnの後、FILE->Save mesh (MOU)SCTstrips.MOUを作る。右下にMesh savedと表示される。

    ESTATを動かす

    1. Program LauncherからESTATをクリックしてEStatパネルを開く。
    2. 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
    3. OKでSCTstripsXXX.EIN(XXXは指定)が生成される。ファイル名文字に . は入れないこと。
    4. button#2をclickしてSCTstripsXXX.EINを選ぶと iteretion が自動的に始まる。10秒くらいかかる。終わるとSCTstripsXXX.EOUとSCTstripsXXX.ELSが生成される。
    5. button#3をclickしてSCTstripsXXX.EOUを選ぶとPotential分布がプロットされる。
    6. PLOTS->Plot settins->Plot quantityを使ってphi,Ex,Ey等の分布がプロットされる。
    7. FILE->Create scriptAnalysisFunctionsを参考にしてscan script.Screen Saverを作る。この時 input には.EOUのファイル名を、outputには出力ファイル名XXXを入れる。注意:パラメーター変える毎にcreateで新しいScreen Saverを作ること。
    8. FILE->Run scriptでscan script.Screen Saverを走らせるとSCT_70_150.txtが出来る。version7では出力がこのように違った。
    9. 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.cxxFEM_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の正負が変わる点を探せばいい。
    1. VFD=-30Vと決めたら
    2. Program LauncherからESTATをクリックしてEStatパネルを開く。
    3. 1でinput meshのSCT.MOUを選ぶ。
    4. 諸事項をEStat_script_setup-30パネルに入れる。
    5. SCT_M30_0066で保存するとSCT_M30_0066.EINファイルができる。
    6. 2でSCT_M30_0066.EINを選ぶ。15秒ほど計算しSCT_M30_0066.EOUファイルができる。
    7. 3でSCT_M30_0066.EOUを選ぶとEy分布が表示される。
    8. File->Create scriptでSCT_M30_0066と書き込むと「このファイルは存在しません」とでる。OKで開いた枠にINPUTとOUTPUTを指定したScriptを書き込む。
    9. File->Run scriptでSCT_M30_0066.SCRを選ぶとSCT_M30_0066.txtができる。
    10. VFD<0なのでymaxの出力からでEy=-2.754419E+04[V/m]をとる。VFD>0ならy=0のEy値をとる。
    11. ReturnでEStatパネルに戻り違うRho値で繰り返す。
    12. y=0 or y=285um(VB<0の場合)のEyをコピペしてdopeDependence_70.txtを作る。
    13. root -l -b -q plot_dopeDependence.CdopeDependence_70.pngdopeDependence_-30.pngが出来る。
    14. これから目で判断して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]だとわかる。
    15. root -l -b -q plot_VFD_Neff.CVFD_Neff.pngが作られる。Neff<0の時はFlat Diode Modelと殆ど同じだった。
      VFD[V]-240-210-180-150-120-90-60-3003070
      Neff[/cm**3]-3.8208e12-3.3432e12-2.8656e12-2.388e12-1.9104e12-1.4328e12-9.552e11-4.776e11 0.776e111.1144e12
      rho[C/m**3]-0.612-0.536-0.459-0.383-0.306-0.230-0.153-0.076500.07650.1785
      zero crossing-0.075500.06640.155

    Weighting potentialの計算

    1. Weighting.MIN
    2. Weighting.MLS
    3. Weighting.MOU-->Weighting.MOU.png
    4. Weighting_setup.png --> Weighting.EIN
    5. Weighting_Potential.png,
    6. FILE->Create scriptSCTstripFlatDiodeSaver.txtを作る。input には.EOUのファイル名を、outputには出力ファイル名XXXを入れる.
    7. FILE->Run scriptでSCTscriptFlatDiodeWeigtingを拾って走らせるとMeshExamples/にXXX_DATが出来る。notepadで読める。
    8. WeightingHV_setup.png
    9. WeightingHV_SATEdata.DAT
    10. cleanup_WeightingSATEdata.cxx -->WeightingPotential.DAT, WeightingPotentialHV.DAT,
    11. XXX_DATをlxplus/SCTcalib/FEM/に移してXXX.datとする。
    12. root -l -b -q cleanup_new.C
    13. root -l -b -q make_WeightingPotentialArray.C
    14. mv temp.txt GetPotential_FlatDiode.cxxを作ったらRamo/にコピーする href="make_WeightingPotentialArray.cxx.txt">make_WeightingPotentialArray.cxx-->GetPotential.cxx, GetPotentialHV.cxx
    15. plot_inducedCharge.C, sub_induced.cxx --> InducedCharge.png