|
votca 2026-dev
|
Evaluates electronic coupling elements. More...
#include <bsecoupling.h>


Classes | |
| struct | Diagnostics |
| Diagnostic quantities for assessing whether CT downfolding is safe. More... | |
Public Member Functions | |
| void | Initialize (tools::Property &options) override |
| std::string | Identify () const |
| void | Addoutput (tools::Property &type_summary, const Orbitals &orbitalsA, const Orbitals &orbitalsB) const override |
| void | CalculateCouplings (const Orbitals &orbitalsA, const Orbitals &orbitalsB, const Orbitals &orbitalsAB) override |
| evaluates electronic couplings | |
| Public Member Functions inherited from votca::xtp::CouplingBase | |
| void | setLogger (Logger *pLog) |
Private Member Functions | |
| void | WriteToProperty (tools::Property &summary, const QMState &stateA, const QMState &stateB) const |
| double | getSingletCouplingElement (Index levelA, Index levelB, Index methodindex) const |
| double | getTripletCouplingElement (Index levelA, Index levelB, Index methodindex) const |
| Eigen::MatrixXd | SetupCTStates (Index bseA_vtotal, Index bseB_vtotal, Index bseAB_vtotal, Index bseAB_ctotal, const Eigen::MatrixXd &A_AB, const Eigen::MatrixXd &B_AB) const |
| Eigen::MatrixXd | ProjectFrenkelExcitons (const Eigen::MatrixXd &BSE_Coeffs, const Eigen::MatrixXd &X_AB, Index bseX_vtotal, Index bseX_ctotal, Index bseAB_vtotal, Index bseAB_ctotal) const |
| template<class BSE_OPERATOR> | |
| std::array< Eigen::MatrixXd, 2 > | ProjectExcitons (Eigen::MatrixXd &FE_AB, Eigen::MatrixXd &CTStates, BSE_OPERATOR H, Eigen::MatrixXd &J_dimer_out, Eigen::MatrixXd &S_dimer_out, Diagnostics &diag_out) const |
| Compute J_pert and J_diag, and store raw J_dimer/S_dimer and diagnostics for later output. | |
| template<class BSE_OPERATOR> | |
| Eigen::MatrixXd | CalcJ_dimer (BSE_OPERATOR &H, Eigen::MatrixXd &projection, Eigen::MatrixXd &J_dimer_out, Eigen::MatrixXd &S_dimer_out) const |
| Form J_dimer and S_dimer from the projection, then Lowdin orthogonalize to produce J_ortho. | |
| Eigen::MatrixXd | OrthogonalizeCTs (Eigen::MatrixXd &FE_AB, Eigen::MatrixXd &CTStates) const |
| Merge FE and CT projection vectors into a single projection matrix without pre-orthogonalization. | |
| Eigen::MatrixXd | Fulldiag (const Eigen::MatrixXd &J_dimer) const |
| Eigen::MatrixXd | Perturbation (const Eigen::MatrixXd &J_dimer) const |
| Diagnostics | ComputeDiagnostics (const Eigen::MatrixXd &J_dimer, const Eigen::MatrixXd &J_pert, const Eigen::MatrixXd &J_diag) const |
| Compute diagnostics from raw J_dimer and the two effective coupling matrices. | |
Static Private Member Functions | |
| static void | WriteMatrixToProperty (tools::Property &prop, const std::string &name, const Eigen::MatrixXd &mat, double conversion=1.0) |
| Write an Eigen matrix as rows of space-separated values into an XML property node. Each row becomes an attribute "row_N". | |
Private Attributes | |
| std::array< Eigen::MatrixXd, 2 > | JAB_singlet |
| std::array< Eigen::MatrixXd, 2 > | JAB_triplet |
| Eigen::MatrixXd | J_dimer_singlet_ |
| Eigen::MatrixXd | S_dimer_singlet_ |
| Eigen::MatrixXd | J_dimer_triplet_ |
| Eigen::MatrixXd | S_dimer_triplet_ |
| Diagnostics | diag_singlet_ |
| Diagnostics | diag_triplet_ |
| Eigen::VectorXd | monomerA_energies_singlet_ |
| Eigen::VectorXd | monomerB_energies_singlet_ |
| Eigen::VectorXd | monomerA_energies_triplet_ |
| Eigen::VectorXd | monomerB_energies_triplet_ |
| bool | doTriplets_ |
| bool | doSinglets_ |
| bool | output_perturbation_ |
| bool | output_tb_ = false |
| Index | levA_ |
| Index | levB_ |
| Index | occA_ |
| Index | unoccA_ |
| Index | occB_ |
| Index | unoccB_ |
Additional Inherited Members | |
| Protected Member Functions inherited from votca::xtp::CouplingBase | |
| void | CheckAtomCoordinates (const Orbitals &orbitalsA, const Orbitals &orbitalsB, const Orbitals &orbitalsAB) const |
| Eigen::MatrixXd | CalculateOverlapMatrix (const Orbitals &orbitalsAB) const |
| Protected Attributes inherited from votca::xtp::CouplingBase | |
| Logger * | pLog_ |
Evaluates electronic coupling elements.
J. Wehner,B. Baumeier, JCTC DOI: 10.1021/acs.jctc.6b00935
Definition at line 39 of file bsecoupling.h.
|
overridevirtual |
Implements votca::xtp::CouplingBase.
Definition at line 128 of file bsecoupling.cc.
|
private |
Form J_dimer and S_dimer from the projection, then Lowdin orthogonalize to produce J_ortho.
| H | BSE Hamiltonian operator |
| projection | merged FE+CT projection matrix (consumed) |
| J_dimer_out | raw Hamiltonian matrix before Lowdin [out] |
| S_dimer_out | raw overlap matrix before Lowdin [out] |
Definition at line 690 of file bsecoupling.cc.
|
overridevirtual |
evaluates electronic couplings
| orbitalsA | molecular orbitals of molecule A |
| orbitalsB | molecular orbitals of molecule B |
| orbitalsAB | molecular orbitals of the dimer AB |
Implements votca::xtp::CouplingBase.
Definition at line 355 of file bsecoupling.cc.
|
private |
Compute diagnostics from raw J_dimer and the two effective coupling matrices.
| J_dimer | raw (pre-Lowdin) Hamiltonian in FE+CT basis |
| J_pert | effective couplings from perturbation theory |
| J_diag | effective couplings from reduction method |
Definition at line 747 of file bsecoupling.cc.
|
private |
Definition at line 912 of file bsecoupling.cc.
|
private |
Definition at line 260 of file bsecoupling.cc.
|
private |
Definition at line 266 of file bsecoupling.cc.
|
inline |
Definition at line 42 of file bsecoupling.h.
|
overridevirtual |
Implements votca::xtp::CouplingBase.
Definition at line 38 of file bsecoupling.cc.
|
private |
Merge FE and CT projection vectors into a single projection matrix without pre-orthogonalization.
The non-orthogonality between FE and CT states is handled correctly downstream by the joint Lowdin in CalcJ_dimer (for the reduction method) or by the generalized eigenvalue problem / SRG (for TB use of J_dimer and S_dimer directly).
Pre-orthogonalizing CT states against FE states (previous behaviour) used the incorrect projector P = F*F^T, which is only exact when FE_AB columns are orthonormal. This introduced a systematic error that grows with the number of CT states included. The function name is retained for interface compatibility but the orthogonalization step has been removed.
Definition at line 645 of file bsecoupling.cc.
|
private |
Definition at line 838 of file bsecoupling.cc.
|
private |
Compute J_pert and J_diag, and store raw J_dimer/S_dimer and diagnostics for later output.
| FE_AB | projected FE states in dimer basis |
| CTStates | CT states in dimer basis |
| H | BSE Hamiltonian operator |
| J_dimer_out | raw (pre-Lowdin) Hamiltonian matrix [out] |
| S_dimer_out | raw overlap matrix [out] |
| diag_out | diagnostics struct [out] |
Definition at line 794 of file bsecoupling.cc.
|
private |
Definition at line 325 of file bsecoupling.cc.
|
private |
Definition at line 272 of file bsecoupling.cc.
|
staticprivate |
Write an Eigen matrix as rows of space-separated values into an XML property node. Each row becomes an attribute "row_N".
| prop | parent Property node to attach the matrix node to |
| name | name of the new child node |
| mat | matrix to write |
| conversion | optional unit conversion factor (default 1.0) |
Definition at line 76 of file bsecoupling.cc.
|
private |
Definition at line 98 of file bsecoupling.cc.
|
private |
Definition at line 192 of file bsecoupling.h.
|
private |
Definition at line 193 of file bsecoupling.h.
|
private |
Definition at line 208 of file bsecoupling.h.
|
private |
Definition at line 207 of file bsecoupling.h.
|
private |
Definition at line 186 of file bsecoupling.h.
|
private |
Definition at line 188 of file bsecoupling.h.
|
private |
Definition at line 180 of file bsecoupling.h.
|
private |
Definition at line 181 of file bsecoupling.h.
|
private |
Definition at line 214 of file bsecoupling.h.
|
private |
Definition at line 215 of file bsecoupling.h.
|
private |
Definition at line 202 of file bsecoupling.h.
|
private |
Definition at line 204 of file bsecoupling.h.
|
private |
Definition at line 203 of file bsecoupling.h.
|
private |
Definition at line 205 of file bsecoupling.h.
|
private |
Definition at line 216 of file bsecoupling.h.
|
private |
Definition at line 218 of file bsecoupling.h.
|
private |
Definition at line 209 of file bsecoupling.h.
|
private |
Definition at line 213 of file bsecoupling.h.
|
private |
Definition at line 187 of file bsecoupling.h.
|
private |
Definition at line 189 of file bsecoupling.h.
|
private |
Definition at line 217 of file bsecoupling.h.
|
private |
Definition at line 219 of file bsecoupling.h.