digichem-core 6.0.0rc1__py3-none-any.whl
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.
- digichem/__init__.py +75 -0
- digichem/basis.py +116 -0
- digichem/config/README +3 -0
- digichem/config/__init__.py +5 -0
- digichem/config/base.py +321 -0
- digichem/config/locations.py +14 -0
- digichem/config/parse.py +90 -0
- digichem/config/util.py +117 -0
- digichem/data/README +4 -0
- digichem/data/batoms/COPYING +18 -0
- digichem/data/batoms/LICENSE +674 -0
- digichem/data/batoms/README +2 -0
- digichem/data/batoms/__init__.py +0 -0
- digichem/data/batoms/batoms-renderer.py +351 -0
- digichem/data/config/digichem.yaml +714 -0
- digichem/data/functionals.csv +15 -0
- digichem/data/solvents.csv +185 -0
- digichem/data/tachyon/COPYING.md +5 -0
- digichem/data/tachyon/LICENSE +30 -0
- digichem/data/tachyon/tachyon_LINUXAMD64 +0 -0
- digichem/data/vmd/common.tcl +468 -0
- digichem/data/vmd/generate_combined_orbital_images.tcl +70 -0
- digichem/data/vmd/generate_density_images.tcl +45 -0
- digichem/data/vmd/generate_dipole_images.tcl +68 -0
- digichem/data/vmd/generate_orbital_images.tcl +57 -0
- digichem/data/vmd/generate_spin_images.tcl +66 -0
- digichem/data/vmd/generate_structure_images.tcl +40 -0
- digichem/datas.py +14 -0
- digichem/exception/__init__.py +7 -0
- digichem/exception/base.py +133 -0
- digichem/exception/uncatchable.py +63 -0
- digichem/file/__init__.py +1 -0
- digichem/file/base.py +364 -0
- digichem/file/cube.py +284 -0
- digichem/file/fchk.py +94 -0
- digichem/file/prattle.py +277 -0
- digichem/file/types.py +97 -0
- digichem/image/__init__.py +6 -0
- digichem/image/base.py +113 -0
- digichem/image/excited_states.py +335 -0
- digichem/image/graph.py +293 -0
- digichem/image/orbitals.py +239 -0
- digichem/image/render.py +617 -0
- digichem/image/spectroscopy.py +797 -0
- digichem/image/structure.py +115 -0
- digichem/image/vmd.py +826 -0
- digichem/input/__init__.py +3 -0
- digichem/input/base.py +78 -0
- digichem/input/digichem_input.py +500 -0
- digichem/input/gaussian.py +140 -0
- digichem/log.py +179 -0
- digichem/memory.py +166 -0
- digichem/misc/__init__.py +4 -0
- digichem/misc/argparse.py +44 -0
- digichem/misc/base.py +61 -0
- digichem/misc/io.py +239 -0
- digichem/misc/layered_dict.py +285 -0
- digichem/misc/text.py +139 -0
- digichem/misc/time.py +73 -0
- digichem/parse/__init__.py +13 -0
- digichem/parse/base.py +220 -0
- digichem/parse/cclib.py +138 -0
- digichem/parse/dump.py +253 -0
- digichem/parse/gaussian.py +130 -0
- digichem/parse/orca.py +96 -0
- digichem/parse/turbomole.py +201 -0
- digichem/parse/util.py +523 -0
- digichem/result/__init__.py +6 -0
- digichem/result/alignment/AA.py +114 -0
- digichem/result/alignment/AAA.py +61 -0
- digichem/result/alignment/FAP.py +148 -0
- digichem/result/alignment/__init__.py +3 -0
- digichem/result/alignment/base.py +310 -0
- digichem/result/angle.py +153 -0
- digichem/result/atom.py +742 -0
- digichem/result/base.py +258 -0
- digichem/result/dipole_moment.py +332 -0
- digichem/result/emission.py +402 -0
- digichem/result/energy.py +323 -0
- digichem/result/excited_state.py +821 -0
- digichem/result/ground_state.py +94 -0
- digichem/result/metadata.py +644 -0
- digichem/result/multi.py +98 -0
- digichem/result/nmr.py +1086 -0
- digichem/result/orbital.py +647 -0
- digichem/result/result.py +244 -0
- digichem/result/soc.py +272 -0
- digichem/result/spectroscopy.py +514 -0
- digichem/result/tdm.py +267 -0
- digichem/result/vibration.py +167 -0
- digichem/test/__init__.py +6 -0
- digichem/test/conftest.py +4 -0
- digichem/test/test_basis.py +71 -0
- digichem/test/test_calculate.py +30 -0
- digichem/test/test_config.py +78 -0
- digichem/test/test_cube.py +369 -0
- digichem/test/test_exception.py +16 -0
- digichem/test/test_file.py +104 -0
- digichem/test/test_image.py +337 -0
- digichem/test/test_input.py +64 -0
- digichem/test/test_parsing.py +79 -0
- digichem/test/test_prattle.py +36 -0
- digichem/test/test_result.py +489 -0
- digichem/test/test_translate.py +112 -0
- digichem/test/util.py +207 -0
- digichem/translate.py +591 -0
- digichem_core-6.0.0rc1.dist-info/METADATA +96 -0
- digichem_core-6.0.0rc1.dist-info/RECORD +111 -0
- digichem_core-6.0.0rc1.dist-info/WHEEL +4 -0
- digichem_core-6.0.0rc1.dist-info/licenses/COPYING.md +10 -0
- digichem_core-6.0.0rc1.dist-info/licenses/LICENSE +11 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Contains classes for representing the ground state of a system.
|
|
3
|
+
|
|
4
|
+
This file is closely related to the excited_states.py file.
|
|
5
|
+
These definitions may change or move.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from digichem.result.excited_state import Energy_state
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Ground_state(Energy_state):
|
|
12
|
+
"""
|
|
13
|
+
Class for representing the ground state of a system/molecule.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
def __init__(self, charge, multiplicity, energy):
|
|
17
|
+
"""
|
|
18
|
+
Constructor for ground state objects.
|
|
19
|
+
|
|
20
|
+
:param charge: The charge of the ground states as a signed integer.
|
|
21
|
+
:param multiplicity: The multiplicity as an integer of float.
|
|
22
|
+
:param energy: The absolute energy of the GS in eV.
|
|
23
|
+
"""
|
|
24
|
+
# The 'level' refers to the ordering of energy states, the ground state is always the lowest so have level 0.
|
|
25
|
+
# Similarly, the multiplicity_level refers to the ordering of energy states that share the same multiplicity. Regardless of what multiplicity our GS has, we will be the lowest by definition.
|
|
26
|
+
# Energy is our energy above the GS, so that will always be 0.
|
|
27
|
+
super().__init__(level = 0, multiplicity = multiplicity, multiplicity_level = 0, energy = 0.0)
|
|
28
|
+
self.charge = charge
|
|
29
|
+
# Also save our absolute energy.
|
|
30
|
+
self.absolute_energy = energy
|
|
31
|
+
|
|
32
|
+
def __eq__(self, other):
|
|
33
|
+
"""
|
|
34
|
+
Is this ground state object equal to another?
|
|
35
|
+
"""
|
|
36
|
+
return self.charge == other.charge and self.multiplicity == other.multiplicity and self.energy == other.energy
|
|
37
|
+
|
|
38
|
+
def dump(self, digichem_options):
|
|
39
|
+
"""
|
|
40
|
+
Get a representation of this result object in primitive format.
|
|
41
|
+
"""
|
|
42
|
+
parent_dict = super().dump(digichem_options)
|
|
43
|
+
return {
|
|
44
|
+
"index": parent_dict['index'],
|
|
45
|
+
"symbol": parent_dict['symbol'],
|
|
46
|
+
"charge": self.charge,
|
|
47
|
+
"multiplicity": parent_dict['multiplicity'],
|
|
48
|
+
"multiplicity_index": parent_dict['multiplicity_index'],
|
|
49
|
+
# The 'energy' field from Energy_state is an excited state energy, relative to the ground state (so is always 0).
|
|
50
|
+
# Replace with total energy.
|
|
51
|
+
"energy": {
|
|
52
|
+
"value": float(self.absolute_energy),
|
|
53
|
+
"units": "eV"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@classmethod
|
|
58
|
+
def from_parser(self, parser):
|
|
59
|
+
"""
|
|
60
|
+
Create a Ground_state object from an output file parser.
|
|
61
|
+
|
|
62
|
+
As different energy types can be present in a single calculation, the following (arbitrary?) precedence is used:
|
|
63
|
+
1) Coupled-cluster energy.
|
|
64
|
+
2) The highest level Moller-Plesset energy.
|
|
65
|
+
3) SCF energy.
|
|
66
|
+
|
|
67
|
+
:param parser: An output file parser.
|
|
68
|
+
"""
|
|
69
|
+
return self.from_energies(parser.results.metadata.charge, parser.results.metadata.multiplicity, parser.results.energies)
|
|
70
|
+
|
|
71
|
+
@classmethod
|
|
72
|
+
def from_dump(self, data, result_set, options):
|
|
73
|
+
return self.from_energies(data['charge'], data['multiplicity'], result_set.energies)
|
|
74
|
+
|
|
75
|
+
@classmethod
|
|
76
|
+
def from_energies(self, charge, multiplicity, energies):
|
|
77
|
+
"""
|
|
78
|
+
Create a ground state object selecting from various lists of energies.
|
|
79
|
+
|
|
80
|
+
:param charge: Charge of the ground state.
|
|
81
|
+
:param multiplicity: Multiplicity of the ground state.
|
|
82
|
+
:param energies: List of energies.
|
|
83
|
+
"""
|
|
84
|
+
if len(energies.cc) > 0:
|
|
85
|
+
energy = energies.cc.final
|
|
86
|
+
elif len(energies.mp) > 0:
|
|
87
|
+
energy = energies.mp.final
|
|
88
|
+
elif len(energies.scf) > 0:
|
|
89
|
+
energy = energies.scf.final
|
|
90
|
+
else:
|
|
91
|
+
# We have no energies that we can understand. Give up.
|
|
92
|
+
return None
|
|
93
|
+
# Return our constructed object.
|
|
94
|
+
return self(charge, multiplicity, energy)
|