@mat3ra/prode 2026.5.28-0 → 2026.6.12-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.
- package/dist/js/PropertyFactory.d.ts +6 -3
- package/dist/js/PropertyFactory.js +9 -0
- package/dist/js/generated/FormationEnergyContributionsPropertySchemaMixin.d.ts +5 -0
- package/dist/js/generated/FormationEnergyContributionsPropertySchemaMixin.js +21 -0
- package/dist/js/generated/FormationEnergyPropertySchemaMixin.d.ts +5 -0
- package/dist/js/generated/FormationEnergyPropertySchemaMixin.js +27 -0
- package/dist/js/holders/mixins/MetaPropertyHolderMixin.js +0 -1
- package/dist/js/index.d.ts +2 -0
- package/dist/js/index.js +5 -1
- package/dist/js/properties/array-of-objects/FormationEnergyContributionsProperty.d.ts +14 -0
- package/dist/js/properties/array-of-objects/FormationEnergyContributionsProperty.js +18 -0
- package/dist/js/properties/scalar/FormationEnergyProperty.d.ts +15 -0
- package/dist/js/properties/scalar/FormationEnergyProperty.js +18 -0
- package/dist/js/settings.d.ts +4 -1
- package/dist/js/settings.js +3 -0
- package/package.json +2 -2
- package/src/js/PropertyFactory.ts +16 -1
- package/src/js/generated/FormationEnergyContributionsPropertySchemaMixin.ts +34 -0
- package/src/js/generated/FormationEnergyPropertySchemaMixin.ts +38 -0
- package/src/js/holders/mixins/MetaPropertyHolderMixin.ts +4 -5
- package/src/js/index.ts +2 -0
- package/src/js/properties/array-of-objects/FormationEnergyContributionsProperty.ts +27 -0
- package/src/js/properties/scalar/FormationEnergyProperty.ts +27 -0
- package/src/js/settings.ts +3 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { MetaPropertyHolderSchema, PropertyHolderSchema, ProtoPropertyHolderSchema } from "@mat3ra/esse/dist/js/types";
|
|
2
|
-
import
|
|
2
|
+
import type MetaProperty from "./MetaProperty";
|
|
3
|
+
import FormationEnergyContributionsProperty from "./properties/array-of-objects/FormationEnergyContributionsProperty";
|
|
3
4
|
import AveragePotentialProfileProperty from "./properties/non-scalar/AveragePotentialProfileProperty";
|
|
4
5
|
import BandGapsProperty from "./properties/non-scalar/BandGapsProperty";
|
|
5
6
|
import BandStructureProperty from "./properties/non-scalar/BandStructureProperty";
|
|
@@ -23,6 +24,7 @@ import WavefunctionAmplitudeProperty from "./properties/non-scalar/WavefunctionA
|
|
|
23
24
|
import WorkflowProperty from "./properties/non-scalar/WorkflowProperty";
|
|
24
25
|
import TotalEnergyContributionsProperty from "./properties/object/TotalEnergyContributionsProperty";
|
|
25
26
|
import FermiEnergyProperty from "./properties/scalar/FermiEnergyProperty";
|
|
27
|
+
import FormationEnergyProperty from "./properties/scalar/FormationEnergyProperty";
|
|
26
28
|
import HOMOEnergyProperty from "./properties/scalar/HOMOEnergyProperty";
|
|
27
29
|
import IonizationPotentialElementalProperty from "./properties/scalar/IonizationPotentialElementalProperty";
|
|
28
30
|
import LUMOEnergyProperty from "./properties/scalar/LUMOEnergyProperty";
|
|
@@ -51,9 +53,10 @@ export default class PropertyFactory {
|
|
|
51
53
|
static getMultipleResultsPropertyNames(): PropertyName[];
|
|
52
54
|
static getScalarPropertyNames(): PropertyName[];
|
|
53
55
|
static getNonScalarPropertyNames(): PropertyName[];
|
|
56
|
+
static getArrayOfObjectsPropertyNames(): PropertyName[];
|
|
54
57
|
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):
|
|
58
|
+
static createProperty(config: AnyProperty): FormationEnergyContributionsProperty | 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;
|
|
59
|
+
static createMetaProperty(config: AnyMetaProperty): MetaProperty;
|
|
57
60
|
static createProtoProperty(config: AnyProtoProperty): AtomicConstraintsProperty | BoundaryConditionsProperty;
|
|
58
61
|
}
|
|
59
62
|
export {};
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const PseudopotentialMetaProperty_1 = __importDefault(require("./meta_properties/PseudopotentialMetaProperty"));
|
|
7
|
+
const FormationEnergyContributionsProperty_1 = __importDefault(require("./properties/array-of-objects/FormationEnergyContributionsProperty"));
|
|
7
8
|
const AveragePotentialProfileProperty_1 = __importDefault(require("./properties/non-scalar/AveragePotentialProfileProperty"));
|
|
8
9
|
const BandGapsProperty_1 = __importDefault(require("./properties/non-scalar/BandGapsProperty"));
|
|
9
10
|
const BandStructureProperty_1 = __importDefault(require("./properties/non-scalar/BandStructureProperty"));
|
|
@@ -27,6 +28,7 @@ const WavefunctionAmplitudeProperty_1 = __importDefault(require("./properties/no
|
|
|
27
28
|
const WorkflowProperty_1 = __importDefault(require("./properties/non-scalar/WorkflowProperty"));
|
|
28
29
|
const TotalEnergyContributionsProperty_1 = __importDefault(require("./properties/object/TotalEnergyContributionsProperty"));
|
|
29
30
|
const FermiEnergyProperty_1 = __importDefault(require("./properties/scalar/FermiEnergyProperty"));
|
|
31
|
+
const FormationEnergyProperty_1 = __importDefault(require("./properties/scalar/FormationEnergyProperty"));
|
|
30
32
|
const HOMOEnergyProperty_1 = __importDefault(require("./properties/scalar/HOMOEnergyProperty"));
|
|
31
33
|
const IonizationPotentialElementalProperty_1 = __importDefault(require("./properties/scalar/IonizationPotentialElementalProperty"));
|
|
32
34
|
const LUMOEnergyProperty_1 = __importDefault(require("./properties/scalar/LUMOEnergyProperty"));
|
|
@@ -51,6 +53,7 @@ const PROPERTY_CLASS_MAP = {
|
|
|
51
53
|
[TotalEnergyProperty_1.default.propertyName]: TotalEnergyProperty_1.default,
|
|
52
54
|
[HOMOEnergyProperty_1.default.propertyName]: HOMOEnergyProperty_1.default,
|
|
53
55
|
[LUMOEnergyProperty_1.default.propertyName]: LUMOEnergyProperty_1.default,
|
|
56
|
+
[FormationEnergyProperty_1.default.propertyName]: FormationEnergyProperty_1.default,
|
|
54
57
|
[SurfaceEnergyProperty_1.default.propertyName]: SurfaceEnergyProperty_1.default,
|
|
55
58
|
[ConvergenceElectronicProperty_1.default.propertyName]: ConvergenceElectronicProperty_1.default,
|
|
56
59
|
[ConvergenceIonicProperty_1.default.propertyName]: ConvergenceIonicProperty_1.default,
|
|
@@ -59,6 +62,7 @@ const PROPERTY_CLASS_MAP = {
|
|
|
59
62
|
[ThermalCorrectionToEnthalpyProperty_1.default.propertyName]: ThermalCorrectionToEnthalpyProperty_1.default,
|
|
60
63
|
[ZeroPointEnergyProperty_1.default.propertyName]: ZeroPointEnergyProperty_1.default,
|
|
61
64
|
[TotalEnergyContributionsProperty_1.default.propertyName]: TotalEnergyContributionsProperty_1.default,
|
|
65
|
+
[FormationEnergyContributionsProperty_1.default.propertyName]: FormationEnergyContributionsProperty_1.default,
|
|
62
66
|
[AtomicForcesProperty_1.default.propertyName]: AtomicForcesProperty_1.default,
|
|
63
67
|
[StressTensorProperty_1.default.propertyName]: StressTensorProperty_1.default,
|
|
64
68
|
[DensityOfStatesProperty_1.default.propertyName]: DensityOfStatesProperty_1.default,
|
|
@@ -118,6 +122,11 @@ class PropertyFactory {
|
|
|
118
122
|
return PropertyClass.propertyType === settings_1.PropertyType.non_scalar;
|
|
119
123
|
});
|
|
120
124
|
}
|
|
125
|
+
static getArrayOfObjectsPropertyNames() {
|
|
126
|
+
return this.filterPropertyNames((PropertyClass) => {
|
|
127
|
+
return (PropertyClass.propertyType === settings_1.PropertyType.array_of_objects);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
121
130
|
static filterPropertyNames(filterFn) {
|
|
122
131
|
const properties = Object.values({
|
|
123
132
|
...PROPERTY_CLASS_MAP,
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
|
|
2
|
+
import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types";
|
|
3
|
+
export type FormationEnergyContributionsPropertySchemaMixin = Omit<FormationEnergyContributionsPropertySchema, "_id" | "slug" | "systemName" | "schemaVersion">;
|
|
4
|
+
export type FormationEnergyContributionsPropertyInMemoryEntity = InMemoryEntity & FormationEnergyContributionsPropertySchemaMixin;
|
|
5
|
+
export declare function formationEnergyContributionsPropertySchemaMixin<T extends InMemoryEntity>(item: InMemoryEntity): asserts item is T & FormationEnergyContributionsPropertySchemaMixin;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formationEnergyContributionsPropertySchemaMixin = formationEnergyContributionsPropertySchemaMixin;
|
|
4
|
+
function formationEnergyContributionsPropertySchemaMixin(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 values() {
|
|
14
|
+
return this.requiredProp("values");
|
|
15
|
+
},
|
|
16
|
+
set values(value) {
|
|
17
|
+
this.setProp("values", value);
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
|
|
21
|
+
}
|
|
@@ -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);
|
package/dist/js/index.d.ts
CHANGED
|
@@ -3,11 +3,13 @@ export { PropertyName, PropertyType } from "./settings";
|
|
|
3
3
|
export { default as Property } from "./Property";
|
|
4
4
|
export { default as MetaProperty } from "./MetaProperty";
|
|
5
5
|
export { default as PseudopotentialMetaProperty } from "./meta_properties/PseudopotentialMetaProperty";
|
|
6
|
+
export { default as FormationEnergyContributionsProperty } from "./properties/array-of-objects/FormationEnergyContributionsProperty";
|
|
6
7
|
export { default as FinalStructureProperty } from "./properties/non-scalar/FinalStructureProperty";
|
|
7
8
|
export { default as BandGapsProperty } from "./properties/non-scalar/BandGapsProperty";
|
|
8
9
|
export { default as IsRelaxedProperty } from "./properties/non-scalar/IsRelaxedProperty";
|
|
9
10
|
export { default as PressureProperty } from "./properties/scalar/PressureProperty";
|
|
10
11
|
export { default as ReactionEnergyBarrierProperty } from "./properties/scalar/ReactionEnergyBarrierProperty";
|
|
12
|
+
export { default as FormationEnergyProperty } from "./properties/scalar/FormationEnergyProperty";
|
|
11
13
|
export { default as SurfaceEnergyProperty } from "./properties/scalar/SurfaceEnergyProperty";
|
|
12
14
|
export { default as TotalEnergyProperty } from "./properties/scalar/TotalEnergyProperty";
|
|
13
15
|
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.FormationEnergyContributionsProperty = 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");
|
|
@@ -29,6 +29,8 @@ var MetaProperty_1 = require("./MetaProperty");
|
|
|
29
29
|
Object.defineProperty(exports, "MetaProperty", { enumerable: true, get: function () { return __importDefault(MetaProperty_1).default; } });
|
|
30
30
|
var PseudopotentialMetaProperty_1 = require("./meta_properties/PseudopotentialMetaProperty");
|
|
31
31
|
Object.defineProperty(exports, "PseudopotentialMetaProperty", { enumerable: true, get: function () { return __importDefault(PseudopotentialMetaProperty_1).default; } });
|
|
32
|
+
var FormationEnergyContributionsProperty_1 = require("./properties/array-of-objects/FormationEnergyContributionsProperty");
|
|
33
|
+
Object.defineProperty(exports, "FormationEnergyContributionsProperty", { enumerable: true, get: function () { return __importDefault(FormationEnergyContributionsProperty_1).default; } });
|
|
32
34
|
var FinalStructureProperty_1 = require("./properties/non-scalar/FinalStructureProperty");
|
|
33
35
|
Object.defineProperty(exports, "FinalStructureProperty", { enumerable: true, get: function () { return __importDefault(FinalStructureProperty_1).default; } });
|
|
34
36
|
var BandGapsProperty_1 = require("./properties/non-scalar/BandGapsProperty");
|
|
@@ -39,6 +41,8 @@ var PressureProperty_1 = require("./properties/scalar/PressureProperty");
|
|
|
39
41
|
Object.defineProperty(exports, "PressureProperty", { enumerable: true, get: function () { return __importDefault(PressureProperty_1).default; } });
|
|
40
42
|
var ReactionEnergyBarrierProperty_1 = require("./properties/scalar/ReactionEnergyBarrierProperty");
|
|
41
43
|
Object.defineProperty(exports, "ReactionEnergyBarrierProperty", { enumerable: true, get: function () { return __importDefault(ReactionEnergyBarrierProperty_1).default; } });
|
|
44
|
+
var FormationEnergyProperty_1 = require("./properties/scalar/FormationEnergyProperty");
|
|
45
|
+
Object.defineProperty(exports, "FormationEnergyProperty", { enumerable: true, get: function () { return __importDefault(FormationEnergyProperty_1).default; } });
|
|
42
46
|
var SurfaceEnergyProperty_1 = require("./properties/scalar/SurfaceEnergyProperty");
|
|
43
47
|
Object.defineProperty(exports, "SurfaceEnergyProperty", { enumerable: true, get: function () { return __importDefault(SurfaceEnergyProperty_1).default; } });
|
|
44
48
|
var TotalEnergyProperty_1 = require("./properties/scalar/TotalEnergyProperty");
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
|
|
2
|
+
import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types";
|
|
3
|
+
import { FormationEnergyContributionsPropertySchemaMixin } from "../../generated/FormationEnergyContributionsPropertySchemaMixin";
|
|
4
|
+
import Property from "../../Property";
|
|
5
|
+
import { PropertyName, PropertyType } from "../../settings";
|
|
6
|
+
type Schema = FormationEnergyContributionsPropertySchema;
|
|
7
|
+
type Base = typeof Property<Schema> & Constructor<FormationEnergyContributionsPropertySchemaMixin>;
|
|
8
|
+
declare const PropertyBase: Base;
|
|
9
|
+
export default class FormationEnergyContributionsProperty extends PropertyBase implements Schema {
|
|
10
|
+
static readonly propertyType = PropertyType.array_of_objects;
|
|
11
|
+
static readonly propertyName = PropertyName.formation_energy_contributions;
|
|
12
|
+
constructor(config: Omit<Schema, "name">);
|
|
13
|
+
}
|
|
14
|
+
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 FormationEnergyContributionsPropertySchemaMixin_1 = require("../../generated/FormationEnergyContributionsPropertySchemaMixin");
|
|
7
|
+
const Property_1 = __importDefault(require("../../Property"));
|
|
8
|
+
const settings_1 = require("../../settings");
|
|
9
|
+
const PropertyBase = Property_1.default;
|
|
10
|
+
class FormationEnergyContributionsProperty extends PropertyBase {
|
|
11
|
+
constructor(config) {
|
|
12
|
+
super({ ...config, name: FormationEnergyContributionsProperty.propertyName });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
FormationEnergyContributionsProperty.propertyType = settings_1.PropertyType.array_of_objects;
|
|
16
|
+
FormationEnergyContributionsProperty.propertyName = settings_1.PropertyName.formation_energy_contributions;
|
|
17
|
+
exports.default = FormationEnergyContributionsProperty;
|
|
18
|
+
(0, FormationEnergyContributionsPropertySchemaMixin_1.formationEnergyContributionsPropertySchemaMixin)(FormationEnergyContributionsProperty.prototype);
|
|
@@ -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);
|
package/dist/js/settings.d.ts
CHANGED
|
@@ -6,7 +6,8 @@ export declare enum PropertyType {
|
|
|
6
6
|
scalar = "scalar",
|
|
7
7
|
non_scalar = "non-scalar",
|
|
8
8
|
tensor = "tensor",
|
|
9
|
-
object = "object"
|
|
9
|
+
object = "object",
|
|
10
|
+
array_of_objects = "array-of-objects"
|
|
10
11
|
}
|
|
11
12
|
export declare enum PropertyName {
|
|
12
13
|
pressure = "pressure",
|
|
@@ -15,6 +16,7 @@ export declare enum PropertyName {
|
|
|
15
16
|
homo_energy = "homo_energy",
|
|
16
17
|
lumo_energy = "lumo_energy",
|
|
17
18
|
surface_energy = "surface_energy",
|
|
19
|
+
formation_energy = "formation_energy",
|
|
18
20
|
convergence_electronic = "convergence_electronic",
|
|
19
21
|
convergence_ionic = "convergence_ionic",
|
|
20
22
|
fermi_energy = "fermi_energy",
|
|
@@ -22,6 +24,7 @@ export declare enum PropertyName {
|
|
|
22
24
|
thermal_correction_to_energy = "thermal_correction_to_energy",
|
|
23
25
|
thermal_correction_to_enthalpy = "thermal_correction_to_enthalpy",
|
|
24
26
|
total_energy_contributions = "total_energy_contributions",
|
|
27
|
+
formation_energy_contributions = "formation_energy_contributions",
|
|
25
28
|
atomic_forces = "atomic_forces",
|
|
26
29
|
atomic_constraints = "atomic_constraints",
|
|
27
30
|
stress_tensor = "stress_tensor",
|
package/dist/js/settings.js
CHANGED
|
@@ -14,6 +14,7 @@ var PropertyType;
|
|
|
14
14
|
// non-scalar subtypes
|
|
15
15
|
PropertyType["tensor"] = "tensor";
|
|
16
16
|
PropertyType["object"] = "object";
|
|
17
|
+
PropertyType["array_of_objects"] = "array-of-objects";
|
|
17
18
|
})(PropertyType || (exports.PropertyType = PropertyType = {}));
|
|
18
19
|
var PropertyName;
|
|
19
20
|
(function (PropertyName) {
|
|
@@ -23,6 +24,7 @@ var PropertyName;
|
|
|
23
24
|
PropertyName["homo_energy"] = "homo_energy";
|
|
24
25
|
PropertyName["lumo_energy"] = "lumo_energy";
|
|
25
26
|
PropertyName["surface_energy"] = "surface_energy";
|
|
27
|
+
PropertyName["formation_energy"] = "formation_energy";
|
|
26
28
|
PropertyName["convergence_electronic"] = "convergence_electronic";
|
|
27
29
|
PropertyName["convergence_ionic"] = "convergence_ionic";
|
|
28
30
|
PropertyName["fermi_energy"] = "fermi_energy";
|
|
@@ -30,6 +32,7 @@ var PropertyName;
|
|
|
30
32
|
PropertyName["thermal_correction_to_energy"] = "thermal_correction_to_energy";
|
|
31
33
|
PropertyName["thermal_correction_to_enthalpy"] = "thermal_correction_to_enthalpy";
|
|
32
34
|
PropertyName["total_energy_contributions"] = "total_energy_contributions";
|
|
35
|
+
PropertyName["formation_energy_contributions"] = "formation_energy_contributions";
|
|
33
36
|
PropertyName["atomic_forces"] = "atomic_forces";
|
|
34
37
|
PropertyName["atomic_constraints"] = "atomic_constraints";
|
|
35
38
|
PropertyName["stress_tensor"] = "stress_tensor";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mat3ra/prode",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.6.12-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.
|
|
55
|
+
"@mat3ra/esse": "2026.6.12-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,8 @@ 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";
|
|
10
|
+
import FormationEnergyContributionsProperty from "./properties/array-of-objects/FormationEnergyContributionsProperty";
|
|
9
11
|
import AveragePotentialProfileProperty from "./properties/non-scalar/AveragePotentialProfileProperty";
|
|
10
12
|
import BandGapsProperty from "./properties/non-scalar/BandGapsProperty";
|
|
11
13
|
import BandStructureProperty from "./properties/non-scalar/BandStructureProperty";
|
|
@@ -29,6 +31,7 @@ import WavefunctionAmplitudeProperty from "./properties/non-scalar/WavefunctionA
|
|
|
29
31
|
import WorkflowProperty from "./properties/non-scalar/WorkflowProperty";
|
|
30
32
|
import TotalEnergyContributionsProperty from "./properties/object/TotalEnergyContributionsProperty";
|
|
31
33
|
import FermiEnergyProperty from "./properties/scalar/FermiEnergyProperty";
|
|
34
|
+
import FormationEnergyProperty from "./properties/scalar/FormationEnergyProperty";
|
|
32
35
|
import HOMOEnergyProperty from "./properties/scalar/HOMOEnergyProperty";
|
|
33
36
|
import IonizationPotentialElementalProperty from "./properties/scalar/IonizationPotentialElementalProperty";
|
|
34
37
|
import LUMOEnergyProperty from "./properties/scalar/LUMOEnergyProperty";
|
|
@@ -60,6 +63,7 @@ type PropertyClassMap = {
|
|
|
60
63
|
| Constructor<TotalEnergyProperty>
|
|
61
64
|
| Constructor<HOMOEnergyProperty>
|
|
62
65
|
| Constructor<LUMOEnergyProperty>
|
|
66
|
+
| Constructor<FormationEnergyProperty>
|
|
63
67
|
| Constructor<SurfaceEnergyProperty>
|
|
64
68
|
| Constructor<ConvergenceElectronicProperty>
|
|
65
69
|
| Constructor<ConvergenceIonicProperty>
|
|
@@ -68,6 +72,7 @@ type PropertyClassMap = {
|
|
|
68
72
|
| Constructor<ThermalCorrectionToEnthalpyProperty>
|
|
69
73
|
| Constructor<ZeroPointEnergyProperty>
|
|
70
74
|
| Constructor<TotalEnergyContributionsProperty>
|
|
75
|
+
| Constructor<FormationEnergyContributionsProperty>
|
|
71
76
|
| Constructor<AtomicForcesProperty>
|
|
72
77
|
| Constructor<StressTensorProperty>
|
|
73
78
|
| Constructor<DensityOfStatesProperty>
|
|
@@ -111,6 +116,7 @@ const PROPERTY_CLASS_MAP: PropertyClassMap = {
|
|
|
111
116
|
[TotalEnergyProperty.propertyName]: TotalEnergyProperty,
|
|
112
117
|
[HOMOEnergyProperty.propertyName]: HOMOEnergyProperty,
|
|
113
118
|
[LUMOEnergyProperty.propertyName]: LUMOEnergyProperty,
|
|
119
|
+
[FormationEnergyProperty.propertyName]: FormationEnergyProperty,
|
|
114
120
|
[SurfaceEnergyProperty.propertyName]: SurfaceEnergyProperty,
|
|
115
121
|
[ConvergenceElectronicProperty.propertyName]: ConvergenceElectronicProperty,
|
|
116
122
|
[ConvergenceIonicProperty.propertyName]: ConvergenceIonicProperty,
|
|
@@ -119,6 +125,7 @@ const PROPERTY_CLASS_MAP: PropertyClassMap = {
|
|
|
119
125
|
[ThermalCorrectionToEnthalpyProperty.propertyName]: ThermalCorrectionToEnthalpyProperty,
|
|
120
126
|
[ZeroPointEnergyProperty.propertyName]: ZeroPointEnergyProperty,
|
|
121
127
|
[TotalEnergyContributionsProperty.propertyName]: TotalEnergyContributionsProperty,
|
|
128
|
+
[FormationEnergyContributionsProperty.propertyName]: FormationEnergyContributionsProperty,
|
|
122
129
|
[AtomicForcesProperty.propertyName]: AtomicForcesProperty,
|
|
123
130
|
[StressTensorProperty.propertyName]: StressTensorProperty,
|
|
124
131
|
[DensityOfStatesProperty.propertyName]: DensityOfStatesProperty,
|
|
@@ -188,6 +195,14 @@ export default class PropertyFactory {
|
|
|
188
195
|
});
|
|
189
196
|
}
|
|
190
197
|
|
|
198
|
+
static getArrayOfObjectsPropertyNames(): PropertyName[] {
|
|
199
|
+
return this.filterPropertyNames((PropertyClass) => {
|
|
200
|
+
return (
|
|
201
|
+
(PropertyClass as typeof Property).propertyType === PropertyType.array_of_objects
|
|
202
|
+
);
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
|
|
191
206
|
private static filterPropertyNames(
|
|
192
207
|
filterFn: (PropertyClass: Constructor<Property>) => boolean,
|
|
193
208
|
): PropertyName[] {
|
|
@@ -208,7 +223,7 @@ export default class PropertyFactory {
|
|
|
208
223
|
return new PropertyClass(config);
|
|
209
224
|
}
|
|
210
225
|
|
|
211
|
-
static createMetaProperty(config: AnyMetaProperty) {
|
|
226
|
+
static createMetaProperty(config: AnyMetaProperty): MetaProperty {
|
|
212
227
|
const { name } = config;
|
|
213
228
|
const PropertyClass = META_PROPERTY_CLASS_MAP[name];
|
|
214
229
|
return new PropertyClass(config);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
|
|
2
|
+
import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types";
|
|
3
|
+
|
|
4
|
+
export type FormationEnergyContributionsPropertySchemaMixin = Omit<
|
|
5
|
+
FormationEnergyContributionsPropertySchema,
|
|
6
|
+
"_id" | "slug" | "systemName" | "schemaVersion"
|
|
7
|
+
>;
|
|
8
|
+
|
|
9
|
+
export type FormationEnergyContributionsPropertyInMemoryEntity = InMemoryEntity &
|
|
10
|
+
FormationEnergyContributionsPropertySchemaMixin;
|
|
11
|
+
|
|
12
|
+
export function formationEnergyContributionsPropertySchemaMixin<T extends InMemoryEntity>(
|
|
13
|
+
item: InMemoryEntity,
|
|
14
|
+
): asserts item is T & FormationEnergyContributionsPropertySchemaMixin {
|
|
15
|
+
// @ts-expect-error
|
|
16
|
+
const properties: InMemoryEntity & FormationEnergyContributionsPropertySchemaMixin = {
|
|
17
|
+
get name() {
|
|
18
|
+
return this.requiredProp<FormationEnergyContributionsPropertySchema["name"]>("name");
|
|
19
|
+
},
|
|
20
|
+
set name(value: FormationEnergyContributionsPropertySchema["name"]) {
|
|
21
|
+
this.setProp("name", value);
|
|
22
|
+
},
|
|
23
|
+
get values() {
|
|
24
|
+
return this.requiredProp<FormationEnergyContributionsPropertySchema["values"]>(
|
|
25
|
+
"values",
|
|
26
|
+
);
|
|
27
|
+
},
|
|
28
|
+
set values(value: FormationEnergyContributionsPropertySchema["values"]) {
|
|
29
|
+
this.setProp("values", value);
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
|
|
34
|
+
}
|
|
@@ -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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
@@ -3,11 +3,13 @@ export { PropertyName, PropertyType } from "./settings";
|
|
|
3
3
|
export { default as Property } from "./Property";
|
|
4
4
|
export { default as MetaProperty } from "./MetaProperty";
|
|
5
5
|
export { default as PseudopotentialMetaProperty } from "./meta_properties/PseudopotentialMetaProperty";
|
|
6
|
+
export { default as FormationEnergyContributionsProperty } from "./properties/array-of-objects/FormationEnergyContributionsProperty";
|
|
6
7
|
export { default as FinalStructureProperty } from "./properties/non-scalar/FinalStructureProperty";
|
|
7
8
|
export { default as BandGapsProperty } from "./properties/non-scalar/BandGapsProperty";
|
|
8
9
|
export { default as IsRelaxedProperty } from "./properties/non-scalar/IsRelaxedProperty";
|
|
9
10
|
export { default as PressureProperty } from "./properties/scalar/PressureProperty";
|
|
10
11
|
export { default as ReactionEnergyBarrierProperty } from "./properties/scalar/ReactionEnergyBarrierProperty";
|
|
12
|
+
export { default as FormationEnergyProperty } from "./properties/scalar/FormationEnergyProperty";
|
|
11
13
|
export { default as SurfaceEnergyProperty } from "./properties/scalar/SurfaceEnergyProperty";
|
|
12
14
|
export { default as TotalEnergyProperty } from "./properties/scalar/TotalEnergyProperty";
|
|
13
15
|
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 { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types";
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
FormationEnergyContributionsPropertySchemaMixin,
|
|
6
|
+
formationEnergyContributionsPropertySchemaMixin,
|
|
7
|
+
} from "../../generated/FormationEnergyContributionsPropertySchemaMixin";
|
|
8
|
+
import Property from "../../Property";
|
|
9
|
+
import { PropertyName, PropertyType } from "../../settings";
|
|
10
|
+
|
|
11
|
+
type Schema = FormationEnergyContributionsPropertySchema;
|
|
12
|
+
|
|
13
|
+
type Base = typeof Property<Schema> & Constructor<FormationEnergyContributionsPropertySchemaMixin>;
|
|
14
|
+
|
|
15
|
+
const PropertyBase = Property as Base;
|
|
16
|
+
|
|
17
|
+
export default class FormationEnergyContributionsProperty extends PropertyBase implements Schema {
|
|
18
|
+
static readonly propertyType = PropertyType.array_of_objects;
|
|
19
|
+
|
|
20
|
+
static readonly propertyName = PropertyName.formation_energy_contributions;
|
|
21
|
+
|
|
22
|
+
constructor(config: Omit<Schema, "name">) {
|
|
23
|
+
super({ ...config, name: FormationEnergyContributionsProperty.propertyName });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
formationEnergyContributionsPropertySchemaMixin(FormationEnergyContributionsProperty.prototype);
|
|
@@ -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);
|
package/src/js/settings.ts
CHANGED
|
@@ -10,6 +10,7 @@ export enum PropertyType {
|
|
|
10
10
|
// non-scalar subtypes
|
|
11
11
|
tensor = "tensor",
|
|
12
12
|
object = "object",
|
|
13
|
+
array_of_objects = "array-of-objects",
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
export enum PropertyName {
|
|
@@ -19,6 +20,7 @@ export enum PropertyName {
|
|
|
19
20
|
homo_energy = "homo_energy",
|
|
20
21
|
lumo_energy = "lumo_energy",
|
|
21
22
|
surface_energy = "surface_energy",
|
|
23
|
+
formation_energy = "formation_energy",
|
|
22
24
|
convergence_electronic = "convergence_electronic",
|
|
23
25
|
convergence_ionic = "convergence_ionic",
|
|
24
26
|
fermi_energy = "fermi_energy",
|
|
@@ -26,6 +28,7 @@ export enum PropertyName {
|
|
|
26
28
|
thermal_correction_to_energy = "thermal_correction_to_energy",
|
|
27
29
|
thermal_correction_to_enthalpy = "thermal_correction_to_enthalpy",
|
|
28
30
|
total_energy_contributions = "total_energy_contributions",
|
|
31
|
+
formation_energy_contributions = "formation_energy_contributions",
|
|
29
32
|
atomic_forces = "atomic_forces",
|
|
30
33
|
atomic_constraints = "atomic_constraints",
|
|
31
34
|
stress_tensor = "stress_tensor",
|