Oh! You closed up the window, so you cannot see raining

[Hugo] 使用 Hugo-notice

Shortcodes 介紹 Shortcodes 是內容檔案中的一個簡單片段,Hugo將使用預先定義的範本對其進行呈現。 除了更乾淨的 Markdown 外,Shortcodes 還可以隨時更新新的技術或標準。 Notice shortcodes 將以下程式碼加入到 Hugo 專案底下的 layouts/shortcodes/notice.html {{/* Available notice types: warning, info, note, tip */}} {{- $noticeType := .Get 0 | default "note" -}} {{/* Workaround markdownify inconsistency for single/multiple paragraphs */}} {{- $raw := (markdownify .Inner | chomp) -}} {{- $block := findRE "(?is)^<(?:address|article|aside|blockquote|canvas|dd|div|dl|dt|fieldset|figcaption|figure|footer|form|h(?:1|2|3|4|5|6)|header|hgroup|hr|li|main|nav|noscript|ol|output|p|pre|section|table|tfoot|ul|video)\\b" $raw 1 -}} {{/* Count how many times we've called this shortcode and load the css if it's the first time */}} {{- if not ($.Page.Scratch.Get "noticecount") -}} <style type="text/css">.notice{--root-color:#444;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#c33;--warning-content:#fee;--info-title:#fb7;--info-content:#fec;--note-title:#6be;--note-content:#e7f2fa;--tip-title:#5a5;--tip-content:#efe}@media (prefers-color-scheme:dark){.notice{--root-color:#ddd;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#800;--warning-content:#400;--info-title:#a50;--info-content:#420;--note-title:#069;--note-content:#023;--tip-title:#363;--tip-content:#121}}body.dark .notice{--root-color:#ddd;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#800;--warning-content:#400;--info-title:#a50;--info-content:#420;--note-title:#069;--note-content:#023;--tip-title:#363;--tip-content:#121}.notice{padding:18px;line-height:24px;margin-bottom:24px;border-radius:4px;color:var(--root-color);background:var(--root-background)}.notice p:last-child{margin-bottom:0}.notice-title{margin:-18px -18px 12px;padding:4px 18px;border-radius:4px 4px 0 0;font-weight:700;color:var(--title-color);background:var(--title-background)}.notice.warning .notice-title{background:var(--warning-title)}.notice.warning{background:var(--warning-content)}.notice.info .notice-title{background:var(--info-title)}.notice.info{background:var(--info-content)}.notice.note .notice-title{background:var(--note-title)}.notice.note{background:var(--note-content)}.notice.tip .notice-title{background:var(--tip-title)}.notice.tip{background:var(--tip-content)}.icon-notice{display:inline-flex;align-self:center;margin-right:8px}.icon-notice img,.icon-notice svg{height:1em;width:1em;fill:currentColor}.icon-notice img,.icon-notice.baseline svg{top:.125em;position:relative}</style> <div><svg width="0" height="0" display="none" xmlns="http://www.w3.org/2000/svg"><symbol id="tip-notice" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet"><path d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"/></symbol><symbol id="note-notice" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet"><path d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/></symbol><symbol id="warning-notice" viewBox="0 0 576 512" preserveAspectRatio="xMidYMid meet"><path d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/></symbol><symbol id="info-notice" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet"><path d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"/></symbol></svg></div> {{- end -}} {{- $.Page.Scratch.Add "noticecount" 1 -}} <div class="notice {{ $noticeType }}" {{ if len .Params | eq 2 }} id="{{ .Get 1 }}" {{ end }}> <p class="first notice-title"><span class="icon-notice baseline"><svg><use href="#{{- $noticeType -}}-notice"></use></svg></span>{{- i18n $noticeType -}}</p> {{- if or $block (not $raw) }}{{ $raw }}{{ else }}<p>{{ $raw }}</p>{{ end -}} </div> Classes 警告 {{< notice warning >}} 這是警告(warning) {{< /notice >}} ...

<span title='2024-01-19 01:26:30 +0800 +0800'>January 19, 2024</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[TCAD] 模擬收斂問題

TCAD 模擬收斂問題 收斂問題 Sentaurus Device 有非常多種可模擬大電場下之飽和遷移率的模型,而這主要是設定有效電場的模型。其中,最自然的選擇就是 Eparallel driving model。這種模型取總電場平行於電流方向上的分量。不過這通常會導致嚴重的收斂問題。主要是因為電場跟電流有著極為密切的關係,除此之外,以 MOSFET 通道為例,通常垂直與平行通道方向之電場數量級差很多,因為演算之數值誤差會「混合」這兩個分量,所以這種 Eparallel 模型會使得每個節點上的 driving force變化許多,進而改變電流方向,又接著改變電場分量,所以會造成極為不穩定的情況。 其中一個折衷的辦法,就是只考慮平行於 silicon-oxide 界面上的電場,可以使用 HighFieldSaturation(EparallelToInterface) 指令來啟動這模型。只要大部分的電流都平行於界面,那基本上這就是個很好的模型。然而,目前最新科技通常會使得 source/drain 的電流以「向外散開,向內吸入」的方式進入與離開。例如說目前的 ultrashalow source and drain extensions。電流散開之後,電流就不再平行於界面,而這模型可能會帶來將近 5-15 % 的誤差。因此,如果你知道電流的方向,那麼你也可以設定用來計算平行電場分量之方向向量,而不再只是單純地與最鄰近的界面平行的方向。例如說,如果你覺得電流主要是沿著 x 軸在流動,那麼可以在 Math section 設定 EparallelToInterface (Direction = (1 0 0))。 最常用的 driving force 是 quasi-Fermi potential 的梯度模型。通常這跟平行電場模型是一樣的,但它的演算法比較穩定。可以用 HighFieldSaturation(GradQuasiFermi) 選項來啟動它。不過,即便如此,還是可能會造成收斂問題。這是因為通常 quasi-Fermi potential 的梯度都非常的陡峭,變化得太過劇烈或是非常的不平滑,而這往往切得比較不好的網格所造成的。 但在有些時候,即便網格切得很好,還是沒辦法收斂。有時是因為低載子濃度的區域的濃度相對誤差都滿高的,而這會進一步導致 quasi-Fermi potential 的誤差變得滿大的。因為這些區域通常對總電流的貢獻並不是很顯著,所以算得太準反而會讓模擬跑得更慢。不過,你確實需要確認一下這些低密度是不是導致發散。 除此之外,也可藉由設定 RefDens_eGradQuasiFermi_EparallelToInterface 與 RefDens_hGradQuasiFermi_EparallelToInterface 來使用「內插 GradQuasiFermi 與 Eparallel」的 driving force 模型。該參數定義了 gradual transition 發生的局域載子濃度。例如說,如果設定為 1e12,那麼當載子濃度高於 1e12,就使用 GradQuasiFermi model,反之則使用 Eparallel model。通常 1e12 並不會影響到總電流,但仍能改善收斂問題。有時甚至需要用到 1e14 ~ 1e16 以獲得更好的收斂,但要留意不同設定所得到的電流是否一致,以確定 Eparallel driving force 帶來的誤差仍可接受。 ...

<span title='2022-05-25 22:52:15 +0800 +0800'>May 25, 2022</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[TCAD] 工具語言

TCAD 常用的三種程式語言 工具語言 用於操作 Sentaurus 工具的指令,例如: snmesh sdevice 預處理語言 Sentaurus Workbench Preprocessing Language(SPP):在 SWB 執行指令檔之前,會先翻譯 SPP 語言。(類似於 C 的 macro) 例如: #define __x__ 1 // 將所有 __x__ 字串取代成字串 1 TCL 公用語言,通常用來處理字串與數據。 範例 SPP 語言:@...@、#開頭的敘述都是 SPP 語言 #if "@tunneling@ == "Hurkx" #define _B2BTunnelModel_ Band2Band(Model=Hurkx) #define _B2BTunnelMath_ NoSRHperPotential #elif "@tunneling@ == "E1" #define _B2BTunnelModel_ Band2Band(Model=E1) #define _B2BTunnelMath_ NoSRHperPotential #elif "@tunneling@ == "E1_5" #define _B2BTunnelModel_ Band2Band(Model=E1_5) #define _B2BTunnelMath_ NoSRHperPotential #elif "@tunneling@ == "E2" #define _B2BTunnelModel_ Band2Band(Model=E2) #define _B2BTunnelMath_ NoSRHperPotential #else #define _B2BTunnelModel_ #define _B2BTunnelMath_ #endif TCL 語言:set 與 puts 其中 @…@ 因為是 SPP 語言,故會先被前面定義好的 header 取代,之後才會執向 .cmd 檔。 set A [expr -@BF_Thick@-@AB_Thick@-@GR_Thick@-@CH_Thick@-@ML_Thick@] puts "DOE: Xmin [format %.2f $A]"

<span title='2022-03-26 21:46:26 +0800 +0800'>March 26, 2022</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;Rain Hu