nomad-material-processing 0.0.7__tar.gz → 0.0.9__tar.gz
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.
- nomad_material_processing-0.0.9/.vscode/settings.json +19 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/PKG-INFO +1 -1
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/pyproject.toml +42 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/src/nomad_material_processing/__init__.py +116 -49
- nomad_material_processing-0.0.9/src/nomad_material_processing/vapor_deposition/__init__.py +544 -0
- nomad_material_processing-0.0.9/src/nomad_material_processing/vapor_deposition/cvd/__init__.py +315 -0
- nomad_material_processing-0.0.9/src/nomad_material_processing/vapor_deposition/cvd/nomad_plugin.yaml +3 -0
- nomad_material_processing-0.0.9/src/nomad_material_processing/vapor_deposition/nomad_plugin.yaml +3 -0
- nomad_material_processing-0.0.9/src/nomad_material_processing/vapor_deposition/pvd/__init__.py +271 -0
- nomad_material_processing-0.0.9/src/nomad_material_processing/vapor_deposition/pvd/nomad_plugin.yaml +3 -0
- nomad_material_processing-0.0.9/src/nomad_material_processing/vapor_deposition/pvd/pld.py +181 -0
- nomad_material_processing-0.0.9/src/nomad_material_processing/vapor_deposition/pvd/sputtering.py +74 -0
- nomad_material_processing-0.0.9/src/nomad_material_processing/vapor_deposition/pvd/thermal.py +234 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/src/nomad_material_processing.egg-info/PKG-INFO +1 -1
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/src/nomad_material_processing.egg-info/SOURCES.txt +9 -3
- nomad-material-processing-0.0.7/.vscode/settings.json +0 -8
- nomad-material-processing-0.0.7/src/nomad_material_processing/chemical_vapor_deposition.py +0 -214
- nomad-material-processing-0.0.7/src/nomad_material_processing/physical_vapor_deposition.py +0 -566
- nomad-material-processing-0.0.7/src/nomad_material_processing/vapor_deposition.py +0 -435
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/.github/workflows/python-publish.yml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/.gitignore +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/LICENSE +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/README.md +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/nomad.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/setup.cfg +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/setup.py +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/src/nomad_material_processing/combinatorial.py +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/src/nomad_material_processing/crystal_growth.py +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/src/nomad_material_processing/epitaxy.py +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/src/nomad_material_processing/nomad_plugin.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/src/nomad_material_processing/utils.py +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/src/nomad_material_processing.egg-info/dependency_links.txt +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/src/nomad_material_processing.egg-info/requires.txt +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/src/nomad_material_processing.egg-info/top_level.txt +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_activity_step.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_crystal_growth.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_czochralski_process.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_epitaxy.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_metal_organic_vapor_phase_epitaxy.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_molecular_beam_epitaxy.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_physical_vapor_deposition.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_pulsed_laser_deposition.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_sample_deposition.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_sputter_deposition.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_substrate.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_thermal_evaporation.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_thin_film.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_thin_film_stack.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/data/test_vapor_phase_epitaxy.archive.yaml +0 -0
- {nomad-material-processing-0.0.7 → nomad_material_processing-0.0.9}/tests/test_schema.py +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"python.defaultInterpreterPath": ".pyenv/bin/python",
|
|
3
|
+
"python.terminal.activateEnvInCurrentTerminal": true,
|
|
4
|
+
"editor.rulers": [
|
|
5
|
+
90
|
|
6
|
+
],
|
|
7
|
+
"editor.renderWhitespace": "all",
|
|
8
|
+
"editor.tabSize": 4,
|
|
9
|
+
"files.trimTrailingWhitespace": true,
|
|
10
|
+
"files.watcherExclude": {
|
|
11
|
+
"${workspaceFolder}/.pyenv/**": true,
|
|
12
|
+
},
|
|
13
|
+
"python.testing.unittestEnabled": false,
|
|
14
|
+
"editor.defaultFormatter": "charliermarsh.ruff",
|
|
15
|
+
"editor.formatOnSave": true,
|
|
16
|
+
"[python]": {
|
|
17
|
+
"editor.defaultFormatter": "charliermarsh.ruff"
|
|
18
|
+
},
|
|
19
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nomad-material-processing
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.9
|
|
4
4
|
Summary: A plugin for NOMAD containing base sections for material processing.
|
|
5
5
|
Author-email: Hampus Näsström <hampus.naesstroem@physik.hu-berlin.de>, Andrea Albino <andrea.albino@physik.hu-berlin.de>, Sebastian Brückner <sebastian.brueckner@ikz-berlin.de>
|
|
6
6
|
License: Apache License
|
|
@@ -38,6 +38,48 @@ file = "LICENSE"
|
|
|
38
38
|
"Homepage" = "https://github.com/FAIRmat-NFDI/nomad-material-processing"
|
|
39
39
|
"Bug Tracker" = "https://github.com/FAIRmat-NFDI/nomad-material-processing/issues"
|
|
40
40
|
|
|
41
|
+
[tool.ruff]
|
|
42
|
+
include = ["src/*.py", "tests/*.py"]
|
|
43
|
+
select = [
|
|
44
|
+
"E", # pycodestyle
|
|
45
|
+
"W", # pycodestyle
|
|
46
|
+
"PL", # pylint
|
|
47
|
+
]
|
|
48
|
+
ignore = [
|
|
49
|
+
"E501", # Line too long ({width} > {limit} characters)
|
|
50
|
+
"E701", # Multiple statements on one line (colon)
|
|
51
|
+
"E731", # Do not assign a lambda expression, use a def
|
|
52
|
+
"E402", # Module level import not at top of file
|
|
53
|
+
"PLR0911", # Too many return statements
|
|
54
|
+
"PLR0912", # Too many branches
|
|
55
|
+
"PLR0913", # Too many arguments in function definition
|
|
56
|
+
"PLR0915", # Too many statements
|
|
57
|
+
"PLR2004", # Magic value used instead of constant
|
|
58
|
+
"PLW0603", # Using the global statement
|
|
59
|
+
"PLW2901", # redefined-loop-name
|
|
60
|
+
"PLR1714", # consider-using-in
|
|
61
|
+
"PLR5501", # else-if-used
|
|
62
|
+
]
|
|
63
|
+
fixable = ["ALL"]
|
|
64
|
+
exclude = ["dependencies"]
|
|
65
|
+
|
|
66
|
+
# Same as Black.
|
|
67
|
+
line-length = 88
|
|
68
|
+
indent-width = 4
|
|
69
|
+
|
|
70
|
+
[tool.ruff.format]
|
|
71
|
+
# use single quotes for strings.
|
|
72
|
+
quote-style = "single"
|
|
73
|
+
|
|
74
|
+
# indent with spaces, rather than tabs.
|
|
75
|
+
indent-style = "space"
|
|
76
|
+
|
|
77
|
+
# Like Black, respect magic trailing commas.
|
|
78
|
+
skip-magic-trailing-comma = false
|
|
79
|
+
|
|
80
|
+
# Like Black, automatically detect the appropriate line ending.
|
|
81
|
+
line-ending = "auto"
|
|
82
|
+
|
|
41
83
|
[tool.setuptools.packages.find]
|
|
42
84
|
where = [
|
|
43
85
|
"src",
|
|
@@ -51,7 +51,7 @@ if TYPE_CHECKING:
|
|
|
51
51
|
BoundLogger,
|
|
52
52
|
)
|
|
53
53
|
|
|
54
|
-
m_package = Package(name=
|
|
54
|
+
m_package = Package(name='Material Processing')
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
class Geometry(ArchiveSection):
|
|
@@ -63,11 +63,11 @@ class Geometry(ArchiveSection):
|
|
|
63
63
|
m_def = Section()
|
|
64
64
|
volume = Quantity(
|
|
65
65
|
type=float,
|
|
66
|
-
description=
|
|
66
|
+
description='The measure of the amount of space occupied in 3D space.',
|
|
67
67
|
a_eln=ELNAnnotation(
|
|
68
68
|
component=ELNComponentEnum.NumberEditQuantity,
|
|
69
69
|
),
|
|
70
|
-
unit=
|
|
70
|
+
unit='meter ** 3',
|
|
71
71
|
)
|
|
72
72
|
|
|
73
73
|
|
|
@@ -80,33 +80,33 @@ class Parallelepiped(Geometry):
|
|
|
80
80
|
m_def = Section()
|
|
81
81
|
height = Quantity(
|
|
82
82
|
type=float,
|
|
83
|
-
description=
|
|
83
|
+
description='The z dimension of the parallelepiped.',
|
|
84
84
|
a_eln=ELNAnnotation(
|
|
85
85
|
component=ELNComponentEnum.NumberEditQuantity,
|
|
86
|
-
defaultDisplayUnit=
|
|
87
|
-
label=
|
|
86
|
+
defaultDisplayUnit='millimeter',
|
|
87
|
+
label='Height (z)',
|
|
88
88
|
),
|
|
89
|
-
unit=
|
|
89
|
+
unit='meter',
|
|
90
90
|
)
|
|
91
91
|
width = Quantity(
|
|
92
92
|
type=float,
|
|
93
|
-
description=
|
|
93
|
+
description='The x dimension of the parallelepiped.',
|
|
94
94
|
a_eln=ELNAnnotation(
|
|
95
95
|
component=ELNComponentEnum.NumberEditQuantity,
|
|
96
|
-
defaultDisplayUnit=
|
|
97
|
-
label=
|
|
96
|
+
defaultDisplayUnit='millimeter',
|
|
97
|
+
label='Width (x)',
|
|
98
98
|
),
|
|
99
|
-
unit=
|
|
99
|
+
unit='meter',
|
|
100
100
|
)
|
|
101
101
|
length = Quantity(
|
|
102
102
|
type=float,
|
|
103
|
-
description=
|
|
103
|
+
description='The y dimension of the parallelepiped.',
|
|
104
104
|
a_eln=ELNAnnotation(
|
|
105
105
|
component=ELNComponentEnum.NumberEditQuantity,
|
|
106
|
-
defaultDisplayUnit=
|
|
107
|
-
label=
|
|
106
|
+
defaultDisplayUnit='millimeter',
|
|
107
|
+
label='Length (y)',
|
|
108
108
|
),
|
|
109
|
-
unit=
|
|
109
|
+
unit='meter',
|
|
110
110
|
)
|
|
111
111
|
surface_area = Quantity(
|
|
112
112
|
type=float,
|
|
@@ -116,10 +116,10 @@ class Parallelepiped(Geometry):
|
|
|
116
116
|
""",
|
|
117
117
|
a_eln=ELNAnnotation(
|
|
118
118
|
component=ELNComponentEnum.NumberEditQuantity,
|
|
119
|
-
defaultDisplayUnit=
|
|
120
|
-
label=
|
|
119
|
+
defaultDisplayUnit='millimeter ** 2',
|
|
120
|
+
label='Surface Area (x*y)',
|
|
121
121
|
),
|
|
122
|
-
unit=
|
|
122
|
+
unit='meter ** 2',
|
|
123
123
|
)
|
|
124
124
|
|
|
125
125
|
|
|
@@ -137,27 +137,27 @@ class Miscut(ArchiveSection):
|
|
|
137
137
|
""",
|
|
138
138
|
a_eln=ELNAnnotation(
|
|
139
139
|
component=ELNComponentEnum.NumberEditQuantity,
|
|
140
|
-
defaultDisplayUnit=
|
|
141
|
-
label=
|
|
140
|
+
defaultDisplayUnit='deg',
|
|
141
|
+
label='Miscut Angle',
|
|
142
142
|
),
|
|
143
|
-
unit=
|
|
143
|
+
unit='deg',
|
|
144
144
|
)
|
|
145
145
|
angle_deviation = Quantity(
|
|
146
146
|
type=float,
|
|
147
|
-
description=
|
|
147
|
+
description='The ± uncertainty in the angular displacement.',
|
|
148
148
|
a_eln=ELNAnnotation(
|
|
149
149
|
component=ELNComponentEnum.NumberEditQuantity,
|
|
150
|
-
defaultDisplayUnit=
|
|
151
|
-
label=
|
|
150
|
+
defaultDisplayUnit='deg',
|
|
151
|
+
label='± Miscut Angle Deviation',
|
|
152
152
|
),
|
|
153
|
-
unit=
|
|
153
|
+
unit='deg',
|
|
154
154
|
)
|
|
155
155
|
orientation = Quantity(
|
|
156
156
|
type=str,
|
|
157
|
-
description=
|
|
157
|
+
description='The direction of the miscut in Miller index, [hkl].',
|
|
158
158
|
a_eln=ELNAnnotation(
|
|
159
159
|
component=ELNComponentEnum.StringEditQuantity,
|
|
160
|
-
label=
|
|
160
|
+
label='Miscut Orientation [hkl]',
|
|
161
161
|
),
|
|
162
162
|
)
|
|
163
163
|
|
|
@@ -170,12 +170,12 @@ class Dopant(ElementalComposition):
|
|
|
170
170
|
|
|
171
171
|
doping_level = Quantity(
|
|
172
172
|
type=float,
|
|
173
|
-
description=
|
|
173
|
+
description='The chemical doping level.',
|
|
174
174
|
a_eln=ELNAnnotation(
|
|
175
175
|
component=ELNComponentEnum.NumberEditQuantity,
|
|
176
|
-
defaultDisplayUnit=
|
|
176
|
+
defaultDisplayUnit='1 / cm ** 3',
|
|
177
177
|
),
|
|
178
|
-
unit=
|
|
178
|
+
unit='1 / m ** 3',
|
|
179
179
|
)
|
|
180
180
|
|
|
181
181
|
|
|
@@ -200,7 +200,7 @@ class SubstrateCrystalProperties(CrystalProperties):
|
|
|
200
200
|
""",
|
|
201
201
|
a_eln=ELNAnnotation(
|
|
202
202
|
component=ELNComponentEnum.StringEditQuantity,
|
|
203
|
-
label=
|
|
203
|
+
label='Substrate Orientation (hkl)',
|
|
204
204
|
),
|
|
205
205
|
)
|
|
206
206
|
miscut = SubSection(
|
|
@@ -221,25 +221,25 @@ class Substrate(CompositeSystem):
|
|
|
221
221
|
m_def = Section()
|
|
222
222
|
supplier = Quantity(
|
|
223
223
|
type=str,
|
|
224
|
-
description=
|
|
224
|
+
description='The supplier of the current substrate specimen.',
|
|
225
225
|
a_eln=ELNAnnotation(
|
|
226
226
|
component=ELNComponentEnum.StringEditQuantity,
|
|
227
|
-
label=
|
|
227
|
+
label='Name of Supplier',
|
|
228
228
|
),
|
|
229
229
|
)
|
|
230
230
|
supplier_id = Quantity(
|
|
231
231
|
type=str,
|
|
232
|
-
description=
|
|
232
|
+
description='An ID string that is unique from the supplier.',
|
|
233
233
|
a_eln=ELNAnnotation(
|
|
234
234
|
component=ELNComponentEnum.StringEditQuantity,
|
|
235
|
-
label=
|
|
235
|
+
label='Supplier ID',
|
|
236
236
|
),
|
|
237
237
|
)
|
|
238
238
|
lab_id = Quantity(
|
|
239
239
|
type=str,
|
|
240
240
|
a_eln=ELNAnnotation(
|
|
241
241
|
component=ELNComponentEnum.StringEditQuantity,
|
|
242
|
-
label=
|
|
242
|
+
label='Substrate ID',
|
|
243
243
|
),
|
|
244
244
|
)
|
|
245
245
|
|
|
@@ -253,11 +253,11 @@ class CrystallineSubstrate(Substrate):
|
|
|
253
253
|
m_def = Section()
|
|
254
254
|
geometry = SubSection(
|
|
255
255
|
section_def=Geometry,
|
|
256
|
-
description=
|
|
256
|
+
description='Section containing the geometry of the substrate.',
|
|
257
257
|
)
|
|
258
258
|
crystal_properties = SubSection(
|
|
259
259
|
section_def=SubstrateCrystalProperties,
|
|
260
|
-
description=
|
|
260
|
+
description='Section containing the crystal properties of the substrate.',
|
|
261
261
|
)
|
|
262
262
|
dopants = SubSection(
|
|
263
263
|
section_def=Dopant,
|
|
@@ -277,7 +277,7 @@ class ThinFilm(CompositeSystem):
|
|
|
277
277
|
|
|
278
278
|
geometry = SubSection(
|
|
279
279
|
section_def=Geometry,
|
|
280
|
-
description=
|
|
280
|
+
description='Section containing the geometry of the thin film.',
|
|
281
281
|
)
|
|
282
282
|
|
|
283
283
|
|
|
@@ -290,14 +290,14 @@ class ThinFilmReference(CompositeSystemReference):
|
|
|
290
290
|
type=str,
|
|
291
291
|
a_eln=ELNAnnotation(
|
|
292
292
|
component=ELNComponentEnum.StringEditQuantity,
|
|
293
|
-
label=
|
|
293
|
+
label='Thin Film ID',
|
|
294
294
|
),
|
|
295
295
|
)
|
|
296
296
|
reference = Quantity(
|
|
297
297
|
type=ThinFilm,
|
|
298
298
|
a_eln=ELNAnnotation(
|
|
299
299
|
component=ELNComponentEnum.ReferenceEditQuantity,
|
|
300
|
-
label=
|
|
300
|
+
label='Thin Film',
|
|
301
301
|
),
|
|
302
302
|
)
|
|
303
303
|
|
|
@@ -311,14 +311,14 @@ class SubstrateReference(CompositeSystemReference):
|
|
|
311
311
|
type=str,
|
|
312
312
|
a_eln=ELNAnnotation(
|
|
313
313
|
component=ELNComponentEnum.StringEditQuantity,
|
|
314
|
-
label=
|
|
314
|
+
label='Substrate ID',
|
|
315
315
|
),
|
|
316
316
|
)
|
|
317
317
|
reference = Quantity(
|
|
318
318
|
type=Substrate,
|
|
319
319
|
a_eln=ELNAnnotation(
|
|
320
320
|
component=ELNComponentEnum.ReferenceEditQuantity,
|
|
321
|
-
label=
|
|
321
|
+
label='Substrate',
|
|
322
322
|
),
|
|
323
323
|
)
|
|
324
324
|
|
|
@@ -331,7 +331,7 @@ class ThinFilmStack(CompositeSystem):
|
|
|
331
331
|
m_def = Section(
|
|
332
332
|
a_eln=ELNAnnotation(
|
|
333
333
|
hide=[
|
|
334
|
-
|
|
334
|
+
'components',
|
|
335
335
|
],
|
|
336
336
|
),
|
|
337
337
|
)
|
|
@@ -351,7 +351,7 @@ class ThinFilmStack(CompositeSystem):
|
|
|
351
351
|
section_def=SubstrateReference,
|
|
352
352
|
)
|
|
353
353
|
|
|
354
|
-
def normalize(self, archive:
|
|
354
|
+
def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None:
|
|
355
355
|
"""
|
|
356
356
|
The normalizer for the `ThinFilmStack` class.
|
|
357
357
|
|
|
@@ -363,7 +363,9 @@ class ThinFilmStack(CompositeSystem):
|
|
|
363
363
|
self.components = []
|
|
364
364
|
if self.layers:
|
|
365
365
|
self.components = [
|
|
366
|
-
SystemComponent(system=layer.reference)
|
|
366
|
+
SystemComponent(system=layer.reference)
|
|
367
|
+
for layer in self.layers
|
|
368
|
+
if layer.reference
|
|
367
369
|
]
|
|
368
370
|
if self.substrate.reference:
|
|
369
371
|
self.components.append(SystemComponent(system=self.substrate.reference))
|
|
@@ -401,7 +403,7 @@ class SampleDeposition(SynthesisMethod):
|
|
|
401
403
|
"""
|
|
402
404
|
|
|
403
405
|
m_def = Section(
|
|
404
|
-
links=[
|
|
406
|
+
links=['http://purl.obolibrary.org/obo/CHMO_0001310'],
|
|
405
407
|
)
|
|
406
408
|
|
|
407
409
|
def is_serial(self) -> bool:
|
|
@@ -418,7 +420,7 @@ class SampleDeposition(SynthesisMethod):
|
|
|
418
420
|
if step.start_time is None or step.duration is None:
|
|
419
421
|
return False
|
|
420
422
|
start_times.append(step.start_time.timestamp())
|
|
421
|
-
durations.append(step.duration.to(
|
|
423
|
+
durations.append(step.duration.to('s').magnitude)
|
|
422
424
|
start_times = np.array(start_times)
|
|
423
425
|
durations = np.array(durations)
|
|
424
426
|
end_times = start_times + durations
|
|
@@ -427,7 +429,7 @@ class SampleDeposition(SynthesisMethod):
|
|
|
427
429
|
return False
|
|
428
430
|
return True
|
|
429
431
|
|
|
430
|
-
def normalize(self, archive:
|
|
432
|
+
def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None:
|
|
431
433
|
"""
|
|
432
434
|
The normalizer for the `SampleDeposition` class.
|
|
433
435
|
|
|
@@ -450,4 +452,69 @@ class SampleDeposition(SynthesisMethod):
|
|
|
450
452
|
archive.workflow2.tasks = tasks
|
|
451
453
|
|
|
452
454
|
|
|
455
|
+
class TimeSeries(ArchiveSection):
|
|
456
|
+
"""
|
|
457
|
+
A time series of data during a process step.
|
|
458
|
+
This is an abstract class and should not be used directly.
|
|
459
|
+
Instead, it should be derived and the the units of the `value` and `set_value` should
|
|
460
|
+
be specified.
|
|
461
|
+
|
|
462
|
+
For example, a derived class could be `Temperature` with `value` in Kelvin:
|
|
463
|
+
```python
|
|
464
|
+
class Temperature(TimeSeries):
|
|
465
|
+
value = TimeSeries.value.m_copy()
|
|
466
|
+
value.unit = "kelvin"
|
|
467
|
+
set_value = TimeSeries.set_value.m_copy()
|
|
468
|
+
set_value.unit = "kelvin"
|
|
469
|
+
set_value.a_eln.defaultDisplayUnit = "celsius"
|
|
470
|
+
```
|
|
471
|
+
"""
|
|
472
|
+
|
|
473
|
+
m_def = Section(
|
|
474
|
+
a_plot=dict(
|
|
475
|
+
# x=['time', 'set_time'],
|
|
476
|
+
# y=['value', 'set_value'],
|
|
477
|
+
x='time',
|
|
478
|
+
y='value',
|
|
479
|
+
),
|
|
480
|
+
)
|
|
481
|
+
set_value = Quantity(
|
|
482
|
+
type=float,
|
|
483
|
+
description='The set value(s) (i.e. the intended values) set.',
|
|
484
|
+
shape=['*'],
|
|
485
|
+
a_eln=ELNAnnotation(
|
|
486
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
487
|
+
label='Set value',
|
|
488
|
+
),
|
|
489
|
+
)
|
|
490
|
+
set_time = Quantity(
|
|
491
|
+
type=float,
|
|
492
|
+
unit='s',
|
|
493
|
+
description="""
|
|
494
|
+
The process time when each of the set values were set.
|
|
495
|
+
If this is empty and only one set value is present, it is assumed that the value
|
|
496
|
+
was set at the start of the process step.
|
|
497
|
+
If two set values are present, it is assumed that a linear ramp between the two
|
|
498
|
+
values was set.
|
|
499
|
+
""",
|
|
500
|
+
shape=['*'],
|
|
501
|
+
a_eln=ELNAnnotation(
|
|
502
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
503
|
+
defaultDisplayUnit='s',
|
|
504
|
+
label='Set time',
|
|
505
|
+
),
|
|
506
|
+
)
|
|
507
|
+
value = Quantity(
|
|
508
|
+
type=float,
|
|
509
|
+
description='The observed value as a function of time.',
|
|
510
|
+
shape=['*'],
|
|
511
|
+
)
|
|
512
|
+
time = Quantity(
|
|
513
|
+
type=float,
|
|
514
|
+
unit='s',
|
|
515
|
+
description='The process time when each of the values were recorded.',
|
|
516
|
+
shape=['*'],
|
|
517
|
+
)
|
|
518
|
+
|
|
519
|
+
|
|
453
520
|
m_package.__init_metainfo__()
|