react-cheminfo 0.23.0 → 0.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.
- package/README.md +39 -26
- package/lib/chrome/ui/HeaderToggle.d.ts +52 -0
- package/lib/chrome/ui/HeaderToggle.d.ts.map +1 -0
- package/lib/chrome/ui/HeaderToggle.js +31 -0
- package/lib/chrome/ui/HeaderToggle.js.map +1 -0
- package/lib/chrome/ui/index.d.ts +2 -0
- package/lib/chrome/ui/index.d.ts.map +1 -1
- package/lib/chrome/ui/index.js +1 -0
- package/lib/chrome/ui/index.js.map +1 -1
- package/lib/citation/core/gfn2Paper.d.ts +10 -0
- package/lib/citation/core/gfn2Paper.d.ts.map +1 -0
- package/lib/citation/core/gfn2Paper.js +28 -0
- package/lib/citation/core/gfn2Paper.js.map +1 -0
- package/lib/citation/core/index.d.ts +1 -0
- package/lib/citation/core/index.d.ts.map +1 -1
- package/lib/citation/core/index.js +1 -0
- package/lib/citation/core/index.js.map +1 -1
- package/lib/clipboard/ui/ClickToCopy.d.ts +8 -7
- package/lib/clipboard/ui/ClickToCopy.d.ts.map +1 -1
- package/lib/clipboard/ui/ClickToCopy.js +3 -3
- package/lib/clipboard/ui/ClickToCopy.js.map +1 -1
- package/lib/conformers.d.ts +27 -0
- package/lib/conformers.d.ts.map +1 -0
- package/lib/conformers.js +19 -0
- package/lib/conformers.js.map +1 -0
- package/lib/core.d.ts +1 -0
- package/lib/core.d.ts.map +1 -1
- package/lib/core.js +1 -0
- package/lib/core.js.map +1 -1
- package/lib/credits/core/credits.d.ts +12 -0
- package/lib/credits/core/credits.d.ts.map +1 -1
- package/lib/credits/core/credits.js +14 -0
- package/lib/credits/core/credits.js.map +1 -1
- package/lib/ecosystem/core/index.d.ts +1 -1
- package/lib/ecosystem/core/index.d.ts.map +1 -1
- package/lib/ecosystem/core/index.js.map +1 -1
- package/lib/ecosystem/core/sites.d.ts +11 -1
- package/lib/ecosystem/core/sites.d.ts.map +1 -1
- package/lib/ecosystem/core/sites.js +11 -4
- package/lib/ecosystem/core/sites.js.map +1 -1
- package/lib/ecosystem/ui/EcosystemLinks.d.ts.map +1 -1
- package/lib/ecosystem/ui/EcosystemLinks.js +3 -1
- package/lib/ecosystem/ui/EcosystemLinks.js.map +1 -1
- package/lib/ecosystem/ui/SiteTile.d.ts.map +1 -1
- package/lib/ecosystem/ui/SiteTile.js +3 -1
- package/lib/ecosystem/ui/SiteTile.js.map +1 -1
- package/lib/ecosystem/ui/glyphs.d.ts.map +1 -1
- package/lib/ecosystem/ui/glyphs.js +6 -5
- package/lib/ecosystem/ui/glyphs.js.map +1 -1
- package/lib/format/core/index.d.ts +1 -1
- package/lib/format/core/index.d.ts.map +1 -1
- package/lib/format/core/index.js +1 -1
- package/lib/format/core/index.js.map +1 -1
- package/lib/format/core/words.d.ts +9 -0
- package/lib/format/core/words.d.ts.map +1 -1
- package/lib/format/core/words.js +16 -0
- package/lib/format/core/words.js.map +1 -1
- package/lib/language/core/index.d.ts +3 -0
- package/lib/language/core/index.d.ts.map +1 -0
- package/lib/language/core/index.js +3 -0
- package/lib/language/core/index.js.map +1 -0
- package/lib/language/core/languageName.d.ts +8 -0
- package/lib/language/core/languageName.d.ts.map +1 -0
- package/lib/language/core/languageName.js +16 -0
- package/lib/language/core/languageName.js.map +1 -0
- package/lib/language/core/languageParam.d.ts +35 -0
- package/lib/language/core/languageParam.d.ts.map +1 -0
- package/lib/language/core/languageParam.js +67 -0
- package/lib/language/core/languageParam.js.map +1 -0
- package/lib/language/ui/SiteLanguage.d.ts +20 -0
- package/lib/language/ui/SiteLanguage.d.ts.map +1 -0
- package/lib/language/ui/SiteLanguage.js +14 -0
- package/lib/language/ui/SiteLanguage.js.map +1 -0
- package/lib/language/ui/index.d.ts +4 -0
- package/lib/language/ui/index.d.ts.map +1 -0
- package/lib/language/ui/index.js +3 -0
- package/lib/language/ui/index.js.map +1 -0
- package/lib/language/ui/siteLanguageContext.d.ts +12 -0
- package/lib/language/ui/siteLanguageContext.d.ts.map +1 -0
- package/lib/language/ui/siteLanguageContext.js +19 -0
- package/lib/language/ui/siteLanguageContext.js.map +1 -0
- package/lib/orbital/core/atomicOrbitals.d.ts +9 -1
- package/lib/orbital/core/atomicOrbitals.d.ts.map +1 -1
- package/lib/orbital/core/atomicOrbitals.js +7 -0
- package/lib/orbital/core/atomicOrbitals.js.map +1 -1
- package/lib/orbital/core/hydrogenic.d.ts +2 -1
- package/lib/orbital/core/hydrogenic.d.ts.map +1 -1
- package/lib/orbital/core/hydrogenic.js +2 -1
- package/lib/orbital/core/hydrogenic.js.map +1 -1
- package/lib/orbital/core/index.d.ts +1 -0
- package/lib/orbital/core/index.d.ts.map +1 -1
- package/lib/orbital/core/index.js +1 -0
- package/lib/orbital/core/index.js.map +1 -1
- package/lib/orbital/core/slaterEnergy.d.ts +35 -0
- package/lib/orbital/core/slaterEnergy.d.ts.map +1 -0
- package/lib/orbital/core/slaterEnergy.js +66 -0
- package/lib/orbital/core/slaterEnergy.js.map +1 -0
- package/lib/shared/ui/MenuButton.d.ts +3 -2
- package/lib/shared/ui/MenuButton.d.ts.map +1 -1
- package/lib/shared/ui/MenuButton.js +1 -1
- package/lib/shared/ui/MenuButton.js.map +1 -1
- package/lib/structure/core/conformerMinimise.d.ts +36 -0
- package/lib/structure/core/conformerMinimise.d.ts.map +1 -0
- package/lib/structure/core/conformerMinimise.js +81 -0
- package/lib/structure/core/conformerMinimise.js.map +1 -0
- package/lib/structure/core/conformerMinimum.d.ts +62 -0
- package/lib/structure/core/conformerMinimum.d.ts.map +1 -0
- package/lib/structure/core/conformerMinimum.js +90 -0
- package/lib/structure/core/conformerMinimum.js.map +1 -0
- package/lib/structure/core/conformerOptions.d.ts +62 -0
- package/lib/structure/core/conformerOptions.d.ts.map +1 -0
- package/lib/structure/core/conformerOptions.js +83 -0
- package/lib/structure/core/conformerOptions.js.map +1 -0
- package/lib/structure/core/conformerRefine.d.ts +104 -0
- package/lib/structure/core/conformerRefine.d.ts.map +1 -0
- package/lib/structure/core/conformerRefine.js +130 -0
- package/lib/structure/core/conformerRefine.js.map +1 -0
- package/lib/structure/core/conformerRefineRank.d.ts +36 -0
- package/lib/structure/core/conformerRefineRank.d.ts.map +1 -0
- package/lib/structure/core/conformerRefineRank.js +69 -0
- package/lib/structure/core/conformerRefineRank.js.map +1 -0
- package/lib/structure/core/conformerSession.d.ts +50 -0
- package/lib/structure/core/conformerSession.d.ts.map +1 -0
- package/lib/structure/core/conformerSession.js +88 -0
- package/lib/structure/core/conformerSession.js.map +1 -0
- package/lib/structure/core/conformerShape.d.ts +36 -0
- package/lib/structure/core/conformerShape.d.ts.map +1 -0
- package/lib/structure/core/conformerShape.js +150 -0
- package/lib/structure/core/conformerShape.js.map +1 -0
- package/lib/structure/core/conformers.d.ts +107 -0
- package/lib/structure/core/conformers.d.ts.map +1 -0
- package/lib/structure/core/conformers.js +149 -0
- package/lib/structure/core/conformers.js.map +1 -0
- package/lib/structure/core/geometryRelaxer.d.ts +66 -0
- package/lib/structure/core/geometryRelaxer.d.ts.map +1 -0
- package/lib/structure/core/geometryRelaxer.js +2 -0
- package/lib/structure/core/geometryRelaxer.js.map +1 -0
- package/lib/structure/core/index.d.ts +4 -0
- package/lib/structure/core/index.d.ts.map +1 -1
- package/lib/structure/core/index.js +2 -0
- package/lib/structure/core/index.js.map +1 -1
- package/lib/structure/core/moleculeCoordinates.d.ts +31 -0
- package/lib/structure/core/moleculeCoordinates.d.ts.map +1 -0
- package/lib/structure/core/moleculeCoordinates.js +80 -0
- package/lib/structure/core/moleculeCoordinates.js.map +1 -0
- package/lib/structure/core/molfileExport.d.ts +42 -0
- package/lib/structure/core/molfileExport.d.ts.map +1 -0
- package/lib/structure/core/molfileExport.js +47 -0
- package/lib/structure/core/molfileExport.js.map +1 -0
- package/lib/structure/core/oclResources.d.ts +12 -0
- package/lib/structure/core/oclResources.d.ts.map +1 -0
- package/lib/structure/core/oclResources.js +35 -0
- package/lib/structure/core/oclResources.js.map +1 -0
- package/lib/translate/core/catalog.d.ts +61 -0
- package/lib/translate/core/catalog.d.ts.map +1 -0
- package/lib/translate/core/catalog.js +49 -0
- package/lib/translate/core/catalog.js.map +1 -0
- package/lib/translate/core/checkTranslation.d.ts +32 -0
- package/lib/translate/core/checkTranslation.d.ts.map +1 -0
- package/lib/translate/core/checkTranslation.js +98 -0
- package/lib/translate/core/checkTranslation.js.map +1 -0
- package/lib/translate/core/contribution.d.ts +88 -0
- package/lib/translate/core/contribution.d.ts.map +1 -0
- package/lib/translate/core/contribution.js +14 -0
- package/lib/translate/core/contribution.js.map +1 -0
- package/lib/translate/core/index.d.ts +19 -0
- package/lib/translate/core/index.d.ts.map +1 -0
- package/lib/translate/core/index.js +15 -0
- package/lib/translate/core/index.js.map +1 -0
- package/lib/translate/core/marker.d.ts +45 -0
- package/lib/translate/core/marker.d.ts.map +1 -0
- package/lib/translate/core/marker.js +79 -0
- package/lib/translate/core/marker.js.map +1 -0
- package/lib/translate/core/mergeMessages.d.ts +35 -0
- package/lib/translate/core/mergeMessages.d.ts.map +1 -0
- package/lib/translate/core/mergeMessages.js +69 -0
- package/lib/translate/core/mergeMessages.js.map +1 -0
- package/lib/translate/core/session.d.ts +102 -0
- package/lib/translate/core/session.d.ts.map +1 -0
- package/lib/translate/core/session.js +162 -0
- package/lib/translate/core/session.js.map +1 -0
- package/lib/translate/core/start.d.ts +103 -0
- package/lib/translate/core/start.d.ts.map +1 -0
- package/lib/translate/core/start.js +92 -0
- package/lib/translate/core/start.js.map +1 -0
- package/lib/translate/core/suggestions.d.ts +77 -0
- package/lib/translate/core/suggestions.d.ts.map +1 -0
- package/lib/translate/core/suggestions.js +143 -0
- package/lib/translate/core/suggestions.js.map +1 -0
- package/lib/translate/core/tables.d.ts +100 -0
- package/lib/translate/core/tables.d.ts.map +1 -0
- package/lib/translate/core/tables.js +51 -0
- package/lib/translate/core/tables.js.map +1 -0
- package/lib/translate.d.ts +2 -0
- package/lib/translate.d.ts.map +1 -0
- package/lib/translate.js +6 -0
- package/lib/translate.js.map +1 -0
- package/lib/ui.d.ts +1 -0
- package/lib/ui.d.ts.map +1 -1
- package/lib/ui.js +1 -0
- package/lib/ui.js.map +1 -1
- package/lib/xtb/core/xtbRelaxer.d.ts +61 -0
- package/lib/xtb/core/xtbRelaxer.d.ts.map +1 -0
- package/lib/xtb/core/xtbRelaxer.js +108 -0
- package/lib/xtb/core/xtbRelaxer.js.map +1 -0
- package/lib/xtb.d.ts +11 -0
- package/lib/xtb.d.ts.map +1 -0
- package/lib/xtb.js +10 -0
- package/lib/xtb.js.map +1 -0
- package/package.json +18 -11
- package/src/chrome/ui/HeaderToggle.tsx +100 -0
- package/src/chrome/ui/index.ts +2 -0
- package/src/citation/core/gfn2Paper.ts +32 -0
- package/src/citation/core/index.ts +1 -0
- package/src/clipboard/ui/ClickToCopy.tsx +8 -7
- package/src/conformers.ts +87 -0
- package/src/core.ts +1 -0
- package/src/credits/core/credits.ts +16 -0
- package/src/ecosystem/core/index.ts +1 -0
- package/src/ecosystem/core/sites.ts +24 -4
- package/src/ecosystem/ui/EcosystemLinks.tsx +3 -1
- package/src/ecosystem/ui/SiteTile.tsx +3 -1
- package/src/ecosystem/ui/glyphs.tsx +16 -22
- package/src/format/core/index.ts +1 -1
- package/src/format/core/words.ts +19 -0
- package/src/language/core/index.ts +7 -0
- package/src/language/core/languageName.ts +16 -0
- package/src/language/core/languageParam.ts +70 -0
- package/src/language/ui/SiteLanguage.tsx +26 -0
- package/src/language/ui/index.ts +3 -0
- package/src/language/ui/siteLanguageContext.ts +20 -0
- package/src/orbital/core/atomicOrbitals.ts +17 -1
- package/src/orbital/core/hydrogenic.ts +2 -1
- package/src/orbital/core/index.ts +1 -0
- package/src/orbital/core/slaterEnergy.ts +83 -0
- package/src/shared/ui/MenuButton.tsx +4 -3
- package/src/structure/core/conformerMinimise.ts +99 -0
- package/src/structure/core/conformerMinimum.ts +125 -0
- package/src/structure/core/conformerOptions.ts +125 -0
- package/src/structure/core/conformerRefine.ts +234 -0
- package/src/structure/core/conformerRefineRank.ts +89 -0
- package/src/structure/core/conformerSession.ts +123 -0
- package/src/structure/core/conformerShape.ts +181 -0
- package/src/structure/core/conformers.ts +282 -0
- package/src/structure/core/geometryRelaxer.ts +71 -0
- package/src/structure/core/index.ts +13 -0
- package/src/structure/core/moleculeCoordinates.ts +93 -0
- package/src/structure/core/molfileExport.ts +62 -0
- package/src/structure/core/oclResources.ts +41 -0
- package/src/translate/core/catalog.ts +83 -0
- package/src/translate/core/checkTranslation.ts +128 -0
- package/src/translate/core/contribution.ts +99 -0
- package/src/translate/core/index.ts +72 -0
- package/src/translate/core/marker.ts +85 -0
- package/src/translate/core/mergeMessages.ts +74 -0
- package/src/translate/core/session.ts +250 -0
- package/src/translate/core/start.ts +183 -0
- package/src/translate/core/suggestions.ts +211 -0
- package/src/translate/core/tables.ts +120 -0
- package/src/translate.ts +5 -0
- package/src/ui.ts +1 -0
- package/src/xtb/core/xtbRelaxer.ts +160 -0
- package/src/xtb.ts +16 -0
- package/styles/chrome.css +61 -30
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiteLanguage.js","sourceRoot":"","sources":["../../../src/language/ui/SiteLanguage.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAa/D;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAClC,OAAO,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAuB,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/language/ui/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/language/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** What a site declares the page is being read in. */
|
|
2
|
+
export declare const SiteLanguageContext: import("react").Context<string | undefined>;
|
|
3
|
+
/**
|
|
4
|
+
* The language a link out of this page should name.
|
|
5
|
+
*
|
|
6
|
+
* Under a `SiteLanguage` it is what the site declared. Without one it is
|
|
7
|
+
* whatever the address itself names, so a site that has not been told anything
|
|
8
|
+
* still passes on the language it was opened in.
|
|
9
|
+
* @returns The tag, or `undefined` when no language is to be carried.
|
|
10
|
+
*/
|
|
11
|
+
export declare function useSiteLanguage(): string | undefined;
|
|
12
|
+
//# sourceMappingURL=siteLanguageContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siteLanguageContext.d.ts","sourceRoot":"","sources":["../../../src/language/ui/siteLanguageContext.ts"],"names":[],"mappings":"AAIA,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,6CAA+C,CAAC;AAEhF;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAIpD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createContext, use } from 'react';
|
|
2
|
+
import { readLanguageParam } from "../core/languageParam.js";
|
|
3
|
+
/** What a site declares the page is being read in. */
|
|
4
|
+
export const SiteLanguageContext = createContext(undefined);
|
|
5
|
+
/**
|
|
6
|
+
* The language a link out of this page should name.
|
|
7
|
+
*
|
|
8
|
+
* Under a `SiteLanguage` it is what the site declared. Without one it is
|
|
9
|
+
* whatever the address itself names, so a site that has not been told anything
|
|
10
|
+
* still passes on the language it was opened in.
|
|
11
|
+
* @returns The tag, or `undefined` when no language is to be carried.
|
|
12
|
+
*/
|
|
13
|
+
export function useSiteLanguage() {
|
|
14
|
+
const declared = use(SiteLanguageContext);
|
|
15
|
+
if (declared !== undefined)
|
|
16
|
+
return declared;
|
|
17
|
+
return readLanguageParam(globalThis.location?.search ?? '');
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=siteLanguageContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siteLanguageContext.js","sourceRoot":"","sources":["../../../src/language/ui/siteLanguageContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,sDAAsD;AACtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAqB,SAAS,CAAC,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,OAAO,iBAAiB,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -33,8 +33,16 @@ export interface AtomicOrbital {
|
|
|
33
33
|
effectiveCharge: number;
|
|
34
34
|
/** Shielding `S` those rules produced. */
|
|
35
35
|
shielding: number;
|
|
36
|
-
/** `−13.
|
|
36
|
+
/** `−13.606 Z_eff²/n²`, electronvolts: one rydberg times `Z_eff²/n²`. */
|
|
37
37
|
energy: number;
|
|
38
|
+
/**
|
|
39
|
+
* Energy to pull this electron off the atom, electronvolts: the difference
|
|
40
|
+
* of Slater total energies between the ion and the atom. `null` when the
|
|
41
|
+
* subshell is empty, there being no electron to remove. This, not
|
|
42
|
+
* {@link AtomicOrbital.energy}, is the number to compare with a measured
|
|
43
|
+
* ionisation energy — see `slaterEnergy.ts`.
|
|
44
|
+
*/
|
|
45
|
+
removalEnergy: number | null;
|
|
38
46
|
/** `n − ℓ − 1` spheres on which the wavefunction changes sign. */
|
|
39
47
|
radialNodes: number;
|
|
40
48
|
/** ℓ planes or cones on which it changes sign. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomicOrbitals.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/atomicOrbitals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAS5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"atomicOrbitals.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/atomicOrbitals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAS5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,mEAAmE;IACnE,CAAC,EAAE,MAAM,CAAC;IACV,4DAA4D;IAC5D,QAAQ,EAAE,YAAY,CAAC;IACvB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,oBAAyB,GACjC,aAAa,EAAE,CAgEjB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,EAAE,EAAE,MAAM,GACT,aAAa,GAAG,IAAI,CAKtB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,GACrB,oBAAoB,CAEtB;AAaD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,aAAa,EAAE,GACjC,MAAM,GAAG,IAAI,CAaf"}
|
|
@@ -16,6 +16,7 @@ import { meanRadius, orbitalEnergy, radialNodeCount } from "./hydrogenic.js";
|
|
|
16
16
|
import { MINIMUM_CHARGE, defaultMaximumShell, hundDistribution, outermostShell, withoutOutermostElectron, } from "./occupancy.js";
|
|
17
17
|
import { harmonicsOf, subshellLetter } from "./realHarmonics.js";
|
|
18
18
|
import { slaterScreening } from "./screening.js";
|
|
19
|
+
import { slaterRemovalEnergy } from "./slaterEnergy.js";
|
|
19
20
|
/**
|
|
20
21
|
* Every orbital of an element, in Madelung (roughly energetic) order.
|
|
21
22
|
* @param atomicNumber - Proton count, 1 to 118.
|
|
@@ -52,6 +53,11 @@ export function atomicOrbitalsOf(atomicNumber, options = {}) {
|
|
|
52
53
|
l: subshell.l,
|
|
53
54
|
charge,
|
|
54
55
|
};
|
|
56
|
+
// Once per subshell, not once per harmonic: the seven orbitals of an f
|
|
57
|
+
// subshell share one removal energy.
|
|
58
|
+
const removalEnergy = subshellElectrons === 0
|
|
59
|
+
? null
|
|
60
|
+
: slaterRemovalEnergy(atomicNumber, configuration, subshell);
|
|
55
61
|
const harmonics = harmonicsOf(subshell.l);
|
|
56
62
|
const spread = hundDistribution(subshellElectrons, harmonics.length);
|
|
57
63
|
for (let index = 0; index < harmonics.length; index++) {
|
|
@@ -67,6 +73,7 @@ export function atomicOrbitalsOf(atomicNumber, options = {}) {
|
|
|
67
73
|
effectiveCharge: charge,
|
|
68
74
|
shielding: screening.shielding,
|
|
69
75
|
energy: orbitalEnergy(parameters),
|
|
76
|
+
removalEnergy,
|
|
70
77
|
radialNodes: radialNodeCount(parameters),
|
|
71
78
|
angularNodes: subshell.l,
|
|
72
79
|
meanRadius: meanRadius(parameters),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomicOrbitals.js","sourceRoot":"","sources":["../../../src/orbital/core/atomicOrbitals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"atomicOrbitals.js","sourceRoot":"","sources":["../../../src/orbital/core/atomicOrbitals.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,8 @@ export declare function radialNodeCount(parameters: HydrogenicParameters): numbe
|
|
|
37
37
|
*/
|
|
38
38
|
export declare function meanRadius(parameters: HydrogenicParameters): number;
|
|
39
39
|
/**
|
|
40
|
-
* Orbital energy in the hydrogen-like model, `E = −13.
|
|
40
|
+
* Orbital energy in the hydrogen-like model, `E = −13.606 Z²/n²` eV — one
|
|
41
|
+
* rydberg times `Z²/n²`.
|
|
41
42
|
* @param parameters - Which orbital.
|
|
42
43
|
* @returns The energy in electronvolts, always negative.
|
|
43
44
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrogenic.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/hydrogenic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,iEAAiE;AACjE,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,CAAC,EAAE,MAAM,CAAC;IACV,mDAAmD;IACnD,CAAC,EAAE,MAAM,CAAC;IACV,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAMnE;AAED
|
|
1
|
+
{"version":3,"file":"hydrogenic.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/hydrogenic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,iEAAiE;AACjE,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,CAAC,EAAE,MAAM,CAAC;IACV,mDAAmD;IACnD,CAAC,EAAE,MAAM,CAAC;IACV,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAMnE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAGtE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,oBAAoB,GAC/B,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAwB9B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,MAAM,GACf,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,oBAAoB,EAChC,KAAK,SAA6B,GACjC,MAAM,EAAE,CAmBV;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,MAAM,GACf,MAAM,CA0BR;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,oBAAoB,EAChC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ;IAAE,SAAS,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAc7E"}
|
|
@@ -36,7 +36,8 @@ export function meanRadius(parameters) {
|
|
|
36
36
|
(2 * Math.max(charge, 1e-6)));
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
-
* Orbital energy in the hydrogen-like model, `E = −13.
|
|
39
|
+
* Orbital energy in the hydrogen-like model, `E = −13.606 Z²/n²` eV — one
|
|
40
|
+
* rydberg times `Z²/n²`.
|
|
40
41
|
* @param parameters - Which orbital.
|
|
41
42
|
* @returns The energy in electronvolts, always negative.
|
|
42
43
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrogenic.js","sourceRoot":"","sources":["../../../src/orbital/core/hydrogenic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,QAAQ,GACT,MAAM,eAAe,CAAC;AAYvB;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,UAAgC;IAC9D,OAAO,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,UAAgC;IACzD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IACpC,OAAO,CACL,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"hydrogenic.js","sourceRoot":"","sources":["../../../src/orbital/core/hydrogenic.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,4 +23,5 @@ export type { AtomicSampleRequest, AtomicSampleResult, AtomicSampler, } from './
|
|
|
23
23
|
export { runAtomicSample } from './sample.ts';
|
|
24
24
|
export type { Screening } from './screening.ts';
|
|
25
25
|
export { groupRank, slaterScreening } from './screening.ts';
|
|
26
|
+
export { slaterRemovalEnergy, slaterTotalEnergy } from './slaterEnergy.ts';
|
|
26
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxE,YAAY,EACV,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxE,YAAY,EACV,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -11,4 +11,5 @@ export { radialDistribution } from "./radialDistribution.js";
|
|
|
11
11
|
export { REAL_HARMONICS, SUBSHELL_LETTERS, harmonicsOf, subshellLetter, } from "./realHarmonics.js";
|
|
12
12
|
export { runAtomicSample } from "./sample.js";
|
|
13
13
|
export { groupRank, slaterScreening } from "./screening.js";
|
|
14
|
+
export { slaterRemovalEnergy, slaterTotalEnergy } from "./slaterEnergy.js";
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/orbital/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/orbital/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What Slater's rules are actually good for: the energy it takes to pull one
|
|
3
|
+
* electron off the atom.
|
|
4
|
+
*
|
|
5
|
+
* The hydrogen-like orbital energy `−Ry Z_eff²/n²` is the model's own number
|
|
6
|
+
* and it orders the orbitals correctly, but it is not an ionisation energy and
|
|
7
|
+
* must never be read as one — it is 5.4× the measured value for neon, while
|
|
8
|
+
* being within 10% for lithium, so it is not even a constant factor off.
|
|
9
|
+
*
|
|
10
|
+
* Slater fitted his rules to *total* energies, and that is how they are used:
|
|
11
|
+
* add up `n Z_eff²/n²` over every electron of the atom, do the same for the ion
|
|
12
|
+
* with one electron gone — recomputing the shielding, which is the whole point,
|
|
13
|
+
* since the remaining electrons are screened by one fewer neighbour — and
|
|
14
|
+
* subtract. Over the first four periods that difference lands within a factor
|
|
15
|
+
* 0.74–1.81 of the measured first ionisation energy, against 0.9–5.4 for the
|
|
16
|
+
* orbital energy.
|
|
17
|
+
*/
|
|
18
|
+
import type { Subshell, SubshellOccupancy } from './electronConfiguration.ts';
|
|
19
|
+
/**
|
|
20
|
+
* Total electronic energy of a configuration in the Slater model.
|
|
21
|
+
* @param atomicNumber - Proton count, the `Z` each electron is screened from.
|
|
22
|
+
* @param configuration - Every occupied subshell.
|
|
23
|
+
* @returns The sum of `−Ry Z_eff²/n²` over every electron, electronvolts.
|
|
24
|
+
*/
|
|
25
|
+
export declare function slaterTotalEnergy(atomicNumber: number, configuration: readonly SubshellOccupancy[]): number;
|
|
26
|
+
/**
|
|
27
|
+
* Energy needed to take one electron out of a subshell and off the atom.
|
|
28
|
+
* @param atomicNumber - Proton count.
|
|
29
|
+
* @param configuration - Every occupied subshell of the neutral atom.
|
|
30
|
+
* @param subshell - The subshell the electron leaves.
|
|
31
|
+
* @returns `E(ion) − E(atom)`, electronvolts, positive for a bound electron.
|
|
32
|
+
* @throws {RangeError} When that subshell holds no electron to remove.
|
|
33
|
+
*/
|
|
34
|
+
export declare function slaterRemovalEnergy(atomicNumber: number, configuration: readonly SubshellOccupancy[], subshell: Subshell): number;
|
|
35
|
+
//# sourceMappingURL=slaterEnergy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slaterEnergy.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/slaterEnergy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG9E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,SAAS,iBAAiB,EAAE,GAC1C,MAAM,CAgBR;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,SAAS,iBAAiB,EAAE,EAC3C,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAqBR"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What Slater's rules are actually good for: the energy it takes to pull one
|
|
3
|
+
* electron off the atom.
|
|
4
|
+
*
|
|
5
|
+
* The hydrogen-like orbital energy `−Ry Z_eff²/n²` is the model's own number
|
|
6
|
+
* and it orders the orbitals correctly, but it is not an ionisation energy and
|
|
7
|
+
* must never be read as one — it is 5.4× the measured value for neon, while
|
|
8
|
+
* being within 10% for lithium, so it is not even a constant factor off.
|
|
9
|
+
*
|
|
10
|
+
* Slater fitted his rules to *total* energies, and that is how they are used:
|
|
11
|
+
* add up `n Z_eff²/n²` over every electron of the atom, do the same for the ion
|
|
12
|
+
* with one electron gone — recomputing the shielding, which is the whole point,
|
|
13
|
+
* since the remaining electrons are screened by one fewer neighbour — and
|
|
14
|
+
* subtract. Over the first four periods that difference lands within a factor
|
|
15
|
+
* 0.74–1.81 of the measured first ionisation energy, against 0.9–5.4 for the
|
|
16
|
+
* orbital energy.
|
|
17
|
+
*/
|
|
18
|
+
import { RYDBERG_ELECTRONVOLTS } from "./constants.js";
|
|
19
|
+
import { slaterScreening } from "./screening.js";
|
|
20
|
+
/**
|
|
21
|
+
* Total electronic energy of a configuration in the Slater model.
|
|
22
|
+
* @param atomicNumber - Proton count, the `Z` each electron is screened from.
|
|
23
|
+
* @param configuration - Every occupied subshell.
|
|
24
|
+
* @returns The sum of `−Ry Z_eff²/n²` over every electron, electronvolts.
|
|
25
|
+
*/
|
|
26
|
+
export function slaterTotalEnergy(atomicNumber, configuration) {
|
|
27
|
+
let energy = 0;
|
|
28
|
+
for (const occupied of configuration) {
|
|
29
|
+
const { effectiveCharge } = slaterScreening(atomicNumber, configuration, occupied);
|
|
30
|
+
energy -=
|
|
31
|
+
(occupied.electrons *
|
|
32
|
+
RYDBERG_ELECTRONVOLTS *
|
|
33
|
+
effectiveCharge *
|
|
34
|
+
effectiveCharge) /
|
|
35
|
+
(occupied.n * occupied.n);
|
|
36
|
+
}
|
|
37
|
+
return energy;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Energy needed to take one electron out of a subshell and off the atom.
|
|
41
|
+
* @param atomicNumber - Proton count.
|
|
42
|
+
* @param configuration - Every occupied subshell of the neutral atom.
|
|
43
|
+
* @param subshell - The subshell the electron leaves.
|
|
44
|
+
* @returns `E(ion) − E(atom)`, electronvolts, positive for a bound electron.
|
|
45
|
+
* @throws {RangeError} When that subshell holds no electron to remove.
|
|
46
|
+
*/
|
|
47
|
+
export function slaterRemovalEnergy(atomicNumber, configuration, subshell) {
|
|
48
|
+
const ion = [];
|
|
49
|
+
let found = false;
|
|
50
|
+
for (const occupied of configuration) {
|
|
51
|
+
if (occupied.n === subshell.n && occupied.l === subshell.l) {
|
|
52
|
+
found = true;
|
|
53
|
+
if (occupied.electrons === 1)
|
|
54
|
+
continue;
|
|
55
|
+
ion.push({ ...occupied, electrons: occupied.electrons - 1 });
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
ion.push(occupied);
|
|
59
|
+
}
|
|
60
|
+
if (!found) {
|
|
61
|
+
throw new RangeError(`the ${subshell.n}${'spdf'[subshell.l] ?? '?'} subshell holds no electron to remove`);
|
|
62
|
+
}
|
|
63
|
+
return (slaterTotalEnergy(atomicNumber, ion) -
|
|
64
|
+
slaterTotalEnergy(atomicNumber, configuration));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=slaterEnergy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slaterEnergy.js","sourceRoot":"","sources":["../../../src/orbital/core/slaterEnergy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,aAA2C;IAE3C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,MAAM,EAAE,eAAe,EAAE,GAAG,eAAe,CACzC,YAAY,EACZ,aAAa,EACb,QAAQ,CACT,CAAC;QACF,MAAM;YACJ,CAAC,QAAQ,CAAC,SAAS;gBACjB,qBAAqB;gBACrB,eAAe;gBACf,eAAe,CAAC;gBAClB,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAoB,EACpB,aAA2C,EAC3C,QAAkB;IAElB,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,IAAI,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC3D,KAAK,GAAG,IAAI,CAAC;YACb,IAAI,QAAQ,CAAC,SAAS,KAAK,CAAC;gBAAE,SAAS;YACvC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,UAAU,CAClB,OAAO,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,uCAAuC,CACrF,CAAC;IACJ,CAAC;IACD,OAAO,CACL,iBAAiB,CAAC,YAAY,EAAE,GAAG,CAAC;QACpC,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -3,8 +3,9 @@ import type { ReactElement } from 'react';
|
|
|
3
3
|
/** What every button of a site header takes, whatever its menu holds. */
|
|
4
4
|
export interface HeaderButtonProps {
|
|
5
5
|
/**
|
|
6
|
-
* Whether the
|
|
7
|
-
*
|
|
6
|
+
* Whether the text is left out of the button altogether, rather than only
|
|
7
|
+
* hidden: a bar that has run out of room drops the caret with it. The glyph
|
|
8
|
+
* names itself through its tooltip either way.
|
|
8
9
|
* @default false
|
|
9
10
|
*/
|
|
10
11
|
compact?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuButton.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/MenuButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAQzD,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC
|
|
1
|
+
{"version":3,"file":"MenuButton.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/MenuButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAQzD,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAC3C;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,IAAI,EAAE,YAAY,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAwB/D"}
|
|
@@ -13,6 +13,6 @@ const HOLDER_STYLE = {
|
|
|
13
13
|
*/
|
|
14
14
|
export function MenuButton(props) {
|
|
15
15
|
const { className, icon, label, menu, compact = false, placement = 'bottom-end', } = props;
|
|
16
|
-
return (_jsx("span", { className: className, style: HOLDER_STYLE, children: _jsx(PopoverNext, { placement: placement, content: menu, children: _jsx(Button, { variant: "minimal", icon: icon, endIcon: compact ? undefined : 'caret-down', text: compact ? undefined : label, "aria-label": label, title:
|
|
16
|
+
return (_jsx("span", { className: className, style: HOLDER_STYLE, children: _jsx(PopoverNext, { placement: placement, content: menu, children: _jsx(Button, { variant: "minimal", icon: icon, endIcon: compact ? undefined : 'caret-down', text: compact ? undefined : label, "aria-label": label, title: label }) }) }));
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=MenuButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuButton.js","sourceRoot":"","sources":["../../../src/shared/ui/MenuButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,YAAY,GAAkB;IAClC,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,QAAQ;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuButton.js","sourceRoot":"","sources":["../../../src/shared/ui/MenuButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,YAAY,GAAkB;IAClC,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,QAAQ;CACrB,CAAC;AA8BF;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EACJ,SAAS,EACT,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,GAAG,KAAK,EACf,SAAS,GAAG,YAAY,GACzB,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,eAAM,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,YAC7C,KAAC,WAAW,IAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,YAC9C,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,EAC3C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,gBACrB,KAAK,EACjB,KAAK,EAAE,KAAK,GACZ,GACU,GACT,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Molecule } from 'openchemlib';
|
|
2
|
+
import type { ConformerOptions } from './conformerOptions.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Relax one conformer in place and return its energy.
|
|
5
|
+
*
|
|
6
|
+
* Minimisation is best-effort. MMFF94 cannot type every element (boron, for
|
|
7
|
+
* one), so a conformer it refuses gets a `null` energy and a warning rather
|
|
8
|
+
* than an exception. A non-zero return code from `minimise()` is *not* a
|
|
9
|
+
* failure: ethyne returns 2 with a perfect geometry.
|
|
10
|
+
*
|
|
11
|
+
* Warnings count the conformers the generator handed back, kept or not, so one
|
|
12
|
+
* number never means two things — a row number would, once one is dropped.
|
|
13
|
+
* @param conformer - The conformer to relax. Mutated.
|
|
14
|
+
* @param options - Force field and iteration budget.
|
|
15
|
+
* @param produced - 1-based position of the conformer in the generator's output.
|
|
16
|
+
* @param warnings - Receives one sentence when the energy is unknown.
|
|
17
|
+
* @returns Total energy in kcal/mol, or `null` when none was computed.
|
|
18
|
+
*/
|
|
19
|
+
export declare function minimiseConformer(conformer: Molecule, options: ConformerOptions, produced: number, warnings: string[]): number | null;
|
|
20
|
+
/** What {@link rankByEnergy} reads and rewrites on a conformer. */
|
|
21
|
+
export interface RankedConformer {
|
|
22
|
+
id: number;
|
|
23
|
+
energy: number | null;
|
|
24
|
+
relativeEnergy: number | null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Order a set from the most stable conformer down, number it from one in that
|
|
28
|
+
* order, and measure every known energy from the lowest.
|
|
29
|
+
*
|
|
30
|
+
* A conformer without an energy ranks after every one that has one; equal
|
|
31
|
+
* energies, and conformers without one, keep the order they came in.
|
|
32
|
+
* @param conformers - The set. Each `id` and `relativeEnergy` is rewritten in place.
|
|
33
|
+
* @returns The same conformers, most stable first.
|
|
34
|
+
*/
|
|
35
|
+
export declare function rankByEnergy<T extends RankedConformer>(conformers: readonly T[]): T[];
|
|
36
|
+
//# sourceMappingURL=conformerMinimise.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformerMinimise.d.ts","sourceRoot":"","sources":["../../../src/structure/core/conformerMinimise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,GAAG,IAAI,CAqBf;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,EACpD,UAAU,EAAE,SAAS,CAAC,EAAE,GACvB,CAAC,EAAE,CAKL"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ForceFieldMMFF94 } from 'openchemlib';
|
|
2
|
+
import { ordinal } from "../../format/core/words.js";
|
|
3
|
+
/**
|
|
4
|
+
* Relax one conformer in place and return its energy.
|
|
5
|
+
*
|
|
6
|
+
* Minimisation is best-effort. MMFF94 cannot type every element (boron, for
|
|
7
|
+
* one), so a conformer it refuses gets a `null` energy and a warning rather
|
|
8
|
+
* than an exception. A non-zero return code from `minimise()` is *not* a
|
|
9
|
+
* failure: ethyne returns 2 with a perfect geometry.
|
|
10
|
+
*
|
|
11
|
+
* Warnings count the conformers the generator handed back, kept or not, so one
|
|
12
|
+
* number never means two things — a row number would, once one is dropped.
|
|
13
|
+
* @param conformer - The conformer to relax. Mutated.
|
|
14
|
+
* @param options - Force field and iteration budget.
|
|
15
|
+
* @param produced - 1-based position of the conformer in the generator's output.
|
|
16
|
+
* @param warnings - Receives one sentence when the energy is unknown.
|
|
17
|
+
* @returns Total energy in kcal/mol, or `null` when none was computed.
|
|
18
|
+
*/
|
|
19
|
+
export function minimiseConformer(conformer, options, produced, warnings) {
|
|
20
|
+
const algorithm = options.minimisation;
|
|
21
|
+
if (algorithm === 'none')
|
|
22
|
+
return null;
|
|
23
|
+
let energy;
|
|
24
|
+
try {
|
|
25
|
+
const forceField = new ForceFieldMMFF94(conformer, algorithm, {});
|
|
26
|
+
forceField.minimise({ maxIts: options.maxIterations });
|
|
27
|
+
energy = forceField.getTotalEnergy();
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
warnings.push(`The ${ordinal(produced)} conformer produced could not be minimised with ${algorithm} (${readable(error)}), so its energy is unknown.`);
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
if (!Number.isFinite(energy)) {
|
|
34
|
+
warnings.push(`The ${ordinal(produced)} conformer produced minimised to a non-finite ${algorithm} energy, so its energy is unknown.`);
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return energy;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Order a set from the most stable conformer down, number it from one in that
|
|
41
|
+
* order, and measure every known energy from the lowest.
|
|
42
|
+
*
|
|
43
|
+
* A conformer without an energy ranks after every one that has one; equal
|
|
44
|
+
* energies, and conformers without one, keep the order they came in.
|
|
45
|
+
* @param conformers - The set. Each `id` and `relativeEnergy` is rewritten in place.
|
|
46
|
+
* @returns The same conformers, most stable first.
|
|
47
|
+
*/
|
|
48
|
+
export function rankByEnergy(conformers) {
|
|
49
|
+
assignRelativeEnergies(conformers);
|
|
50
|
+
const ranked = conformers.toSorted(compareEnergy);
|
|
51
|
+
for (const [index, conformer] of ranked.entries())
|
|
52
|
+
conformer.id = index + 1;
|
|
53
|
+
return ranked;
|
|
54
|
+
}
|
|
55
|
+
function compareEnergy(a, b) {
|
|
56
|
+
if (a.energy === null)
|
|
57
|
+
return b.energy === null ? 0 : 1;
|
|
58
|
+
if (b.energy === null)
|
|
59
|
+
return -1;
|
|
60
|
+
return a.energy - b.energy;
|
|
61
|
+
}
|
|
62
|
+
function assignRelativeEnergies(conformers) {
|
|
63
|
+
let lowest = Number.POSITIVE_INFINITY;
|
|
64
|
+
for (const conformer of conformers) {
|
|
65
|
+
const energy = conformer.energy;
|
|
66
|
+
if (energy !== null && energy < lowest)
|
|
67
|
+
lowest = energy;
|
|
68
|
+
}
|
|
69
|
+
if (lowest === Number.POSITIVE_INFINITY)
|
|
70
|
+
return;
|
|
71
|
+
for (const conformer of conformers) {
|
|
72
|
+
const energy = conformer.energy;
|
|
73
|
+
if (energy !== null)
|
|
74
|
+
conformer.relativeEnergy = energy - lowest;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function readable(error) {
|
|
78
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
79
|
+
return message.replace(/^\w+\$\w+: /, '');
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=conformerMinimise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformerMinimise.js","sourceRoot":"","sources":["../../../src/structure/core/conformerMinimise.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { ConformerShape } from './conformerShape.ts';
|
|
2
|
+
/** What {@link isKeptMinimum} and {@link minimisedShapes} read of a conformer. */
|
|
3
|
+
export interface KeptConformer {
|
|
4
|
+
/** Total energy in kcal/mol, `null` when it was not computed. */
|
|
5
|
+
energy: number | null;
|
|
6
|
+
/** The 3D structure, as molfile text. */
|
|
7
|
+
molfile: {
|
|
8
|
+
data: string;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Energy gap, in kcal/mol, under which two minimised conformers can be the
|
|
13
|
+
* same minimum. Copies of one minimum agree to about 1e-7; distinct minima
|
|
14
|
+
* that close in energy differ in shape by more than a percent.
|
|
15
|
+
*/
|
|
16
|
+
export declare const SAME_ENERGY_TOLERANCE = 0.001;
|
|
17
|
+
/** Gap between principal moments, relative to the largest, under which two shapes are one. */
|
|
18
|
+
export declare const SAME_SHAPE_TOLERANCE = 0.001;
|
|
19
|
+
/**
|
|
20
|
+
* Gap in chirality under which two shapes are one. Copies of one minimum agree
|
|
21
|
+
* to about 1e-4 and a shape that is its own mirror image reads within 1e-3 of
|
|
22
|
+
* zero, while the mirror images of a chiral minimum usually sit tenths apart.
|
|
23
|
+
*/
|
|
24
|
+
export declare const SAME_CHIRALITY_TOLERANCE = 0.01;
|
|
25
|
+
/**
|
|
26
|
+
* Whether two minimised conformers are one energy minimum: the same energy,
|
|
27
|
+
* the same principal moments and the same chirality. The two mirror-image
|
|
28
|
+
* gauche butanes are two minima; the two chairs of cyclohexane, each its own
|
|
29
|
+
* mirror image, are one.
|
|
30
|
+
* @param energyA - Total energy of the first conformer, kcal/mol.
|
|
31
|
+
* @param shapeA - Shape of the first conformer.
|
|
32
|
+
* @param energyB - Total energy of the second conformer, kcal/mol.
|
|
33
|
+
* @param shapeB - Shape of the second conformer.
|
|
34
|
+
* @returns `true` when both agree within {@link SAME_ENERGY_TOLERANCE}, {@link SAME_SHAPE_TOLERANCE} and {@link SAME_CHIRALITY_TOLERANCE}.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isSameMinimum(energyA: number, shapeA: ConformerShape, energyB: number, shapeB: ConformerShape): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Whether two conformers have the same shape: the same principal moments and
|
|
39
|
+
* the same chirality, energies not consulted. Two mirror images share the
|
|
40
|
+
* moments and not the chirality, so they are two shapes.
|
|
41
|
+
* @param shapeA - Shape of one conformer.
|
|
42
|
+
* @param shapeB - Shape of the other.
|
|
43
|
+
* @returns `true` when both agree within {@link SAME_SHAPE_TOLERANCE} and {@link SAME_CHIRALITY_TOLERANCE}.
|
|
44
|
+
*/
|
|
45
|
+
export declare function isSameShape(shapeA: ConformerShape, shapeB: ConformerShape): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Whether a minimised conformer lands in a minimum one of `kept` already holds.
|
|
48
|
+
* @param energy - Total energy of the candidate, kcal/mol.
|
|
49
|
+
* @param shape - Shape of the candidate.
|
|
50
|
+
* @param kept - The conformers kept so far.
|
|
51
|
+
* @param keptShapes - Their shapes, index for index; `null` where there is no energy.
|
|
52
|
+
* @returns `true` when one of them is the same minimum.
|
|
53
|
+
*/
|
|
54
|
+
export declare function isKeptMinimum(energy: number, shape: ConformerShape, kept: readonly KeptConformer[], keptShapes: ReadonlyArray<ConformerShape | null>): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Shapes of conformers read back from their molfiles, so a continuation
|
|
57
|
+
* compares new conformers with the ones a previous run kept.
|
|
58
|
+
* @param conformers - Conformers of an earlier run.
|
|
59
|
+
* @returns Their shapes, index for index; `null` for one without an energy.
|
|
60
|
+
*/
|
|
61
|
+
export declare function minimisedShapes(conformers: readonly KeptConformer[]): Array<ConformerShape | null>;
|
|
62
|
+
//# sourceMappingURL=conformerMinimum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformerMinimum.d.ts","sourceRoot":"","sources":["../../../src/structure/core/conformerMinimum.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,yCAAyC;IACzC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAO,CAAC;AAE1C,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,QAAO,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,GACrB,OAAO,CAGT;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,GACrB,OAAO,CAcT;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,SAAS,aAAa,EAAE,EAC9B,UAAU,EAAE,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,GAC/C,OAAO,CAaT;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,SAAS,aAAa,EAAE,GACnC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAU9B"}
|