-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsimulation_types.py
More file actions
55 lines (50 loc) · 1.59 KB
/
simulation_types.py
File metadata and controls
55 lines (50 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from dataclasses import dataclass
import numpy as np
@dataclass(frozen=True)
class BiasPointState:
voltage_v: float
voltage_au: float
domain_states: np.ndarray
polarization_au: float
polarization_uc_cm2: float
polarization_change_uc_cm2: float
screening_charge_au: float
screening_charge_uc_cm2: float
screening_charge_c_m2: float
fe_field_au: float
fe_field_mv_cm: float
il_field_au: float
il_field_mv_cm: float
dl_field_au: float
dl_field_mv_cm: float
fe_built_in_field_au: float
fe_built_in_field_mv_cm: float
il_built_in_field_au: float
il_built_in_field_mv_cm: float
dl_built_in_field_au: float
dl_built_in_field_mv_cm: float
residual_au: float
residual_mv_cm: float
converged: bool
used_fallback: bool
# Polarization-bound surface charge densities (atomic units, charge/area).
# Per polarization_barrier_coupling.md Eq. 1, Eq. 2:
# sigma_pol_top_au = -P_FE (top FE face / FE-IL interface)
# sigma_pol_bot_au = +P_FE (bottom FE face / FE-bottom-electrode interface)
sigma_pol_top_au: float = 0.0
sigma_pol_bot_au: float = 0.0
@dataclass(frozen=True)
class TransportBreakdown:
voltage_v: float
temperature_k: float
thermionic_a_per_m2: float
tunneling_a_per_m2: float
poole_frenkel_a_per_m2: float
trap_assisted_tunneling_a_per_m2: float
sclc_a_per_m2: float
total_a_per_m2: float
tunneling_transmission: float
trap_tunneling_transmission: float
top_barrier_ev: float
bottom_barrier_ev: float
background_leakage_a_per_m2: float = 0.0