@mat3ra/prode 2026.3.30-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.
Files changed (167) hide show
  1. package/dist/js/PropertyFactory.d.ts +2 -1
  2. package/dist/js/PropertyFactory.js +2 -0
  3. package/dist/js/generated/AtomicConstraintsPropertySchemaMixin.d.ts +1 -1
  4. package/dist/js/generated/AtomicConstraintsPropertySchemaMixin.js +6 -0
  5. package/dist/js/generated/AtomicForcesPropertySchemaMixin.d.ts +1 -1
  6. package/dist/js/generated/AtomicForcesPropertySchemaMixin.js +9 -0
  7. package/dist/js/generated/AveragePotentialProfilePropertySchemaMixin.d.ts +1 -1
  8. package/dist/js/generated/AveragePotentialProfilePropertySchemaMixin.js +15 -0
  9. package/dist/js/generated/BandGapsPropertySchemaMixin.d.ts +1 -1
  10. package/dist/js/generated/BandGapsPropertySchemaMixin.js +9 -0
  11. package/dist/js/generated/BandStructurePropertySchemaMixin.d.ts +1 -1
  12. package/dist/js/generated/BandStructurePropertySchemaMixin.js +18 -0
  13. package/dist/js/generated/BoundaryConditionsPropertySchemaMixin.d.ts +1 -1
  14. package/dist/js/generated/BoundaryConditionsPropertySchemaMixin.js +9 -0
  15. package/dist/js/generated/ChargeDensityProfilePropertySchemaMixin.d.ts +1 -1
  16. package/dist/js/generated/ChargeDensityProfilePropertySchemaMixin.js +15 -0
  17. package/dist/js/generated/ConvergenceElectronicPropertySchemaMixin.d.ts +1 -1
  18. package/dist/js/generated/ConvergenceElectronicPropertySchemaMixin.js +9 -0
  19. package/dist/js/generated/ConvergenceIonicPropertySchemaMixin.d.ts +1 -1
  20. package/dist/js/generated/ConvergenceIonicPropertySchemaMixin.js +12 -0
  21. package/dist/js/generated/DensityOfStatesPropertySchemaMixin.d.ts +1 -1
  22. package/dist/js/generated/DensityOfStatesPropertySchemaMixin.js +18 -0
  23. package/dist/js/generated/DielectricTensorPropertySchemaMixin.d.ts +1 -1
  24. package/dist/js/generated/DielectricTensorPropertySchemaMixin.js +6 -0
  25. package/dist/js/generated/FermiEnergyPropertySchemaMixin.d.ts +1 -1
  26. package/dist/js/generated/FermiEnergyPropertySchemaMixin.js +9 -0
  27. package/dist/js/generated/FileContentPropertySchemaMixin.d.ts +1 -1
  28. package/dist/js/generated/FileContentPropertySchemaMixin.js +15 -0
  29. package/dist/js/generated/FinalStructurePropertySchemaMixin.d.ts +1 -1
  30. package/dist/js/generated/FinalStructurePropertySchemaMixin.js +9 -0
  31. package/dist/js/generated/FormationEnergyPropertySchemaMixin.d.ts +5 -0
  32. package/dist/js/generated/FormationEnergyPropertySchemaMixin.js +27 -0
  33. package/dist/js/generated/HOMOEnergyPropertySchemaMixin.d.ts +1 -1
  34. package/dist/js/generated/HOMOEnergyPropertySchemaMixin.js +9 -0
  35. package/dist/js/generated/HubbardUPropertySchemaMixin.d.ts +1 -1
  36. package/dist/js/generated/HubbardUPropertySchemaMixin.js +9 -0
  37. package/dist/js/generated/HubbardVNNPropertySchemaMixin.d.ts +1 -1
  38. package/dist/js/generated/HubbardVNNPropertySchemaMixin.js +9 -0
  39. package/dist/js/generated/HubbardVPropertySchemaMixin.d.ts +1 -1
  40. package/dist/js/generated/HubbardVPropertySchemaMixin.js +9 -0
  41. package/dist/js/generated/IonizationPotentialElementalPropertySchemaMixin.d.ts +1 -1
  42. package/dist/js/generated/IonizationPotentialElementalPropertySchemaMixin.js +9 -0
  43. package/dist/js/generated/IsRelaxedPropertySchemaMixin.d.ts +1 -1
  44. package/dist/js/generated/IsRelaxedPropertySchemaMixin.js +9 -0
  45. package/dist/js/generated/JupyterNotebookEndpointPropertySchemaMixin.d.ts +1 -1
  46. package/dist/js/generated/JupyterNotebookEndpointPropertySchemaMixin.js +12 -0
  47. package/dist/js/generated/LUMOEnergyPropertySchemaMixin.d.ts +1 -1
  48. package/dist/js/generated/LUMOEnergyPropertySchemaMixin.js +9 -0
  49. package/dist/js/generated/MagneticMomentsPropertySchemaMixin.d.ts +1 -1
  50. package/dist/js/generated/MagneticMomentsPropertySchemaMixin.js +9 -0
  51. package/dist/js/generated/MetaPropertyHolderSchemaMixin.d.ts +1 -1
  52. package/dist/js/generated/MetaPropertyHolderSchemaMixin.js +6 -0
  53. package/dist/js/generated/PhononDOSPropertySchemaMixin.d.ts +1 -1
  54. package/dist/js/generated/PhononDOSPropertySchemaMixin.js +15 -0
  55. package/dist/js/generated/PhononDispersionsPropertySchemaMixin.d.ts +1 -1
  56. package/dist/js/generated/PhononDispersionsPropertySchemaMixin.js +15 -0
  57. package/dist/js/generated/PotentialProfilePropertySchemaMixin.d.ts +1 -1
  58. package/dist/js/generated/PotentialProfilePropertySchemaMixin.js +15 -0
  59. package/dist/js/generated/PressurePropertySchemaMixin.d.ts +1 -1
  60. package/dist/js/generated/PressurePropertySchemaMixin.js +9 -0
  61. package/dist/js/generated/PropertyHolderSchemaMixin.d.ts +1 -1
  62. package/dist/js/generated/PropertyHolderSchemaMixin.js +21 -0
  63. package/dist/js/generated/ProtoPropertyHolderSchemaMixin.d.ts +1 -1
  64. package/dist/js/generated/ProtoPropertyHolderSchemaMixin.js +6 -0
  65. package/dist/js/generated/PseudopotentialMetaPropertySchemaMixin.d.ts +1 -1
  66. package/dist/js/generated/PseudopotentialMetaPropertySchemaMixin.js +36 -0
  67. package/dist/js/generated/ReactionEnergyBarrierPropertySchemaMixin.d.ts +1 -1
  68. package/dist/js/generated/ReactionEnergyBarrierPropertySchemaMixin.js +9 -0
  69. package/dist/js/generated/ReactionEnergyProfilePropertySchemaMixin.d.ts +1 -1
  70. package/dist/js/generated/ReactionEnergyProfilePropertySchemaMixin.js +15 -0
  71. package/dist/js/generated/StressTensorPropertySchemaMixin.d.ts +1 -1
  72. package/dist/js/generated/StressTensorPropertySchemaMixin.js +9 -0
  73. package/dist/js/generated/SurfaceEnergyPropertySchemaMixin.d.ts +1 -1
  74. package/dist/js/generated/SurfaceEnergyPropertySchemaMixin.js +9 -0
  75. package/dist/js/generated/ThermalCorrectionToEnergyPropertySchemaMixin.d.ts +1 -1
  76. package/dist/js/generated/ThermalCorrectionToEnergyPropertySchemaMixin.js +9 -0
  77. package/dist/js/generated/ThermalCorrectionToEnthalpyPropertySchemaMixin.d.ts +1 -1
  78. package/dist/js/generated/ThermalCorrectionToEnthalpyPropertySchemaMixin.js +9 -0
  79. package/dist/js/generated/TotalEnergyContributionsPropertySchemaMixin.d.ts +1 -1
  80. package/dist/js/generated/TotalEnergyContributionsPropertySchemaMixin.js +48 -0
  81. package/dist/js/generated/TotalEnergyPropertySchemaMixin.d.ts +1 -1
  82. package/dist/js/generated/TotalEnergyPropertySchemaMixin.js +9 -0
  83. package/dist/js/generated/TotalForcePropertySchemaMixin.d.ts +1 -1
  84. package/dist/js/generated/TotalForcePropertySchemaMixin.js +9 -0
  85. package/dist/js/generated/ValenceBandOffsetPropertySchemaMixin.d.ts +1 -1
  86. package/dist/js/generated/ValenceBandOffsetPropertySchemaMixin.js +9 -0
  87. package/dist/js/generated/WavefunctionAmplitudePropertySchemaMixin.d.ts +1 -1
  88. package/dist/js/generated/WavefunctionAmplitudePropertySchemaMixin.js +15 -0
  89. package/dist/js/generated/WorkflowPropertySchemaMixin.d.ts +1 -1
  90. package/dist/js/generated/WorkflowPropertySchemaMixin.js +39 -12
  91. package/dist/js/generated/ZeroPointEnergyPropertySchemaMixin.d.ts +1 -1
  92. package/dist/js/generated/ZeroPointEnergyPropertySchemaMixin.js +9 -0
  93. package/dist/js/holders/MetaPropertyHolder.d.ts +4 -5
  94. package/dist/js/holders/MetaPropertyHolder.js +1 -1
  95. package/dist/js/holders/PropertyHolder.d.ts +5 -4
  96. package/dist/js/holders/mixins/MetaPropertyHolderMixin.d.ts +2 -2
  97. package/dist/js/holders/mixins/MetaPropertyHolderMixin.js +0 -1
  98. package/dist/js/index.d.ts +4 -0
  99. package/dist/js/index.js +9 -1
  100. package/dist/js/meta_properties/PseudopotentialMetaProperty.d.ts +14 -14
  101. package/dist/js/meta_properties/PseudopotentialMetaProperty.js +7 -1
  102. package/dist/js/properties/scalar/FormationEnergyProperty.d.ts +15 -0
  103. package/dist/js/properties/scalar/FormationEnergyProperty.js +18 -0
  104. package/dist/js/properties/scalar/ThermalCorrectionToEnergyProperty.d.ts +5 -5
  105. package/dist/js/properties/scalar/ThermalCorrectionToEnergyProperty.js +1 -1
  106. package/dist/js/properties/scalar/ThermalCorrectionToEnthalpyProperty.d.ts +5 -5
  107. package/dist/js/properties/scalar/ThermalCorrectionToEnthalpyProperty.js +1 -1
  108. package/dist/js/settings.d.ts +1 -0
  109. package/dist/js/settings.js +1 -0
  110. package/dist/js/types.d.ts +1 -0
  111. package/package.json +5 -5
  112. package/src/js/PropertyFactory.ts +3 -0
  113. package/src/js/generated/AtomicConstraintsPropertySchemaMixin.ts +9 -1
  114. package/src/js/generated/AtomicForcesPropertySchemaMixin.ts +12 -1
  115. package/src/js/generated/AveragePotentialProfilePropertySchemaMixin.ts +18 -1
  116. package/src/js/generated/BandGapsPropertySchemaMixin.ts +12 -1
  117. package/src/js/generated/BandStructurePropertySchemaMixin.ts +21 -1
  118. package/src/js/generated/BoundaryConditionsPropertySchemaMixin.ts +12 -1
  119. package/src/js/generated/ChargeDensityProfilePropertySchemaMixin.ts +18 -1
  120. package/src/js/generated/ConvergenceElectronicPropertySchemaMixin.ts +12 -1
  121. package/src/js/generated/ConvergenceIonicPropertySchemaMixin.ts +15 -1
  122. package/src/js/generated/DensityOfStatesPropertySchemaMixin.ts +21 -1
  123. package/src/js/generated/DielectricTensorPropertySchemaMixin.ts +9 -1
  124. package/src/js/generated/FermiEnergyPropertySchemaMixin.ts +12 -1
  125. package/src/js/generated/FileContentPropertySchemaMixin.ts +18 -1
  126. package/src/js/generated/FinalStructurePropertySchemaMixin.ts +12 -1
  127. package/src/js/generated/FormationEnergyPropertySchemaMixin.ts +38 -0
  128. package/src/js/generated/HOMOEnergyPropertySchemaMixin.ts +12 -1
  129. package/src/js/generated/HubbardUPropertySchemaMixin.ts +12 -1
  130. package/src/js/generated/HubbardVNNPropertySchemaMixin.ts +12 -1
  131. package/src/js/generated/HubbardVPropertySchemaMixin.ts +12 -1
  132. package/src/js/generated/IonizationPotentialElementalPropertySchemaMixin.ts +12 -1
  133. package/src/js/generated/IsRelaxedPropertySchemaMixin.ts +12 -1
  134. package/src/js/generated/JupyterNotebookEndpointPropertySchemaMixin.ts +15 -1
  135. package/src/js/generated/LUMOEnergyPropertySchemaMixin.ts +12 -1
  136. package/src/js/generated/MagneticMomentsPropertySchemaMixin.ts +12 -1
  137. package/src/js/generated/MetaPropertyHolderSchemaMixin.ts +9 -1
  138. package/src/js/generated/PhononDOSPropertySchemaMixin.ts +18 -1
  139. package/src/js/generated/PhononDispersionsPropertySchemaMixin.ts +18 -1
  140. package/src/js/generated/PotentialProfilePropertySchemaMixin.ts +18 -1
  141. package/src/js/generated/PressurePropertySchemaMixin.ts +12 -1
  142. package/src/js/generated/PropertyHolderSchemaMixin.ts +24 -1
  143. package/src/js/generated/ProtoPropertyHolderSchemaMixin.ts +9 -1
  144. package/src/js/generated/PseudopotentialMetaPropertySchemaMixin.ts +39 -1
  145. package/src/js/generated/ReactionEnergyBarrierPropertySchemaMixin.ts +12 -1
  146. package/src/js/generated/ReactionEnergyProfilePropertySchemaMixin.ts +18 -1
  147. package/src/js/generated/StressTensorPropertySchemaMixin.ts +12 -1
  148. package/src/js/generated/SurfaceEnergyPropertySchemaMixin.ts +12 -1
  149. package/src/js/generated/ThermalCorrectionToEnergyPropertySchemaMixin.ts +12 -1
  150. package/src/js/generated/ThermalCorrectionToEnthalpyPropertySchemaMixin.ts +12 -1
  151. package/src/js/generated/TotalEnergyContributionsPropertySchemaMixin.ts +59 -1
  152. package/src/js/generated/TotalEnergyPropertySchemaMixin.ts +12 -1
  153. package/src/js/generated/TotalForcePropertySchemaMixin.ts +12 -1
  154. package/src/js/generated/ValenceBandOffsetPropertySchemaMixin.ts +12 -1
  155. package/src/js/generated/WavefunctionAmplitudePropertySchemaMixin.ts +18 -1
  156. package/src/js/generated/WorkflowPropertySchemaMixin.ts +42 -13
  157. package/src/js/generated/ZeroPointEnergyPropertySchemaMixin.ts +12 -1
  158. package/src/js/holders/MetaPropertyHolder.ts +5 -3
  159. package/src/js/holders/PropertyHolder.ts +5 -3
  160. package/src/js/holders/mixins/MetaPropertyHolderMixin.ts +6 -7
  161. package/src/js/index.ts +4 -0
  162. package/src/js/meta_properties/PseudopotentialMetaProperty.ts +24 -15
  163. package/src/js/properties/scalar/FormationEnergyProperty.ts +27 -0
  164. package/src/js/properties/scalar/ThermalCorrectionToEnergyProperty.ts +7 -3
  165. package/src/js/properties/scalar/ThermalCorrectionToEnthalpyProperty.ts +8 -3
  166. package/src/js/settings.ts +1 -0
  167. package/src/js/types.ts +4 -0
@@ -8,41 +8,70 @@ export type WorkflowPropertySchemaMixin = Omit<
8
8
 
9
9
  export type WorkflowPropertyInMemoryEntity = InMemoryEntity & WorkflowPropertySchemaMixin;
10
10
 
11
- export function workflowPropertySchemaMixin(item: InMemoryEntity) {
11
+ export function workflowPropertySchemaMixin<T extends InMemoryEntity>(
12
+ item: InMemoryEntity,
13
+ ): asserts item is T & WorkflowPropertySchemaMixin {
12
14
  // @ts-expect-error
13
15
  const properties: InMemoryEntity & WorkflowPropertySchemaMixin = {
14
16
  get name() {
15
17
  return this.requiredProp<WorkflowPropertySchema["name"]>("name");
16
18
  },
17
- get subworkflows() {
18
- return this.requiredProp<WorkflowPropertySchema["subworkflows"]>("subworkflows");
19
+ set name(value: WorkflowPropertySchema["name"]) {
20
+ this.setProp("name", value);
19
21
  },
20
- get units() {
21
- return this.requiredProp<WorkflowPropertySchema["units"]>("units");
22
+ get workflows() {
23
+ return this.requiredProp<WorkflowPropertySchema["workflows"]>("workflows");
24
+ },
25
+ set workflows(value: WorkflowPropertySchema["workflows"]) {
26
+ this.setProp("workflows", value);
27
+ },
28
+ get metadata() {
29
+ return this.prop<WorkflowPropertySchema["metadata"]>("metadata");
30
+ },
31
+ set metadata(value: WorkflowPropertySchema["metadata"]) {
32
+ this.setProp("metadata", value);
22
33
  },
23
34
  get properties() {
24
- return this.prop<WorkflowPropertySchema["properties"]>("properties");
35
+ return this.requiredProp<WorkflowPropertySchema["properties"]>("properties");
36
+ },
37
+ set properties(value: WorkflowPropertySchema["properties"]) {
38
+ this.setProp("properties", value);
25
39
  },
26
40
  get isUsingDataset() {
27
41
  return this.prop<WorkflowPropertySchema["isUsingDataset"]>("isUsingDataset");
28
42
  },
43
+ set isUsingDataset(value: WorkflowPropertySchema["isUsingDataset"]) {
44
+ this.setProp("isUsingDataset", value);
45
+ },
29
46
  get isMultiMaterial() {
30
47
  return this.prop<WorkflowPropertySchema["isMultiMaterial"]>("isMultiMaterial");
31
48
  },
32
- get workflows() {
33
- return this.prop<WorkflowPropertySchema["workflows"]>("workflows");
49
+ set isMultiMaterial(value: WorkflowPropertySchema["isMultiMaterial"]) {
50
+ this.setProp("isMultiMaterial", value);
51
+ },
52
+ get subworkflows() {
53
+ return this.requiredProp<WorkflowPropertySchema["subworkflows"]>("subworkflows");
54
+ },
55
+ set subworkflows(value: WorkflowPropertySchema["subworkflows"]) {
56
+ this.setProp("subworkflows", value);
57
+ },
58
+ get units() {
59
+ return this.requiredProp<WorkflowPropertySchema["units"]>("units");
60
+ },
61
+ set units(value: WorkflowPropertySchema["units"]) {
62
+ this.setProp("units", value);
34
63
  },
35
64
  get application() {
36
65
  return this.prop<WorkflowPropertySchema["application"]>("application");
37
66
  },
67
+ set application(value: WorkflowPropertySchema["application"]) {
68
+ this.setProp("application", value);
69
+ },
38
70
  get tags() {
39
71
  return this.prop<WorkflowPropertySchema["tags"]>("tags");
40
72
  },
41
- get isDefault() {
42
- return this.prop<WorkflowPropertySchema["isDefault"]>("isDefault");
43
- },
44
- get metadata() {
45
- return this.prop<WorkflowPropertySchema["metadata"]>("metadata");
73
+ set tags(value: WorkflowPropertySchema["tags"]) {
74
+ this.setProp("tags", value);
46
75
  },
47
76
  };
48
77
 
@@ -9,18 +9,29 @@ export type ZeroPointEnergyPropertySchemaMixin = Omit<
9
9
  export type ZeroPointEnergyPropertyInMemoryEntity = InMemoryEntity &
10
10
  ZeroPointEnergyPropertySchemaMixin;
11
11
 
12
- export function zeroPointEnergyPropertySchemaMixin(item: InMemoryEntity) {
12
+ export function zeroPointEnergyPropertySchemaMixin<T extends InMemoryEntity>(
13
+ item: InMemoryEntity,
14
+ ): asserts item is T & ZeroPointEnergyPropertySchemaMixin {
13
15
  // @ts-expect-error
14
16
  const properties: InMemoryEntity & ZeroPointEnergyPropertySchemaMixin = {
15
17
  get name() {
16
18
  return this.requiredProp<ZeroPointEnergyPropertySchema["name"]>("name");
17
19
  },
20
+ set name(value: ZeroPointEnergyPropertySchema["name"]) {
21
+ this.setProp("name", value);
22
+ },
18
23
  get units() {
19
24
  return this.requiredProp<ZeroPointEnergyPropertySchema["units"]>("units");
20
25
  },
26
+ set units(value: ZeroPointEnergyPropertySchema["units"]) {
27
+ this.setProp("units", value);
28
+ },
21
29
  get value() {
22
30
  return this.requiredProp<ZeroPointEnergyPropertySchema["value"]>("value");
23
31
  },
32
+ set value(value: ZeroPointEnergyPropertySchema["value"]) {
33
+ this.setProp("value", value);
34
+ },
24
35
  };
25
36
 
26
37
  Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
@@ -1,5 +1,4 @@
1
1
  import { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
- import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
3
2
  import type { MetaPropertyHolderSchema } from "@mat3ra/esse/dist/js/types";
4
3
 
5
4
  import {
@@ -7,9 +6,10 @@ import {
7
6
  metaPropertyHolderMixin,
8
7
  } from "./mixins/MetaPropertyHolderMixin";
9
8
 
10
- type MetaPropertyBase = typeof InMemoryEntity & Constructor<MetaPropertyHolderMixin>;
9
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
10
+ interface MetaPropertyHolder extends MetaPropertyHolderMixin {}
11
11
 
12
- export default class MetaPropertyHolder extends (InMemoryEntity as MetaPropertyBase) {
12
+ class MetaPropertyHolder extends InMemoryEntity {
13
13
  // eslint-disable-next-line no-useless-constructor
14
14
  constructor(data: MetaPropertyHolderSchema) {
15
15
  super(data);
@@ -17,3 +17,5 @@ export default class MetaPropertyHolder extends (InMemoryEntity as MetaPropertyB
17
17
  }
18
18
 
19
19
  metaPropertyHolderMixin(MetaPropertyHolder.prototype);
20
+
21
+ export default MetaPropertyHolder;
@@ -5,11 +5,13 @@ import type { PropertyHolderSchema } from "@mat3ra/esse/dist/js/types";
5
5
  import type { PropertyHolderMixin } from "./mixins/PropertyHolderMixin";
6
6
  import { propertyHolderMixin } from "./mixins/PropertyHolderMixin";
7
7
 
8
- type PropertyHolderBase = typeof InMemoryEntity & Constructor<PropertyHolderMixin>;
8
+ type Schema = PropertyHolderSchema;
9
9
 
10
- export default class PropertyHolder extends (InMemoryEntity as PropertyHolderBase) {
10
+ type Base = typeof InMemoryEntity & Constructor<PropertyHolderMixin>;
11
+
12
+ export default class PropertyHolder extends (InMemoryEntity as Base) implements Schema {
11
13
  // eslint-disable-next-line no-useless-constructor
12
- constructor(data: PropertyHolderSchema) {
14
+ constructor(data: Schema) {
13
15
  super(data);
14
16
  }
15
17
  }
@@ -1,29 +1,28 @@
1
1
  import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
2
  import type { AnyObject } from "@mat3ra/esse/dist/js/esse/types";
3
3
  import type { MetaPropertyHolderSchema } from "@mat3ra/esse/dist/js/types";
4
+ import type { PseudopotentialMetaProperty } from "src/js";
4
5
 
5
6
  import {
6
7
  type MetaPropertyHolderSchemaMixin,
7
8
  metaPropertyHolderSchemaMixin,
8
9
  } from "../../generated/MetaPropertyHolderSchemaMixin";
9
- import type MetaProperty from "../../MetaProperty";
10
10
  import PropertyFactory from "../../PropertyFactory";
11
11
 
12
12
  export interface MetaPropertySchemaJSON extends MetaPropertyHolderSchema, AnyObject {}
13
13
 
14
14
  export type MetaPropertyHolderMixin = {
15
- property: MetaProperty;
15
+ property: PseudopotentialMetaProperty;
16
16
  } & MetaPropertyHolderSchemaMixin;
17
17
 
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";
@@ -22,5 +23,8 @@ export { default as ReactionEnergyProfileProperty } from "./properties/non-scala
22
23
  export { protoPropertyHolderMixin } from "./holders/mixins/ProtoPropertyHolderMixin";
23
24
  export { propertyHolderMixin } from "./holders/mixins/PropertyHolderMixin";
24
25
  export { metaPropertyHolderMixin } from "./holders/mixins/MetaPropertyHolderMixin";
26
+ export { default as PropertyHolder } from "./holders/PropertyHolder";
27
+ export { default as MetaPropertyHolder } from "./holders/MetaPropertyHolder";
28
+ export { default as ProtoPropertyHolder } from "./holders/ProtoPropertyHolder";
25
29
 
26
30
  export * from "./types";
@@ -19,6 +19,20 @@ enum CompatibleExchangeCorrelationKey {
19
19
 
20
20
  type Base = typeof MetaProperty & Constructor<PseudopotentialMetaPropertySchemaMixin>;
21
21
 
22
+ export type ExchangeCorrelation = {
23
+ functional?: string;
24
+ approximation: string;
25
+ };
26
+
27
+ // TODO: move to esse schema
28
+ export type PseudopotentialFilter = {
29
+ searchText?: string;
30
+ appName?: string;
31
+ type?: string;
32
+ exchangeCorrelation?: ExchangeCorrelation;
33
+ elements?: string[];
34
+ };
35
+
22
36
  export default class PseudopotentialMetaProperty extends (MetaProperty as Base) implements Schema {
23
37
  static readonly propertyName = PropertyName.pseudopotential;
24
38
 
@@ -80,15 +94,12 @@ export default class PseudopotentialMetaProperty extends (MetaProperty as Base)
80
94
  */
81
95
  static filterRawDataByExchangeCorrelation(
82
96
  rawData: PseudopotentialMetaProperty[],
83
- exchangeCorrelation: {
84
- functional: string;
85
- approximation: string;
86
- },
97
+ exchangeCorrelation: ExchangeCorrelation,
87
98
  ) {
88
99
  const { functional } = exchangeCorrelation;
89
100
 
90
101
  return rawData.filter((item) => {
91
- return this.isCompatibleWithOther(functional)
102
+ return functional && this.isCompatibleWithOther(functional)
92
103
  ? this.compatibleExchangeCorrelation[functional].includes(
93
104
  item.exchangeCorrelation?.functional || "",
94
105
  )
@@ -134,16 +145,7 @@ export default class PseudopotentialMetaProperty extends (MetaProperty as Base)
134
145
  */
135
146
  static applyPseudoFilters(
136
147
  pseudos: PseudopotentialMetaProperty[],
137
- pseudoFilter: {
138
- searchText?: string;
139
- appName?: string;
140
- type?: string;
141
- exchangeCorrelation?: {
142
- functional: keyof typeof PseudopotentialMetaProperty.compatibleExchangeCorrelation;
143
- approximation: string;
144
- };
145
- elements?: string[];
146
- },
148
+ pseudoFilter: PseudopotentialFilter,
147
149
  ) {
148
150
  let filteredPseudos = [...pseudos];
149
151
 
@@ -197,6 +199,13 @@ export default class PseudopotentialMetaProperty extends (MetaProperty as Base)
197
199
  });
198
200
  }
199
201
 
202
+ static sortByPathApplicationSpecific(pseudos: PseudopotentialMetaProperty[], appName?: string) {
203
+ if (appName === "vasp") {
204
+ return this.sortByPathVASP(pseudos);
205
+ }
206
+ return pseudos;
207
+ }
208
+
200
209
  static filterByType(pseudos: PseudopotentialMetaProperty[], pseudoType?: string) {
201
210
  if (pseudoType === undefined || pseudoType === "any") return pseudos;
202
211
  return pseudos.filter((pseudo) => pseudo.type.includes(pseudoType));
@@ -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);
@@ -1,4 +1,3 @@
1
- import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
1
  import type { ThermalCorrectionToEnergyPropertySchema } from "@mat3ra/esse/dist/js/types";
3
2
 
4
3
  import {
@@ -10,18 +9,23 @@ import { PropertyName, PropertyType } from "../../settings";
10
9
 
11
10
  type Schema = ThermalCorrectionToEnergyPropertySchema;
12
11
 
13
- type Base = typeof Property<Schema> & Constructor<ThermalCorrectionToEnergyPropertySchemaMixin>;
12
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
13
+ interface ThermalCorrectionToEnergyProperty extends ThermalCorrectionToEnergyPropertySchemaMixin {}
14
14
 
15
- export default class ThermalCorrectionToEnergyProperty extends (Property as Base) implements Schema {
15
+ class ThermalCorrectionToEnergyProperty extends Property<Schema> implements Schema {
16
16
  static readonly propertyType = PropertyType.scalar;
17
17
 
18
18
  static readonly propertyName = PropertyName.thermal_correction_to_energy;
19
19
 
20
20
  static readonly isRefined = true;
21
21
 
22
+ declare name: Schema["name"];
23
+
22
24
  constructor(config: Omit<Schema, "name">) {
23
25
  super({ ...config, name: ThermalCorrectionToEnergyProperty.propertyName });
24
26
  }
25
27
  }
26
28
 
27
29
  thermalCorrectionToEnergyPropertySchemaMixin(ThermalCorrectionToEnergyProperty.prototype);
30
+
31
+ export default ThermalCorrectionToEnergyProperty;
@@ -1,4 +1,3 @@
1
- import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
1
  import type { ThermalCorrectionToEnthalpyPropertySchema } from "@mat3ra/esse/dist/js/types";
3
2
 
4
3
  import {
@@ -10,18 +9,24 @@ import { PropertyName, PropertyType } from "../../settings";
10
9
 
11
10
  type Schema = ThermalCorrectionToEnthalpyPropertySchema;
12
11
 
13
- type Base = typeof Property<Schema> & Constructor<ThermalCorrectionToEnthalpyPropertySchemaMixin>;
12
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
13
+ interface ThermalCorrectionToEnthalpyProperty
14
+ extends ThermalCorrectionToEnthalpyPropertySchemaMixin {}
14
15
 
15
- export default class ThermalCorrectionToEnthalpyProperty extends (Property as Base) implements Schema {
16
+ class ThermalCorrectionToEnthalpyProperty extends Property<Schema> implements Schema {
16
17
  static readonly propertyType = PropertyType.scalar;
17
18
 
18
19
  static readonly propertyName = PropertyName.thermal_correction_to_enthalpy;
19
20
 
20
21
  static readonly isRefined = true;
21
22
 
23
+ declare name: Schema["name"];
24
+
22
25
  constructor(config: Omit<Schema, "name">) {
23
26
  super({ ...config, name: ThermalCorrectionToEnthalpyProperty.propertyName });
24
27
  }
25
28
  }
26
29
 
27
30
  thermalCorrectionToEnthalpyPropertySchemaMixin(ThermalCorrectionToEnthalpyProperty.prototype);
31
+
32
+ export default ThermalCorrectionToEnthalpyProperty;
@@ -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",
package/src/js/types.ts CHANGED
@@ -22,3 +22,7 @@ export type { default as DensityOfStatesProperty } from "./properties/non-scalar
22
22
  export type { default as DielectricTensorProperty } from "./properties/non-scalar/DielectricTensorProperty";
23
23
  export type { default as PhononDispersionsProperty } from "./properties/non-scalar/PhononDispersionsProperty";
24
24
  export type { default as PhononDOSProperty } from "./properties/non-scalar/PhononDOSProperty";
25
+ export type {
26
+ PseudopotentialFilter,
27
+ ExchangeCorrelation,
28
+ } from "./meta_properties/PseudopotentialMetaProperty";