nomad-material-processing 0.0.2__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.
@@ -0,0 +1,159 @@
1
+ #
2
+ # Copyright The NOMAD Authors.
3
+ #
4
+ # This file is part of NOMAD. See https://nomad-lab.eu for further info.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ from structlog.stdlib import (
20
+ BoundLogger,
21
+ )
22
+ from nomad.metainfo import (
23
+ Package,
24
+ Quantity,
25
+ Section,
26
+ )
27
+ from nomad.datamodel.metainfo.basesections import (
28
+ SynthesisMethod,
29
+ CompositeSystem,
30
+ )
31
+
32
+ m_package = Package(name='Material Processing')
33
+
34
+
35
+ class Substrate(CompositeSystem):
36
+ '''
37
+ A thin free standing sheet of material. Not to be confused with the substrate role
38
+ during a deposition, which can be a `Substrate` with `ThinFilm`(s) on it.
39
+ '''
40
+ m_def = Section()
41
+ thickness = Quantity(
42
+ type=float,
43
+ description='''
44
+ The (average) thickness of the substrate.
45
+ ''',
46
+ a_eln={
47
+ "component": "NumberEditQuantity",
48
+ "defaultDisplayUnit": "millimeter"
49
+ },
50
+ unit="meter",
51
+ )
52
+
53
+ def normalize(self, archive, logger: BoundLogger) -> None:
54
+ '''
55
+ The normalizer for the `Substrate` class.
56
+
57
+ Args:
58
+ archive (EntryArchive): The archive containing the section that is being
59
+ normalized.
60
+ logger (BoundLogger): A structlog logger.
61
+ '''
62
+ super(Substrate, self).normalize(archive, logger)
63
+
64
+
65
+ class ThinFilm(CompositeSystem):
66
+ '''
67
+ A thin film of material which exists as part of a stack.
68
+ '''
69
+ m_def = Section()
70
+ thickness = Quantity(
71
+ type=float,
72
+ description='''
73
+ The (average) thickness of the thin film.
74
+ ''',
75
+ a_eln={
76
+ "component": "NumberEditQuantity",
77
+ "defaultDisplayUnit": "nanometer"
78
+ },
79
+ unit="meter",
80
+ )
81
+
82
+ def normalize(self, archive, logger: BoundLogger) -> None:
83
+ '''
84
+ The normalizer for the `ThinFilm` class.
85
+
86
+ Args:
87
+ archive (EntryArchive): The archive containing the section that is being
88
+ normalized.
89
+ logger (BoundLogger): A structlog logger.
90
+ '''
91
+ super(ThinFilm, self).normalize(archive, logger)
92
+
93
+
94
+ class ThinFilmStack(CompositeSystem):
95
+ '''
96
+ A stack of `ThinFilm`(s). Typically deposited on a `Substrate`.
97
+ '''
98
+ m_def = Section()
99
+ substrate = Quantity(
100
+ type=Substrate,
101
+ description='''
102
+ The substrate which the thin film layers of the thin film stack are deposited
103
+ on.
104
+ ''',
105
+ a_eln={
106
+ "component": "ReferenceEditQuantity"
107
+ },
108
+ )
109
+ layers = Quantity(
110
+ type=ThinFilm,
111
+ description='''
112
+ An ordered list (starting at the substrate) of the thin films making up the
113
+ thin film stacks.
114
+ ''',
115
+ a_eln={
116
+ "component": "ReferenceEditQuantity"
117
+ },
118
+ shape=["*"],
119
+ )
120
+
121
+ def normalize(self, archive, logger: BoundLogger) -> None:
122
+ '''
123
+ The normalizer for the `ThinFilmStack` class.
124
+
125
+ Args:
126
+ archive (EntryArchive): The archive containing the section that is being
127
+ normalized.
128
+ logger (BoundLogger): A structlog logger.
129
+ '''
130
+ super(ThinFilmStack, self).normalize(archive, logger)
131
+
132
+
133
+ class SampleDeposition(SynthesisMethod):
134
+ '''
135
+ The process of the settling of particles (atoms or molecules) from a solution,
136
+ suspension or vapour onto a pre-existing surface, resulting in the growth of a
137
+ new phase. [database_cross_reference: https://orcid.org/0000-0002-0640-0422]
138
+
139
+ Synonyms:
140
+ - deposition
141
+ '''
142
+ m_def = Section(
143
+ links=[
144
+ "http://purl.obolibrary.org/obo/CHMO_0001310"
145
+ ],)
146
+
147
+ def normalize(self, archive, logger: BoundLogger) -> None:
148
+ '''
149
+ The normalizer for the `SampleDeposition` class.
150
+
151
+ Args:
152
+ archive (EntryArchive): The archive containing the section that is being
153
+ normalized.
154
+ logger (BoundLogger): A structlog logger.
155
+ '''
156
+ super(SampleDeposition, self).normalize(archive, logger)
157
+
158
+
159
+ m_package.__init_metainfo__()
@@ -0,0 +1,79 @@
1
+ #
2
+ # Copyright The NOMAD Authors.
3
+ #
4
+ # This file is part of NOMAD. See https://nomad-lab.eu for further info.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ from structlog.stdlib import (
20
+ BoundLogger,
21
+ )
22
+ from nomad.metainfo import (
23
+ Package,
24
+ Section,
25
+ )
26
+ from nomad_material_processing import (
27
+ SampleDeposition,
28
+ )
29
+
30
+ m_package = Package(name='Crystal Growth')
31
+
32
+
33
+ class CrystalGrowth(SampleDeposition):
34
+ '''
35
+ Any synthesis method used to grow crystals.
36
+ [database_cross_reference: https://orcid.org/0000-0002-0640-0422]
37
+ '''
38
+ m_def = Section(
39
+ links=[
40
+ "http://purl.obolibrary.org/obo/CHMO_0002224"
41
+ ],)
42
+
43
+ def normalize(self, archive, logger: BoundLogger) -> None:
44
+ '''
45
+ The normalizer for the `CrystalGrowth` class.
46
+
47
+ Args:
48
+ archive (EntryArchive): The archive containing the section that is being
49
+ normalized.
50
+ logger (BoundLogger): A structlog logger.
51
+ '''
52
+ super(CrystalGrowth, self).normalize(archive, logger)
53
+
54
+
55
+ class CzochralskiProcess(CrystalGrowth):
56
+ '''
57
+ A method of producing large single crystals (of semiconductors or metals) by
58
+ inserting a small seed crystal into a crucible filled with similar molten
59
+ material, then slowly pulling the seed up from the melt while rotating it.
60
+ [database_cross_reference: https://orcid.org/0000-0002-0640-0422]
61
+ '''
62
+ m_def = Section(
63
+ links=[
64
+ "http://purl.obolibrary.org/obo/CHMO_0002158"
65
+ ],)
66
+
67
+ def normalize(self, archive, logger: BoundLogger) -> None:
68
+ '''
69
+ The normalizer for the `CzochralskiProcess` class.
70
+
71
+ Args:
72
+ archive (EntryArchive): The archive containing the section that is being
73
+ normalized.
74
+ logger (BoundLogger): A structlog logger.
75
+ '''
76
+ super(CzochralskiProcess, self).normalize(archive, logger)
77
+
78
+
79
+ m_package.__init_metainfo__()
@@ -0,0 +1,149 @@
1
+ #
2
+ # Copyright The NOMAD Authors.
3
+ #
4
+ # This file is part of NOMAD. See https://nomad-lab.eu for further info.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ from structlog.stdlib import (
20
+ BoundLogger,
21
+ )
22
+ from nomad.metainfo import (
23
+ Package,
24
+ Section,
25
+ )
26
+ from nomad_material_processing import (
27
+ SampleDeposition,
28
+ )
29
+
30
+ m_package = Package(name='Epitaxy')
31
+
32
+
33
+ class Epitaxy(SampleDeposition):
34
+ '''
35
+ A synthesis method which consists of depositing a monocrystalline film (from
36
+ liquid or gaseous precursors) on a monocrystalline substrate.
37
+ [database_cross_reference: https://orcid.org/0000-0002-0640-0422]
38
+ '''
39
+ m_def = Section(
40
+ links=[
41
+ "http://purl.obolibrary.org/obo/CHMO_0001336"
42
+ ],)
43
+
44
+ def normalize(self, archive, logger: BoundLogger) -> None:
45
+ '''
46
+ The normalizer for the `Epitaxy` class.
47
+
48
+ Args:
49
+ archive (EntryArchive): The archive containing the section that is being
50
+ normalized.
51
+ logger (BoundLogger): A structlog logger.
52
+ '''
53
+ super(Epitaxy, self).normalize(archive, logger)
54
+
55
+
56
+ class MolecularBeamEpitaxy(Epitaxy):
57
+ '''
58
+ A synthesis method which consists of depositing a monocrystalline film (from a
59
+ molecular beam) on a monocrystalline substrate under high vacuum (<10^{-8} Pa).
60
+ Molecular beam epitaxy is very slow, with a deposition rate of <1000 nm per hour.
61
+ [database_cross_reference: https://orcid.org/0000-0002-0640-0422]
62
+
63
+ Synonyms:
64
+ - MBE
65
+ - molecular-beam epitaxy
66
+ '''
67
+ m_def = Section(
68
+ links=[
69
+ "http://purl.obolibrary.org/obo/CHMO_0001341"
70
+ ],)
71
+
72
+ def normalize(self, archive, logger: BoundLogger) -> None:
73
+ '''
74
+ The normalizer for the `MolecularBeamEpitaxy` class.
75
+
76
+ Args:
77
+ archive (EntryArchive): The archive containing the section that is being
78
+ normalized.
79
+ logger (BoundLogger): A structlog logger.
80
+ '''
81
+ super(MolecularBeamEpitaxy, self).normalize(archive, logger)
82
+
83
+
84
+ class VaporPhaseEpitaxy(Epitaxy):
85
+ '''
86
+ A synthesis method which consists of depositing a monocrystalline film (from
87
+ vapour-phase precursors) on a monocrystalline substrate.
88
+ [database_cross_reference: https://orcid.org/0000-0002-0640-0422]
89
+
90
+ Synonyms:
91
+ - vapour-phase epitaxial growth
92
+ - vapor-phase epitaxy
93
+ - vapor phase epitaxy
94
+ - VPE
95
+ - vapour phase epitaxy
96
+ '''
97
+ m_def = Section(
98
+ links=[
99
+ "http://purl.obolibrary.org/obo/CHMO_0001346"
100
+ ],)
101
+
102
+ def normalize(self, archive, logger: BoundLogger) -> None:
103
+ '''
104
+ The normalizer for the `VaporPhaseEpitaxy` class.
105
+
106
+ Args:
107
+ archive (EntryArchive): The archive containing the section that is being
108
+ normalized.
109
+ logger (BoundLogger): A structlog logger.
110
+ '''
111
+ super(VaporPhaseEpitaxy, self).normalize(archive, logger)
112
+
113
+
114
+ class MetalOrganicVaporPhaseEpitaxy(VaporPhaseEpitaxy):
115
+ '''
116
+ A synthesis method which consists of depositing a monocrystalline film, from
117
+ organometallic vapour-phase precursors, on a monocrystalline substrate.
118
+ [database_cross_reference: https://orcid.org/0000-0002-0640-0422]
119
+
120
+ Synonyms:
121
+ - OMVPE
122
+ - MOVPE
123
+ - metalorganic vapour phase epitaxy
124
+ - metal organic vapour phase epitaxy
125
+ - metalorganic vapor phase epitaxy
126
+ - organometallic vapor phase epitaxy
127
+ - metal-organic vapor-phase epitaxy
128
+ - metal organic vapor phase epitaxy
129
+ - metal-organic vapour-phase epitaxy
130
+ - organometallic vapour phase epitaxy
131
+ '''
132
+ m_def = Section(
133
+ links=[
134
+ "http://purl.obolibrary.org/obo/CHMO_0001348"
135
+ ],)
136
+
137
+ def normalize(self, archive, logger: BoundLogger) -> None:
138
+ '''
139
+ The normalizer for the `MetalOrganicVaporPhaseEpitaxy` class.
140
+
141
+ Args:
142
+ archive (EntryArchive): The archive containing the section that is being
143
+ normalized.
144
+ logger (BoundLogger): A structlog logger.
145
+ '''
146
+ super(MetalOrganicVaporPhaseEpitaxy, self).normalize(archive, logger)
147
+
148
+
149
+ m_package.__init_metainfo__()