votca 2026-dev
Loading...
Searching...
No Matches
gwbse.h
Go to the documentation of this file.
1/*
2 * Copyright 2009-2022 The VOTCA Development Team
3 * (http://www.votca.org)
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License")
6 *
7 * You may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 */
19
20#pragma once
21#ifndef VOTCA_XTP_GWBSE_H
22#define VOTCA_XTP_GWBSE_H
23
24// Standard includes
25#include <fstream>
26
27// VOTCA includes
29
30// Local VOTCA includes
31#include "bse.h"
32#include "bse_uks.h"
33#include "eigen.h"
35#include "gw.h"
36#include "gw_uks.h"
37#include "logger.h"
38#include "qmfragment.h"
39
40namespace votca {
41namespace xtp {
42class Orbitals;
43class AOBasis;
58
59class GWBSE {
60 public:
61 GWBSE(Orbitals& orbitals) : orbitals_(orbitals) {};
62 void Initialize(tools::Property& options);
63
64 std::string Identify() { return "gwbse"; }
65
66 void setLogger(Logger* pLog) { pLog_ = pLog; }
67
68 // Screen GW and BSE by a static polarizable environment (embedded
69 // GW-BSE). R is built in Evaluate, once the auxiliary basis and its
70 // metric exist. Closed shell only.
74
75 bool Evaluate();
76
77 void addoutput(tools::Property& summary);
78
79 private:
80 Eigen::MatrixXd CalculateVXC(const AOBasis& dftbasis);
81 std::pair<Eigen::MatrixXd, Eigen::MatrixXd> CalculateVXCSpinResolved(
82 const AOBasis& dftbasis);
86 // program tasks
87
88 bool do_gw_ = false;
89 bool do_bse_singlets_ = false;
90 bool do_bse_triplets_ = false;
92 bool do_bse_exciton_uks_ = false;
93
94 // options for own Vxc calculation
95 std::string functional_;
96 std::string grid_;
97
100
102 // frozen-core GW (rpamin > 0): include the exchange with the core levels
103 // in Sigma_x (gw.core_exchange)
104 bool core_exchange_ = true;
108
109 // basis sets
110 std::string auxbasis_name_;
111 std::string dftbasis_name_;
112
113 std::vector<QMFragment<BSE_Population> > fragments_;
114
116};
117} // namespace xtp
118} // namespace votca
119
120#endif // VOTCA_XTP_GWBSE_H
class to manage program options with xml serialization functionality
Definition property.h:55
Container to hold Basisfunctions for all atoms.
Definition aobasis.h:42
bool Evaluate()
Definition gwbse.cc:950
bool do_bse_exciton_uks_
Definition gwbse.h:92
std::pair< Eigen::MatrixXd, Eigen::MatrixXd > CalculateVXCSpinResolved(const AOBasis &dftbasis)
Definition gwbse.cc:918
std::vector< QMFragment< BSE_Population > > fragments_
Definition gwbse.h:113
std::string sigma_plot_states_
Definition gwbse.h:101
void setScreeningEnvironment(const ScreeningEnvironment &env)
Definition gwbse.h:71
ScreeningEnvironment environment_
Definition gwbse.h:115
BSE::options bseopt_
Definition gwbse.h:99
void addoutput(tools::Property &summary)
Definition gwbse.cc:708
bool do_bse_triplets_
Definition gwbse.h:90
std::string Identify()
Definition gwbse.h:64
std::string grid_
Definition gwbse.h:96
std::string auxbasis_name_
Definition gwbse.h:110
bool do_bse_singlets_
Definition gwbse.h:89
bool core_exchange_
Definition gwbse.h:104
GWBSE(Orbitals &orbitals)
Definition gwbse.h:61
Orbitals & orbitals_
Definition gwbse.h:85
Eigen::MatrixXd CalculateVXC(const AOBasis &dftbasis)
Definition gwbse.cc:878
Index sigma_plot_steps_
Definition gwbse.h:105
std::string functional_
Definition gwbse.h:95
std::string dftbasis_name_
Definition gwbse.h:111
void Initialize(tools::Property &options)
Definition gwbse.cc:63
Index CountCoreLevels()
Definition gwbse.cc:49
GW::options gwopt_
Definition gwbse.h:98
double sigma_plot_spacing_
Definition gwbse.h:106
void setLogger(Logger *pLog)
Definition gwbse.h:66
Logger * pLog_
Definition gwbse.h:84
std::string sigma_plot_filename_
Definition gwbse.h:107
bool do_dynamical_screening_bse_
Definition gwbse.h:91
Logger is used for thread-safe output of messages.
Definition logger.h:164
Container for molecular orbitals and derived one-particle data.
Definition orbitals.h:47
Provides a means for comparing floating point numbers.
Definition basebead.h:33
Eigen::Index Index
Definition types.h:26
The polarizable environment a GW-BSE calculation is screened by: what a QM/MM job hands to GWBSE (GWB...