A unified framework for response theory at different levels of electronic-structure theory.
The theoretical background can be found in:
[1] Bin Gao and Magnus Ringholm, Unified Framework for Molecular Response Functions of Different Electronic-Structure Models, J. Phys. Chem. A 2025, 129, 3709-3721.
Reference [1] describes the computation of response functions by using
- Atomic orbital density matrix-based response theory
- Coupled-cluster response theory
[2] Bin Gao, Magnus Ringholm amd Kenneth Ruud, A unified framework for the application of response theory using different electronic-structure models, in manuscript 2026.
Reference [2] describes the computation of residues by using
- Atomic orbital density matrix-based response theory
- Coupled-cluster response theory
- Multi-configurational self-consistent field response theory
SymResponse is licensed under the Mozilla Public License Version 2.0. See the
LICENSE file for more information.
SymResponse depends on the symbolic computation crate Tinned, and is a reimplementation of [1] using the Rust programming language.
The legacy C++ implementation can be found in the symrsp-cxx branch.
cargo build -p symresponse_lib --releaseor
cargo build-libThe full API documentation can be generated with:
cargo doc -p symresponse_libTo open it in a browser:
cargo doc -p symresponse_lib --openExamples of using the SymResponse crate can be found in the tests folder:
cc_response.rsandcc_residue.rsdemonstrate the computation of response functions and residues at the level of coupled-cluster response theory.dao_response.rsanddao_residue.rsdemonstrate response function and residue computations within atomic orbital density matrix–based response theory.mcscf_response.rsandmcscf_residue.rsdemonstrate response function and residue computations within multi-configurational self-consistent field (MCSCF) response theory.orb_cc_response.rsdemonstrates response function computations within orbital-relaxed coupled-cluster response theory.
This project also provides a C-compatible interface in the symresponse_ffi
crate, allowing the library to be used from C and other languages with FFI
support.
See the symresponse_ffi README for usage details and examples.