simcats 1.1.0__py3-none-any.whl → 2.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- simcats/__init__.py +4 -3
- simcats/_default_configs.py +129 -13
- simcats/_simulation.py +451 -69
- simcats/config_samplers/_GaAs_v1_random_variations_v3_config_sampler.py +1059 -0
- simcats/config_samplers/__init__.py +9 -0
- simcats/distortions/_distortion_interfaces.py +1 -1
- simcats/distortions/_dot_jumps.py +8 -6
- simcats/distortions/_random_telegraph_noise.py +4 -4
- simcats/distortions/_transition_blurring.py +5 -5
- simcats/distortions/_white_noise.py +2 -2
- simcats/ideal_csd/geometric/_generate_lead_transition_mask.py +3 -3
- simcats/ideal_csd/geometric/_get_electron_occupation.py +5 -5
- simcats/ideal_csd/geometric/_ideal_csd_geometric.py +5 -5
- simcats/ideal_csd/geometric/_ideal_csd_geometric_class.py +9 -9
- simcats/ideal_csd/geometric/_tct_bezier.py +5 -5
- simcats/sensor/__init__.py +10 -6
- simcats/sensor/{_generic_sensor.py → _sensor_generic.py} +1 -1
- simcats/sensor/_sensor_interface.py +164 -11
- simcats/sensor/_sensor_rise_glf.py +229 -0
- simcats/sensor/_sensor_scan_sensor_generic.py +929 -0
- simcats/sensor/barrier_function/__init__.py +9 -0
- simcats/sensor/barrier_function/_barrier_function_glf.py +280 -0
- simcats/sensor/barrier_function/_barrier_function_interface.py +43 -0
- simcats/sensor/barrier_function/_barrier_function_multi_glf.py +157 -0
- simcats/sensor/deformation/__init__.py +9 -0
- simcats/sensor/deformation/_sensor_peak_deformation_circle.py +109 -0
- simcats/sensor/deformation/_sensor_peak_deformation_interface.py +65 -0
- simcats/sensor/deformation/_sensor_peak_deformation_linear.py +77 -0
- simcats/support_functions/__init__.py +11 -3
- simcats/support_functions/_generalized_logistic_function.py +146 -0
- simcats/support_functions/_linear_algebra.py +171 -0
- simcats/support_functions/_parameter_sampling.py +108 -19
- simcats/support_functions/_pixel_volt_transformation.py +24 -0
- simcats/support_functions/_reset_offset_mu_sens.py +43 -0
- {simcats-1.1.0.dist-info → simcats-2.0.0.dist-info}/METADATA +93 -29
- simcats-2.0.0.dist-info/RECORD +53 -0
- {simcats-1.1.0.dist-info → simcats-2.0.0.dist-info}/WHEEL +1 -1
- simcats-1.1.0.dist-info/RECORD +0 -37
- /simcats/sensor/{_gaussian_sensor_peak.py → _sensor_peak_gaussian.py} +0 -0
- /simcats/sensor/{_lorentzian_sensor_peak.py → _sensor_peak_lorentzian.py} +0 -0
- {simcats-1.1.0.dist-info → simcats-2.0.0.dist-info/licenses}/LICENSE +0 -0
- {simcats-1.1.0.dist-info → simcats-2.0.0.dist-info}/top_level.txt +0 -0
simcats/__init__.py
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
process of qubits.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from ._simulation import Simulation
|
|
6
|
-
from ._default_configs import default_configs
|
|
5
|
+
from simcats._simulation import Simulation
|
|
6
|
+
from simcats._default_configs import default_configs
|
|
7
7
|
|
|
8
8
|
__all__ = ["Simulation", "default_configs"]
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
__version__ = "2.0.0"
|
simcats/_default_configs.py
CHANGED
|
@@ -5,7 +5,7 @@ perform charge stability diagram (CSD) simulations.
|
|
|
5
5
|
Contributors should add their parameter sets to the default_configs dictionary so that they are available in a central
|
|
6
6
|
location.
|
|
7
7
|
|
|
8
|
-
@author: f.hader
|
|
8
|
+
@author: f.hader, b.papajewski
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
import numpy as np
|
|
@@ -13,7 +13,8 @@ import numpy as np
|
|
|
13
13
|
from simcats.distortions import OccupationTransitionBlurringGaussian, OccupationDotJumps, SensorPotentialPinkNoise, \
|
|
14
14
|
SensorPotentialRTN, SensorResponseRTN, SensorResponseWhiteNoise
|
|
15
15
|
from simcats.ideal_csd import IdealCSDGeometric
|
|
16
|
-
from simcats.sensor import SensorPeakLorentzian, SensorGeneric
|
|
16
|
+
from simcats.sensor import SensorPeakLorentzian, SensorGeneric, SensorScanSensorGeneric, SensorRiseGLF
|
|
17
|
+
from simcats.sensor.barrier_function import BarrierFunctionGLF
|
|
17
18
|
|
|
18
19
|
from simcats.support_functions import NormalSamplingRange, UniformSamplingRange
|
|
19
20
|
|
|
@@ -60,10 +61,11 @@ default_configs = {"GaAs_v1": {"volt_limits_g1": np.array([-0.2, -0.087]),
|
|
|
60
61
|
SensorPeakLorentzian(mu0=-0.11596, gamma=0.001, height=0.027245, offset=-0.253275),
|
|
61
62
|
SensorPeakLorentzian(mu0=-0.11096, gamma=0.00105, height=0.028245, offset=-0.253275),
|
|
62
63
|
SensorPeakLorentzian(mu0=-0.10596, gamma=0.0011, height=0.029245, offset=-0.253275),
|
|
63
|
-
SensorPeakLorentzian(mu0=-0.10096, gamma=0.00115, height=0.030245, offset=-0.253275)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
SensorPeakLorentzian(mu0=-0.10096, gamma=0.00115, height=0.030245, offset=-0.253275)
|
|
65
|
+
],
|
|
66
|
+
alpha_dot=np.array([-0.00044775, -0.0002922]),
|
|
67
|
+
alpha_gate=np.array([0.08949, 0.116395]),
|
|
68
|
+
offset_mu_sens=-0.0818745),
|
|
67
69
|
"occupation_distortions": [OccupationTransitionBlurringGaussian(0.75 * 0.03 / 100),
|
|
68
70
|
# in g2 (y in 2D) direction
|
|
69
71
|
OccupationDotJumps(ratio=0.01, scale=100 * 0.03 / 100,
|
|
@@ -72,19 +74,133 @@ default_configs = {"GaAs_v1": {"volt_limits_g1": np.array([-0.2, -0.087]),
|
|
|
72
74
|
OccupationDotJumps(ratio=0.01 / 6, scale=100 * 0.03 / 100,
|
|
73
75
|
lam=6 * 0.03 / 100, axis=1)],
|
|
74
76
|
"sensor_potential_distortions": [
|
|
75
|
-
SensorPotentialPinkNoise(
|
|
76
|
-
|
|
77
|
+
SensorPotentialPinkNoise(
|
|
78
|
+
sigma=UniformSamplingRange((1.8250268077765864e-12, 9.125134038882932e-05)),
|
|
79
|
+
fmin=0),
|
|
77
80
|
SensorPotentialRTN(scale=74.56704 * 0.03 / 100, std=3.491734e-05,
|
|
78
81
|
height=2.53855325e-05, ratio=1 / 6)],
|
|
79
82
|
"sensor_response_distortions": [
|
|
80
83
|
SensorResponseRTN(scale=10000 * 0.03 / 100, std=0.047453767599999995,
|
|
81
84
|
height=0.0152373696, ratio=0.03),
|
|
82
|
-
SensorResponseWhiteNoise(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
SensorResponseWhiteNoise(
|
|
86
|
+
sigma=NormalSamplingRange((1e-10, 0.003), sampling_range=0.001,
|
|
87
|
+
std=0.0003))]
|
|
88
|
+
},
|
|
89
|
+
"GaAs_v2_extended_sensor": {
|
|
90
|
+
"volt_limits_g1": np.array([-0.2, -0.087]),
|
|
91
|
+
"volt_limits_g2": np.array([-0.2, -0.047]),
|
|
92
|
+
"volt_limits_sensor_g1": np.array([-1, 0.4]),
|
|
93
|
+
"volt_limits_sensor_g2": np.array([-1, 0.4]),
|
|
94
|
+
"ideal_csd_config": IdealCSDGeometric(tct_params=[np.array(
|
|
95
|
+
[0.01075474, 0.01549732, 0.42465033, -0.38038481, -0.02750187, -0.17179705,
|
|
96
|
+
-0.02674207, -0.17171497]), np.array(
|
|
97
|
+
[0.01075474, 0.01549732, 0.40341781, -0.36136557, -0.04171389, -0.16351316,
|
|
98
|
+
-0.04012621, -0.16343108]), np.array(
|
|
99
|
+
[0.01075474, 0.01549732, 0.38324692, -0.34329729, -0.05592591, -0.15564346,
|
|
100
|
+
-0.05351035, -0.15556138]), np.array(
|
|
101
|
+
[0.01075474, 0.01549732, 0.36408457, -0.32613243, -0.07013794, -0.14816725,
|
|
102
|
+
-0.06689448, -0.14808517]), np.array(
|
|
103
|
+
[0.01075474, 0.01549732, 0.34588034, -0.30982581, -0.08434996, -0.14106485,
|
|
104
|
+
-0.08027862, -0.14098277]), np.array(
|
|
105
|
+
[0.01075474, 0.01549732, 0.32858633, -0.29433452, -0.09856198, -0.13431757,
|
|
106
|
+
-0.09366276, -0.13423549]), np.array(
|
|
107
|
+
[0.01075474, 0.01549732, 0.31215701, -0.27961779, -0.112774, -0.12790766, -0.1070469,
|
|
108
|
+
-0.12782558]), np.array(
|
|
109
|
+
[0.01075474, 0.01549732, 0.20758441, -0.18594583, -0.12698603, -0.12181824,
|
|
110
|
+
-0.12125892, -0.12173616]), np.array(
|
|
111
|
+
[0.01075474, 0.01549732, 0.13804363, -0.12365398, -0.14119805, -0.11603329,
|
|
112
|
+
-0.13547094, -0.11595121]), np.array(
|
|
113
|
+
[0.01075474, 0.01549732, 0.09179902, -0.0822299, -0.15541007, -0.11053759,
|
|
114
|
+
-0.14968296, -0.1104555]), np.array(
|
|
115
|
+
[0.01075474, 0.01549732, 0.06104635, -0.05468288, -0.16962209, -0.10531667,
|
|
116
|
+
-0.16389499, -0.10523459]), np.array(
|
|
117
|
+
[0.01075474, 0.01549732, 0.04059582, -0.03636412, -0.18383412, -0.1003568,
|
|
118
|
+
-0.17810701, -0.10027472]), np.array(
|
|
119
|
+
[0.01075474, 0.01549732, 0.02699622, -0.02418214, -0.19804614, -0.09564492,
|
|
120
|
+
-0.19231903, -0.09556284]), np.array(
|
|
121
|
+
[0.01075474, 0.01549732, 0.01795249, -0.01608112, -0.21225816, -0.09116864,
|
|
122
|
+
-0.20653105, -0.09108656])],
|
|
123
|
+
rotation=-np.pi / 4,
|
|
124
|
+
lut_entries=1000,
|
|
125
|
+
cdf_type="sigmoid",
|
|
126
|
+
cdf_gamma_factor=None),
|
|
127
|
+
"sensor": SensorScanSensorGeneric(
|
|
128
|
+
barrier_functions=(
|
|
129
|
+
BarrierFunctionGLF(pinch_off_percentage=0.001,
|
|
130
|
+
fully_conductive_percentage=0.999,
|
|
131
|
+
asymptote_left=0,
|
|
132
|
+
asymptote_right=0.3,
|
|
133
|
+
growth_rate=80,
|
|
134
|
+
asymmetry=8.948499659663527e-05,
|
|
135
|
+
shape_factor=25.64528635013381,
|
|
136
|
+
denominator_offset=1,
|
|
137
|
+
offset=-0.78),#-0.83),
|
|
138
|
+
BarrierFunctionGLF(pinch_off_percentage=0.001,
|
|
139
|
+
fully_conductive_percentage=0.999,
|
|
140
|
+
asymptote_left=0,
|
|
141
|
+
asymptote_right=0.3,
|
|
142
|
+
growth_rate=72,
|
|
143
|
+
asymmetry=7.784390241302876e-05,
|
|
144
|
+
shape_factor=97.5062459999433,
|
|
145
|
+
denominator_offset=1,
|
|
146
|
+
offset=-0.88)#-0.93)
|
|
147
|
+
),
|
|
148
|
+
sensor_peak_function=[
|
|
149
|
+
SensorPeakLorentzian(mu0=-0.151, gamma=0.0002, height=0.09, offset=0),
|
|
150
|
+
SensorPeakLorentzian(mu0=-0.148, gamma=0.000225, height=0.09, offset=0),
|
|
151
|
+
SensorPeakLorentzian(mu0=-0.145, gamma=0.00025, height=0.09, offset=0),
|
|
152
|
+
SensorPeakLorentzian(mu0=-0.142, gamma=0.000275, height=0.09, offset=0),
|
|
153
|
+
SensorPeakLorentzian(mu0=-0.139, gamma=0.0003, height=0.09, offset=0),
|
|
154
|
+
SensorPeakLorentzian(mu0=-0.136, gamma=0.000325, height=0.09, offset=0),
|
|
155
|
+
SensorPeakLorentzian(mu0=-0.133, gamma=0.00035, height=0.09, offset=0),
|
|
156
|
+
SensorPeakLorentzian(mu0=-0.130, gamma=0.000375, height=0.09, offset=0),
|
|
157
|
+
SensorPeakLorentzian(mu0=-0.127, gamma=0.0004, height=0.09, offset=0),
|
|
158
|
+
SensorPeakLorentzian(mu0=-0.124, gamma=0.000425, height=0.09, offset=0),
|
|
159
|
+
SensorPeakLorentzian(mu0=-0.121, gamma=0.00045, height=0.09, offset=0),
|
|
160
|
+
SensorPeakLorentzian(mu0=-0.118, gamma=0.000475, height=0.09, offset=0),
|
|
161
|
+
SensorPeakLorentzian(mu0=-0.115, gamma=0.0005, height=0.09, offset=0),
|
|
162
|
+
SensorPeakLorentzian(mu0=-0.112, gamma=0.00055, height=0.09, offset=0),
|
|
163
|
+
SensorPeakLorentzian(mu0=-0.109, gamma=0.0006, height=0.09, offset=0),
|
|
164
|
+
SensorPeakLorentzian(mu0=-0.106, gamma=0.00065, height=0.09, offset=0),
|
|
165
|
+
SensorPeakLorentzian(mu0=-0.103, gamma=0.0007, height=0.09, offset=0),
|
|
166
|
+
SensorPeakLorentzian(mu0=-0.100, gamma=0.00075, height=0.09, offset=0),
|
|
167
|
+
SensorPeakLorentzian(mu0=-0.097, gamma=0.0008, height=0.09, offset=0),
|
|
168
|
+
],
|
|
169
|
+
final_rise=SensorRiseGLF(fully_conductive_percentage=0.999,
|
|
170
|
+
mu0=0,
|
|
171
|
+
asymptote_left=0,
|
|
172
|
+
asymptote_right=0.1,
|
|
173
|
+
growth_rate=2500,
|
|
174
|
+
asymmetry=0.035,
|
|
175
|
+
shape_factor=2),
|
|
176
|
+
alpha_sensor_gate=np.array([[0.096754, 0.1], [0.99, 0.15], [0.15, 0.99]]),
|
|
177
|
+
alpha_dot=np.array([-0.00044775, -0.0002922]),
|
|
178
|
+
alpha_gate=np.array([0.08949, 0.116395]),
|
|
179
|
+
offset_mu_sens=np.array([0, 0, 0]),
|
|
180
|
+
sensor_peak_deformations={}
|
|
181
|
+
),
|
|
182
|
+
"occupation_distortions": [OccupationTransitionBlurringGaussian(0.75 * 0.03 / 100),
|
|
183
|
+
# in g2 (y in 2D) direction
|
|
184
|
+
OccupationDotJumps(ratio=0.01, scale=100 * 0.03 / 100,
|
|
185
|
+
lam=6 * 0.03 / 100, axis=0),
|
|
186
|
+
# in g1 (x in 2D) direction
|
|
187
|
+
OccupationDotJumps(ratio=0.01 / 6, scale=100 * 0.03 / 100,
|
|
188
|
+
lam=6 * 0.03 / 100, axis=1)],
|
|
189
|
+
"sensor_potential_distortions": [
|
|
190
|
+
SensorPotentialPinkNoise(
|
|
191
|
+
sigma=UniformSamplingRange((1.8250268077765864e-12, 9.125134038882932e-05)),
|
|
192
|
+
fmin=0),
|
|
193
|
+
SensorPotentialRTN(scale=74.56704 * 0.03 / 100, std=3.491734e-05,
|
|
194
|
+
height=2.53855325e-05, ratio=1 / 6)],
|
|
195
|
+
"sensor_response_distortions": [
|
|
196
|
+
SensorResponseWhiteNoise(
|
|
197
|
+
sigma=NormalSamplingRange((1e-10, 0.003), sampling_range=0.001,
|
|
198
|
+
std=0.0003))]
|
|
199
|
+
}
|
|
200
|
+
}
|
|
85
201
|
"""Dict: Default configurations for the Simulation class.
|
|
86
|
-
Includes the default
|
|
87
|
-
look at the jupyter notebook `example_SimCATS_Simulation_class.ipynb` for an example)
|
|
202
|
+
Includes the default configurations "GaAs_v1" and "GaAs_v2_extended_sensor", which can be used to instantiate an object
|
|
203
|
+
of the Simulation class (have a look at the jupyter notebook `example_SimCATS_Simulation_class.ipynb` for an example).\n
|
|
88
204
|
**Information for contributors / developers**: The dictionary itself is stored in the file _default_configs.py to ensure
|
|
89
205
|
a clean separation between the Simulation class and the configurations.
|
|
90
206
|
"""
|