mat3ra-esse 2024.4.8.post1__py3-none-any.whl → 2024.4.8.post2__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.
Potentially problematic release.
This version of mat3ra-esse might be problematic. Click here for more details.
- mat3ra/esse/models/__init__.py +3 -0
- mat3ra/esse/models/core/__init__.py +3 -0
- mat3ra/esse/models/core/abstract/2d_data.py +17 -0
- mat3ra/esse/models/core/abstract/2d_plot.py +34 -0
- mat3ra/esse/models/core/abstract/3d_grid.py +14 -0
- mat3ra/esse/models/core/abstract/3d_tensor.py +19 -0
- mat3ra/esse/models/core/abstract/3d_vector_basis.py +15 -0
- mat3ra/esse/models/core/abstract/__init__.py +3 -0
- mat3ra/esse/models/core/abstract/point.py +13 -0
- mat3ra/esse/models/core/abstract/vector.py +13 -0
- mat3ra/esse/models/core/primitive/1d_data_series.py +13 -0
- mat3ra/esse/models/core/primitive/3d_lattice.py +34 -0
- mat3ra/esse/models/core/primitive/__init__.py +3 -0
- mat3ra/esse/models/core/primitive/array_of_3_booleans.py +13 -0
- mat3ra/esse/models/core/primitive/array_of_3_numbers.py +13 -0
- mat3ra/esse/models/core/primitive/array_of_ids.py +23 -0
- mat3ra/esse/models/core/primitive/array_of_strings.py +16 -0
- mat3ra/esse/models/core/primitive/axis.py +20 -0
- mat3ra/esse/models/core/primitive/group_info.py +20 -0
- mat3ra/esse/models/core/primitive/integer_one_or_zero.py +11 -0
- mat3ra/esse/models/core/primitive/linked_list/__init__.py +33 -0
- mat3ra/esse/models/core/primitive/linked_list/base_node.py +31 -0
- mat3ra/esse/models/core/primitive/linked_list/named_node.py +35 -0
- mat3ra/esse/models/core/primitive/linked_list/named_node_in_group.py +43 -0
- mat3ra/esse/models/core/primitive/linked_list/node_with_type.py +32 -0
- mat3ra/esse/models/core/primitive/scalar.py +11 -0
- mat3ra/esse/models/core/primitive/slugified_entry.py +18 -0
- mat3ra/esse/models/core/primitive/slugified_entry_or_slug.py +27 -0
- mat3ra/esse/models/core/primitive/string.py +11 -0
- mat3ra/esse/models/core/reference/__init__.py +260 -0
- mat3ra/esse/models/core/reference/exabyte.py +24 -0
- mat3ra/esse/models/core/reference/experiment/__init__.py +150 -0
- mat3ra/esse/models/core/reference/experiment/condition.py +28 -0
- mat3ra/esse/models/core/reference/experiment/location.py +18 -0
- mat3ra/esse/models/core/reference/literature/__init__.py +86 -0
- mat3ra/esse/models/core/reference/literature/name.py +16 -0
- mat3ra/esse/models/core/reference/literature/pages.py +14 -0
- mat3ra/esse/models/core/reference/modeling/__init__.py +49 -0
- mat3ra/esse/models/core/reference/modeling/exabyte.py +42 -0
- mat3ra/esse/models/core/reusable/__init__.py +3 -0
- mat3ra/esse/models/core/reusable/atomic_data/__init__.py +3 -0
- mat3ra/esse/models/core/reusable/atomic_data/per_orbital.py +21 -0
- mat3ra/esse/models/core/reusable/atomic_data/per_orbital_pair.py +34 -0
- mat3ra/esse/models/core/reusable/atomic_data/value_number.py +16 -0
- mat3ra/esse/models/core/reusable/atomic_data/value_string.py +16 -0
- mat3ra/esse/models/core/reusable/atomic_data_per_orbital_numeric.py +25 -0
- mat3ra/esse/models/core/reusable/atomic_data_per_orbital_pair_numeric.py +38 -0
- mat3ra/esse/models/core/reusable/atomic_orbital.py +20 -0
- mat3ra/esse/models/core/reusable/atomic_scalars.py +28 -0
- mat3ra/esse/models/core/reusable/atomic_strings.py +24 -0
- mat3ra/esse/models/core/reusable/atomic_vectors.py +24 -0
- mat3ra/esse/models/core/reusable/band_gap.py +42 -0
- mat3ra/esse/models/core/reusable/categories.py +43 -0
- mat3ra/esse/models/core/reusable/category_path.py +14 -0
- mat3ra/esse/models/core/reusable/dielectric_tensor_component.py +31 -0
- mat3ra/esse/models/core/reusable/energy.py +30 -0
- mat3ra/esse/models/core/reusable/file_metadata.py +24 -0
- mat3ra/esse/models/core/reusable/frequency_function_matrix.py +20 -0
- mat3ra/esse/models/core/reusable/object_storage_container_data.py +36 -0
- mat3ra/esse/models/definitions/__init__.py +3 -0
- mat3ra/esse/models/definitions/units.py +13 -0
- mat3ra/esse/models/element.py +74 -0
- mat3ra/esse/models/in_memory_entity/__init__.py +3 -0
- mat3ra/esse/models/in_memory_entity/base.py +58 -0
- mat3ra/esse/models/in_memory_entity/defaultable.py +62 -0
- mat3ra/esse/models/in_memory_entity/named.py +62 -0
- mat3ra/esse/models/in_memory_entity/named_defaultable.py +66 -0
- mat3ra/esse/models/in_memory_entity/named_defaultable_has_metadata.py +67 -0
- mat3ra/esse/models/in_memory_entity/named_defaultable_runtime_items.py +89 -0
- mat3ra/esse/models/job/__init__.py +3006 -0
- mat3ra/esse/models/job/base.py +287 -0
- mat3ra/esse/models/job/compute.py +161 -0
- mat3ra/esse/models/material/__init__.py +420 -0
- mat3ra/esse/models/material/conventional.py +13 -0
- mat3ra/esse/models/method/__init__.py +28 -0
- mat3ra/esse/models/method/categorized_method.py +86 -0
- mat3ra/esse/models/method/method_parameters.py +48 -0
- mat3ra/esse/models/method/unit_method.py +70 -0
- mat3ra/esse/models/methods_category/mathematical/__init__.py +3 -0
- mat3ra/esse/models/methods_category/mathematical/diff/__init__.py +48 -0
- mat3ra/esse/models/methods_category/mathematical/diff/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/diff/fd.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/discr/__init__.py +48 -0
- mat3ra/esse/models/methods_category/mathematical/discr/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/discr/mesh/__init__.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/discr/mesh/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/discr/mesh/hybrid.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/discr/mesh/nstruct.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/discr/mesh/struct/__init__.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/discr/mesh/struct/cartesian.py +60 -0
- mat3ra/esse/models/methods_category/mathematical/discr/mesh/struct/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/fapprx/__init__.py +48 -0
- mat3ra/esse/models/methods_category/mathematical/fapprx/basisexp.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/fapprx/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/fapprx/ipol/__init__.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/fapprx/ipol/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/fapprx/ipol/lin.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/fapprx/ipol/poly.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/fapprx/ipol/spline.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/__init__.py +48 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/analytic/__init__.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/analytic/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/analytic/volume.py +67 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/diffeq/__init__.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/diffeq/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/diffeq/order1.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/diffeq/order2.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/numquad/__init__.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/numquad/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/numquad/gauss.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/numquad/newcot.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/transf/__init__.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/transf/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/intgr/transf/fourier.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/linalg/__init__.py +48 -0
- mat3ra/esse/models/methods_category/mathematical/linalg/dcomp.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/linalg/diag/__init__.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/linalg/diag/davidson.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/linalg/diag/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/linalg/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/linalg/lintra.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/linalg/matf.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/opt/__init__.py +48 -0
- mat3ra/esse/models/methods_category/mathematical/opt/diff/__init__.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/opt/diff/bracket.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/opt/diff/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/opt/diff/local.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/opt/diff/order1.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/opt/diff/order2.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/opt/diff/ordern/__init__.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/opt/diff/ordern/cg.py +60 -0
- mat3ra/esse/models/methods_category/mathematical/opt/diff/ordern/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/opt/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/opt/ndiff/__init__.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/opt/ndiff/direct.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/opt/ndiff/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/opt/ndiff/pop.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/opt/ndiff/stoch.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/opt/root/__init__.py +52 -0
- mat3ra/esse/models/methods_category/mathematical/opt/root/bracket.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/opt/root/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/mathematical/opt/root/iter.py +56 -0
- mat3ra/esse/models/methods_category/mathematical/regression.py +54 -0
- mat3ra/esse/models/methods_category/physical/__init__.py +3 -0
- mat3ra/esse/models/methods_category/physical/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/physical/qm/__init__.py +48 -0
- mat3ra/esse/models/methods_category/physical/qm/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/physical/qm/wf/__init__.py +52 -0
- mat3ra/esse/models/methods_category/physical/qm/wf/ao/__init__.py +62 -0
- mat3ra/esse/models/methods_category/physical/qm/wf/ao/dunning.py +60 -0
- mat3ra/esse/models/methods_category/physical/qm/wf/ao/other.py +60 -0
- mat3ra/esse/models/methods_category/physical/qm/wf/ao/pople.py +60 -0
- mat3ra/esse/models/methods_category/physical/qm/wf/enum_options.py +13 -0
- mat3ra/esse/models/methods_category/physical/qm/wf/psp.py +63 -0
- mat3ra/esse/models/methods_category/physical/qm/wf/pw.py +56 -0
- mat3ra/esse/models/methods_category/physical/qm/wf/smearing.py +63 -0
- mat3ra/esse/models/methods_category/physical/qm/wf/tetrahedron.py +62 -0
- mat3ra/esse/models/methods_directory/legacy/__init__.py +3 -0
- mat3ra/esse/models/methods_directory/legacy/localorbital.py +37 -0
- mat3ra/esse/models/methods_directory/legacy/pseudopotential.py +40 -0
- mat3ra/esse/models/methods_directory/legacy/regression.py +118 -0
- mat3ra/esse/models/methods_directory/legacy/unknown.py +37 -0
- mat3ra/esse/models/methods_directory/mathematical/__init__.py +3 -0
- mat3ra/esse/models/methods_directory/mathematical/cg.py +87 -0
- mat3ra/esse/models/methods_directory/mathematical/davidson.py +83 -0
- mat3ra/esse/models/methods_directory/mathematical/regression/__init__.py +161 -0
- mat3ra/esse/models/methods_directory/mathematical/regression/data.py +69 -0
- mat3ra/esse/models/methods_directory/mathematical/regression/dataset.py +20 -0
- mat3ra/esse/models/methods_directory/mathematical/regression/kernel_ridge/__init__.py +3 -0
- mat3ra/esse/models/methods_directory/mathematical/regression/kernel_ridge/data_per_property.py +39 -0
- mat3ra/esse/models/methods_directory/mathematical/regression/linear/__init__.py +3 -0
- mat3ra/esse/models/methods_directory/mathematical/regression/linear/data_per_property.py +35 -0
- mat3ra/esse/models/methods_directory/mathematical/regression/per_feature_item.py +24 -0
- mat3ra/esse/models/methods_directory/mathematical/regression/precision.py +28 -0
- mat3ra/esse/models/methods_directory/mathematical/regression/precision_per_property.py +24 -0
- mat3ra/esse/models/methods_directory/physical/__init__.py +3 -0
- mat3ra/esse/models/methods_directory/physical/ao/__init__.py +3 -0
- mat3ra/esse/models/methods_directory/physical/ao/dunning.py +103 -0
- mat3ra/esse/models/methods_directory/physical/ao/enum_options.py +13 -0
- mat3ra/esse/models/methods_directory/physical/ao/other.py +107 -0
- mat3ra/esse/models/methods_directory/physical/ao/pople.py +101 -0
- mat3ra/esse/models/methods_directory/physical/psp/__init__.py +187 -0
- mat3ra/esse/models/methods_directory/physical/psp/file.py +106 -0
- mat3ra/esse/models/methods_directory/physical/psp/file_data_item.py +88 -0
- mat3ra/esse/models/methods_directory/physical/pw.py +83 -0
- mat3ra/esse/models/methods_directory/physical/smearing.py +90 -0
- mat3ra/esse/models/methods_directory/physical/tetrahedron.py +91 -0
- mat3ra/esse/models/model/__init__.py +43 -0
- mat3ra/esse/models/model/categorized_model.py +211 -0
- mat3ra/esse/models/model/mixins/__init__.py +3 -0
- mat3ra/esse/models/model/mixins/dft/__init__.py +5 -0
- mat3ra/esse/models/model/mixins/dft/double_hybrid_functional.py +18 -0
- mat3ra/esse/models/model/mixins/dft/enum_options.py +13 -0
- mat3ra/esse/models/model/mixins/dft/gga_functional.py +22 -0
- mat3ra/esse/models/model/mixins/dft/hybrid_functional.py +19 -0
- mat3ra/esse/models/model/mixins/dft/lda_functional.py +21 -0
- mat3ra/esse/models/model/mixins/dft/mgga_functional.py +21 -0
- mat3ra/esse/models/model/mixins/dispersion_correction.py +21 -0
- mat3ra/esse/models/model/mixins/enum_options.py +13 -0
- mat3ra/esse/models/model/mixins/hubbard.py +18 -0
- mat3ra/esse/models/model/mixins/spin_orbit_coupling.py +16 -0
- mat3ra/esse/models/model/mixins/spin_polarization.py +22 -0
- mat3ra/esse/models/model/model_parameters.py +123 -0
- mat3ra/esse/models/model/model_without_method.py +144 -0
- mat3ra/esse/models/models_category/__init__.py +3 -0
- mat3ra/esse/models/models_category/enum_options.py +13 -0
- mat3ra/esse/models/models_category/pb/__init__.py +48 -0
- mat3ra/esse/models/models_category/pb/enum_options.py +13 -0
- mat3ra/esse/models/models_category/pb/qm/__init__.py +52 -0
- mat3ra/esse/models/models_category/pb/qm/abin/__init__.py +56 -0
- mat3ra/esse/models/models_category/pb/qm/abin/enum_options.py +13 -0
- mat3ra/esse/models/models_category/pb/qm/abin/gw.py +66 -0
- mat3ra/esse/models/models_category/pb/qm/dft/__init__.py +56 -0
- mat3ra/esse/models/models_category/pb/qm/dft/enum_options.py +13 -0
- mat3ra/esse/models/models_category/pb/qm/dft/ksdft/__init__.py +60 -0
- mat3ra/esse/models/models_category/pb/qm/dft/ksdft/double_hybrid.py +64 -0
- mat3ra/esse/models/models_category/pb/qm/dft/ksdft/enum_options.py +13 -0
- mat3ra/esse/models/models_category/pb/qm/dft/ksdft/gga.py +64 -0
- mat3ra/esse/models/models_category/pb/qm/dft/ksdft/hybrid.py +64 -0
- mat3ra/esse/models/models_category/pb/qm/dft/ksdft/lda.py +64 -0
- mat3ra/esse/models/models_category/pb/qm/dft/ksdft/mgga.py +64 -0
- mat3ra/esse/models/models_category/pb/qm/enum_options.py +13 -0
- mat3ra/esse/models/models_category/pb/qm/semp.py +56 -0
- mat3ra/esse/models/models_category/st/__init__.py +48 -0
- mat3ra/esse/models/models_category/st/det/__init__.py +52 -0
- mat3ra/esse/models/models_category/st/det/enum_options.py +13 -0
- mat3ra/esse/models/models_category/st/det/ml/__init__.py +56 -0
- mat3ra/esse/models/models_category/st/det/ml/enum_options.py +13 -0
- mat3ra/esse/models/models_category/st/det/ml/re.py +60 -0
- mat3ra/esse/models/models_category/st/enum_options.py +13 -0
- mat3ra/esse/models/models_directory/__init__.py +3 -0
- mat3ra/esse/models/models_directory/double_hybrid.py +205 -0
- mat3ra/esse/models/models_directory/gga.py +219 -0
- mat3ra/esse/models/models_directory/gw.py +272 -0
- mat3ra/esse/models/models_directory/hybrid.py +213 -0
- mat3ra/esse/models/models_directory/lda.py +218 -0
- mat3ra/esse/models/models_directory/legacy/__init__.py +3 -0
- mat3ra/esse/models/models_directory/legacy/dft.py +170 -0
- mat3ra/esse/models/models_directory/legacy/ml.py +52 -0
- mat3ra/esse/models/models_directory/legacy/unknown.py +52 -0
- mat3ra/esse/models/models_directory/mgga.py +218 -0
- mat3ra/esse/models/models_directory/re.py +160 -0
- mat3ra/esse/models/project.py +82 -0
- mat3ra/esse/models/properties_directory/__init__.py +3 -0
- mat3ra/esse/models/properties_directory/derived_properties.py +140 -0
- mat3ra/esse/models/properties_directory/electronic_configuration.py +20 -0
- mat3ra/esse/models/properties_directory/elemental/__init__.py +3 -0
- mat3ra/esse/models/properties_directory/elemental/atomic_radius.py +34 -0
- mat3ra/esse/models/properties_directory/elemental/electronegativity.py +19 -0
- mat3ra/esse/models/properties_directory/elemental/ionization_potential.py +30 -0
- mat3ra/esse/models/properties_directory/non_scalar/__init__.py +3 -0
- mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +83 -0
- mat3ra/esse/models/properties_directory/non_scalar/band_gaps.py +64 -0
- mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +92 -0
- mat3ra/esse/models/properties_directory/non_scalar/charge_density_profile.py +63 -0
- mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +97 -0
- mat3ra/esse/models/properties_directory/non_scalar/dielectric_tensor.py +40 -0
- mat3ra/esse/models/properties_directory/non_scalar/file_content.py +64 -0
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_u.py +40 -0
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_v.py +54 -0
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_v_nn.py +54 -0
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +79 -0
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +71 -0
- mat3ra/esse/models/properties_directory/non_scalar/potential_profile.py +69 -0
- mat3ra/esse/models/properties_directory/non_scalar/reaction_energy_profile.py +69 -0
- mat3ra/esse/models/properties_directory/non_scalar/stress_tensor.py +31 -0
- mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +198 -0
- mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +75 -0
- mat3ra/esse/models/properties_directory/scalar/__init__.py +3 -0
- mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +34 -0
- mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +34 -0
- mat3ra/esse/models/properties_directory/scalar/formation_energy.py +34 -0
- mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +34 -0
- mat3ra/esse/models/properties_directory/scalar/pressure.py +25 -0
- mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +34 -0
- mat3ra/esse/models/properties_directory/scalar/surface_energy.py +34 -0
- mat3ra/esse/models/properties_directory/scalar/total_energy.py +34 -0
- mat3ra/esse/models/properties_directory/scalar/total_force.py +29 -0
- mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +34 -0
- mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +34 -0
- mat3ra/esse/models/properties_directory/structural/__init__.py +3 -0
- mat3ra/esse/models/properties_directory/structural/atomic_forces.py +40 -0
- mat3ra/esse/models/properties_directory/structural/basis/__init__.py +68 -0
- mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints.py +30 -0
- mat3ra/esse/models/properties_directory/structural/basis/atomic_coordinate.py +14 -0
- mat3ra/esse/models/properties_directory/structural/basis/atomic_coordinates.py +39 -0
- mat3ra/esse/models/properties_directory/structural/basis/atomic_element.py +19 -0
- mat3ra/esse/models/properties_directory/structural/basis/bonds.py +40 -0
- mat3ra/esse/models/properties_directory/structural/density.py +24 -0
- mat3ra/esse/models/properties_directory/structural/elemental_ratio.py +23 -0
- mat3ra/esse/models/properties_directory/structural/inchi.py +19 -0
- mat3ra/esse/models/properties_directory/structural/inchi_key.py +19 -0
- mat3ra/esse/models/properties_directory/structural/lattice/__init__.py +102 -0
- mat3ra/esse/models/properties_directory/structural/lattice/lattice_bravais.py +71 -0
- mat3ra/esse/models/properties_directory/structural/lattice/lattice_vectors.py +35 -0
- mat3ra/esse/models/properties_directory/structural/lattice/type_enum.py +24 -0
- mat3ra/esse/models/properties_directory/structural/lattice/type_extended_enum.py +34 -0
- mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +35 -0
- mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +70 -0
- mat3ra/esse/models/properties_directory/structural/p_norm.py +23 -0
- mat3ra/esse/models/properties_directory/structural/patterns/__init__.py +3 -0
- mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +37 -0
- mat3ra/esse/models/properties_directory/structural/patterns/ring.py +34 -0
- mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +33 -0
- mat3ra/esse/models/properties_directory/structural/symmetry.py +39 -0
- mat3ra/esse/models/properties_directory/structural/volume.py +24 -0
- mat3ra/esse/models/properties_directory/workflow/convergence/__init__.py +3 -0
- mat3ra/esse/models/properties_directory/workflow/convergence/electronic.py +26 -0
- mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +63 -0
- mat3ra/esse/models/properties_directory/workflow/convergence/kpoint.py +43 -0
- mat3ra/esse/models/property/__init__.py +3 -0
- mat3ra/esse/models/property/base/The_source_of_a_property/__init__.py +5 -0
- mat3ra/esse/models/property/base/The_source_of_a_property/field_This_could_be_an_article__a_simulation_on_Exabyte__an_external_simulation__etc.py +38 -0
- mat3ra/esse/models/property/base/__init__.py +232 -0
- mat3ra/esse/models/property/meta/The_source_of_a_property/__init__.py +5 -0
- mat3ra/esse/models/property/meta/The_source_of_a_property/field_This_could_be_an_article__a_simulation_on_Exabyte__an_external_simulation__etc.py +38 -0
- mat3ra/esse/models/property/meta/__init__.py +232 -0
- mat3ra/esse/models/property/raw/The_source_of_a_property/__init__.py +5 -0
- mat3ra/esse/models/property/raw/The_source_of_a_property/field_This_could_be_an_article__a_simulation_on_Exabyte__an_external_simulation__etc.py +38 -0
- mat3ra/esse/models/property/raw/__init__.py +232 -0
- mat3ra/esse/models/property/source/The_source_of_a_property/__init__.py +5 -0
- mat3ra/esse/models/property/source/The_source_of_a_property/field_This_could_be_an_article__a_simulation_on_Exabyte__an_external_simulation__etc.py +38 -0
- mat3ra/esse/models/property/source/__init__.py +150 -0
- mat3ra/esse/models/software/__init__.py +3 -0
- mat3ra/esse/models/software/application.py +93 -0
- mat3ra/esse/models/software/executable.py +97 -0
- mat3ra/esse/models/software/flavor.py +116 -0
- mat3ra/esse/models/software/template.py +77 -0
- mat3ra/esse/models/software_directory/ml/__init__.py +3 -0
- mat3ra/esse/models/software_directory/ml/exabyteml.py +28 -0
- mat3ra/esse/models/software_directory/ml/unit/__init__.py +3 -0
- mat3ra/esse/models/software_directory/ml/unit/execution/__init__.py +1348 -0
- mat3ra/esse/models/software_directory/ml/unit/execution/evaluate/__init__.py +5 -0
- mat3ra/esse/models/software_directory/ml/unit/execution/evaluate/cross_validate.py +381 -0
- mat3ra/esse/models/software_directory/ml/unit/execution/initialize.py +381 -0
- mat3ra/esse/models/software_directory/ml/unit/execution/score.py +374 -0
- mat3ra/esse/models/software_directory/ml/unit/execution/train.py +385 -0
- mat3ra/esse/models/software_directory/ml/unit/processing/__init__.py +328 -0
- mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/__init__.py +199 -0
- mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/manipulation.py +176 -0
- mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/scale_and_reduce.py +195 -0
- mat3ra/esse/models/software_directory/ml/unit/processing/feature_selection/__init__.py +180 -0
- mat3ra/esse/models/software_directory/ml/unit/processing/feature_selection/filter_based.py +176 -0
- mat3ra/esse/models/software_directory/modeling/__init__.py +3 -0
- mat3ra/esse/models/software_directory/modeling/deepmd.py +112 -0
- mat3ra/esse/models/software_directory/modeling/espresso/__init__.py +39 -0
- mat3ra/esse/models/software_directory/modeling/espresso/arguments.py +35 -0
- mat3ra/esse/models/software_directory/modeling/nwchem.py +113 -0
- mat3ra/esse/models/software_directory/modeling/unit/__init__.py +3 -0
- mat3ra/esse/models/software_directory/modeling/unit/execution.py +390 -0
- mat3ra/esse/models/software_directory/modeling/vasp.py +117 -0
- mat3ra/esse/models/software_directory/scripting/__init__.py +3 -0
- mat3ra/esse/models/software_directory/scripting/jupyter_lab.py +115 -0
- mat3ra/esse/models/software_directory/scripting/python.py +129 -0
- mat3ra/esse/models/software_directory/scripting/shell.py +129 -0
- mat3ra/esse/models/software_directory/scripting/unit/__init__.py +3 -0
- mat3ra/esse/models/software_directory/scripting/unit/execution.py +390 -0
- mat3ra/esse/models/system/__init__.py +3 -0
- mat3ra/esse/models/system/_material.py +29 -0
- mat3ra/esse/models/system/_parent_job.py +29 -0
- mat3ra/esse/models/system/_project.py +29 -0
- mat3ra/esse/models/system/bankable.py +20 -0
- mat3ra/esse/models/system/consistency_check.py +40 -0
- mat3ra/esse/models/system/creator.py +29 -0
- mat3ra/esse/models/system/creator_account.py +28 -0
- mat3ra/esse/models/system/database_source.py +36 -0
- mat3ra/esse/models/system/defaultable.py +16 -0
- mat3ra/esse/models/system/description.py +17 -0
- mat3ra/esse/models/system/entity_reference.py +24 -0
- mat3ra/esse/models/system/file_source.py +28 -0
- mat3ra/esse/models/system/history.py +18 -0
- mat3ra/esse/models/system/iframe_message.py +36 -0
- mat3ra/esse/models/system/in_set.py +30 -0
- mat3ra/esse/models/system/is_multi_material.py +13 -0
- mat3ra/esse/models/system/is_outdated.py +13 -0
- mat3ra/esse/models/system/job_extended.py +36 -0
- mat3ra/esse/models/system/message.py +59 -0
- mat3ra/esse/models/system/metadata.py +13 -0
- mat3ra/esse/models/system/name.py +16 -0
- mat3ra/esse/models/system/owner.py +29 -0
- mat3ra/esse/models/system/path.py +16 -0
- mat3ra/esse/models/system/path_entity.py +20 -0
- mat3ra/esse/models/system/schema_version.py +16 -0
- mat3ra/esse/models/system/scope.py +13 -0
- mat3ra/esse/models/system/set.py +15 -0
- mat3ra/esse/models/system/sharing.py +13 -0
- mat3ra/esse/models/system/soft_removable.py +20 -0
- mat3ra/esse/models/system/status.py +20 -0
- mat3ra/esse/models/system/tags.py +16 -0
- mat3ra/esse/models/system/timestampable.py +22 -0
- mat3ra/esse/models/system/use_values.py +13 -0
- mat3ra/esse/models/third_party/db/nist_jarvis/2024.3.13/__init__.py +3 -0
- mat3ra/esse/models/third_party/db/nist_jarvis/2024.3.13/atoms.py +41 -0
- mat3ra/esse/models/third_party/db/nist_jarvis/2024.3.13/db_entry.py +55 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/__init__.py +3 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/__init__.py +1990 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/atomic_positions.py +51 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/atomic_species.py +34 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/cell.py +111 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/cell_parameters.py +36 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/control.py +169 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/electrons.py +139 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/hubbard.py +194 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/ions.py +422 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/k_points.py +73 -0
- mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/system.py +841 -0
- mat3ra/esse/models/workflow/__init__.py +2817 -0
- mat3ra/esse/models/workflow/base.py +79 -0
- mat3ra/esse/models/workflow/base_flow.py +180 -0
- mat3ra/esse/models/workflow/scope.py +14 -0
- mat3ra/esse/models/workflow/subworkflow/__init__.py +1472 -0
- mat3ra/esse/models/workflow/subworkflow/unit.py +1187 -0
- mat3ra/esse/models/workflow/unit/__init__.py +1415 -0
- mat3ra/esse/models/workflow/unit/assertion.py +149 -0
- mat3ra/esse/models/workflow/unit/assignment.py +165 -0
- mat3ra/esse/models/workflow/unit/base.py +137 -0
- mat3ra/esse/models/workflow/unit/condition.py +176 -0
- mat3ra/esse/models/workflow/unit/execution.py +374 -0
- mat3ra/esse/models/workflow/unit/input/__init__.py +3 -0
- mat3ra/esse/models/workflow/unit/input/_input.py +43 -0
- mat3ra/esse/models/workflow/unit/input/_inputItem.py +18 -0
- mat3ra/esse/models/workflow/unit/input/_inputItemId.py +21 -0
- mat3ra/esse/models/workflow/unit/input/_inputItemScope.py +18 -0
- mat3ra/esse/models/workflow/unit/input/_map_input/__init__.py +17 -0
- mat3ra/esse/models/workflow/unit/input/_map_input/values.py +13 -0
- mat3ra/esse/models/workflow/unit/io/__init__.py +254 -0
- mat3ra/esse/models/workflow/unit/io/api.py +27 -0
- mat3ra/esse/models/workflow/unit/io/db.py +39 -0
- mat3ra/esse/models/workflow/unit/io/object_storage.py +59 -0
- mat3ra/esse/models/workflow/unit/map.py +169 -0
- mat3ra/esse/models/workflow/unit/processing.py +153 -0
- mat3ra/esse/models/workflow/unit/reduce.py +160 -0
- mat3ra/esse/models/workflow/unit/runtime/__init__.py +3 -0
- mat3ra/esse/models/workflow/unit/runtime/_runtime_item_full_object.py +14 -0
- mat3ra/esse/models/workflow/unit/runtime/_runtime_item_name_object.py +14 -0
- mat3ra/esse/models/workflow/unit/runtime/_runtime_item_string.py +14 -0
- mat3ra/esse/models/workflow/unit/runtime/runtime_item.py +20 -0
- mat3ra/esse/models/workflow/unit/runtime/runtime_items.py +35 -0
- mat3ra/esse/models/workflow/unit/subworkflow.py +141 -0
- {mat3ra_esse-2024.4.8.post1.dist-info → mat3ra_esse-2024.4.8.post2.dist-info}/METADATA +1 -1
- mat3ra_esse-2024.4.8.post2.dist-info/RECORD +453 -0
- mat3ra_esse-2024.4.8.post1.dist-info/RECORD +0 -12
- {mat3ra_esse-2024.4.8.post1.dist-info → mat3ra_esse-2024.4.8.post2.dist-info}/LICENSE.md +0 -0
- {mat3ra_esse-2024.4.8.post1.dist-info → mat3ra_esse-2024.4.8.post2.dist-info}/WHEEL +0 -0
- {mat3ra_esse-2024.4.8.post1.dist-info → mat3ra_esse-2024.4.8.post2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: job/base.json
|
|
3
|
+
# version: 0.25.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import Any, Dict, List, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field, conint
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Status(Enum):
|
|
14
|
+
pre_submission = "pre-submission"
|
|
15
|
+
queued = "queued"
|
|
16
|
+
submitted = "submitted"
|
|
17
|
+
active = "active"
|
|
18
|
+
finished = "finished"
|
|
19
|
+
terminate_queued = "terminate-queued"
|
|
20
|
+
terminated = "terminated"
|
|
21
|
+
error = "error"
|
|
22
|
+
deleted = "deleted"
|
|
23
|
+
timeout = "timeout"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class Queue(Enum):
|
|
27
|
+
D = "D"
|
|
28
|
+
OR = "OR"
|
|
29
|
+
OF = "OF"
|
|
30
|
+
OFplus = "OFplus"
|
|
31
|
+
SR = "SR"
|
|
32
|
+
SF = "SF"
|
|
33
|
+
SFplus = "SFplus"
|
|
34
|
+
GPOF = "GPOF"
|
|
35
|
+
GP2OF = "GP2OF"
|
|
36
|
+
GP4OF = "GP4OF"
|
|
37
|
+
GPSF = "GPSF"
|
|
38
|
+
GP2SF = "GP2SF"
|
|
39
|
+
GP4SF = "GP4SF"
|
|
40
|
+
OR4 = "OR4"
|
|
41
|
+
OR8 = "OR8"
|
|
42
|
+
OR16 = "OR16"
|
|
43
|
+
SR4 = "SR4"
|
|
44
|
+
SR8 = "SR8"
|
|
45
|
+
SR16 = "SR16"
|
|
46
|
+
GOF = "GOF"
|
|
47
|
+
G4OF = "G4OF"
|
|
48
|
+
G8OF = "G8OF"
|
|
49
|
+
GSF = "GSF"
|
|
50
|
+
G4SF = "G4SF"
|
|
51
|
+
G8SF = "G8SF"
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class TimeLimitType(Enum):
|
|
55
|
+
per_single_attempt = "per single attempt"
|
|
56
|
+
compound = "compound"
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class QuantumEspressoArgumentsSchema(BaseModel):
|
|
60
|
+
model_config = ConfigDict(
|
|
61
|
+
extra="forbid",
|
|
62
|
+
)
|
|
63
|
+
nimage: Optional[conint(ge=1, le=100)] = 1
|
|
64
|
+
"""
|
|
65
|
+
Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.
|
|
66
|
+
"""
|
|
67
|
+
npools: Optional[conint(ge=1, le=100)] = 1
|
|
68
|
+
"""
|
|
69
|
+
Each image can be subpartitioned into `pools`, each taking care of a group of k-points.
|
|
70
|
+
"""
|
|
71
|
+
nband: Optional[conint(ge=1, le=100)] = 1
|
|
72
|
+
"""
|
|
73
|
+
Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).
|
|
74
|
+
"""
|
|
75
|
+
ntg: Optional[conint(ge=1, le=100)] = 1
|
|
76
|
+
"""
|
|
77
|
+
In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.
|
|
78
|
+
"""
|
|
79
|
+
ndiag: Optional[conint(ge=1, le=100)] = 1
|
|
80
|
+
"""
|
|
81
|
+
A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
class Cluster(BaseModel):
|
|
86
|
+
fqdn: Optional[str] = None
|
|
87
|
+
"""
|
|
88
|
+
FQDN of the cluster. e.g. master-1-staging.exabyte.io
|
|
89
|
+
"""
|
|
90
|
+
jid: Optional[str] = None
|
|
91
|
+
"""
|
|
92
|
+
Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
class Domain(Enum):
|
|
97
|
+
rupy = "rupy"
|
|
98
|
+
alfred = "alfred"
|
|
99
|
+
celim = "celim"
|
|
100
|
+
webapp = "webapp"
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class Error(BaseModel):
|
|
104
|
+
domain: Optional[Domain] = None
|
|
105
|
+
"""
|
|
106
|
+
Domain of the error appearance (internal).
|
|
107
|
+
"""
|
|
108
|
+
reason: Optional[str] = None
|
|
109
|
+
"""
|
|
110
|
+
Should be a short, unique, machine-readable error code string. e.g. FileNotFound
|
|
111
|
+
"""
|
|
112
|
+
message: Optional[str] = None
|
|
113
|
+
"""
|
|
114
|
+
Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'
|
|
115
|
+
"""
|
|
116
|
+
traceback: Optional[str] = None
|
|
117
|
+
"""
|
|
118
|
+
Full machine-readable error traceback. e.g. FileNotFound
|
|
119
|
+
"""
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class ComputeArgumentsSchema(BaseModel):
|
|
123
|
+
queue: Queue
|
|
124
|
+
"""
|
|
125
|
+
Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.
|
|
126
|
+
"""
|
|
127
|
+
nodes: int
|
|
128
|
+
"""
|
|
129
|
+
number of nodes used for the job inside the RMS.
|
|
130
|
+
"""
|
|
131
|
+
ppn: int
|
|
132
|
+
"""
|
|
133
|
+
number of CPUs used for the job inside the RMS.
|
|
134
|
+
"""
|
|
135
|
+
timeLimit: str
|
|
136
|
+
"""
|
|
137
|
+
Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'
|
|
138
|
+
"""
|
|
139
|
+
timeLimitType: Optional[TimeLimitType] = "per single attempt"
|
|
140
|
+
"""
|
|
141
|
+
Convention to use when reasoning about time limits
|
|
142
|
+
"""
|
|
143
|
+
isRestartable: Optional[bool] = True
|
|
144
|
+
"""
|
|
145
|
+
Job is allowed to restart on termination.
|
|
146
|
+
"""
|
|
147
|
+
notify: Optional[str] = None
|
|
148
|
+
"""
|
|
149
|
+
Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.
|
|
150
|
+
"""
|
|
151
|
+
email: Optional[str] = None
|
|
152
|
+
"""
|
|
153
|
+
Email address to notify about job execution.
|
|
154
|
+
"""
|
|
155
|
+
maxCPU: Optional[int] = None
|
|
156
|
+
"""
|
|
157
|
+
Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.
|
|
158
|
+
"""
|
|
159
|
+
arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema")
|
|
160
|
+
"""
|
|
161
|
+
Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere
|
|
162
|
+
"""
|
|
163
|
+
cluster: Optional[Cluster] = None
|
|
164
|
+
"""
|
|
165
|
+
Cluster where the job is executed. Optional on create. Required on job submission.
|
|
166
|
+
"""
|
|
167
|
+
errors: Optional[List[Error]] = None
|
|
168
|
+
"""
|
|
169
|
+
Computation error. Optional. Appears only if something happens on jobs execution.
|
|
170
|
+
"""
|
|
171
|
+
excludeFilesPattern: Optional[str] = None
|
|
172
|
+
"""
|
|
173
|
+
A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix
|
|
174
|
+
"""
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
class EntityReferenceSchema(BaseModel):
|
|
178
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
179
|
+
"""
|
|
180
|
+
entity identity
|
|
181
|
+
"""
|
|
182
|
+
cls: Optional[str] = None
|
|
183
|
+
"""
|
|
184
|
+
entity class
|
|
185
|
+
"""
|
|
186
|
+
slug: Optional[str] = None
|
|
187
|
+
"""
|
|
188
|
+
entity slug
|
|
189
|
+
"""
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
class WorkflowScopeSchema(BaseModel):
|
|
193
|
+
global_: Dict[str, Any] = Field(..., alias="global")
|
|
194
|
+
local: Dict[str, Any]
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
class ScopeTrackItem(BaseModel):
|
|
198
|
+
repetition: Optional[float] = None
|
|
199
|
+
scope: Optional[WorkflowScopeSchema] = Field(None, title="workflow scope schema")
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
class Name(Enum):
|
|
203
|
+
default = "default"
|
|
204
|
+
atomsTooClose = "atomsTooClose"
|
|
205
|
+
atomsOverlap = "atomsOverlap"
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
class Severity(Enum):
|
|
209
|
+
info = "info"
|
|
210
|
+
warning = "warning"
|
|
211
|
+
error = "error"
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
class ConsistencyCheck(BaseModel):
|
|
215
|
+
key: str
|
|
216
|
+
"""
|
|
217
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
218
|
+
"""
|
|
219
|
+
name: Name
|
|
220
|
+
"""
|
|
221
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
222
|
+
"""
|
|
223
|
+
severity: Severity
|
|
224
|
+
"""
|
|
225
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
226
|
+
"""
|
|
227
|
+
message: str
|
|
228
|
+
"""
|
|
229
|
+
Message generated by the consistency check describing the problem.
|
|
230
|
+
"""
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
class JobBaseSchema(BaseModel):
|
|
234
|
+
rmsId: Optional[str] = None
|
|
235
|
+
"""
|
|
236
|
+
Identity used to track jobs originated from command-line
|
|
237
|
+
"""
|
|
238
|
+
status: Status
|
|
239
|
+
"""
|
|
240
|
+
job status
|
|
241
|
+
"""
|
|
242
|
+
startTime: Optional[str] = None
|
|
243
|
+
"""
|
|
244
|
+
Approximate start time of the job. e.g. within 10 min
|
|
245
|
+
"""
|
|
246
|
+
workDir: Optional[str] = None
|
|
247
|
+
"""
|
|
248
|
+
The path to the working directory of this job, when the job originates from command-line
|
|
249
|
+
"""
|
|
250
|
+
compute: ComputeArgumentsSchema = Field(..., title="compute arguments schema")
|
|
251
|
+
"""
|
|
252
|
+
Custom keywords prefixed with validate correspond to custom validation methods implemented downstream
|
|
253
|
+
"""
|
|
254
|
+
field_project: EntityReferenceSchema = Field(..., alias="_project", title="entity reference schema")
|
|
255
|
+
field_material: Optional[EntityReferenceSchema] = Field(None, alias="_material", title="entity reference schema")
|
|
256
|
+
parent: Optional[EntityReferenceSchema] = Field(None, title="entity reference schema")
|
|
257
|
+
runtimeContext: Optional[Dict[str, Any]] = None
|
|
258
|
+
"""
|
|
259
|
+
Context variables that the job will have access to at runtime
|
|
260
|
+
"""
|
|
261
|
+
scopeTrack: Optional[List[ScopeTrackItem]] = None
|
|
262
|
+
"""
|
|
263
|
+
history of the workflow scope on each update
|
|
264
|
+
"""
|
|
265
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
266
|
+
"""
|
|
267
|
+
entity identity
|
|
268
|
+
"""
|
|
269
|
+
slug: Optional[str] = None
|
|
270
|
+
"""
|
|
271
|
+
entity slug
|
|
272
|
+
"""
|
|
273
|
+
systemName: Optional[str] = None
|
|
274
|
+
consistencyChecks: Optional[List[ConsistencyCheck]] = None
|
|
275
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
276
|
+
"""
|
|
277
|
+
entity's schema version. Used to distinct between different schemas.
|
|
278
|
+
"""
|
|
279
|
+
name: Optional[str] = None
|
|
280
|
+
"""
|
|
281
|
+
entity name
|
|
282
|
+
"""
|
|
283
|
+
isDefault: Optional[bool] = False
|
|
284
|
+
"""
|
|
285
|
+
Identifies that entity is defaultable
|
|
286
|
+
"""
|
|
287
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: job/compute.json
|
|
3
|
+
# version: 0.25.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field, conint
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Queue(Enum):
|
|
14
|
+
D = "D"
|
|
15
|
+
OR = "OR"
|
|
16
|
+
OF = "OF"
|
|
17
|
+
OFplus = "OFplus"
|
|
18
|
+
SR = "SR"
|
|
19
|
+
SF = "SF"
|
|
20
|
+
SFplus = "SFplus"
|
|
21
|
+
GPOF = "GPOF"
|
|
22
|
+
GP2OF = "GP2OF"
|
|
23
|
+
GP4OF = "GP4OF"
|
|
24
|
+
GPSF = "GPSF"
|
|
25
|
+
GP2SF = "GP2SF"
|
|
26
|
+
GP4SF = "GP4SF"
|
|
27
|
+
OR4 = "OR4"
|
|
28
|
+
OR8 = "OR8"
|
|
29
|
+
OR16 = "OR16"
|
|
30
|
+
SR4 = "SR4"
|
|
31
|
+
SR8 = "SR8"
|
|
32
|
+
SR16 = "SR16"
|
|
33
|
+
GOF = "GOF"
|
|
34
|
+
G4OF = "G4OF"
|
|
35
|
+
G8OF = "G8OF"
|
|
36
|
+
GSF = "GSF"
|
|
37
|
+
G4SF = "G4SF"
|
|
38
|
+
G8SF = "G8SF"
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class TimeLimitType(Enum):
|
|
42
|
+
per_single_attempt = "per single attempt"
|
|
43
|
+
compound = "compound"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class QuantumEspressoArgumentsSchema(BaseModel):
|
|
47
|
+
model_config = ConfigDict(
|
|
48
|
+
extra="forbid",
|
|
49
|
+
)
|
|
50
|
+
nimage: Optional[conint(ge=1, le=100)] = 1
|
|
51
|
+
"""
|
|
52
|
+
Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.
|
|
53
|
+
"""
|
|
54
|
+
npools: Optional[conint(ge=1, le=100)] = 1
|
|
55
|
+
"""
|
|
56
|
+
Each image can be subpartitioned into `pools`, each taking care of a group of k-points.
|
|
57
|
+
"""
|
|
58
|
+
nband: Optional[conint(ge=1, le=100)] = 1
|
|
59
|
+
"""
|
|
60
|
+
Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).
|
|
61
|
+
"""
|
|
62
|
+
ntg: Optional[conint(ge=1, le=100)] = 1
|
|
63
|
+
"""
|
|
64
|
+
In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.
|
|
65
|
+
"""
|
|
66
|
+
ndiag: Optional[conint(ge=1, le=100)] = 1
|
|
67
|
+
"""
|
|
68
|
+
A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class Cluster(BaseModel):
|
|
73
|
+
fqdn: Optional[str] = None
|
|
74
|
+
"""
|
|
75
|
+
FQDN of the cluster. e.g. master-1-staging.exabyte.io
|
|
76
|
+
"""
|
|
77
|
+
jid: Optional[str] = None
|
|
78
|
+
"""
|
|
79
|
+
Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
class Domain(Enum):
|
|
84
|
+
rupy = "rupy"
|
|
85
|
+
alfred = "alfred"
|
|
86
|
+
celim = "celim"
|
|
87
|
+
webapp = "webapp"
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
class Error(BaseModel):
|
|
91
|
+
domain: Optional[Domain] = None
|
|
92
|
+
"""
|
|
93
|
+
Domain of the error appearance (internal).
|
|
94
|
+
"""
|
|
95
|
+
reason: Optional[str] = None
|
|
96
|
+
"""
|
|
97
|
+
Should be a short, unique, machine-readable error code string. e.g. FileNotFound
|
|
98
|
+
"""
|
|
99
|
+
message: Optional[str] = None
|
|
100
|
+
"""
|
|
101
|
+
Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'
|
|
102
|
+
"""
|
|
103
|
+
traceback: Optional[str] = None
|
|
104
|
+
"""
|
|
105
|
+
Full machine-readable error traceback. e.g. FileNotFound
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class ComputeArgumentsSchema(BaseModel):
|
|
110
|
+
queue: Queue
|
|
111
|
+
"""
|
|
112
|
+
Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.
|
|
113
|
+
"""
|
|
114
|
+
nodes: int
|
|
115
|
+
"""
|
|
116
|
+
number of nodes used for the job inside the RMS.
|
|
117
|
+
"""
|
|
118
|
+
ppn: int
|
|
119
|
+
"""
|
|
120
|
+
number of CPUs used for the job inside the RMS.
|
|
121
|
+
"""
|
|
122
|
+
timeLimit: str
|
|
123
|
+
"""
|
|
124
|
+
Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'
|
|
125
|
+
"""
|
|
126
|
+
timeLimitType: Optional[TimeLimitType] = "per single attempt"
|
|
127
|
+
"""
|
|
128
|
+
Convention to use when reasoning about time limits
|
|
129
|
+
"""
|
|
130
|
+
isRestartable: Optional[bool] = True
|
|
131
|
+
"""
|
|
132
|
+
Job is allowed to restart on termination.
|
|
133
|
+
"""
|
|
134
|
+
notify: Optional[str] = None
|
|
135
|
+
"""
|
|
136
|
+
Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.
|
|
137
|
+
"""
|
|
138
|
+
email: Optional[str] = None
|
|
139
|
+
"""
|
|
140
|
+
Email address to notify about job execution.
|
|
141
|
+
"""
|
|
142
|
+
maxCPU: Optional[int] = None
|
|
143
|
+
"""
|
|
144
|
+
Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.
|
|
145
|
+
"""
|
|
146
|
+
arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema")
|
|
147
|
+
"""
|
|
148
|
+
Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere
|
|
149
|
+
"""
|
|
150
|
+
cluster: Optional[Cluster] = None
|
|
151
|
+
"""
|
|
152
|
+
Cluster where the job is executed. Optional on create. Required on job submission.
|
|
153
|
+
"""
|
|
154
|
+
errors: Optional[List[Error]] = None
|
|
155
|
+
"""
|
|
156
|
+
Computation error. Optional. Appears only if something happens on jobs execution.
|
|
157
|
+
"""
|
|
158
|
+
excludeFilesPattern: Optional[str] = None
|
|
159
|
+
"""
|
|
160
|
+
A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix
|
|
161
|
+
"""
|