Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

125 merge substrate classes from pld and movpe and place it under ikz category #134

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions IKZ_plugin/nomad.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ plugins:
- 'parsers/hall_lakeshore_measurement'
- 'parsers/hall_lakeshore_instrument'
- 'parsers/laytec_epitt'
- 'schemas/basesections'
- 'schemas/basesections_IKZ'
- 'schemas/characterization_IKZ'
- 'schemas/substrate_IKZ'
- 'parsers/czochralski'
- 'parsers/movpe_2'
- 'parsers/movpe_1_deposition_control'
Expand All @@ -33,8 +35,12 @@ plugins:
python_package: hall.instrument_parser
parsers/laytec_epitt:
python_package: laytec_epitt
schemas/basesections:
schemas/basesections_IKZ:
python_package: basesections
schemas/characterization_IKZ:
python_package: characterization
schemas/substrate_IKZ:
python_package: substrate
parsers/czochralski:
python_package: czochralski
parsers/movpe_2:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import json

from nomad.metainfo import (
Package, Quantity, SubSection, Section, Category)
from nomad.datamodel.data import EntryData, EntryDataCategory
#from nomad.datamodel.metainfo.workflow import Link
from nomad.datamodel.metainfo.eln import Entity, Activity, SampleID
from nomad.datamodel.util import parse_path
import numpy as np
from nomad.datamodel.metainfo.basesections import (
CompositeSystem,
Activity,
Process,
CompositeSystemReference,
)

from nomad.metainfo import Package, Quantity, SubSection, Datetime, Section, Category
from nomad.datamodel.data import EntryData

m_package = Package(name='basesections_IKZ')

Expand Down Expand Up @@ -34,6 +36,82 @@ class IKZHallCategory(EntryDataCategory):
m_def = Category(label='Hall', categories=[EntryDataCategory, IKZCategory])


class SubstratePreparationStep(Activity):
"""
A section used for referencing Activities performed on Substrate.
"""

m_def = Section()


class Etching(Process, SubstratePreparationStep, EntryData):
"""
Class autogenerated from yaml schema.
"""

m_def = Section(
a_eln=None,
categories=[IKZCategory],
)
method = Quantity(
type=str,
default="Etching (MOVPE IKZ)",
)
datetime = Quantity(
type=Datetime,
description="FILL",
a_eln={"component": "DateTimeEditQuantity", "label": "deposition_date"},
)
temperature = Quantity(
type=np.float64,
description="FILL THE DESCRIPTION",
a_eln={"component": "NumberEditQuantity", "defaultDisplayUnit": "celsius"},
unit="celsius",
)
elapsed_time = Quantity(
type=np.float64,
description="Past time since process started (minutes)",
a_eln={"component": "NumberEditQuantity", "defaultDisplayUnit": "minute"},
unit="minute",
)
etching_reagents = SubSection(section_def=CompositeSystem, repeats=True)


class Annealing(Process, SubstratePreparationStep, EntryData):
"""
Class autogenerated from yaml schema.
"""

m_def = Section(
a_eln=None,
categories=[IKZCategory],
)
method = Quantity(
type=str,
default="Annealing (MOVPE IKZ)",
)
datetime = Quantity(
type=Datetime,
description="FILL",
a_eln={"component": "DateTimeEditQuantity", "label": "deposition_date"},
)
temperature = Quantity(
type=np.float64,
description="FILL THE DESCRIPTION",
a_eln={"component": "NumberEditQuantity", "defaultDisplayUnit": "celsius"},
unit="celsius",
)
elapsed_time = Quantity(
type=np.float64,
description="Past time since process started (minutes)",
a_eln={"component": "NumberEditQuantity", "defaultDisplayUnit": "minute"},
unit="minute",
)
anealing_reagents = SubSection(
section_def=CompositeSystemReference,
)


# class CollectionOfSystems(Entity, EntryData):
# '''
# A base class for a batch of materials. Each component of the batch is
Expand Down
127 changes: 127 additions & 0 deletions IKZ_plugin/src/ikz_plugin/characterization/schema.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
import numpy as np
from nomad.datamodel.metainfo.basesections import (
Measurement,
MeasurementResult,
)
from nomad.metainfo import Package, Quantity, SubSection, MEnum, Datetime, Section
from nomad.datamodel.data import EntryData

from ikz_plugin import (
IKZCategory,
SubstratePreparationStep,
)

m_package = Package(name="characterization_IKZ")


class AFMresults(MeasurementResult):
"""
The results of an AFM measurement
"""

roughness = Quantity(
type=np.float64,
description="RMS roughness value obtained by AFM",
a_eln={"component": "NumberEditQuantity", "defaultDisplayUnit": "picometer"},
unit="picometer",
)
surface_features = Quantity(
type=MEnum(["Step Flow", "Step Bunching", "2D Island"]),
a_eln={"component": "EnumEditQuantity"},
)
scale = Quantity(
type=np.float64,
description="scale of the image, to be multiplied by 5 to know the image size",
a_eln={"component": "NumberEditQuantity", "defaultDisplayUnit": "nanometer"},
unit="nanometer",
)
image = Quantity(
type=str,
description="image showing the thickness measurement points",
a_browser={"adaptor": "RawFileAdaptor"},
a_eln={"component": "FileEditQuantity"},
)
crop_image = Quantity(
type=str,
description="crop image ready to be used for AI-based analysis",
a_browser={"adaptor": "RawFileAdaptor"},
a_eln={"component": "FileEditQuantity"},
)


class AFMmeasurement(Measurement, SubstratePreparationStep, EntryData):
"""
Class autogenerated from yaml schema.
"""

m_def = Section(
a_eln={"hide": ["steps"]},
categories=[IKZCategory],
label="AFM",
)

method = Quantity(
type=str,
default="AFM (IKZ MOVPE)",
)
description = Quantity(
type=str,
a_eln={"component": "StringEditQuantity"},
)
datetime = Quantity(
type=Datetime,
a_eln={"component": "DateTimeEditQuantity"},
)
results = SubSection(
section_def=AFMresults,
repeats=True,
)


class LiMiresults(MeasurementResult):
"""
The results of a Light Microscope measurement
"""

image = Quantity(
type=str,
description="image showing the thickness measurement points",
a_browser={"adaptor": "RawFileAdaptor"},
a_eln={"component": "FileEditQuantity"},
)
crop_image = Quantity(
type=str,
description="crop image ready to be used for AI-based analysis",
a_browser={"adaptor": "RawFileAdaptor"},
a_eln={"component": "FileEditQuantity"},
)
scale = Quantity(
type=np.float64,
description="scale of the image",
a_eln={"component": "NumberEditQuantity", "defaultDisplayUnit": "micrometer"},
unit="micrometer",
)


class LightMicroscope(Measurement, SubstratePreparationStep, EntryData):
"""
Class autogenerated from yaml schema.
"""

m_def = Section(
a_eln={"hide": ["steps"]},
categories=[IKZCategory],
label="Light Microscope",
)
method = Quantity(
type=str,
default="Light Microscope (MOVPE IKZ)",
)
datetime = Quantity(
type=Datetime,
a_eln={"component": "DateTimeEditQuantity"},
)
results = SubSection(
section_def=LiMiresults,
repeats=True,
)
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
)
from nomad.datamodel.metainfo.plot import PlotSection, PlotlyFigure

from basesections import IKZDSCategory
from ikz_plugin import IKZDSCategory

m_package = Package(name='Directional Solidification Experiment')

Expand Down
2 changes: 2 additions & 0 deletions IKZ_plugin/src/ikz_plugin/mbe/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from .schema import *
from ikz_plugin import *
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from nomad.datamodel.metainfo.eln import PublicationReference
from nomad.datamodel.metainfo.eln import Entity, Activity, SampleID
from nomad.datamodel.util import parse_path
from basesections import SampleCut
from ikz_plugin import SampleCut

m_package = Package(name='mbe_IKZ')

Expand Down
18 changes: 18 additions & 0 deletions IKZ_plugin/src/ikz_plugin/movpe/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright The NOMAD Authors.
#
# This file is part of NOMAD. See https://nomad-lab.eu for further info.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

from .schema import *
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
)
from nomad.search import search
from nomad_material_processing.utils import create_archive as create_archive_ref
from movpe import (
from ikz_plugin.movpe import (
ExperimentMovpe1IKZ,
GrowthMovpe1IKZConstantParameters,
ThinFilmStackMovpe
Expand All @@ -46,7 +46,7 @@
from nomad.parsing.tabular import create_archive
from nomad.utils import hash

from basesections import IKZMOVPE1Category
from ikz_plugin import IKZMOVPE1Category

class RawFileConstantParameters(EntryData):
m_def = Section(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
from nomad.app.v1.models.models import User
from nomad.datamodel.data import EntryData, ArchiveSection
from nomad.search import search, MetadataPagination
from movpe import (
from ikz_plugin.movpe import (
ExperimentMovpe1IKZ,
GrowthMovpe1IKZConstantParametersReference,
GrowthMovpe1IKZDepositionControl,
Expand All @@ -64,7 +64,7 @@
# from nomad.parsing.tabular import create_archive
from nomad.utils import hash

from basesections import IKZMOVPE1Category
from ikz_plugin import IKZMOVPE1Category


def create_archive(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,15 @@
PubChemPureSubstanceSection,
)

from basesections import IKZMOVPE2Category
from ikz_plugin import IKZMOVPE2Category
from nomad.search import search

# from nomad_material_processing.utils import create_archive as create_archive_ref
from nomad_material_processing import (
SubstrateReference,
ThinFilmReference,
)
from movpe import (
from ikz_plugin.movpe import (
ExperimentMovpe2IKZ,
GrowthStepMovpe2IKZ,
GrowthMovpe2IKZ,
Expand Down
Loading