@mat3ra/prode 2026.5.28-0 → 2026.6.5-0

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.
@@ -1,5 +1,5 @@
1
1
  import type { MetaPropertyHolderSchema, PropertyHolderSchema, ProtoPropertyHolderSchema } from "@mat3ra/esse/dist/js/types";
2
- import PseudopotentialProperty from "./meta_properties/PseudopotentialMetaProperty";
2
+ import type MetaProperty from "./MetaProperty";
3
3
  import AveragePotentialProfileProperty from "./properties/non-scalar/AveragePotentialProfileProperty";
4
4
  import BandGapsProperty from "./properties/non-scalar/BandGapsProperty";
5
5
  import BandStructureProperty from "./properties/non-scalar/BandStructureProperty";
@@ -23,6 +23,7 @@ import WavefunctionAmplitudeProperty from "./properties/non-scalar/WavefunctionA
23
23
  import WorkflowProperty from "./properties/non-scalar/WorkflowProperty";
24
24
  import TotalEnergyContributionsProperty from "./properties/object/TotalEnergyContributionsProperty";
25
25
  import FermiEnergyProperty from "./properties/scalar/FermiEnergyProperty";
26
+ import FormationEnergyProperty from "./properties/scalar/FormationEnergyProperty";
26
27
  import HOMOEnergyProperty from "./properties/scalar/HOMOEnergyProperty";
27
28
  import IonizationPotentialElementalProperty from "./properties/scalar/IonizationPotentialElementalProperty";
28
29
  import LUMOEnergyProperty from "./properties/scalar/LUMOEnergyProperty";
@@ -52,8 +53,8 @@ export default class PropertyFactory {
52
53
  static getScalarPropertyNames(): PropertyName[];
53
54
  static getNonScalarPropertyNames(): PropertyName[];
54
55
  private static filterPropertyNames;
55
- static createProperty(config: AnyProperty): AveragePotentialProfileProperty | BandGapsProperty | BandStructureProperty | ChargeDensityProfileProperty | ConvergenceElectronicProperty | ConvergenceIonicProperty | DensityOfStatesProperty | DielectricTensorProperty | FileContentProperty | FinalStructureProperty | HubbardUProperty | HubbardVNNProperty | HubbardVProperty | IsRelaxedProperty | JupyterNotebookEndpointProperty | PhononDispersionsProperty | PhononDOSProperty | PotentialProfileProperty | ReactionEnergyProfileProperty | WavefunctionAmplitudeProperty | WorkflowProperty | TotalEnergyContributionsProperty | FermiEnergyProperty | HOMOEnergyProperty | IonizationPotentialElementalProperty | LUMOEnergyProperty | PressureProperty | ReactionEnergyBarrierProperty | SurfaceEnergyProperty | ThermalCorrectionToEnergyProperty | ThermalCorrectionToEnthalpyProperty | TotalEnergyProperty | TotalForcesProperty | ValenceBandOffsetProperty | ZeroPointEnergyProperty | AtomicForcesProperty | MagneticMomentsProperty | StressTensorProperty;
56
- static createMetaProperty(config: AnyMetaProperty): PseudopotentialProperty;
56
+ static createProperty(config: AnyProperty): AveragePotentialProfileProperty | BandGapsProperty | BandStructureProperty | ChargeDensityProfileProperty | ConvergenceElectronicProperty | ConvergenceIonicProperty | DensityOfStatesProperty | DielectricTensorProperty | FileContentProperty | FinalStructureProperty | HubbardUProperty | HubbardVNNProperty | HubbardVProperty | IsRelaxedProperty | JupyterNotebookEndpointProperty | PhononDispersionsProperty | PhononDOSProperty | PotentialProfileProperty | ReactionEnergyProfileProperty | WavefunctionAmplitudeProperty | WorkflowProperty | TotalEnergyContributionsProperty | FermiEnergyProperty | FormationEnergyProperty | HOMOEnergyProperty | IonizationPotentialElementalProperty | LUMOEnergyProperty | PressureProperty | ReactionEnergyBarrierProperty | SurfaceEnergyProperty | ThermalCorrectionToEnergyProperty | ThermalCorrectionToEnthalpyProperty | TotalEnergyProperty | TotalForcesProperty | ValenceBandOffsetProperty | ZeroPointEnergyProperty | AtomicForcesProperty | MagneticMomentsProperty | StressTensorProperty;
57
+ static createMetaProperty(config: AnyMetaProperty): MetaProperty;
57
58
  static createProtoProperty(config: AnyProtoProperty): AtomicConstraintsProperty | BoundaryConditionsProperty;
58
59
  }
59
60
  export {};
@@ -27,6 +27,7 @@ const WavefunctionAmplitudeProperty_1 = __importDefault(require("./properties/no
27
27
  const WorkflowProperty_1 = __importDefault(require("./properties/non-scalar/WorkflowProperty"));
28
28
  const TotalEnergyContributionsProperty_1 = __importDefault(require("./properties/object/TotalEnergyContributionsProperty"));
29
29
  const FermiEnergyProperty_1 = __importDefault(require("./properties/scalar/FermiEnergyProperty"));
30
+ const FormationEnergyProperty_1 = __importDefault(require("./properties/scalar/FormationEnergyProperty"));
30
31
  const HOMOEnergyProperty_1 = __importDefault(require("./properties/scalar/HOMOEnergyProperty"));
31
32
  const IonizationPotentialElementalProperty_1 = __importDefault(require("./properties/scalar/IonizationPotentialElementalProperty"));
32
33
  const LUMOEnergyProperty_1 = __importDefault(require("./properties/scalar/LUMOEnergyProperty"));
@@ -51,6 +52,7 @@ const PROPERTY_CLASS_MAP = {
51
52
  [TotalEnergyProperty_1.default.propertyName]: TotalEnergyProperty_1.default,
52
53
  [HOMOEnergyProperty_1.default.propertyName]: HOMOEnergyProperty_1.default,
53
54
  [LUMOEnergyProperty_1.default.propertyName]: LUMOEnergyProperty_1.default,
55
+ [FormationEnergyProperty_1.default.propertyName]: FormationEnergyProperty_1.default,
54
56
  [SurfaceEnergyProperty_1.default.propertyName]: SurfaceEnergyProperty_1.default,
55
57
  [ConvergenceElectronicProperty_1.default.propertyName]: ConvergenceElectronicProperty_1.default,
56
58
  [ConvergenceIonicProperty_1.default.propertyName]: ConvergenceIonicProperty_1.default,
@@ -0,0 +1,5 @@
1
+ import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
+ import type { FormationEnergyPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+ export type FormationEnergyPropertySchemaMixin = Omit<FormationEnergyPropertySchema, "_id" | "slug" | "systemName" | "schemaVersion">;
4
+ export type FormationEnergyPropertyInMemoryEntity = InMemoryEntity & FormationEnergyPropertySchemaMixin;
5
+ export declare function formationEnergyPropertySchemaMixin<T extends InMemoryEntity>(item: InMemoryEntity): asserts item is T & FormationEnergyPropertySchemaMixin;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formationEnergyPropertySchemaMixin = formationEnergyPropertySchemaMixin;
4
+ function formationEnergyPropertySchemaMixin(item) {
5
+ // @ts-expect-error
6
+ const properties = {
7
+ get name() {
8
+ return this.requiredProp("name");
9
+ },
10
+ set name(value) {
11
+ this.setProp("name", value);
12
+ },
13
+ get units() {
14
+ return this.requiredProp("units");
15
+ },
16
+ set units(value) {
17
+ this.setProp("units", value);
18
+ },
19
+ get value() {
20
+ return this.requiredProp("value");
21
+ },
22
+ set value(value) {
23
+ this.setProp("value", value);
24
+ },
25
+ };
26
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
27
+ }
@@ -7,7 +7,6 @@ exports.metaPropertyHolderMixin = metaPropertyHolderMixin;
7
7
  const MetaPropertyHolderSchemaMixin_1 = require("../../generated/MetaPropertyHolderSchemaMixin");
8
8
  const PropertyFactory_1 = __importDefault(require("../../PropertyFactory"));
9
9
  function metaPropertyHolderMixin(item) {
10
- // @ts-expect-error - this is a workaround to allow the metaPropertyMixin to be used with any type of entity
11
10
  const properties = {
12
11
  get property() {
13
12
  return PropertyFactory_1.default.createMetaProperty(this.data);
@@ -8,6 +8,7 @@ export { default as BandGapsProperty } from "./properties/non-scalar/BandGapsPro
8
8
  export { default as IsRelaxedProperty } from "./properties/non-scalar/IsRelaxedProperty";
9
9
  export { default as PressureProperty } from "./properties/scalar/PressureProperty";
10
10
  export { default as ReactionEnergyBarrierProperty } from "./properties/scalar/ReactionEnergyBarrierProperty";
11
+ export { default as FormationEnergyProperty } from "./properties/scalar/FormationEnergyProperty";
11
12
  export { default as SurfaceEnergyProperty } from "./properties/scalar/SurfaceEnergyProperty";
12
13
  export { default as TotalEnergyProperty } from "./properties/scalar/TotalEnergyProperty";
13
14
  export { default as HOMOEnergyProperty } from "./properties/scalar/HOMOEnergyProperty";
package/dist/js/index.js CHANGED
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.ProtoPropertyHolder = exports.MetaPropertyHolder = exports.PropertyHolder = exports.metaPropertyHolderMixin = exports.propertyHolderMixin = exports.protoPropertyHolderMixin = exports.ReactionEnergyProfileProperty = exports.WavefunctionAmplitudeProperty = exports.PotentialProfileProperty = exports.ChargeDensityProfileProperty = exports.BandStructureProperty = exports.ThermalCorrectionToEnthalpyProperty = exports.ThermalCorrectionToEnergyProperty = exports.LUMOEnergyProperty = exports.HOMOEnergyProperty = exports.TotalEnergyProperty = exports.SurfaceEnergyProperty = exports.ReactionEnergyBarrierProperty = exports.PressureProperty = exports.IsRelaxedProperty = exports.BandGapsProperty = exports.FinalStructureProperty = exports.PseudopotentialMetaProperty = exports.MetaProperty = exports.Property = exports.PropertyType = exports.PropertyName = exports.PropertyFactory = void 0;
20
+ exports.ProtoPropertyHolder = exports.MetaPropertyHolder = exports.PropertyHolder = exports.metaPropertyHolderMixin = exports.propertyHolderMixin = exports.protoPropertyHolderMixin = exports.ReactionEnergyProfileProperty = exports.WavefunctionAmplitudeProperty = exports.PotentialProfileProperty = exports.ChargeDensityProfileProperty = exports.BandStructureProperty = exports.ThermalCorrectionToEnthalpyProperty = exports.ThermalCorrectionToEnergyProperty = exports.LUMOEnergyProperty = exports.HOMOEnergyProperty = exports.TotalEnergyProperty = exports.SurfaceEnergyProperty = exports.FormationEnergyProperty = exports.ReactionEnergyBarrierProperty = exports.PressureProperty = exports.IsRelaxedProperty = exports.BandGapsProperty = exports.FinalStructureProperty = exports.PseudopotentialMetaProperty = exports.MetaProperty = exports.Property = exports.PropertyType = exports.PropertyName = exports.PropertyFactory = void 0;
21
21
  var PropertyFactory_1 = require("./PropertyFactory");
22
22
  Object.defineProperty(exports, "PropertyFactory", { enumerable: true, get: function () { return __importDefault(PropertyFactory_1).default; } });
23
23
  var settings_1 = require("./settings");
@@ -39,6 +39,8 @@ var PressureProperty_1 = require("./properties/scalar/PressureProperty");
39
39
  Object.defineProperty(exports, "PressureProperty", { enumerable: true, get: function () { return __importDefault(PressureProperty_1).default; } });
40
40
  var ReactionEnergyBarrierProperty_1 = require("./properties/scalar/ReactionEnergyBarrierProperty");
41
41
  Object.defineProperty(exports, "ReactionEnergyBarrierProperty", { enumerable: true, get: function () { return __importDefault(ReactionEnergyBarrierProperty_1).default; } });
42
+ var FormationEnergyProperty_1 = require("./properties/scalar/FormationEnergyProperty");
43
+ Object.defineProperty(exports, "FormationEnergyProperty", { enumerable: true, get: function () { return __importDefault(FormationEnergyProperty_1).default; } });
42
44
  var SurfaceEnergyProperty_1 = require("./properties/scalar/SurfaceEnergyProperty");
43
45
  Object.defineProperty(exports, "SurfaceEnergyProperty", { enumerable: true, get: function () { return __importDefault(SurfaceEnergyProperty_1).default; } });
44
46
  var TotalEnergyProperty_1 = require("./properties/scalar/TotalEnergyProperty");
@@ -0,0 +1,15 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { FormationEnergyPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+ import { FormationEnergyPropertySchemaMixin } from "../../generated/FormationEnergyPropertySchemaMixin";
4
+ import Property from "../../Property";
5
+ import { PropertyName, PropertyType } from "../../settings";
6
+ type Schema = FormationEnergyPropertySchema;
7
+ type Base = typeof Property<Schema> & Constructor<FormationEnergyPropertySchemaMixin>;
8
+ declare const FormationEnergyProperty_base: Base;
9
+ export default class FormationEnergyProperty extends FormationEnergyProperty_base implements Schema {
10
+ static readonly isRefined = true;
11
+ static readonly propertyName = PropertyName.formation_energy;
12
+ static readonly propertyType = PropertyType.scalar;
13
+ constructor(config: Omit<Schema, "name">);
14
+ }
15
+ export {};
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const FormationEnergyPropertySchemaMixin_1 = require("../../generated/FormationEnergyPropertySchemaMixin");
7
+ const Property_1 = __importDefault(require("../../Property"));
8
+ const settings_1 = require("../../settings");
9
+ class FormationEnergyProperty extends Property_1.default {
10
+ constructor(config) {
11
+ super({ ...config, name: FormationEnergyProperty.propertyName });
12
+ }
13
+ }
14
+ FormationEnergyProperty.isRefined = true;
15
+ FormationEnergyProperty.propertyName = settings_1.PropertyName.formation_energy;
16
+ FormationEnergyProperty.propertyType = settings_1.PropertyType.scalar;
17
+ exports.default = FormationEnergyProperty;
18
+ (0, FormationEnergyPropertySchemaMixin_1.formationEnergyPropertySchemaMixin)(FormationEnergyProperty.prototype);
@@ -15,6 +15,7 @@ export declare enum PropertyName {
15
15
  homo_energy = "homo_energy",
16
16
  lumo_energy = "lumo_energy",
17
17
  surface_energy = "surface_energy",
18
+ formation_energy = "formation_energy",
18
19
  convergence_electronic = "convergence_electronic",
19
20
  convergence_ionic = "convergence_ionic",
20
21
  fermi_energy = "fermi_energy",
@@ -23,6 +23,7 @@ var PropertyName;
23
23
  PropertyName["homo_energy"] = "homo_energy";
24
24
  PropertyName["lumo_energy"] = "lumo_energy";
25
25
  PropertyName["surface_energy"] = "surface_energy";
26
+ PropertyName["formation_energy"] = "formation_energy";
26
27
  PropertyName["convergence_electronic"] = "convergence_electronic";
27
28
  PropertyName["convergence_ionic"] = "convergence_ionic";
28
29
  PropertyName["fermi_energy"] = "fermi_energy";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mat3ra/prode",
3
- "version": "2026.5.28-0",
3
+ "version": "2026.6.5-0",
4
4
  "description": "PROperty DEfinitions",
5
5
  "scripts": {
6
6
  "test": "nyc --reporter=text mocha --recursive --bail",
@@ -52,7 +52,7 @@
52
52
  "@babel/eslint-parser": "^7.16.3",
53
53
  "@exabyte-io/eslint-config": "2025.5.13-0",
54
54
  "@mat3ra/code": "2026.5.27-0",
55
- "@mat3ra/esse": "2026.5.27-0",
55
+ "@mat3ra/esse": "2026.6.5-0",
56
56
  "@mat3ra/made": "2026.5.28-0",
57
57
  "@mat3ra/tsconfig": "2024.6.3-0",
58
58
  "@types/lodash": "^4.17.20",
@@ -6,6 +6,7 @@ import type {
6
6
  } from "@mat3ra/esse/dist/js/types";
7
7
 
8
8
  import PseudopotentialProperty from "./meta_properties/PseudopotentialMetaProperty";
9
+ import type MetaProperty from "./MetaProperty";
9
10
  import AveragePotentialProfileProperty from "./properties/non-scalar/AveragePotentialProfileProperty";
10
11
  import BandGapsProperty from "./properties/non-scalar/BandGapsProperty";
11
12
  import BandStructureProperty from "./properties/non-scalar/BandStructureProperty";
@@ -29,6 +30,7 @@ import WavefunctionAmplitudeProperty from "./properties/non-scalar/WavefunctionA
29
30
  import WorkflowProperty from "./properties/non-scalar/WorkflowProperty";
30
31
  import TotalEnergyContributionsProperty from "./properties/object/TotalEnergyContributionsProperty";
31
32
  import FermiEnergyProperty from "./properties/scalar/FermiEnergyProperty";
33
+ import FormationEnergyProperty from "./properties/scalar/FormationEnergyProperty";
32
34
  import HOMOEnergyProperty from "./properties/scalar/HOMOEnergyProperty";
33
35
  import IonizationPotentialElementalProperty from "./properties/scalar/IonizationPotentialElementalProperty";
34
36
  import LUMOEnergyProperty from "./properties/scalar/LUMOEnergyProperty";
@@ -60,6 +62,7 @@ type PropertyClassMap = {
60
62
  | Constructor<TotalEnergyProperty>
61
63
  | Constructor<HOMOEnergyProperty>
62
64
  | Constructor<LUMOEnergyProperty>
65
+ | Constructor<FormationEnergyProperty>
63
66
  | Constructor<SurfaceEnergyProperty>
64
67
  | Constructor<ConvergenceElectronicProperty>
65
68
  | Constructor<ConvergenceIonicProperty>
@@ -111,6 +114,7 @@ const PROPERTY_CLASS_MAP: PropertyClassMap = {
111
114
  [TotalEnergyProperty.propertyName]: TotalEnergyProperty,
112
115
  [HOMOEnergyProperty.propertyName]: HOMOEnergyProperty,
113
116
  [LUMOEnergyProperty.propertyName]: LUMOEnergyProperty,
117
+ [FormationEnergyProperty.propertyName]: FormationEnergyProperty,
114
118
  [SurfaceEnergyProperty.propertyName]: SurfaceEnergyProperty,
115
119
  [ConvergenceElectronicProperty.propertyName]: ConvergenceElectronicProperty,
116
120
  [ConvergenceIonicProperty.propertyName]: ConvergenceIonicProperty,
@@ -208,7 +212,7 @@ export default class PropertyFactory {
208
212
  return new PropertyClass(config);
209
213
  }
210
214
 
211
- static createMetaProperty(config: AnyMetaProperty) {
215
+ static createMetaProperty(config: AnyMetaProperty): MetaProperty {
212
216
  const { name } = config;
213
217
  const PropertyClass = META_PROPERTY_CLASS_MAP[name];
214
218
  return new PropertyClass(config);
@@ -0,0 +1,38 @@
1
+ import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
+ import type { FormationEnergyPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ export type FormationEnergyPropertySchemaMixin = Omit<
5
+ FormationEnergyPropertySchema,
6
+ "_id" | "slug" | "systemName" | "schemaVersion"
7
+ >;
8
+
9
+ export type FormationEnergyPropertyInMemoryEntity = InMemoryEntity &
10
+ FormationEnergyPropertySchemaMixin;
11
+
12
+ export function formationEnergyPropertySchemaMixin<T extends InMemoryEntity>(
13
+ item: InMemoryEntity,
14
+ ): asserts item is T & FormationEnergyPropertySchemaMixin {
15
+ // @ts-expect-error
16
+ const properties: InMemoryEntity & FormationEnergyPropertySchemaMixin = {
17
+ get name() {
18
+ return this.requiredProp<FormationEnergyPropertySchema["name"]>("name");
19
+ },
20
+ set name(value: FormationEnergyPropertySchema["name"]) {
21
+ this.setProp("name", value);
22
+ },
23
+ get units() {
24
+ return this.requiredProp<FormationEnergyPropertySchema["units"]>("units");
25
+ },
26
+ set units(value: FormationEnergyPropertySchema["units"]) {
27
+ this.setProp("units", value);
28
+ },
29
+ get value() {
30
+ return this.requiredProp<FormationEnergyPropertySchema["value"]>("value");
31
+ },
32
+ set value(value: FormationEnergyPropertySchema["value"]) {
33
+ this.setProp("value", value);
34
+ },
35
+ };
36
+
37
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
38
+ }
@@ -18,12 +18,11 @@ export type MetaPropertyHolderMixin = {
18
18
  export type MetaPropertyInMemoryEntity = InMemoryEntity & MetaPropertyHolderMixin;
19
19
 
20
20
  export function metaPropertyHolderMixin(item: InMemoryEntity) {
21
- // @ts-expect-error - this is a workaround to allow the metaPropertyMixin to be used with any type of entity
22
- const properties: InMemoryEntity & MetaPropertyHolderMixin = {
23
- get property() {
24
- return PropertyFactory.createMetaProperty(this.data);
21
+ const properties = {
22
+ get property(): PseudopotentialMetaProperty {
23
+ return PropertyFactory.createMetaProperty(this.data) as PseudopotentialMetaProperty;
25
24
  },
26
- };
25
+ } as InMemoryEntity & MetaPropertyHolderMixin;
27
26
 
28
27
  Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
29
28
 
package/src/js/index.ts CHANGED
@@ -8,6 +8,7 @@ export { default as BandGapsProperty } from "./properties/non-scalar/BandGapsPro
8
8
  export { default as IsRelaxedProperty } from "./properties/non-scalar/IsRelaxedProperty";
9
9
  export { default as PressureProperty } from "./properties/scalar/PressureProperty";
10
10
  export { default as ReactionEnergyBarrierProperty } from "./properties/scalar/ReactionEnergyBarrierProperty";
11
+ export { default as FormationEnergyProperty } from "./properties/scalar/FormationEnergyProperty";
11
12
  export { default as SurfaceEnergyProperty } from "./properties/scalar/SurfaceEnergyProperty";
12
13
  export { default as TotalEnergyProperty } from "./properties/scalar/TotalEnergyProperty";
13
14
  export { default as HOMOEnergyProperty } from "./properties/scalar/HOMOEnergyProperty";
@@ -0,0 +1,27 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { FormationEnergyPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ FormationEnergyPropertySchemaMixin,
6
+ formationEnergyPropertySchemaMixin,
7
+ } from "../../generated/FormationEnergyPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = FormationEnergyPropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<FormationEnergyPropertySchemaMixin>;
14
+
15
+ export default class FormationEnergyProperty extends (Property as Base) implements Schema {
16
+ static readonly isRefined = true;
17
+
18
+ static readonly propertyName = PropertyName.formation_energy;
19
+
20
+ static readonly propertyType = PropertyType.scalar;
21
+
22
+ constructor(config: Omit<Schema, "name">) {
23
+ super({ ...config, name: FormationEnergyProperty.propertyName });
24
+ }
25
+ }
26
+
27
+ formationEnergyPropertySchemaMixin(FormationEnergyProperty.prototype);
@@ -19,6 +19,7 @@ export enum PropertyName {
19
19
  homo_energy = "homo_energy",
20
20
  lumo_energy = "lumo_energy",
21
21
  surface_energy = "surface_energy",
22
+ formation_energy = "formation_energy",
22
23
  convergence_electronic = "convergence_electronic",
23
24
  convergence_ionic = "convergence_ionic",
24
25
  fermi_energy = "fermi_energy",