sem_charging_series — GENERATIVE sem op

• Data kinds: image2d → video

• Call: import fullseye as fs; fs.ledger.sem_charging_series(height, material_map=None, *, materials=('PMMA',), substrate='SI', energy_kev: 'float' = 1.0, pixel_nm: 'float' = 2.0, beam_sigma_nm: 'float' = 1.0, electrons_per_pixel: 'int' = 30, detector: 'str' = 'inlens', frames: 'int' = 12, layer_bottom_nm=0.0, volts_per_electron: 'float' = 0.05, leak_frames: 'float' = 0.0, spread_px: 'float' = 1.0, phi_ev: 'float' = 2.0, gain=None, seed: 'int' = 0, return_potential: 'bool' = False) (to call the implementation directly, import sem; sem.sem_charging_series(height, material_map=None, *, materials=('PMMA',), substrate='SI', energy_kev: 'float' = 1.0, pixel_nm: 'float' = 2.0, beam_sigma_nm: 'float' = 1.0, electrons_per_pixel: 'int' = 30, detector: 'str' = 'inlens', frames: 'int' = 12, layer_bottom_nm=0.0, volts_per_electron: 'float' = 0.05, leak_frames: 'float' = 0.0, spread_px: 'float' = 1.0, phi_ev: 'float' = 2.0, gain=None, seed: 'int' = 0, return_potential: 'bool' = False); from the registry, opsgenerative.get("sem_charging_series"))

Usage

Advance insulator charging frame by frame of the scan and return the image over time (video, (T, H, W)).

> The detailed description below is the original text — the summary and the headings are translated.

1 コマで画素あたり electrons_per_pixel 個の電子が入り、η + δ·F(V) 個が出ていく。差し引き 1 − η − δ·F(V) 個が絶縁物の面に溜まり、電位を volts_per_electron [V/個] ずつ動かす(負の電子が溜まれば V は下がる)。電位は spread_px で横に広がり、leak_frames(> 0 なら)の時定数で抜ける。導体の面は接地(V = 0)。

• 正の帯電(η + δ > 1、低加速で多い): 二次電子が面に引き戻され(F(V)、sem_se_escape_fraction)、像は暗くなる。放出が減ると正味の流れも 0 に近づくので、電位は η + δ·F(V*) = 1 の V* で止まる(自己調整)。

• 負の帯電(η + δ < 1、高加速): 面の負の電位が二次電子を押し出し、像は 1 + |V| / (|V| + 20 V) 倍に明るくなる(★現象論の式で、2 定数は固定 —— _NEG_GAIN・_NEG_SCALE_V。着地エネルギーの低下とビームの曲がりは入れない)。

η と δ は sem_image のモンテカルロ(return_signals)で 1 回だけ求め、コマごとの雑音は検出された電子の数のポアソンで載せる。

Returns

numpy.ndarray

(frames, H, W) の float64、[0,1] (sem_image と同じ固定の倍率)。

return_potential なら dict(video と、コマごとの電位 potential_v (T, H, W)、

絶縁物の面のマスク insulator)。

Examples

>>> import numpy as np

>>> v = sem_charging_series(np.zeros((4, 4)), materials=("PMMA",), substrate="PMMA",

... electrons_per_pixel=5, frames=3)

>>> v.shape

(3, 4, 4)

Detailed usage guide

• generative_art family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_virtual_sem_kv_cd_bse — py -3.11 examples/poc_virtual_sem_kv_cd_bse.py

Ops the type connects to (they accept video as input)

—

Same category (sem)

sem_render · sem_electron_mc · sem_se_universal_curve · sem_yield_curve · sem_line_profile · sem_cd_measure · sem_image · sem_se_escape_fraction


*Provenance: sem.py — GENERATIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.