nomad-material-processing 0.0.9__tar.gz → 0.0.10__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 → nomad_material_processing-0.0.10}/PKG-INFO +1 -1
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/__init__.py +362 -3
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/vapor_deposition/__init__.py +8 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/vapor_deposition/cvd/__init__.py +179 -36
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing.egg-info/PKG-INFO +1 -1
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/.github/workflows/python-publish.yml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/.gitignore +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/.vscode/settings.json +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/LICENSE +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/README.md +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/nomad.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/pyproject.toml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/setup.cfg +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/setup.py +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/combinatorial.py +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/crystal_growth.py +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/epitaxy.py +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/nomad_plugin.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/utils.py +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/vapor_deposition/cvd/nomad_plugin.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/vapor_deposition/nomad_plugin.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/vapor_deposition/pvd/__init__.py +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/vapor_deposition/pvd/nomad_plugin.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/vapor_deposition/pvd/pld.py +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/vapor_deposition/pvd/sputtering.py +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing/vapor_deposition/pvd/thermal.py +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing.egg-info/SOURCES.txt +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing.egg-info/dependency_links.txt +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing.egg-info/requires.txt +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/src/nomad_material_processing.egg-info/top_level.txt +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_activity_step.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_crystal_growth.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_czochralski_process.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_epitaxy.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_metal_organic_vapor_phase_epitaxy.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_molecular_beam_epitaxy.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_physical_vapor_deposition.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_pulsed_laser_deposition.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_sample_deposition.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_sputter_deposition.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_substrate.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_thermal_evaporation.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_thin_film.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_thin_film_stack.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/data/test_vapor_phase_epitaxy.archive.yaml +0 -0
- {nomad_material_processing-0.0.9 → nomad_material_processing-0.0.10}/tests/test_schema.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nomad-material-processing
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.10
|
|
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
|
|
@@ -24,6 +24,8 @@ from nomad.metainfo import (
|
|
|
24
24
|
Quantity,
|
|
25
25
|
Section,
|
|
26
26
|
SubSection,
|
|
27
|
+
Datetime,
|
|
28
|
+
MEnum,
|
|
27
29
|
)
|
|
28
30
|
from nomad.datamodel.metainfo.basesections import (
|
|
29
31
|
ElementalComposition,
|
|
@@ -108,6 +110,33 @@ class Parallelepiped(Geometry):
|
|
|
108
110
|
),
|
|
109
111
|
unit='meter',
|
|
110
112
|
)
|
|
113
|
+
alpha = Quantity(
|
|
114
|
+
type=float,
|
|
115
|
+
description='The angle between y and z sides.',
|
|
116
|
+
a_eln=ELNAnnotation(
|
|
117
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
118
|
+
label='Alpha (∡ y-x-z)',
|
|
119
|
+
),
|
|
120
|
+
unit='degree',
|
|
121
|
+
)
|
|
122
|
+
beta = Quantity(
|
|
123
|
+
type=float,
|
|
124
|
+
description='The angle between x and z sides.',
|
|
125
|
+
a_eln=ELNAnnotation(
|
|
126
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
127
|
+
label='Beta (∡ x-y-z)',
|
|
128
|
+
),
|
|
129
|
+
unit='degree',
|
|
130
|
+
)
|
|
131
|
+
gamma = Quantity(
|
|
132
|
+
type=float,
|
|
133
|
+
description='The angle between x and y sides.',
|
|
134
|
+
a_eln=ELNAnnotation(
|
|
135
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
136
|
+
label='Gamma (∡ x-z-y)',
|
|
137
|
+
),
|
|
138
|
+
unit='degree',
|
|
139
|
+
)
|
|
111
140
|
surface_area = Quantity(
|
|
112
141
|
type=float,
|
|
113
142
|
description="""
|
|
@@ -123,6 +152,246 @@ class Parallelepiped(Geometry):
|
|
|
123
152
|
)
|
|
124
153
|
|
|
125
154
|
|
|
155
|
+
class SquareCuboid(Parallelepiped):
|
|
156
|
+
"""
|
|
157
|
+
A cuboid with all sides equal in length.
|
|
158
|
+
"""
|
|
159
|
+
m_def = Section()
|
|
160
|
+
height = Quantity(
|
|
161
|
+
type=float,
|
|
162
|
+
description='The z dimension of the parallelepiped.',
|
|
163
|
+
a_eln=ELNAnnotation(
|
|
164
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
165
|
+
defaultDisplayUnit='millimeter',
|
|
166
|
+
label='Height (z)',
|
|
167
|
+
),
|
|
168
|
+
unit='meter',
|
|
169
|
+
)
|
|
170
|
+
side = Quantity(
|
|
171
|
+
type=float,
|
|
172
|
+
description='The x and y dimensions of the parallelepiped.',
|
|
173
|
+
a_eln=ELNAnnotation(
|
|
174
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
175
|
+
defaultDisplayUnit='millimeter',
|
|
176
|
+
label='Side (x = y)',
|
|
177
|
+
),
|
|
178
|
+
unit='meter',
|
|
179
|
+
)
|
|
180
|
+
surface_area = Quantity(
|
|
181
|
+
type=float,
|
|
182
|
+
description="""
|
|
183
|
+
The product of length and width, representing the total exposed area of the
|
|
184
|
+
primary surface.
|
|
185
|
+
""",
|
|
186
|
+
a_eln=ELNAnnotation(
|
|
187
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
188
|
+
defaultDisplayUnit='millimeter ** 2',
|
|
189
|
+
label='Surface Area (x*y)',
|
|
190
|
+
),
|
|
191
|
+
unit='meter ** 2',
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
class RectangleCuboid(Parallelepiped):
|
|
196
|
+
"""
|
|
197
|
+
A rectangular cuboid is a specific type of parallelepiped
|
|
198
|
+
where all angles between adjacent faces are right angles,
|
|
199
|
+
and all faces are rectangles.
|
|
200
|
+
"""
|
|
201
|
+
m_def = Section()
|
|
202
|
+
height = Quantity(
|
|
203
|
+
type=float,
|
|
204
|
+
description='The z dimension of the parallelepiped.',
|
|
205
|
+
a_eln=ELNAnnotation(
|
|
206
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
207
|
+
defaultDisplayUnit='millimeter',
|
|
208
|
+
label='Height (z)',
|
|
209
|
+
),
|
|
210
|
+
unit='meter',
|
|
211
|
+
)
|
|
212
|
+
width = Quantity(
|
|
213
|
+
type=float,
|
|
214
|
+
description='The x dimension of the parallelepiped.',
|
|
215
|
+
a_eln=ELNAnnotation(
|
|
216
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
217
|
+
defaultDisplayUnit='millimeter',
|
|
218
|
+
label='Width (x)',
|
|
219
|
+
),
|
|
220
|
+
unit='meter',
|
|
221
|
+
)
|
|
222
|
+
length = Quantity(
|
|
223
|
+
type=float,
|
|
224
|
+
description='The y dimension of the parallelepiped.',
|
|
225
|
+
a_eln=ELNAnnotation(
|
|
226
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
227
|
+
defaultDisplayUnit='millimeter',
|
|
228
|
+
label='Length (y)',
|
|
229
|
+
),
|
|
230
|
+
unit='meter',
|
|
231
|
+
)
|
|
232
|
+
surface_area = Quantity(
|
|
233
|
+
type=float,
|
|
234
|
+
description="""
|
|
235
|
+
The product of length and width, representing the total exposed area of the
|
|
236
|
+
primary surface.
|
|
237
|
+
""",
|
|
238
|
+
a_eln=ELNAnnotation(
|
|
239
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
240
|
+
defaultDisplayUnit='millimeter ** 2',
|
|
241
|
+
label='Surface Area (x*y)',
|
|
242
|
+
),
|
|
243
|
+
unit='meter ** 2',
|
|
244
|
+
)
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
class TruncatedCone(Geometry):
|
|
248
|
+
"""
|
|
249
|
+
A cone with the top cut off parallel to the cone bottom.
|
|
250
|
+
"""
|
|
251
|
+
|
|
252
|
+
m_def = Section()
|
|
253
|
+
height = Quantity(
|
|
254
|
+
type=float,
|
|
255
|
+
description='The z dimension of the parallelepiped.',
|
|
256
|
+
a_eln=ELNAnnotation(
|
|
257
|
+
component='NumberEditQuantity',
|
|
258
|
+
defaultDisplayUnit='nanometer',
|
|
259
|
+
),
|
|
260
|
+
label='Height (z)',
|
|
261
|
+
unit='meter',
|
|
262
|
+
)
|
|
263
|
+
lower_cap_radius = Quantity(
|
|
264
|
+
type=float,
|
|
265
|
+
description='Radius of the lower cap.',
|
|
266
|
+
a_eln=ELNAnnotation(
|
|
267
|
+
component='NumberEditQuantity',
|
|
268
|
+
defaultDisplayUnit='millimeter',
|
|
269
|
+
),
|
|
270
|
+
unit='meter',
|
|
271
|
+
)
|
|
272
|
+
upper_cap_radius = Quantity(
|
|
273
|
+
type=float,
|
|
274
|
+
description='Radius of the upper cap.',
|
|
275
|
+
a_eln=ELNAnnotation(
|
|
276
|
+
component='NumberEditQuantity',
|
|
277
|
+
defaultDisplayUnit='millimeter',
|
|
278
|
+
),
|
|
279
|
+
unit='meter',
|
|
280
|
+
)
|
|
281
|
+
lower_cap_surface_area = Quantity(
|
|
282
|
+
type=float,
|
|
283
|
+
description='Area of the lower cap.',
|
|
284
|
+
a_eln=ELNAnnotation(
|
|
285
|
+
component='NumberEditQuantity',
|
|
286
|
+
defaultDisplayUnit='millimeter ** 2',
|
|
287
|
+
),
|
|
288
|
+
unit='meter ** 2',
|
|
289
|
+
)
|
|
290
|
+
upper_cap_surface_area = Quantity(
|
|
291
|
+
type=float,
|
|
292
|
+
description='Area of the upper cap.',
|
|
293
|
+
a_eln=ELNAnnotation(
|
|
294
|
+
component='NumberEditQuantity',
|
|
295
|
+
defaultDisplayUnit='millimeter ** 2',
|
|
296
|
+
),
|
|
297
|
+
unit='meter ** 2',
|
|
298
|
+
)
|
|
299
|
+
lateral_surface_area = Quantity(
|
|
300
|
+
type=float,
|
|
301
|
+
description='Area of the lateral surface.',
|
|
302
|
+
a_eln=ELNAnnotation(
|
|
303
|
+
component='NumberEditQuantity',
|
|
304
|
+
defaultDisplayUnit='millimeter ** 2',
|
|
305
|
+
),
|
|
306
|
+
unit='meter ** 2',
|
|
307
|
+
)
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
class Cylinder(Geometry):
|
|
311
|
+
"""
|
|
312
|
+
A cylinder, i.e. a prism with a circular base.
|
|
313
|
+
"""
|
|
314
|
+
|
|
315
|
+
m_def = Section()
|
|
316
|
+
height = Quantity(
|
|
317
|
+
type=float,
|
|
318
|
+
description='The z dimension of the parallelepiped.',
|
|
319
|
+
a_eln=ELNAnnotation(
|
|
320
|
+
component='NumberEditQuantity',
|
|
321
|
+
defaultDisplayUnit='nanometer',
|
|
322
|
+
),
|
|
323
|
+
label='Height (z)',
|
|
324
|
+
unit='meter',
|
|
325
|
+
)
|
|
326
|
+
radius = Quantity(
|
|
327
|
+
type=float,
|
|
328
|
+
description='Radius of the cylinder.',
|
|
329
|
+
a_eln=ELNAnnotation(
|
|
330
|
+
component='NumberEditQuantity',
|
|
331
|
+
defaultDisplayUnit='millimeter',
|
|
332
|
+
),
|
|
333
|
+
unit='meter',
|
|
334
|
+
)
|
|
335
|
+
lower_cap_surface_area = Quantity(
|
|
336
|
+
type=float,
|
|
337
|
+
description='Area of the lower cap.',
|
|
338
|
+
a_eln=ELNAnnotation(
|
|
339
|
+
component='NumberEditQuantity',
|
|
340
|
+
defaultDisplayUnit='millimeter ** 2',
|
|
341
|
+
),
|
|
342
|
+
unit='meter ** 2',
|
|
343
|
+
)
|
|
344
|
+
cap_surface_area = Quantity(
|
|
345
|
+
type=float,
|
|
346
|
+
description='Area of the cap.',
|
|
347
|
+
a_eln=ELNAnnotation(
|
|
348
|
+
component='NumberEditQuantity',
|
|
349
|
+
defaultDisplayUnit='millimeter ** 2',
|
|
350
|
+
),
|
|
351
|
+
unit='meter ** 2',
|
|
352
|
+
)
|
|
353
|
+
lateral_surface_area = Quantity(
|
|
354
|
+
type=float,
|
|
355
|
+
description='Area of the lateral surface.',
|
|
356
|
+
a_eln=ELNAnnotation(
|
|
357
|
+
component='NumberEditQuantity',
|
|
358
|
+
defaultDisplayUnit='millimeter ** 2',
|
|
359
|
+
),
|
|
360
|
+
unit='meter ** 2',
|
|
361
|
+
)
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
class CylinderSector(Cylinder):
|
|
365
|
+
central_angle = Quantity(
|
|
366
|
+
type=float,
|
|
367
|
+
description="""The angle that defines the portion of the cylinder.
|
|
368
|
+
This angle is taken at the center of the base circle
|
|
369
|
+
and extends to the arc that defines the cylindrical sector.""",
|
|
370
|
+
a_eln=ELNAnnotation(
|
|
371
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
372
|
+
),
|
|
373
|
+
unit='degree',
|
|
374
|
+
)
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
class IrregularParallelSurfaces(Geometry):
|
|
378
|
+
"""
|
|
379
|
+
A shape that does not fit into any of the other geometry classes.
|
|
380
|
+
"""
|
|
381
|
+
|
|
382
|
+
m_def = Section()
|
|
383
|
+
height = Quantity(
|
|
384
|
+
type=float,
|
|
385
|
+
description='The z dimension of the irregular shape.',
|
|
386
|
+
a_eln=ELNAnnotation(
|
|
387
|
+
component='NumberEditQuantity',
|
|
388
|
+
defaultDisplayUnit='nanometer',
|
|
389
|
+
),
|
|
390
|
+
label='Height (z)',
|
|
391
|
+
unit='meter',
|
|
392
|
+
)
|
|
393
|
+
|
|
394
|
+
|
|
126
395
|
class Miscut(ArchiveSection):
|
|
127
396
|
"""
|
|
128
397
|
The miscut in a crystalline substrate refers to
|
|
@@ -144,7 +413,7 @@ class Miscut(ArchiveSection):
|
|
|
144
413
|
)
|
|
145
414
|
angle_deviation = Quantity(
|
|
146
415
|
type=float,
|
|
147
|
-
description='The ±
|
|
416
|
+
description='The ± deviation in the angular displacement.',
|
|
148
417
|
a_eln=ELNAnnotation(
|
|
149
418
|
component=ELNComponentEnum.NumberEditQuantity,
|
|
150
419
|
defaultDisplayUnit='deg',
|
|
@@ -177,6 +446,15 @@ class Dopant(ElementalComposition):
|
|
|
177
446
|
),
|
|
178
447
|
unit='1 / m ** 3',
|
|
179
448
|
)
|
|
449
|
+
doping_deviation = Quantity(
|
|
450
|
+
type=float,
|
|
451
|
+
description='The ± deviation in the doping level.',
|
|
452
|
+
a_eln=ELNAnnotation(
|
|
453
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
454
|
+
defaultDisplayUnit='1 / cm ** 3',
|
|
455
|
+
),
|
|
456
|
+
unit='1 / m ** 3',
|
|
457
|
+
)
|
|
180
458
|
|
|
181
459
|
|
|
182
460
|
class CrystalProperties(ArchiveSection):
|
|
@@ -191,7 +469,28 @@ class SubstrateCrystalProperties(CrystalProperties):
|
|
|
191
469
|
"""
|
|
192
470
|
Crystallographic parameters such as orientation, miscut, and surface structure.
|
|
193
471
|
"""
|
|
194
|
-
|
|
472
|
+
bravais_lattices = Quantity(
|
|
473
|
+
type=MEnum(
|
|
474
|
+
'Triclinic',
|
|
475
|
+
'Monoclinic Simple',
|
|
476
|
+
'Monoclinic Base Centered',
|
|
477
|
+
'Orthorhombic Simple',
|
|
478
|
+
'Orthorhombic Base Centered',
|
|
479
|
+
'Orthorhombic Body Centered',
|
|
480
|
+
'Orthorhombic Face Centered',
|
|
481
|
+
'Tetragonal Simple',
|
|
482
|
+
'Tetragonal Body Centered',
|
|
483
|
+
'Cubic Simple',
|
|
484
|
+
'Cubic Body Centered',
|
|
485
|
+
'Cubic Face Centered',
|
|
486
|
+
'Trigonal',
|
|
487
|
+
'Hexagonal',
|
|
488
|
+
),
|
|
489
|
+
description='The crystal system of the substrate.',
|
|
490
|
+
a_eln=ELNAnnotation(
|
|
491
|
+
component=ELNComponentEnum.EnumEditQuantity,
|
|
492
|
+
),
|
|
493
|
+
)
|
|
195
494
|
orientation = Quantity(
|
|
196
495
|
type=str,
|
|
197
496
|
description="""
|
|
@@ -209,6 +508,44 @@ class SubstrateCrystalProperties(CrystalProperties):
|
|
|
209
508
|
Section describing any miscut of the substrate with respect to the substrate
|
|
210
509
|
orientation.
|
|
211
510
|
""",
|
|
511
|
+
repeats=True,
|
|
512
|
+
)
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
class ElectronicProperties(ArchiveSection):
|
|
516
|
+
"""
|
|
517
|
+
The electronic properties of a material.
|
|
518
|
+
"""
|
|
519
|
+
|
|
520
|
+
m_def = Section()
|
|
521
|
+
|
|
522
|
+
conductivity_type = Quantity(
|
|
523
|
+
type=MEnum(
|
|
524
|
+
'P-type',
|
|
525
|
+
'N-type',
|
|
526
|
+
),
|
|
527
|
+
description='The type of semiconductor, N-type being electrons the majority carriers and P-type being holes the majority carriers.',
|
|
528
|
+
a_eln=ELNAnnotation(
|
|
529
|
+
component=ELNComponentEnum.EnumEditQuantity,
|
|
530
|
+
),
|
|
531
|
+
)
|
|
532
|
+
carrier_density = Quantity(
|
|
533
|
+
type=np.dtype(float),
|
|
534
|
+
unit='1 / cm**3',
|
|
535
|
+
a_eln=ELNAnnotation(
|
|
536
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
537
|
+
),
|
|
538
|
+
description='Concentration of free charge carriers, electrons in the conduction band and holes in the valence band.',
|
|
539
|
+
)
|
|
540
|
+
electrical_resistivity = Quantity(
|
|
541
|
+
type=float,
|
|
542
|
+
links=['http://fairmat-nfdi.eu/taxonomy/ElectricalResistivity'],
|
|
543
|
+
description='Resistance of the charges to move in the presence of an electric current.',
|
|
544
|
+
a_eln=ELNAnnotation(
|
|
545
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
546
|
+
defaultDisplayUnit='ohm cm',
|
|
547
|
+
),
|
|
548
|
+
unit='ohm m',
|
|
212
549
|
)
|
|
213
550
|
|
|
214
551
|
|
|
@@ -219,12 +556,12 @@ class Substrate(CompositeSystem):
|
|
|
219
556
|
"""
|
|
220
557
|
|
|
221
558
|
m_def = Section()
|
|
559
|
+
|
|
222
560
|
supplier = Quantity(
|
|
223
561
|
type=str,
|
|
224
562
|
description='The supplier of the current substrate specimen.',
|
|
225
563
|
a_eln=ELNAnnotation(
|
|
226
564
|
component=ELNComponentEnum.StringEditQuantity,
|
|
227
|
-
label='Name of Supplier',
|
|
228
565
|
),
|
|
229
566
|
)
|
|
230
567
|
supplier_id = Quantity(
|
|
@@ -242,6 +579,22 @@ class Substrate(CompositeSystem):
|
|
|
242
579
|
label='Substrate ID',
|
|
243
580
|
),
|
|
244
581
|
)
|
|
582
|
+
image = Quantity(
|
|
583
|
+
type=str,
|
|
584
|
+
description='A photograph or image of the substrate.',
|
|
585
|
+
a_browser={'adaptor': 'RawFileAdaptor'},
|
|
586
|
+
a_eln=ELNAnnotation(
|
|
587
|
+
component=ELNComponentEnum.FileEditQuantity,
|
|
588
|
+
),
|
|
589
|
+
)
|
|
590
|
+
information_sheet = Quantity(
|
|
591
|
+
type=str,
|
|
592
|
+
description='Pdf files containing certificate and other documentation.',
|
|
593
|
+
a_browser={'adaptor': 'RawFileAdaptor'},
|
|
594
|
+
a_eln=ELNAnnotation(
|
|
595
|
+
component='FileEditQuantity',
|
|
596
|
+
),
|
|
597
|
+
)
|
|
245
598
|
|
|
246
599
|
|
|
247
600
|
class CrystallineSubstrate(Substrate):
|
|
@@ -251,6 +604,8 @@ class CrystallineSubstrate(Substrate):
|
|
|
251
604
|
"""
|
|
252
605
|
|
|
253
606
|
m_def = Section()
|
|
607
|
+
|
|
608
|
+
|
|
254
609
|
geometry = SubSection(
|
|
255
610
|
section_def=Geometry,
|
|
256
611
|
description='Section containing the geometry of the substrate.',
|
|
@@ -259,6 +614,10 @@ class CrystallineSubstrate(Substrate):
|
|
|
259
614
|
section_def=SubstrateCrystalProperties,
|
|
260
615
|
description='Section containing the crystal properties of the substrate.',
|
|
261
616
|
)
|
|
617
|
+
electronic_properties = SubSection(
|
|
618
|
+
section_def=ElectronicProperties,
|
|
619
|
+
description='Section containing the electronic properties of the substrate.',
|
|
620
|
+
)
|
|
262
621
|
dopants = SubSection(
|
|
263
622
|
section_def=Dopant,
|
|
264
623
|
repeats=True,
|
|
@@ -314,11 +314,19 @@ class Pressure(TimeSeries):
|
|
|
314
314
|
type=float,
|
|
315
315
|
unit='pascal',
|
|
316
316
|
shape=['*'],
|
|
317
|
+
a_eln=ELNAnnotation(
|
|
318
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
319
|
+
label='Set value',
|
|
320
|
+
),
|
|
317
321
|
)
|
|
318
322
|
set_time = Quantity(
|
|
319
323
|
type=float,
|
|
320
324
|
unit='second',
|
|
321
325
|
shape=['*'],
|
|
326
|
+
a_eln=ELNAnnotation(
|
|
327
|
+
component=ELNComponentEnum.NumberEditQuantity,
|
|
328
|
+
label='Set time',
|
|
329
|
+
),
|
|
322
330
|
)
|
|
323
331
|
|
|
324
332
|
|
|
@@ -38,6 +38,7 @@ from nomad.datamodel.metainfo.plot import PlotSection, PlotlyFigure
|
|
|
38
38
|
|
|
39
39
|
from nomad.datamodel.metainfo.basesections import (
|
|
40
40
|
PubChemPureSubstanceSection,
|
|
41
|
+
PureSubstanceComponent,
|
|
41
42
|
)
|
|
42
43
|
from nomad_material_processing import (
|
|
43
44
|
TimeSeries,
|
|
@@ -49,7 +50,7 @@ from nomad_material_processing.vapor_deposition import (
|
|
|
49
50
|
VolumetricFlowRate,
|
|
50
51
|
Pressure,
|
|
51
52
|
Temperature,
|
|
52
|
-
|
|
53
|
+
GasFlow,
|
|
53
54
|
)
|
|
54
55
|
|
|
55
56
|
|
|
@@ -64,6 +65,59 @@ if TYPE_CHECKING:
|
|
|
64
65
|
m_package = Package(name="Chemical Vapor Deposition")
|
|
65
66
|
|
|
66
67
|
|
|
68
|
+
class ComponentConcentration(PureSubstanceComponent):
|
|
69
|
+
"""
|
|
70
|
+
The concentration of a component in a mixed material.
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
theoretical_concentration = Quantity(
|
|
74
|
+
type=float,
|
|
75
|
+
description='The concentration planned for the component.',
|
|
76
|
+
a_eln=ELNAnnotation(
|
|
77
|
+
component='NumberEditQuantity',
|
|
78
|
+
defaultDisplayUnit='mol / liter',
|
|
79
|
+
minValue=0,
|
|
80
|
+
),
|
|
81
|
+
unit='mol / liter',
|
|
82
|
+
)
|
|
83
|
+
effective_concentration = Quantity(
|
|
84
|
+
type=float,
|
|
85
|
+
description='The concentration calculated from the component moles and total volume.',
|
|
86
|
+
a_eln=ELNAnnotation(
|
|
87
|
+
component='NumberEditQuantity',
|
|
88
|
+
defaultDisplayUnit='mol / liter',
|
|
89
|
+
minValue=0,
|
|
90
|
+
),
|
|
91
|
+
unit='mol / liter',
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
class PushPurgeGasFlow(GasFlow):
|
|
95
|
+
"""
|
|
96
|
+
Section describing the flow of a gas.
|
|
97
|
+
"""
|
|
98
|
+
|
|
99
|
+
m_def = Section(
|
|
100
|
+
a_plot=[dict(
|
|
101
|
+
# x=['flow_rate/time', 'flow_rate/set_time'],
|
|
102
|
+
# y=['flow_rate/value', 'flow_rate/set_value'],
|
|
103
|
+
x='flow_rate/time',
|
|
104
|
+
y='flow_rate/value',
|
|
105
|
+
),
|
|
106
|
+
dict(
|
|
107
|
+
x='purge_flow_rate/time',
|
|
108
|
+
y='purge_flow_rate/value',
|
|
109
|
+
),
|
|
110
|
+
],
|
|
111
|
+
)
|
|
112
|
+
flow_rate = SubSection(
|
|
113
|
+
section_def=VolumetricFlowRate,
|
|
114
|
+
label="push_flow_rate",
|
|
115
|
+
)
|
|
116
|
+
purge_flow_rate = SubSection(
|
|
117
|
+
section_def=VolumetricFlowRate,
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
|
|
67
121
|
class Rotation(TimeSeries):
|
|
68
122
|
"""
|
|
69
123
|
Rotation
|
|
@@ -82,33 +136,34 @@ class Rotation(TimeSeries):
|
|
|
82
136
|
)
|
|
83
137
|
value = Quantity(
|
|
84
138
|
type=float,
|
|
85
|
-
description="
|
|
86
|
-
a_eln=ELNAnnotation(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
),
|
|
139
|
+
description="The rotation of the sample holder, or susceptor.",
|
|
140
|
+
# a_eln=ELNAnnotation(
|
|
141
|
+
# component="NumberEditQuantity",
|
|
142
|
+
# defaultDisplayUnit="rpm",
|
|
143
|
+
# ),
|
|
90
144
|
unit="rpm",
|
|
91
145
|
)
|
|
92
146
|
|
|
93
147
|
|
|
94
148
|
class PartialVaporPressure(Pressure):
|
|
95
149
|
"""
|
|
96
|
-
The Partial Vapor Pressure (or Equilibrium Vapor Pressure), p, is the pressure exerted
|
|
97
|
-
by a vapor in thermodynamic equilibrium with its condensed phases (solid or liquid)
|
|
98
|
-
at a given temperature in a closed system.
|
|
99
|
-
|
|
150
|
+
The Partial Vapor Pressure (or Equilibrium Vapor Pressure), p, is the pressure exerted
|
|
151
|
+
by a vapor in thermodynamic equilibrium with its condensed phases (solid or liquid)
|
|
152
|
+
at a given temperature in a closed system.
|
|
153
|
+
|
|
100
154
|
It can be approximately calculated by the semiempirical Antoine equation.
|
|
101
155
|
It is a relation between the vapor pressure and temperature of pure substances.
|
|
102
156
|
log10(p) = A - [B / (T + C)]
|
|
103
157
|
https://en.wikipedia.org/wiki/Vapor_pressure
|
|
104
158
|
The August-Antoine equation is a simplified version of the Antoine equation,
|
|
105
|
-
sometimes used to calculate Partial Vapor Pressure.
|
|
106
|
-
This assumes a temperature-independent heat of vaporization, i.e., C = 0.
|
|
159
|
+
sometimes used to calculate Partial Vapor Pressure.
|
|
160
|
+
This assumes a temperature-independent heat of vaporization, i.e., C = 0.
|
|
107
161
|
https://en.wikipedia.org/wiki/Antoine_equation
|
|
108
162
|
"""
|
|
163
|
+
|
|
109
164
|
set_value = Quantity(
|
|
110
165
|
type=float,
|
|
111
|
-
description="
|
|
166
|
+
description="The value scalar set for this parameter.",
|
|
112
167
|
a_eln={"component": "NumberEditQuantity", "defaultDisplayUnit": "mbar"},
|
|
113
168
|
unit="pascal",
|
|
114
169
|
)
|
|
@@ -143,6 +198,7 @@ class BubblerMolarFlowRate(MolarFlowRate):
|
|
|
143
198
|
Journal of Vacuum Science & Technology A 8, 800 (1990); doi: 10.1116/1.576921
|
|
144
199
|
|
|
145
200
|
"""
|
|
201
|
+
|
|
146
202
|
value = MolarFlowRate.value.m_copy()
|
|
147
203
|
set_value = MolarFlowRate.set_value.m_copy()
|
|
148
204
|
set_value.a_eln.defaultDisplayUnit = "mol/minute"
|
|
@@ -152,14 +208,17 @@ class CVDEvaporationSource(EvaporationSource):
|
|
|
152
208
|
pressure = SubSection(
|
|
153
209
|
section_def=Pressure,
|
|
154
210
|
)
|
|
211
|
+
precursor_partial_pressure = SubSection(
|
|
212
|
+
section_def=PartialVaporPressure,
|
|
213
|
+
)
|
|
155
214
|
temperature = SubSection(
|
|
156
215
|
section_def=Temperature,
|
|
157
216
|
)
|
|
158
217
|
total_flow_rate = SubSection(
|
|
159
218
|
section_def=VolumetricFlowRate,
|
|
160
219
|
description="""
|
|
161
|
-
The total flow rate exiting the source.
|
|
162
|
-
It can be the sum of precursor and carrier gas or only a gas,
|
|
220
|
+
The total flow rate exiting the source.
|
|
221
|
+
It can be the sum of precursor and carrier gas or only a gas,
|
|
163
222
|
depending on the nature of the source.
|
|
164
223
|
""",
|
|
165
224
|
)
|
|
@@ -186,9 +245,6 @@ class BubblerEvaporator(CVDEvaporationSource):
|
|
|
186
245
|
leading to thin film growth.
|
|
187
246
|
"""
|
|
188
247
|
|
|
189
|
-
precursor_partial_pressure = SubSection(
|
|
190
|
-
section_def=PartialVaporPressure,
|
|
191
|
-
)
|
|
192
248
|
carrier_gas = SubSection(
|
|
193
249
|
section_def=PubChemPureSubstanceSection,
|
|
194
250
|
)
|
|
@@ -252,6 +308,7 @@ class FlashEvaporator(CVDEvaporationSource):
|
|
|
252
308
|
- Transport to Reaction Chamber.
|
|
253
309
|
- Temperature Regulation.
|
|
254
310
|
"""
|
|
311
|
+
|
|
255
312
|
carrier_gas = SubSection(
|
|
256
313
|
section_def=PubChemPureSubstanceSection,
|
|
257
314
|
)
|
|
@@ -270,40 +327,66 @@ class FlashEvaporator(CVDEvaporationSource):
|
|
|
270
327
|
pass
|
|
271
328
|
|
|
272
329
|
|
|
273
|
-
class
|
|
330
|
+
class MistEvaporator(CVDEvaporationSource):
|
|
274
331
|
"""
|
|
275
|
-
|
|
276
|
-
in providing the necessary precursor molecules for the deposition process.
|
|
277
|
-
These precursor gases are typically delivered to the reaction chamber
|
|
278
|
-
through various methods depending on the specific setup and requirements
|
|
279
|
-
of the CVD process.
|
|
332
|
+
MIST-CVD source is a novel method for the deposition of thin films.
|
|
280
333
|
"""
|
|
281
|
-
pass
|
|
282
334
|
|
|
283
335
|
|
|
284
|
-
class
|
|
336
|
+
class GasLineEvaporator(CVDEvaporationSource):
|
|
285
337
|
"""
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
338
|
+
In chemical vapor deposition (CVD), the gas supply plays a critical role
|
|
339
|
+
in providing the necessary precursor molecules for the deposition process.
|
|
340
|
+
|
|
341
|
+
Gas lines are used to transport the precursor gases from their source to the reaction chamber.
|
|
342
|
+
These lines are often made of materials that are compatible with the precursor gases
|
|
343
|
+
and can withstand the process conditions.
|
|
344
|
+
They may also be heated or insulated to maintain the gases at the desired temperature
|
|
290
345
|
and prevent condensation or undesired reactions within the lines.
|
|
291
346
|
"""
|
|
347
|
+
|
|
292
348
|
pass
|
|
293
349
|
|
|
294
350
|
|
|
295
|
-
class
|
|
351
|
+
class GasCylinderEvaporator(CVDEvaporationSource):
|
|
296
352
|
"""
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
353
|
+
In chemical vapor deposition (CVD), the gas supply plays a critical role
|
|
354
|
+
in providing the necessary precursor molecules for the deposition process.
|
|
355
|
+
|
|
356
|
+
Contains the precursor gases under pressure.
|
|
357
|
+
These cylinders are connected to the CVD chamber through a system of valves,
|
|
358
|
+
regulators, and tubing.
|
|
359
|
+
The flow rate of each gas can be controlled precisely using flow meters
|
|
301
360
|
or mass flow controllers to achieve the desired deposition conditions.
|
|
302
361
|
"""
|
|
303
|
-
|
|
362
|
+
|
|
363
|
+
dilution_in_cylinder = Quantity(
|
|
364
|
+
type=float,
|
|
365
|
+
description='The gas dilution in the cylinder.',
|
|
366
|
+
a_eln=ELNAnnotation(
|
|
367
|
+
component='NumberEditQuantity',
|
|
368
|
+
),
|
|
369
|
+
)
|
|
370
|
+
|
|
371
|
+
effective_flow_rate = SubSection(
|
|
372
|
+
section_def=VolumetricFlowRate,
|
|
373
|
+
description="""
|
|
374
|
+
Effective flow rate, to be defined better.
|
|
375
|
+
""",
|
|
376
|
+
)
|
|
304
377
|
|
|
305
378
|
|
|
306
379
|
class CVDSource(VaporDepositionSource):
|
|
380
|
+
"""
|
|
381
|
+
A source of vapor for chemical vapor deposition (CVD) processes.
|
|
382
|
+
"""
|
|
383
|
+
valve = Quantity(
|
|
384
|
+
type=bool,
|
|
385
|
+
description='is the valve open?',
|
|
386
|
+
a_eln=ELNAnnotation(
|
|
387
|
+
component='BoolEditQuantity',
|
|
388
|
+
),
|
|
389
|
+
)
|
|
307
390
|
vapor_source = SubSection(
|
|
308
391
|
section_def=CVDEvaporationSource,
|
|
309
392
|
description="""
|
|
@@ -312,4 +395,64 @@ class CVDSource(VaporDepositionSource):
|
|
|
312
395
|
)
|
|
313
396
|
|
|
314
397
|
|
|
398
|
+
class BubblerSource(CVDSource):
|
|
399
|
+
vapor_source = SubSection(
|
|
400
|
+
section_def=BubblerEvaporator,
|
|
401
|
+
)
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
class GasLineSource(CVDSource):
|
|
405
|
+
vapor_source = SubSection(
|
|
406
|
+
section_def=GasLineEvaporator,
|
|
407
|
+
)
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
class GasCylinderSource(CVDSource):
|
|
411
|
+
vapor_source = SubSection(
|
|
412
|
+
section_def=GasCylinderEvaporator,
|
|
413
|
+
)
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
class FlashSource(CVDSource):
|
|
417
|
+
vapor_source = SubSection(
|
|
418
|
+
section_def=FlashEvaporator,
|
|
419
|
+
description="""
|
|
420
|
+
Example: A heater, a filament, a laser, a bubbler, etc.
|
|
421
|
+
""",
|
|
422
|
+
)
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
class MistSource(CVDSource):
|
|
426
|
+
"""
|
|
427
|
+
Mist-CVD source is a novel method for the deposition of thin films.
|
|
428
|
+
"""
|
|
429
|
+
item = Quantity(
|
|
430
|
+
type=str,
|
|
431
|
+
description='An ID used to identify the solution.',
|
|
432
|
+
a_eln=ELNAnnotation(
|
|
433
|
+
component='StringEditQuantity',
|
|
434
|
+
),
|
|
435
|
+
)
|
|
436
|
+
stirring_time = Quantity(
|
|
437
|
+
type=float,
|
|
438
|
+
description='Solution stirring time.',
|
|
439
|
+
a_eln=ELNAnnotation(
|
|
440
|
+
component='NumberEditQuantity',
|
|
441
|
+
defaultDisplayUnit='minute',
|
|
442
|
+
),
|
|
443
|
+
unit='second',
|
|
444
|
+
)
|
|
445
|
+
description = Quantity(
|
|
446
|
+
type=str,
|
|
447
|
+
description='Some notes.',
|
|
448
|
+
a_eln=ELNAnnotation(
|
|
449
|
+
component='StringEditQuantity',
|
|
450
|
+
),
|
|
451
|
+
)
|
|
452
|
+
vapor_source = SubSection(
|
|
453
|
+
section_def=MistEvaporator,
|
|
454
|
+
)
|
|
455
|
+
material = SubSection(section_def=ComponentConcentration, repeats=True)
|
|
456
|
+
|
|
457
|
+
|
|
315
458
|
m_package.__init_metainfo__()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nomad-material-processing
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.10
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|