35 throw std::runtime_error(
"Different DFT basis for the two input file.");
40 throw std::runtime_error(
"Different BSE vmin for the two input file.");
44 throw std::runtime_error(
"Different BSE vmax for the two input file.");
48 throw std::runtime_error(
"Different BSE cmin for the two input file.");
52 throw std::runtime_error(
"Different BSE cmax for the two input file.");
79 <<
TimeStamp() <<
" Fragment 1 poulation electron "
82 <<
TimeStamp() <<
" Fragment 1 poulation hole "
85 <<
TimeStamp() <<
" Fragment 2 poulation electron "
88 <<
TimeStamp() <<
" Fragment 2 poulation hole "
102 <<
TimeStamp() <<
" Fragment 1 poulation electron "
105 <<
TimeStamp() <<
" Fragment 1 poulation hole "
118 Eigen::MatrixXd tmat = tdmat.
Matrix(state1, state2);
131 (std::abs(dQ12) * (
E2_ -
E1_)) /
132 std::sqrt(std::pow(dQ11 - dQ22, 2) + 4.0 * std::pow(dQ12, 2));
std::vector< QMFragment< BSE_Population > > fragments_
double calculate_coupling()
const tools::EigenSystem & BSETriplets() const
const tools::EigenSystem & BSESinglets() const
const std::string & getDFTbasisName() const
void CalcChargeperFragment(std::vector< QMFragment< BSE_Population > > &frags, const Orbitals &orbitals, QMStateType type) const
void CalcChargeperFragmentTransition(std::vector< QMFragment< BSE_Population > > &frags, const Orbitals &orbitals, const Eigen::MatrixXd &dmat) const
void FromString(const std::string &statetypestring)
Identifier for QMstates. Strings like S1 are converted into enum +zero indexed int.
const QMStateType & Type() const
Timestamp returns the current time as a string Example: cout << TimeStamp()
Generalized transition densities tools for different excited states.
Eigen::MatrixXd Matrix(QMState state1, QMState state2)
#define XTP_LOG(level, log)
base class for all analysis tools