118 void solve_core(
double omega,
int max_its = 100,
bool print =
true)
override;
121 void clear()
override;
131 std::vector<std::complex<double>>
A_phys()
const;
151 bool conj =
false)
const;
163 bool conj =
false)
const override;
168 bool conj =
false)
const;
172 bool conj =
false)
const;
177 std::vector<std::vector<DiracSpinor>> m_Xi{};
178 std::vector<std::vector<DiracSpinor>> m_Yi{};
186 struct ContinuumChannel {
192 std::complex<double> K{0.0};
194 std::vector<std::vector<ContinuumChannel>> m_channels{};
196 double m_omega{-1.0};
199 void zero_imaginary_sets();
203 void prepare_channels(
double omega);
206 std::pair<std::size_t, std::size_t> channel_index(
const DiracSpinor &Fb,
213 std::pair<double, std::string> tdhf_core_it_complex(
double omega,
222 double eps_ms)
const;
229 double omega,
dPsiType XorY,
double eps_ms)
const;
241 std::pair<double, std::string> eps_complex(
242 const std::vector<std::vector<DiracSpinor>> &Xs_re,
243 const std::vector<std::vector<DiracSpinor>> &Xs_im,
244 const std::vector<std::vector<std::complex<double>>> &K_old)
const;
248 std::vector<double> state_vector()
const;
249 void set_state(
const std::vector<double> &state);
252 TDHFcntm &operator=(
const TDHFcntm &) =
delete;
253 TDHFcntm(
const TDHFcntm &) =
default;
254 ~TDHFcntm() =
default;
General tensor operator (virtual base class); all single-particle (one-body) tenosor operators derive...
Definition TensorOperator.hpp:198
Stores radial Dirac spinor: F_nk = (f, g)
Definition DiracSpinor.hpp:55
Uses TDHF to include core-polarisation (RPA) corrections to matrix elements of an external field oper...
Definition TDHF.hpp:58
TDHF (RPA) core polarisation above ionisation threshold(s): the open channels are solved with the out...
Definition TDHFcntm.hpp:93
double dV_re(const DiracSpinor &Fa, const DiracSpinor &Fb, bool conj=false) const
Real part of dV_complex. Convenience only: the full complex element is calculated,...
Definition TDHFcntm.cpp:599
TDHFcntm(const DiracOperator::TensorOperator *const h, const HF::HartreeFock *const hf)
Constructs for operator h; see TDHF::TDHF.
Definition TDHFcntm.cpp:24
void solve_core(double omega, int max_its=100, bool print=true) override
Solves the (complex) TDHF equations self-consistently at omega.
Definition TDHFcntm.cpp:139
double dV(const DiracSpinor &Fa, const DiracSpinor &Fb, bool conj=false) const override
Real part of dV_complex, for bound Fa and Fb only.
Definition TDHFcntm.cpp:591
double dV_im(const DiracSpinor &Fa, const DiracSpinor &Fb, bool conj=false) const
Imaginary part of dV_complex. Convenience only: the full complex element is calculated,...
Definition TDHFcntm.cpp:605
std::complex< double > dV_complex(const DiracSpinor &Fa, const DiracSpinor &Fb, bool conj=false) const
Reduced matrix element of the (complex) induced potential, <a||dV||b>, or the conjugate <a||dV^dag||b...
Definition TDHFcntm.cpp:568
std::vector< std::complex< double > > A_phys() const
Ionisation amplitude A = K_+^*/pi of every open channel (see class description), in channel_list ord...
Definition TDHFcntm.cpp:543
Method method() const override final
Returns RPA method.
Definition TDHFcntm.hpp:123
std::vector< Channel > channel_list() const
Open channels at the omega of the last solve_core(), in A_phys order; empty before solve_core(),...
Definition TDHFcntm.cpp:515
void clear() override
Clears the corrections and the continuum channel data.
Definition TDHFcntm.cpp:40
Open channel: core-orbital index, ejected-electron kappa, and its energy en = en_a + omega.
Definition TDHFcntm.hpp:102
Solves relativistic Hartree-Fock equations for core and valence. Optionally includes Breit and QED ef...
Definition HartreeFock.hpp:114
Core-polarisation (RPA) corrections to matrix elements of an external field.
Definition MatrixElements.hpp:9
dPsiType
Selects the perturbed orbital: X = varphi_+, Y = varphi_-.
Definition CorePolarisation.hpp:117
Method
Available RPA/core-polarisation methods.
Definition CorePolarisation.hpp:87