stjames 0.0.14__tar.gz → 0.0.16__tar.gz

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.

Potentially problematic release.


This version of stjames might be problematic. Click here for more details.

Files changed (28) hide show
  1. {stjames-0.0.14/stjames.egg-info → stjames-0.0.16}/PKG-INFO +1 -1
  2. {stjames-0.0.14 → stjames-0.0.16}/pyproject.toml +1 -1
  3. {stjames-0.0.14 → stjames-0.0.16}/stjames/__init__.py +1 -0
  4. {stjames-0.0.14 → stjames-0.0.16}/stjames/diis_settings.py +1 -1
  5. {stjames-0.0.14 → stjames-0.0.16}/stjames/grid_settings.py +1 -1
  6. {stjames-0.0.14 → stjames-0.0.16}/stjames/methods.py +3 -0
  7. {stjames-0.0.14 → stjames-0.0.16}/stjames/molecule.py +1 -1
  8. {stjames-0.0.14 → stjames-0.0.16}/stjames/opt_settings.py +1 -1
  9. {stjames-0.0.14 → stjames-0.0.16}/stjames/scf_settings.py +2 -0
  10. {stjames-0.0.14 → stjames-0.0.16}/stjames/settings.py +8 -5
  11. stjames-0.0.16/stjames/solvent_settings.py +17 -0
  12. {stjames-0.0.14 → stjames-0.0.16/stjames.egg-info}/PKG-INFO +1 -1
  13. {stjames-0.0.14 → stjames-0.0.16}/stjames.egg-info/SOURCES.txt +1 -0
  14. {stjames-0.0.14 → stjames-0.0.16}/LICENSE +0 -0
  15. {stjames-0.0.14 → stjames-0.0.16}/README.md +0 -0
  16. {stjames-0.0.14 → stjames-0.0.16}/setup.cfg +0 -0
  17. {stjames-0.0.14 → stjames-0.0.16}/stjames/base.py +0 -0
  18. {stjames-0.0.14 → stjames-0.0.16}/stjames/basis_set.py +0 -0
  19. {stjames-0.0.14 → stjames-0.0.16}/stjames/calculation.py +0 -0
  20. {stjames-0.0.14 → stjames-0.0.16}/stjames/corrections.py +0 -0
  21. {stjames-0.0.14 → stjames-0.0.16}/stjames/int_settings.py +0 -0
  22. {stjames-0.0.14 → stjames-0.0.16}/stjames/modes.py +0 -0
  23. {stjames-0.0.14 → stjames-0.0.16}/stjames/status.py +0 -0
  24. {stjames-0.0.14 → stjames-0.0.16}/stjames/tasks.py +0 -0
  25. {stjames-0.0.14 → stjames-0.0.16}/stjames/thermochem_settings.py +0 -0
  26. {stjames-0.0.14 → stjames-0.0.16}/stjames.egg-info/dependency_links.txt +0 -0
  27. {stjames-0.0.14 → stjames-0.0.16}/stjames.egg-info/requires.txt +0 -0
  28. {stjames-0.0.14 → stjames-0.0.16}/stjames.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: stjames
3
- Version: 0.0.14
3
+ Version: 0.0.16
4
4
  Summary: standardized JSON atom/molecule encoding scheme
5
5
  Author-email: Corin Wagen <corin@rowansci.com>
6
6
  Project-URL: Homepage, https://github.com/rowansci/stjames
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "stjames"
3
- version = "0.0.14"
3
+ version = "0.0.16"
4
4
  description = "standardized JSON atom/molecule encoding scheme"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.8"
@@ -7,6 +7,7 @@ from .scf_settings import *
7
7
  from .int_settings import *
8
8
  from .opt_settings import *
9
9
  from .diis_settings import *
10
+ from .solvent_settings import *
10
11
  from .thermochem_settings import *
11
12
  from .grid_settings import *
12
13
  from .settings import *
@@ -15,7 +15,7 @@ class DIISStrategy(LowercaseStrEnum):
15
15
 
16
16
 
17
17
  class DIISSettings(Base):
18
- strategy: DIISStrategy = DIISStrategy.DIIS
18
+ strategy: DIISStrategy = DIISStrategy.ADIIS_DIIS
19
19
  subspace_size: pydantic.PositiveInt = 12
20
20
 
21
21
  # if it's a hybrid strategy, where do we transition?
@@ -14,7 +14,7 @@ class GridSettings(Base):
14
14
  radial_grid_type: RadialGridType = RadialGridType.LMG
15
15
  angular_num_points: pydantic.PositiveInt = 434
16
16
 
17
- weight_cutoff: pydantic.PositiveFloat = 1e-14
17
+ weight_cutoff: pydantic.PositiveFloat = 1e-11
18
18
 
19
19
  # for LMG
20
20
  radial_precision: pydantic.PositiveFloat = 1e-11
@@ -21,3 +21,6 @@ class Method(LowercaseStrEnum):
21
21
  PBE0 = "pbe0"
22
22
  B3LYP = "b3lyp"
23
23
  B3PW91 = "b3pw91"
24
+
25
+ # ML methods
26
+ AIMNET2_WB97MD3 = "aimnet2_wb97md3"
@@ -84,7 +84,7 @@ class Molecule(Base):
84
84
  if (num_electrons - num_unpaired_electrons) % 2 != 0:
85
85
  raise ValueError(
86
86
  f"The combination of {num_electrons} electrons, charge {self.charge}, and multiplicity {self.multiplicity} is impossible. "
87
- "Double-check the charge and multiplicity values given and verify that it's correct."
87
+ "Double-check the charge and multiplicity values given and verify that they are correct."
88
88
  )
89
89
 
90
90
  return self
@@ -19,7 +19,7 @@ class Constraint(Base):
19
19
 
20
20
 
21
21
  class OptimizationSettings(Base):
22
- max_steps: pydantic.PositiveInt = 100
22
+ max_steps: pydantic.PositiveInt = 250
23
23
  transition_state: bool = False
24
24
 
25
25
  # when are we converged?
@@ -5,6 +5,7 @@ from .base import Base, LowercaseStrEnum
5
5
  from .int_settings import IntSettings
6
6
  from .grid_settings import GridSettings
7
7
  from .diis_settings import DIISSettings
8
+ from .solvent_settings import SolventSettings
8
9
 
9
10
 
10
11
  class SCFInitMethod(LowercaseStrEnum):
@@ -28,6 +29,7 @@ class SCFSettings(Base):
28
29
  int_settings: IntSettings = IntSettings()
29
30
  grid_settings: GridSettings = GridSettings()
30
31
  diis_settings: DIISSettings = DIISSettings()
32
+ solvent_settings: SolventSettings = SolventSettings()
31
33
 
32
34
  #### orthonormalization
33
35
  orthonormalization: OrthonormalizationMethod = OrthonormalizationMethod.CANONICAL
@@ -117,8 +117,8 @@ def _assign_settings_by_mode(settings: Settings) -> None:
117
117
  scf_settings.rms_error_threshold = 1e-8
118
118
  scf_settings.max_error_threshold = 1e-6
119
119
  scf_settings.rebuild_frequency = 20
120
- scf_settings.int_settings.eri_threshold = 1e-8
121
- scf_settings.int_settings.csam_multiplier = 5.0
120
+ scf_settings.int_settings.eri_threshold = 1e-9
121
+ scf_settings.int_settings.csam_multiplier = 1.0
122
122
  scf_settings.int_settings.pair_overlap_threshold = 1e-9
123
123
  elif mode == Mode.CAREFUL:
124
124
  scf_settings.energy_threshold = 1e-6
@@ -149,17 +149,20 @@ def _assign_settings_by_mode(settings: Settings) -> None:
149
149
 
150
150
  opt_settings = settings.opt_settings
151
151
 
152
+ # constrained optimizations warrant loosening the settings a bit
153
+ has_constraints = (len(opt_settings.constraints) > 0)
154
+
152
155
  # cf. DLFIND manual, and https://www.cup.uni-muenchen.de/ch/compchem/geom/basic.html
153
156
  # and the discussion at https://geometric.readthedocs.io/en/latest/how-it-works.html
154
157
  if mode == Mode.RECKLESS:
155
158
  opt_settings.energy_threshold = 1e-5
156
159
  opt_settings.max_gradient_threshold = 4.5e-3
157
160
  opt_settings.rms_gradient_threshold = 3e-3
158
- elif mode == Mode.RAPID:
159
- opt_settings.energy_threshold = 1e-6
161
+ elif (mode == Mode.RAPID) or (mode == Mode.CAREFUL and has_constraints):
162
+ opt_settings.energy_threshold = 5e-5
160
163
  opt_settings.max_gradient_threshold = 2.5e-3
161
164
  opt_settings.rms_gradient_threshold = 1.7e-3
162
- elif mode == Mode.CAREFUL:
165
+ elif mode == Mode.CAREFUL or (mode == mode.METICULOUS and has_constraints):
163
166
  opt_settings.energy_threshold = 1e-6
164
167
  opt_settings.max_gradient_threshold = 4.5e-4
165
168
  opt_settings.rms_gradient_threshold = 3e-4
@@ -0,0 +1,17 @@
1
+ from typing import Optional, Any
2
+ import pydantic
3
+
4
+ from .base import Base, LowercaseStrEnum
5
+
6
+ class ImplicitSolventModel(LowercaseStrEnum):
7
+ CPCM = "cpcm"
8
+ NONE = "none"
9
+
10
+
11
+ class SolventSettings(Base):
12
+ model: ImplicitSolventModel = ImplicitSolventModel.NONE
13
+ epsilon: float = 78.36
14
+
15
+ grid_points_per_atom: pydantic.PositiveInt = 170
16
+ vdw_scale: pydantic.PositiveFloat = 1.2
17
+ weight_cutoff: pydantic.PositiveFloat = 1e-8
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: stjames
3
- Version: 0.0.14
3
+ Version: 0.0.16
4
4
  Summary: standardized JSON atom/molecule encoding scheme
5
5
  Author-email: Corin Wagen <corin@rowansci.com>
6
6
  Project-URL: Homepage, https://github.com/rowansci/stjames
@@ -15,6 +15,7 @@ stjames/molecule.py
15
15
  stjames/opt_settings.py
16
16
  stjames/scf_settings.py
17
17
  stjames/settings.py
18
+ stjames/solvent_settings.py
18
19
  stjames/status.py
19
20
  stjames/tasks.py
20
21
  stjames/thermochem_settings.py
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes