@mat3ra/prode 2025.11.25-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 (276) hide show
  1. package/.babelrc +17 -0
  2. package/LICENSE.md +15 -0
  3. package/README.md +93 -0
  4. package/dist/js/MetaProperty.d.ts +3 -0
  5. package/dist/js/MetaProperty.js +9 -0
  6. package/dist/js/Property.d.ts +25 -0
  7. package/dist/js/Property.js +25 -0
  8. package/dist/js/PropertyFactory.d.ts +54 -0
  9. package/dist/js/PropertyFactory.js +137 -0
  10. package/dist/js/ProtoProperty.d.ts +5 -0
  11. package/dist/js/ProtoProperty.js +11 -0
  12. package/dist/js/charts/highcharts.d.ts +57 -0
  13. package/dist/js/charts/highcharts.js +96 -0
  14. package/dist/js/generated/AtomicConstraintsPropertySchemaMixin.d.ts +5 -0
  15. package/dist/js/generated/AtomicConstraintsPropertySchemaMixin.js +15 -0
  16. package/dist/js/generated/AtomicForcesPropertySchemaMixin.d.ts +5 -0
  17. package/dist/js/generated/AtomicForcesPropertySchemaMixin.js +18 -0
  18. package/dist/js/generated/AveragePotentialProfilePropertySchemaMixin.d.ts +5 -0
  19. package/dist/js/generated/AveragePotentialProfilePropertySchemaMixin.js +24 -0
  20. package/dist/js/generated/BandGapsPropertySchemaMixin.d.ts +5 -0
  21. package/dist/js/generated/BandGapsPropertySchemaMixin.js +18 -0
  22. package/dist/js/generated/BandStructurePropertySchemaMixin.d.ts +5 -0
  23. package/dist/js/generated/BandStructurePropertySchemaMixin.js +27 -0
  24. package/dist/js/generated/BoundaryConditionsPropertySchemaMixin.d.ts +5 -0
  25. package/dist/js/generated/BoundaryConditionsPropertySchemaMixin.js +18 -0
  26. package/dist/js/generated/ChargeDensityProfilePropertySchemaMixin.d.ts +5 -0
  27. package/dist/js/generated/ChargeDensityProfilePropertySchemaMixin.js +24 -0
  28. package/dist/js/generated/ConvergenceElectronicPropertySchemaMixin.d.ts +5 -0
  29. package/dist/js/generated/ConvergenceElectronicPropertySchemaMixin.js +18 -0
  30. package/dist/js/generated/ConvergenceIonicPropertySchemaMixin.d.ts +5 -0
  31. package/dist/js/generated/ConvergenceIonicPropertySchemaMixin.js +21 -0
  32. package/dist/js/generated/DensityOfStatesPropertySchemaMixin.d.ts +5 -0
  33. package/dist/js/generated/DensityOfStatesPropertySchemaMixin.js +27 -0
  34. package/dist/js/generated/DielectricTensorPropertySchemaMixin.d.ts +5 -0
  35. package/dist/js/generated/DielectricTensorPropertySchemaMixin.js +15 -0
  36. package/dist/js/generated/FermiEnergyPropertySchemaMixin.d.ts +5 -0
  37. package/dist/js/generated/FermiEnergyPropertySchemaMixin.js +18 -0
  38. package/dist/js/generated/FileContentPropertySchemaMixin.d.ts +5 -0
  39. package/dist/js/generated/FileContentPropertySchemaMixin.js +24 -0
  40. package/dist/js/generated/FinalStructurePropertySchemaMixin.d.ts +5 -0
  41. package/dist/js/generated/FinalStructurePropertySchemaMixin.js +18 -0
  42. package/dist/js/generated/HubbardUPropertySchemaMixin.d.ts +5 -0
  43. package/dist/js/generated/HubbardUPropertySchemaMixin.js +18 -0
  44. package/dist/js/generated/HubbardVNNPropertySchemaMixin.d.ts +5 -0
  45. package/dist/js/generated/HubbardVNNPropertySchemaMixin.js +18 -0
  46. package/dist/js/generated/HubbardVPropertySchemaMixin.d.ts +5 -0
  47. package/dist/js/generated/HubbardVPropertySchemaMixin.js +18 -0
  48. package/dist/js/generated/IonizationPotentialElementalPropertySchemaMixin.d.ts +5 -0
  49. package/dist/js/generated/IonizationPotentialElementalPropertySchemaMixin.js +18 -0
  50. package/dist/js/generated/IsRelaxedPropertySchemaMixin.d.ts +5 -0
  51. package/dist/js/generated/IsRelaxedPropertySchemaMixin.js +18 -0
  52. package/dist/js/generated/JupyterNotebookEndpointPropertySchemaMixin.d.ts +5 -0
  53. package/dist/js/generated/JupyterNotebookEndpointPropertySchemaMixin.js +21 -0
  54. package/dist/js/generated/MagneticMomentsPropertySchemaMixin.d.ts +5 -0
  55. package/dist/js/generated/MagneticMomentsPropertySchemaMixin.js +18 -0
  56. package/dist/js/generated/MetaPropertyHolderSchemaMixin.d.ts +5 -0
  57. package/dist/js/generated/MetaPropertyHolderSchemaMixin.js +15 -0
  58. package/dist/js/generated/PhononDOSPropertySchemaMixin.d.ts +5 -0
  59. package/dist/js/generated/PhononDOSPropertySchemaMixin.js +24 -0
  60. package/dist/js/generated/PhononDispersionsPropertySchemaMixin.d.ts +5 -0
  61. package/dist/js/generated/PhononDispersionsPropertySchemaMixin.js +24 -0
  62. package/dist/js/generated/PotentialProfilePropertySchemaMixin.d.ts +5 -0
  63. package/dist/js/generated/PotentialProfilePropertySchemaMixin.js +24 -0
  64. package/dist/js/generated/PressurePropertySchemaMixin.d.ts +5 -0
  65. package/dist/js/generated/PressurePropertySchemaMixin.js +18 -0
  66. package/dist/js/generated/PropertyHolderSchemaMixin.d.ts +5 -0
  67. package/dist/js/generated/PropertyHolderSchemaMixin.js +30 -0
  68. package/dist/js/generated/ProtoPropertyHolderSchemaMixin.d.ts +5 -0
  69. package/dist/js/generated/ProtoPropertyHolderSchemaMixin.js +15 -0
  70. package/dist/js/generated/PseudopotentialMetaPropertySchemaMixin.d.ts +5 -0
  71. package/dist/js/generated/PseudopotentialMetaPropertySchemaMixin.js +45 -0
  72. package/dist/js/generated/ReactionEnergyBarrierPropertySchemaMixin.d.ts +5 -0
  73. package/dist/js/generated/ReactionEnergyBarrierPropertySchemaMixin.js +18 -0
  74. package/dist/js/generated/ReactionEnergyProfilePropertySchemaMixin.d.ts +5 -0
  75. package/dist/js/generated/ReactionEnergyProfilePropertySchemaMixin.js +24 -0
  76. package/dist/js/generated/StressTensorPropertySchemaMixin.d.ts +5 -0
  77. package/dist/js/generated/StressTensorPropertySchemaMixin.js +18 -0
  78. package/dist/js/generated/SurfaceEnergyPropertySchemaMixin.d.ts +5 -0
  79. package/dist/js/generated/SurfaceEnergyPropertySchemaMixin.js +18 -0
  80. package/dist/js/generated/TotalEnergyContributionsPropertySchemaMixin.d.ts +5 -0
  81. package/dist/js/generated/TotalEnergyContributionsPropertySchemaMixin.js +57 -0
  82. package/dist/js/generated/TotalEnergyPropertySchemaMixin.d.ts +5 -0
  83. package/dist/js/generated/TotalEnergyPropertySchemaMixin.js +18 -0
  84. package/dist/js/generated/TotalForcePropertySchemaMixin.d.ts +5 -0
  85. package/dist/js/generated/TotalForcePropertySchemaMixin.js +18 -0
  86. package/dist/js/generated/ValenceBandOffsetPropertySchemaMixin.d.ts +5 -0
  87. package/dist/js/generated/ValenceBandOffsetPropertySchemaMixin.js +18 -0
  88. package/dist/js/generated/WorkflowPropertySchemaMixin.d.ts +5 -0
  89. package/dist/js/generated/WorkflowPropertySchemaMixin.js +33 -0
  90. package/dist/js/generated/ZeroPointEnergyPropertySchemaMixin.d.ts +5 -0
  91. package/dist/js/generated/ZeroPointEnergyPropertySchemaMixin.js +18 -0
  92. package/dist/js/holders/MetaPropertyHolder.d.ts +10 -0
  93. package/dist/js/holders/MetaPropertyHolder.js +12 -0
  94. package/dist/js/holders/PropertyHolder.d.ts +10 -0
  95. package/dist/js/holders/PropertyHolder.js +12 -0
  96. package/dist/js/holders/ProtoPropertyHolder.d.ts +10 -0
  97. package/dist/js/holders/ProtoPropertyHolder.js +12 -0
  98. package/dist/js/holders/mixins/MetaPropertyHolderMixin.d.ts +12 -0
  99. package/dist/js/holders/mixins/MetaPropertyHolderMixin.js +18 -0
  100. package/dist/js/holders/mixins/PropertyHolderMixin.d.ts +16 -0
  101. package/dist/js/holders/mixins/PropertyHolderMixin.js +37 -0
  102. package/dist/js/holders/mixins/ProtoPropertyHolderMixin.d.ts +12 -0
  103. package/dist/js/holders/mixins/ProtoPropertyHolderMixin.js +18 -0
  104. package/dist/js/index.d.ts +20 -0
  105. package/dist/js/index.js +60 -0
  106. package/dist/js/meta_properties/PseudopotentialMetaProperty.d.ts +78 -0
  107. package/dist/js/meta_properties/PseudopotentialMetaProperty.js +157 -0
  108. package/dist/js/properties/include/mixins/2d_plot.d.ts +27 -0
  109. package/dist/js/properties/include/mixins/2d_plot.js +79 -0
  110. package/dist/js/properties/non-scalar/AveragePotentialProfileProperty.d.ts +38 -0
  111. package/dist/js/properties/non-scalar/AveragePotentialProfileProperty.js +54 -0
  112. package/dist/js/properties/non-scalar/BandGapsProperty.d.ts +59 -0
  113. package/dist/js/properties/non-scalar/BandGapsProperty.js +52 -0
  114. package/dist/js/properties/non-scalar/BandStructureProperty.d.ts +186 -0
  115. package/dist/js/properties/non-scalar/BandStructureProperty.js +218 -0
  116. package/dist/js/properties/non-scalar/ChargeDensityProfileProperty.d.ts +25 -0
  117. package/dist/js/properties/non-scalar/ChargeDensityProfileProperty.js +34 -0
  118. package/dist/js/properties/non-scalar/DensityOfStatesProperty.d.ts +145 -0
  119. package/dist/js/properties/non-scalar/DensityOfStatesProperty.js +126 -0
  120. package/dist/js/properties/non-scalar/DielectricTensorProperty.d.ts +49 -0
  121. package/dist/js/properties/non-scalar/DielectricTensorProperty.js +119 -0
  122. package/dist/js/properties/non-scalar/FileContentProperty.d.ts +15 -0
  123. package/dist/js/properties/non-scalar/FileContentProperty.js +18 -0
  124. package/dist/js/properties/non-scalar/FinalStructureProperty.d.ts +14 -0
  125. package/dist/js/properties/non-scalar/FinalStructureProperty.js +17 -0
  126. package/dist/js/properties/non-scalar/HubbardUProperty.d.ts +14 -0
  127. package/dist/js/properties/non-scalar/HubbardUProperty.js +17 -0
  128. package/dist/js/properties/non-scalar/HubbardVNNProperty.d.ts +14 -0
  129. package/dist/js/properties/non-scalar/HubbardVNNProperty.js +17 -0
  130. package/dist/js/properties/non-scalar/HubbardVProperty.d.ts +14 -0
  131. package/dist/js/properties/non-scalar/HubbardVProperty.js +17 -0
  132. package/dist/js/properties/non-scalar/IsRelaxedProperty.d.ts +15 -0
  133. package/dist/js/properties/non-scalar/IsRelaxedProperty.js +18 -0
  134. package/dist/js/properties/non-scalar/JupyterNotebookEndpointProperty.d.ts +14 -0
  135. package/dist/js/properties/non-scalar/JupyterNotebookEndpointProperty.js +17 -0
  136. package/dist/js/properties/non-scalar/PhononDOSProperty.d.ts +19 -0
  137. package/dist/js/properties/non-scalar/PhononDOSProperty.js +37 -0
  138. package/dist/js/properties/non-scalar/PhononDispersionsProperty.d.ts +21 -0
  139. package/dist/js/properties/non-scalar/PhononDispersionsProperty.js +28 -0
  140. package/dist/js/properties/non-scalar/PotentialProfileProperty.d.ts +38 -0
  141. package/dist/js/properties/non-scalar/PotentialProfileProperty.js +58 -0
  142. package/dist/js/properties/non-scalar/ReactionEnergyProfileProperty.d.ts +25 -0
  143. package/dist/js/properties/non-scalar/ReactionEnergyProfileProperty.js +34 -0
  144. package/dist/js/properties/non-scalar/WorkflowProperty.d.ts +14 -0
  145. package/dist/js/properties/non-scalar/WorkflowProperty.js +17 -0
  146. package/dist/js/properties/non-scalar/convergence/ConvergenceElectronicProperty.d.ts +17 -0
  147. package/dist/js/properties/non-scalar/convergence/ConvergenceElectronicProperty.js +63 -0
  148. package/dist/js/properties/non-scalar/convergence/ConvergenceIonicProperty.d.ts +17 -0
  149. package/dist/js/properties/non-scalar/convergence/ConvergenceIonicProperty.js +45 -0
  150. package/dist/js/properties/object/TotalEnergyContributionsProperty.d.ts +18 -0
  151. package/dist/js/properties/object/TotalEnergyContributionsProperty.js +20 -0
  152. package/dist/js/properties/scalar/FermiEnergyProperty.d.ts +14 -0
  153. package/dist/js/properties/scalar/FermiEnergyProperty.js +17 -0
  154. package/dist/js/properties/scalar/IonizationPotentialElementalProperty.d.ts +14 -0
  155. package/dist/js/properties/scalar/IonizationPotentialElementalProperty.js +17 -0
  156. package/dist/js/properties/scalar/PressureProperty.d.ts +15 -0
  157. package/dist/js/properties/scalar/PressureProperty.js +18 -0
  158. package/dist/js/properties/scalar/ReactionEnergyBarrierProperty.d.ts +15 -0
  159. package/dist/js/properties/scalar/ReactionEnergyBarrierProperty.js +18 -0
  160. package/dist/js/properties/scalar/SurfaceEnergyProperty.d.ts +15 -0
  161. package/dist/js/properties/scalar/SurfaceEnergyProperty.js +18 -0
  162. package/dist/js/properties/scalar/TotalEnergyProperty.d.ts +15 -0
  163. package/dist/js/properties/scalar/TotalEnergyProperty.js +18 -0
  164. package/dist/js/properties/scalar/TotalForceProperty.d.ts +14 -0
  165. package/dist/js/properties/scalar/TotalForceProperty.js +17 -0
  166. package/dist/js/properties/scalar/ValenceBandOffsetProperty.d.ts +15 -0
  167. package/dist/js/properties/scalar/ValenceBandOffsetProperty.js +18 -0
  168. package/dist/js/properties/scalar/ZeroPointEnergyProperty.d.ts +14 -0
  169. package/dist/js/properties/scalar/ZeroPointEnergyProperty.js +17 -0
  170. package/dist/js/properties/tensor/AtomicForcesProperty.d.ts +14 -0
  171. package/dist/js/properties/tensor/AtomicForcesProperty.js +17 -0
  172. package/dist/js/properties/tensor/MagneticMomentsProperty.d.ts +14 -0
  173. package/dist/js/properties/tensor/MagneticMomentsProperty.js +17 -0
  174. package/dist/js/properties/tensor/StressTensorProperty.d.ts +14 -0
  175. package/dist/js/properties/tensor/StressTensorProperty.js +17 -0
  176. package/dist/js/proto_properties/AtomicConstraintsProperty.d.ts +13 -0
  177. package/dist/js/proto_properties/AtomicConstraintsProperty.js +16 -0
  178. package/dist/js/proto_properties/BoundaryConditionsProperty.d.ts +13 -0
  179. package/dist/js/proto_properties/BoundaryConditionsProperty.js +16 -0
  180. package/dist/js/settings.d.ts +48 -0
  181. package/dist/js/settings.js +56 -0
  182. package/dist/js/types.d.ts +14 -0
  183. package/dist/js/types.js +2 -0
  184. package/package.json +101 -0
  185. package/src/js/MetaProperty.ts +3 -0
  186. package/src/js/Property.ts +49 -0
  187. package/src/js/PropertyFactory.ts +208 -0
  188. package/src/js/ProtoProperty.ts +6 -0
  189. package/src/js/charts/highcharts.ts +172 -0
  190. package/src/js/generated/AtomicConstraintsPropertySchemaMixin.ts +24 -0
  191. package/src/js/generated/AtomicForcesPropertySchemaMixin.ts +26 -0
  192. package/src/js/generated/AveragePotentialProfilePropertySchemaMixin.ts +37 -0
  193. package/src/js/generated/BandGapsPropertySchemaMixin.ts +26 -0
  194. package/src/js/generated/BandStructurePropertySchemaMixin.ts +35 -0
  195. package/src/js/generated/BoundaryConditionsPropertySchemaMixin.ts +27 -0
  196. package/src/js/generated/ChargeDensityProfilePropertySchemaMixin.ts +37 -0
  197. package/src/js/generated/ConvergenceElectronicPropertySchemaMixin.ts +27 -0
  198. package/src/js/generated/ConvergenceIonicPropertySchemaMixin.ts +30 -0
  199. package/src/js/generated/DensityOfStatesPropertySchemaMixin.ts +36 -0
  200. package/src/js/generated/DielectricTensorPropertySchemaMixin.ts +24 -0
  201. package/src/js/generated/FermiEnergyPropertySchemaMixin.ts +26 -0
  202. package/src/js/generated/FileContentPropertySchemaMixin.ts +32 -0
  203. package/src/js/generated/FinalStructurePropertySchemaMixin.ts +27 -0
  204. package/src/js/generated/HubbardUPropertySchemaMixin.ts +26 -0
  205. package/src/js/generated/HubbardVNNPropertySchemaMixin.ts +26 -0
  206. package/src/js/generated/HubbardVPropertySchemaMixin.ts +26 -0
  207. package/src/js/generated/IonizationPotentialElementalPropertySchemaMixin.ts +27 -0
  208. package/src/js/generated/IsRelaxedPropertySchemaMixin.ts +26 -0
  209. package/src/js/generated/JupyterNotebookEndpointPropertySchemaMixin.ts +30 -0
  210. package/src/js/generated/MagneticMomentsPropertySchemaMixin.ts +27 -0
  211. package/src/js/generated/MetaPropertyHolderSchemaMixin.ts +23 -0
  212. package/src/js/generated/PhononDOSPropertySchemaMixin.ts +36 -0
  213. package/src/js/generated/PhononDispersionsPropertySchemaMixin.ts +35 -0
  214. package/src/js/generated/PotentialProfilePropertySchemaMixin.ts +33 -0
  215. package/src/js/generated/PressurePropertySchemaMixin.ts +26 -0
  216. package/src/js/generated/PropertyHolderSchemaMixin.ts +38 -0
  217. package/src/js/generated/ProtoPropertyHolderSchemaMixin.ts +23 -0
  218. package/src/js/generated/PseudopotentialMetaPropertySchemaMixin.ts +54 -0
  219. package/src/js/generated/README.md +27 -0
  220. package/src/js/generated/ReactionEnergyBarrierPropertySchemaMixin.ts +27 -0
  221. package/src/js/generated/ReactionEnergyProfilePropertySchemaMixin.ts +37 -0
  222. package/src/js/generated/StressTensorPropertySchemaMixin.ts +26 -0
  223. package/src/js/generated/SurfaceEnergyPropertySchemaMixin.ts +26 -0
  224. package/src/js/generated/TotalEnergyContributionsPropertySchemaMixin.ts +80 -0
  225. package/src/js/generated/TotalEnergyPropertySchemaMixin.ts +26 -0
  226. package/src/js/generated/TotalForcePropertySchemaMixin.ts +26 -0
  227. package/src/js/generated/ValenceBandOffsetPropertySchemaMixin.ts +27 -0
  228. package/src/js/generated/WorkflowPropertySchemaMixin.ts +41 -0
  229. package/src/js/generated/ZeroPointEnergyPropertySchemaMixin.ts +27 -0
  230. package/src/js/holders/MetaPropertyHolder.ts +19 -0
  231. package/src/js/holders/PropertyHolder.ts +17 -0
  232. package/src/js/holders/ProtoPropertyHolder.ts +17 -0
  233. package/src/js/holders/mixins/MetaPropertyHolderMixin.ts +31 -0
  234. package/src/js/holders/mixins/PropertyHolderMixin.ts +55 -0
  235. package/src/js/holders/mixins/ProtoPropertyHolderMixin.ts +31 -0
  236. package/src/js/index.ts +21 -0
  237. package/src/js/meta_properties/PseudopotentialMetaProperty.ts +206 -0
  238. package/src/js/properties/include/mixins/2d_plot.ts +105 -0
  239. package/src/js/properties/non-scalar/AveragePotentialProfileProperty.ts +69 -0
  240. package/src/js/properties/non-scalar/BandGapsProperty.ts +65 -0
  241. package/src/js/properties/non-scalar/BandStructureProperty.ts +284 -0
  242. package/src/js/properties/non-scalar/ChargeDensityProfileProperty.ts +48 -0
  243. package/src/js/properties/non-scalar/DensityOfStatesProperty.ts +174 -0
  244. package/src/js/properties/non-scalar/DielectricTensorProperty.ts +153 -0
  245. package/src/js/properties/non-scalar/FileContentProperty.ts +27 -0
  246. package/src/js/properties/non-scalar/FinalStructureProperty.ts +25 -0
  247. package/src/js/properties/non-scalar/HubbardUProperty.ts +25 -0
  248. package/src/js/properties/non-scalar/HubbardVNNProperty.ts +25 -0
  249. package/src/js/properties/non-scalar/HubbardVProperty.ts +25 -0
  250. package/src/js/properties/non-scalar/IsRelaxedProperty.ts +27 -0
  251. package/src/js/properties/non-scalar/JupyterNotebookEndpointProperty.ts +26 -0
  252. package/src/js/properties/non-scalar/PhononDOSProperty.ts +57 -0
  253. package/src/js/properties/non-scalar/PhononDispersionsProperty.ts +46 -0
  254. package/src/js/properties/non-scalar/PotentialProfileProperty.ts +76 -0
  255. package/src/js/properties/non-scalar/ReactionEnergyProfileProperty.ts +48 -0
  256. package/src/js/properties/non-scalar/WorkflowProperty.ts +25 -0
  257. package/src/js/properties/non-scalar/convergence/ConvergenceElectronicProperty.ts +82 -0
  258. package/src/js/properties/non-scalar/convergence/ConvergenceIonicProperty.ts +62 -0
  259. package/src/js/properties/object/TotalEnergyContributionsProperty.ts +29 -0
  260. package/src/js/properties/scalar/FermiEnergyProperty.ts +25 -0
  261. package/src/js/properties/scalar/IonizationPotentialElementalProperty.ts +27 -0
  262. package/src/js/properties/scalar/PressureProperty.ts +27 -0
  263. package/src/js/properties/scalar/ReactionEnergyBarrierProperty.ts +29 -0
  264. package/src/js/properties/scalar/SurfaceEnergyProperty.ts +27 -0
  265. package/src/js/properties/scalar/TotalEnergyProperty.ts +27 -0
  266. package/src/js/properties/scalar/TotalForceProperty.ts +25 -0
  267. package/src/js/properties/scalar/ValenceBandOffsetProperty.ts +27 -0
  268. package/src/js/properties/scalar/ZeroPointEnergyProperty.ts +25 -0
  269. package/src/js/properties/tensor/AtomicForcesProperty.ts +27 -0
  270. package/src/js/properties/tensor/MagneticMomentsProperty.ts +27 -0
  271. package/src/js/properties/tensor/StressTensorProperty.ts +25 -0
  272. package/src/js/proto_properties/AtomicConstraintsProperty.ts +25 -0
  273. package/src/js/proto_properties/BoundaryConditionsProperty.ts +25 -0
  274. package/src/js/settings.ts +52 -0
  275. package/src/js/types.ts +24 -0
  276. package/tsconfig.json +3 -0
@@ -0,0 +1,25 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { FinalStructurePropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ type FinalStructurePropertySchemaMixin,
6
+ finalStructurePropertySchemaMixin,
7
+ } from "../../generated/FinalStructurePropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = FinalStructurePropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<FinalStructurePropertySchemaMixin>;
14
+
15
+ export default class FinalStructureProperty extends (Property as Base) implements Schema {
16
+ static readonly propertyName = PropertyName.final_structure;
17
+
18
+ static readonly propertyType = PropertyType.non_scalar;
19
+
20
+ constructor(config: Omit<Schema, "name">) {
21
+ super({ ...config, name: FinalStructureProperty.propertyName });
22
+ }
23
+ }
24
+
25
+ finalStructurePropertySchemaMixin(FinalStructureProperty.prototype);
@@ -0,0 +1,25 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { HubbardUParametersPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ type HubbardUPropertySchemaMixin,
6
+ hubbardUPropertySchemaMixin,
7
+ } from "../../generated/HubbardUPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = HubbardUParametersPropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<HubbardUPropertySchemaMixin>;
14
+
15
+ export default class HubbardUProperty extends (Property as Base) implements Schema {
16
+ static readonly propertyName = PropertyName.hubbard_u;
17
+
18
+ static readonly propertyType = PropertyType.non_scalar;
19
+
20
+ constructor(config: Omit<Schema, "name">) {
21
+ super({ ...config, name: HubbardUProperty.propertyName });
22
+ }
23
+ }
24
+
25
+ hubbardUPropertySchemaMixin(HubbardUProperty.prototype);
@@ -0,0 +1,25 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { HubbardVNNParametersPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ type HubbardVNNPropertySchemaMixin,
6
+ hubbardVNNPropertySchemaMixin,
7
+ } from "../../generated/HubbardVNNPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = HubbardVNNParametersPropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<HubbardVNNPropertySchemaMixin>;
14
+
15
+ export default class HubbardVNNProperty extends (Property as Base) implements Schema {
16
+ static readonly propertyName = PropertyName.hubbard_v_nn;
17
+
18
+ static readonly propertyType = PropertyType.non_scalar;
19
+
20
+ constructor(config: Omit<Schema, "name">) {
21
+ super({ ...config, name: HubbardVNNProperty.propertyName });
22
+ }
23
+ }
24
+
25
+ hubbardVNNPropertySchemaMixin(HubbardVNNProperty.prototype);
@@ -0,0 +1,25 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { HubbardVParametersPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ type HubbardVPropertySchemaMixin,
6
+ hubbardVPropertySchemaMixin,
7
+ } from "../../generated/HubbardVPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = HubbardVParametersPropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<HubbardVPropertySchemaMixin>;
14
+
15
+ export default class HubbardVProperty extends (Property as Base) implements Schema {
16
+ static readonly propertyName = PropertyName.hubbard_v;
17
+
18
+ static readonly propertyType = PropertyType.non_scalar;
19
+
20
+ constructor(config: Omit<Schema, "name">) {
21
+ super({ ...config, name: HubbardVProperty.propertyName });
22
+ }
23
+ }
24
+
25
+ hubbardVPropertySchemaMixin(HubbardVProperty.prototype);
@@ -0,0 +1,27 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { IsRelaxedPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ type IsRelaxedPropertySchemaMixin,
6
+ isRelaxedPropertySchemaMixin,
7
+ } from "../../generated/IsRelaxedPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = IsRelaxedPropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<IsRelaxedPropertySchemaMixin>;
14
+
15
+ export default class IsRelaxedProperty extends (Property as Base) implements Schema {
16
+ static readonly isRefined = true;
17
+
18
+ static readonly propertyName = PropertyName.is_relaxed;
19
+
20
+ static readonly propertyType = PropertyType.non_scalar;
21
+
22
+ constructor(config: Omit<Schema, "name">) {
23
+ super({ ...config, name: IsRelaxedProperty.propertyName });
24
+ }
25
+ }
26
+
27
+ isRelaxedPropertySchemaMixin(IsRelaxedProperty.prototype);
@@ -0,0 +1,26 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { JupyterNotebookEndpointPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ JupyterNotebookEndpointPropertySchemaMixin,
6
+ jupyterNotebookEndpointPropertySchemaMixin,
7
+ } from "../../generated/JupyterNotebookEndpointPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = JupyterNotebookEndpointPropertySchema;
12
+ type Base = typeof Property<Schema> & Constructor<JupyterNotebookEndpointPropertySchemaMixin>;
13
+
14
+ class JupyterNotebookEndpointProperty extends (Property as Base) implements Schema {
15
+ static readonly propertyName = PropertyName.jupyter_notebook_endpoint;
16
+
17
+ static readonly propertyType = PropertyType.non_scalar;
18
+
19
+ constructor(config: Omit<Schema, "name">) {
20
+ super({ ...config, name: JupyterNotebookEndpointProperty.propertyName });
21
+ }
22
+ }
23
+
24
+ jupyterNotebookEndpointPropertySchemaMixin(JupyterNotebookEndpointProperty.prototype);
25
+
26
+ export default JupyterNotebookEndpointProperty;
@@ -0,0 +1,57 @@
1
+ /* eslint-disable class-methods-use-this */
2
+ // eslint-disable-next-line max-classes-per-file
3
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
4
+ import type { PhononDensityOfStatesPropertySchema } from "@mat3ra/esse/dist/js/types";
5
+ import type { Options } from "highcharts";
6
+
7
+ import { type FormatterScope } from "../../charts/highcharts";
8
+ import {
9
+ PhononDOSPropertySchemaMixin,
10
+ phononDOSPropertySchemaMixin,
11
+ } from "../../generated/PhononDOSPropertySchemaMixin";
12
+ import Property from "../../Property";
13
+ import { PropertyName, PropertyType } from "../../settings";
14
+ import { DensityOfStatesConfig } from "./DensityOfStatesProperty";
15
+
16
+ type Schema = PhononDensityOfStatesPropertySchema;
17
+
18
+ class PhononDOSConfig extends DensityOfStatesConfig {
19
+ tooltipFormatter() {
20
+ // eslint-disable-next-line func-names
21
+ return function (this: FormatterScope) {
22
+ return (
23
+ "<b>state:</b> " +
24
+ this.series.name +
25
+ "<br>" +
26
+ "<b>energy:</b> " +
27
+ this.key.toFixed(4) +
28
+ "<br>" +
29
+ "<b>value: </b> " +
30
+ this.y.toFixed(4)
31
+ );
32
+ };
33
+ }
34
+ }
35
+
36
+ type Base = typeof Property<Schema> & Constructor<PhononDOSPropertySchemaMixin>;
37
+
38
+ export default class PhononDOSProperty extends (Property as Base) implements Schema {
39
+ readonly chartConfig: Options;
40
+
41
+ readonly subtitle: string = "Phonon Density Of States";
42
+
43
+ readonly yAxisTitle: string = `Density Of States (${this.yAxis.units})`;
44
+
45
+ readonly xAxisTitle: string = `Frequency (${this.xAxis.units})`;
46
+
47
+ static readonly propertyName = PropertyName.phonon_dos;
48
+
49
+ static readonly propertyType = PropertyType.non_scalar;
50
+
51
+ constructor(config: Omit<Schema, "name">) {
52
+ super({ ...config, name: PhononDOSProperty.propertyName });
53
+ this.chartConfig = new PhononDOSConfig(this).config;
54
+ }
55
+ }
56
+
57
+ phononDOSPropertySchemaMixin(PhononDOSProperty.prototype);
@@ -0,0 +1,46 @@
1
+ /* eslint-disable class-methods-use-this */
2
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
3
+ import type { PhononBandStructurePropertySchema } from "@mat3ra/esse/dist/js/types";
4
+ import type { KPointPath } from "@mat3ra/made/dist/js/lattice/reciprocal/lattice_reciprocal";
5
+ import type { Options } from "highcharts";
6
+
7
+ import {
8
+ PhononDispersionsPropertySchemaMixin,
9
+ phononDispersionsPropertySchemaMixin,
10
+ } from "../../generated/PhononDispersionsPropertySchemaMixin";
11
+ import Property from "../../Property";
12
+ import { PropertyName, PropertyType } from "../../settings";
13
+ import { type XDataArrayNested } from "../include/mixins/2d_plot";
14
+ import { BandStructureConfig } from "./BandStructureProperty";
15
+
16
+ class PhononDispersionsConfig extends BandStructureConfig {
17
+ tooltipFormatter(xDataArray: XDataArrayNested, yAxisName = "frequency") {
18
+ return super.tooltipFormatter(xDataArray, yAxisName);
19
+ }
20
+ }
21
+
22
+ type Schema = PhononBandStructurePropertySchema;
23
+ type Base = typeof Property<Schema> & Constructor<PhononDispersionsPropertySchemaMixin>;
24
+
25
+ class PhononDispersionsProperty extends (Property as Base) implements Schema {
26
+ static readonly propertyName = PropertyName.phonon_dispersions;
27
+
28
+ static readonly propertyType = PropertyType.non_scalar;
29
+
30
+ readonly subtitle = "Phonon Dispersions";
31
+
32
+ readonly yAxisTitle = `Frequency (${this.yAxis.units})`;
33
+
34
+ readonly chartConfig: Options;
35
+
36
+ constructor(config: Omit<Schema, "name"> & { pointsPath?: KPointPath }) {
37
+ super({ ...config, name: PhononDispersionsProperty.propertyName });
38
+ this.chartConfig = new PhononDispersionsConfig(this, {
39
+ pointsPath: config.pointsPath,
40
+ }).config;
41
+ }
42
+ }
43
+
44
+ phononDispersionsPropertySchemaMixin(PhononDispersionsProperty.prototype);
45
+
46
+ export default PhononDispersionsProperty;
@@ -0,0 +1,76 @@
1
+ /* eslint-disable class-methods-use-this */
2
+ /* eslint-disable max-classes-per-file */
3
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
4
+ import type { PotentialProfilePropertySchema } from "@mat3ra/esse/dist/js/types";
5
+ import type { Options } from "highcharts";
6
+ import zip from "lodash/zip";
7
+
8
+ import {
9
+ PotentialProfilePropertySchemaMixin,
10
+ potentialProfilePropertySchemaMixin,
11
+ } from "../../generated/PotentialProfilePropertySchemaMixin";
12
+ import Property from "../../Property";
13
+ import { PropertyName, PropertyType } from "../../settings";
14
+ import { TwoDimensionalHighChartConfigMixin } from "../include/mixins/2d_plot";
15
+
16
+ const NAMES = {
17
+ 0: "averageVHartree",
18
+ 1: "averageVLocal",
19
+ 2: "averageVHartreePlusLocal",
20
+ };
21
+
22
+ type Schema = PotentialProfilePropertySchema;
23
+
24
+ export class PotentialProfileConfig extends TwoDimensionalHighChartConfigMixin {
25
+ readonly tooltipXAxisName: string = "z coordinate";
26
+
27
+ readonly tooltipYAxisName: string = "energy";
28
+
29
+ get series() {
30
+ return this.yDataSeries.map((item, index) => {
31
+ return {
32
+ animation: false,
33
+ name: NAMES[index as keyof typeof NAMES],
34
+ data: zip(this.xDataArray, item) as [number, number][],
35
+ };
36
+ });
37
+ }
38
+
39
+ get overrideConfig() {
40
+ return {
41
+ ...super.overrideConfig,
42
+ legend: {
43
+ layout: "horizontal",
44
+ align: "center",
45
+ verticalAlign: "bottom",
46
+ borderWidth: 0,
47
+ },
48
+ };
49
+ }
50
+ }
51
+
52
+ type Base = typeof Property<Schema> & Constructor<PotentialProfilePropertySchemaMixin>;
53
+
54
+ class PotentialProfileProperty extends (Property as Base) implements Schema {
55
+ readonly subtitle: string = "Potential Profile";
56
+
57
+ readonly yAxisTitle: string = `Energy (${this.yAxis.units})`;
58
+
59
+ readonly xAxisTitle: string = "Z Coordinate";
60
+
61
+ readonly chartConfig: Options = new PotentialProfileConfig(this).config;
62
+
63
+ static readonly isRefined = true;
64
+
65
+ static readonly propertyName = PropertyName.potential_profile;
66
+
67
+ static readonly propertyType = PropertyType.non_scalar;
68
+
69
+ constructor(config: Omit<Schema, "name">) {
70
+ super({ ...config, name: PotentialProfileProperty.propertyName });
71
+ }
72
+ }
73
+
74
+ potentialProfilePropertySchemaMixin(PotentialProfileProperty.prototype);
75
+
76
+ export default PotentialProfileProperty;
@@ -0,0 +1,48 @@
1
+ /* eslint-disable class-methods-use-this */
2
+ /* eslint-disable max-classes-per-file */
3
+
4
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
5
+ import type { ReactionEnergyProfilePropertySchema } from "@mat3ra/esse/dist/js/types";
6
+ import type { Options } from "highcharts";
7
+
8
+ import {
9
+ ReactionEnergyProfilePropertySchemaMixin,
10
+ reactionEnergyProfilePropertySchemaMixin,
11
+ } from "../../generated/ReactionEnergyProfilePropertySchemaMixin";
12
+ import Property from "../../Property";
13
+ import { PropertyName, PropertyType } from "../../settings";
14
+ import { TwoDimensionalHighChartConfigMixin } from "../include/mixins/2d_plot";
15
+
16
+ type Schema = ReactionEnergyProfilePropertySchema;
17
+
18
+ export class ReactionEnergyProfileConfig extends TwoDimensionalHighChartConfigMixin {
19
+ readonly tooltipXAxisName: string = "reaction coordinate";
20
+
21
+ readonly tooltipYAxisName: string = "energy";
22
+ }
23
+
24
+ type Base = typeof Property<Schema> & Constructor<ReactionEnergyProfilePropertySchemaMixin>;
25
+
26
+ class ReactionEnergyProfileProperty extends (Property as Base) implements Schema {
27
+ readonly subtitle: string = "Reaction Energy Profile";
28
+
29
+ readonly yAxisTitle: string = `Energy (${this.yAxis.units})`;
30
+
31
+ readonly xAxisTitle: string = "Reaction Coordinate";
32
+
33
+ readonly chartConfig: Options = new ReactionEnergyProfileConfig(this).config;
34
+
35
+ static readonly isRefined = true;
36
+
37
+ static readonly propertyName = PropertyName.reaction_energy_profile;
38
+
39
+ static readonly propertyType = PropertyType.non_scalar;
40
+
41
+ constructor(config: Omit<Schema, "name">) {
42
+ super({ ...config, name: ReactionEnergyProfileProperty.propertyName });
43
+ }
44
+ }
45
+
46
+ reactionEnergyProfilePropertySchemaMixin(ReactionEnergyProfileProperty.prototype);
47
+
48
+ export default ReactionEnergyProfileProperty;
@@ -0,0 +1,25 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { WorkflowPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ WorkflowPropertySchemaMixin,
6
+ workflowPropertySchemaMixin,
7
+ } from "../../generated/WorkflowPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = WorkflowPropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<WorkflowPropertySchemaMixin>;
14
+
15
+ export default class WorkflowProperty extends (Property as Base) implements Schema {
16
+ static readonly propertyName = PropertyName.workflow_pyml_predict;
17
+
18
+ static readonly propertyType = PropertyType.non_scalar;
19
+
20
+ constructor(config: Omit<Schema, "name">) {
21
+ super({ ...config, name: WorkflowProperty.propertyName });
22
+ }
23
+ }
24
+
25
+ workflowPropertySchemaMixin(WorkflowProperty.prototype);
@@ -0,0 +1,82 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { ConvergenceElectronicPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+ import type { AxisLabelFormatterOptions, IndividualSeriesOptions, Options } from "highcharts";
4
+
5
+ import { type FormatterScope, HighChartsConfig } from "../../../charts/highcharts";
6
+ import {
7
+ ConvergenceElectronicPropertySchemaMixin,
8
+ convergenceElectronicPropertySchemaMixin,
9
+ } from "../../../generated/ConvergenceElectronicPropertySchemaMixin";
10
+ import Property from "../../../Property";
11
+ import { PropertyName, PropertyType } from "../../../settings";
12
+
13
+ type Schema = ConvergenceElectronicPropertySchema;
14
+
15
+ class ConvergenceElectronicConfig extends HighChartsConfig {
16
+ constructor(monitor: ConvergenceElectronicProperty) {
17
+ let iteration = 1;
18
+
19
+ const series: IndividualSeriesOptions[] = monitor.data.map((values, index) => {
20
+ const name = parseInt(index.toString(), 10) + 1;
21
+ return {
22
+ name: `step-${name}`,
23
+ data: values.map((value) => {
24
+ // give points unique xAxis value to show multiple series properly in highCharts
25
+ const point: [number, number] = [iteration, Math.abs(value)];
26
+ iteration += 1;
27
+ return point;
28
+ }),
29
+ };
30
+ });
31
+
32
+ super({
33
+ subtitle: "Convergence Electronic",
34
+ yAxisTitle: `Convergence Electronic (${monitor.units})`,
35
+ xAxisTitle: "Iterations",
36
+ yAxisType: "logarithmic",
37
+ series,
38
+ legend: series.length > 1,
39
+ });
40
+ }
41
+
42
+ // eslint-disable-next-line class-methods-use-this
43
+ tooltipFormatter() {
44
+ // note 'this' below refers to Highcharts tooltip scope
45
+ // eslint-disable-next-line func-names
46
+ return function (this: FormatterScope) {
47
+ return "<b>iteration:</b> " + this.key + "<br><b>Δ E:</b> " + this.y.toExponential(1);
48
+ };
49
+ }
50
+
51
+ yAxis() {
52
+ return {
53
+ ...super.yAxis(),
54
+ labels: {
55
+ formatter(this: AxisLabelFormatterOptions) {
56
+ return this.value.toExponential();
57
+ },
58
+ },
59
+ };
60
+ }
61
+ }
62
+
63
+ type Base = typeof Property<Schema> & Constructor<ConvergenceElectronicPropertySchemaMixin>;
64
+
65
+ class ConvergenceElectronicProperty extends (Property as Base) implements Schema {
66
+ static readonly propertyName = PropertyName.convergence_electronic;
67
+
68
+ static readonly propertyType = PropertyType.non_scalar;
69
+
70
+ static readonly isConvergence = true;
71
+
72
+ readonly chartConfig: Options;
73
+
74
+ constructor(config: Omit<Schema, "name">) {
75
+ super({ ...config, name: ConvergenceElectronicProperty.propertyName });
76
+ this.chartConfig = new ConvergenceElectronicConfig(this).config;
77
+ }
78
+ }
79
+
80
+ convergenceElectronicPropertySchemaMixin(ConvergenceElectronicProperty.prototype);
81
+
82
+ export default ConvergenceElectronicProperty;
@@ -0,0 +1,62 @@
1
+ /* eslint-disable max-classes-per-file */
2
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
3
+ import type { ConvergenceIonicPropertySchema } from "@mat3ra/esse/dist/js/types";
4
+ import type { Options } from "highcharts";
5
+
6
+ import { type FormatterScope, HighChartsConfig } from "../../../charts/highcharts";
7
+ import {
8
+ ConvergenceIonicPropertySchemaMixin,
9
+ convergenceIonicPropertySchemaMixin,
10
+ } from "../../../generated/ConvergenceIonicPropertySchemaMixin";
11
+ import Property from "../../../Property";
12
+ import { PropertyName, PropertyType } from "../../../settings";
13
+
14
+ type Schema = ConvergenceIonicPropertySchema;
15
+
16
+ class ConvergenceIonicConfig extends HighChartsConfig {
17
+ constructor(monitor: ConvergenceIonicProperty) {
18
+ super({
19
+ subtitle: "Ionic Energy",
20
+ yAxisTitle: `Ionic Energy (${monitor.units})`,
21
+ xAxisTitle: "Steps",
22
+ yAxisType: "linear",
23
+ series: [
24
+ {
25
+ data: monitor.data.map((value, index) => {
26
+ return [Number(index) + 1, value.energy];
27
+ }),
28
+ },
29
+ ],
30
+ });
31
+ }
32
+
33
+ // eslint-disable-next-line class-methods-use-this
34
+ tooltipFormatter() {
35
+ // eslint-disable-next-line func-names
36
+ return function (this: FormatterScope) {
37
+ // eslint-disable-next-line no-useless-concat
38
+ return "<b>step:</b> " + this.key + "<br>" + "<b>Energy:</b> " + this.y.toFixed(4);
39
+ };
40
+ }
41
+ }
42
+
43
+ type Base = typeof Property<Schema> & Constructor<ConvergenceIonicPropertySchemaMixin>;
44
+
45
+ class ConvergenceIonicProperty extends (Property as Base) implements Schema {
46
+ static readonly propertyName = PropertyName.convergence_ionic;
47
+
48
+ static readonly propertyType = PropertyType.non_scalar;
49
+
50
+ static readonly isConvergence = true;
51
+
52
+ readonly chartConfig: Options;
53
+
54
+ constructor(config: Omit<Schema, "name">) {
55
+ super({ ...config, name: ConvergenceIonicProperty.propertyName });
56
+ this.chartConfig = new ConvergenceIonicConfig(this).config;
57
+ }
58
+ }
59
+
60
+ convergenceIonicPropertySchemaMixin(ConvergenceIonicProperty.prototype);
61
+
62
+ export default ConvergenceIonicProperty;
@@ -0,0 +1,29 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { TotalEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ TotalEnergyContributionsPropertySchemaMixin,
6
+ totalEnergyContributionsPropertySchemaMixin,
7
+ } from "../../generated/TotalEnergyContributionsPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = TotalEnergyContributionsPropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<TotalEnergyContributionsPropertySchemaMixin>;
14
+
15
+ export default class TotalEnergyContributionsProperty extends (Property as Base) implements Schema {
16
+ static readonly propertyType = PropertyType.object;
17
+
18
+ static readonly propertyName = PropertyName.total_energy_contributions;
19
+
20
+ constructor(config: Omit<Schema, "name">) {
21
+ super({ ...config, name: TotalEnergyContributionsProperty.propertyName });
22
+ }
23
+
24
+ get exchangeCorrelation() {
25
+ return this.exchange_correlation;
26
+ }
27
+ }
28
+
29
+ totalEnergyContributionsPropertySchemaMixin(TotalEnergyContributionsProperty.prototype);
@@ -0,0 +1,25 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { FermiEnergyPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ FermiEnergyPropertySchemaMixin,
6
+ fermiEnergyPropertySchemaMixin,
7
+ } from "../../generated/FermiEnergyPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = FermiEnergyPropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<FermiEnergyPropertySchemaMixin>;
14
+
15
+ export default class FermiEnergyProperty extends (Property as Base) implements Schema {
16
+ static readonly propertyName = PropertyName.fermi_energy;
17
+
18
+ static readonly propertyType = PropertyType.scalar;
19
+
20
+ constructor(config: Omit<Schema, "name">) {
21
+ super({ ...config, name: FermiEnergyProperty.propertyName });
22
+ }
23
+ }
24
+
25
+ fermiEnergyPropertySchemaMixin(FermiEnergyProperty.prototype);
@@ -0,0 +1,27 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { IonizationPotentialElementalPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ IonizationPotentialElementalPropertySchemaMixin,
6
+ ionizationPotentialElementalPropertySchemaMixin,
7
+ } from "../../generated/IonizationPotentialElementalPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = IonizationPotentialElementalPropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<IonizationPotentialElementalPropertySchemaMixin>;
14
+
15
+ class IonizationPotentialElementalProperty extends (Property as Base) implements Schema {
16
+ static readonly propertyName = PropertyName.ionization_potential;
17
+
18
+ static readonly propertyType = PropertyType.scalar;
19
+
20
+ constructor(config: Omit<Schema, "name">) {
21
+ super({ ...config, name: IonizationPotentialElementalProperty.propertyName });
22
+ }
23
+ }
24
+
25
+ ionizationPotentialElementalPropertySchemaMixin(IonizationPotentialElementalProperty.prototype);
26
+
27
+ export default IonizationPotentialElementalProperty;