Molecular frequency-dependent response properties for arbitrary operators
Project description
pymolresponse
Molecular frequency-dependent response properties for arbitrary operators.
For documentation, go to https://berquist.github.io/pymolresponse/.
Currently, the goal is to provide:
- a pedagogical example of a working molecular orbital response program as an almost direct translation from equations to code,
- an implementation that gives "exact" results for testing, and
- an example of testing and documenting scientific code using modern software development tools.
Installation
To set up a conda environment with all dependencies for running, testing, and building the documentation, look under devtools.
Requirements
Testing
make pytest
Caveats
- RHF and UHF references only; no ROHF yet.
- Hartree-Fock and DFT only; no post-HF methods yet.
- Real orbitals only; no complex or generalized orbitals yet.
- Because the dimensioning of all arrays is based around the ov/vo space, methods that have non-zero contributions from the oo space (specifically derivatives of GIAOs/London orbitals w.r.t. the B-field) are not currently possible.
- An iterative solver exists for response properties, not transition properties, where only explicit formation and then diagonalization of the orbital Hessian is available.
- Linear response and single residues only.
- unrestricted diagonalization-based properties are not implemented/working
Desired features (in no specific order)
- Non-orthogonal orbitals. Requires switch from using MO energies to full Fock matrices.
- ROHF reference (compare against DALTON). Requires equations for the ROHF orbital Hessian.
- Post-HF support: MP2, CCSD, and CIS. Requires constriction of a Lagrangian.
- Support for GIAOs. Only requires re-dimensioning as long as AO matrix elements are available??
- At least one iterative method for each property type, for example DIIS for inversion and Davidson for diagonalization. Requires matrix-vector products.
- Quadratic response and associated single residues (needed for phosphorescence) and double residues (excited state expectation values and transition moments of linear operators). Requires permutation of linear response solution vectors.
Desired features that don't fix the caveats
- Open-ended response: see Ringholm, Jonsson, and Ruud.
- Finite-difference for testing and higher-order response.
- Interface to PyQuante and/or pyquante2.
- Jupyter Notebook-based tutorials.
- Argument type-checking using mypy.
References
Forthcoming...
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pymolresponse-0.3.0.tar.gz.
File metadata
- Download URL: pymolresponse-0.3.0.tar.gz
- Upload date:
- Size: 74.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d57b4b29341d08f73525a770c46eaf0b5d12fac0e207bc0cf9769ec596f69fcd
|
|
| MD5 |
663be00c553ed9aa11993ab515b9300d
|
|
| BLAKE2b-256 |
f25e518ab3cb08ec6d1d0c1eb50a3983f0654d7e7fe022ea161ab89cf4421389
|
File details
Details for the file pymolresponse-0.3.0-py3-none-any.whl.
File metadata
- Download URL: pymolresponse-0.3.0-py3-none-any.whl
- Upload date:
- Size: 94.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd5e7e2d8834cf9f4a4eb0e0d96fbf527bf301e9a2afe946555c35d3b3b68ea9
|
|
| MD5 |
d851537a64665c02a8a0315c8b24c348
|
|
| BLAKE2b-256 |
23e83ecff8f23633ac9d41d5b5060ddd2b5b804e80003ec440863f5cada23a93
|