120 void solve_core(
double omega,
int max_its = 100,
bool print =
true)
override;
123 void clear()
override;
131 std::vector<std::complex<double>>
A_phys()
const;
162 std::vector<std::vector<DiracSpinor>> m_Xi{};
163 std::vector<std::vector<DiracSpinor>> m_Yi{};
171 struct ContinuumChannel {
177 std::complex<double> K{0.0};
179 std::vector<std::vector<ContinuumChannel>> m_channels{};
181 double m_omega{-1.0};
184 void zero_imaginary_sets();
188 void prepare_channels(
double omega);
191 std::pair<std::size_t, std::size_t> channel_index(
const DiracSpinor &Fb,
197 std::pair<double, std::string> tdhf_core_it_complex(
double omega);
205 double eps_ms)
const;
212 double omega,
dPsiType XorY,
double eps_ms)
const;
224 std::pair<double, std::string> eps_complex(
225 const std::vector<std::vector<DiracSpinor>> &Xs_re,
226 const std::vector<std::vector<DiracSpinor>> &Xs_im,
227 const std::vector<std::vector<std::complex<double>>> &K_old)
const;
231 std::vector<double> state_vector()
const;
232 void set_state(
const std::vector<double> &state);
235 TDHFcntm &operator=(
const TDHFcntm &) =
delete;
236 TDHFcntm(
const TDHFcntm &) =
default;
237 ~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:44
Uses TDHF to include core-polarisation (RPA) corrections to matrix elements of an external field oper...
Definition TDHF.hpp:59
double dV(const DiracSpinor &Fa, const DiracSpinor &Fb, bool conj) const
Returns reduced matrix element , or the conjugate if conj=true.
Definition TDHF.cpp:398
TDHF (RPA) core polarisation above ionisation threshold(s): the open channels are solved with the out...
Definition TDHFcomplex.hpp:93
void solve_core(double omega, int max_its=100, bool print=true) override
Solves the (complex) TDHF equations self-consistently at omega.
Definition TDHFcomplex.cpp:138
std::complex< double > dV_complex(const DiracSpinor &Fa, const DiracSpinor &Fb) const
Reduced matrix element of the (complex) induced potential, , or the conjugate if en_b > en_a; as TDH...
Definition TDHFcomplex.cpp:576
double dV(const DiracSpinor &Fa, const DiracSpinor &Fb) const override
Real part of dV_complex, for bound Fa and Fb (exact below every threshold, where the class acts as TD...
Definition TDHFcomplex.cpp:599
TDHFcntm(const DiracOperator::TensorOperator *const h_plus, const HF::HartreeFock *const hf, const DiracOperator::TensorOperator *const h_minus=nullptr)
Constructs for operator h_plus (with optional h_minus); see TDHF::TDHF.
Definition TDHFcomplex.cpp:22
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 TDHFcomplex.cpp:551
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 TDHFcomplex.cpp:523
void clear() override
Clears the corrections and the continuum channel data.
Definition TDHFcomplex.cpp:39
Open channel: core-orbital index, ejected-electron kappa, and its energy en = en_a + omega.
Definition TDHFcomplex.hpp:104
Solves relativistic Hartree-Fock equations for core and valence. Optionally includes Breit and QED ef...
Definition HartreeFock.hpp:111
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:115