ampsci
c++ program for high-precision atomic structure calculations of single-valence systems
ContinuumOrbitals.hpp
1 #pragma once
2 #include "Wavefunction/DiracSpinor.hpp"
3 #include <memory>
4 #include <vector>
5 class Wavefunction;
6 class Grid;
7 namespace HF {
8 class HartreeFock;
9 }
10 
13 
14 public:
19 
20  ContinuumOrbitals &operator=(const ContinuumOrbitals &) = default;
21  ContinuumOrbitals(const ContinuumOrbitals &) = default;
22  ~ContinuumOrbitals() = default;
23 
25  int solveContinuumHF(double ec, int min_l, int max_l,
26  const DiracSpinor *psi = nullptr,
27  bool force_rescale = false, bool subtract_self = true,
28  bool force_orthog = true);
29 
31  int solveContinuumZeff(double ec, int min_l, int max_l, double Z_eff,
32  const DiracSpinor *Fi, bool force_orthog);
33 
35  double check_orthog(bool print = true) const;
36 
38  void clear();
39 
40  std::vector<DiracSpinor> orbitals{};
41 
42 private:
43  void IncludeExchange(DiracSpinor &Fe, const DiracSpinor *psi,
44  bool force_orthog, const std::vector<double> &vc);
45 
46  std::shared_ptr<const Grid> rgrid;
47  const HF::HartreeFock *p_hf;
48  double alpha;
49 };
Class stores set of continuum orbitals, and solves using Hartree-Fock method.
Definition: ContinuumOrbitals.hpp:12
void clear()
Resets (deletes) all orbitals.
Definition: ContinuumOrbitals.cpp:212
ContinuumOrbitals(const Wavefunction &wf)
Takes existing Wavefunction object to construct.
Definition: ContinuumOrbitals.cpp:15
int solveContinuumHF(double ec, int min_l, int max_l, const DiracSpinor *psi=nullptr, bool force_rescale=false, bool subtract_self=true, bool force_orthog=true)
Solves continuum states with energy ec between min/max l.
Definition: ContinuumOrbitals.cpp:44
double check_orthog(bool print=true) const
Checks orthogonality between cntm and core orbitals, returns worst eps.
Definition: ContinuumOrbitals.cpp:22
int solveContinuumZeff(double ec, int min_l, int max_l, double Z_eff, const DiracSpinor *Fi, bool force_orthog)
Solves cntm states using simple H-like potential eith effective charge (Z_eff). Usually,...
Definition: ContinuumOrbitals.cpp:157
Stores radial Dirac spinor: F_nk = (f, g)
Definition: DiracSpinor.hpp:41
Holds grid, including type + Jacobian (dr/du)
Definition: Grid.hpp:31
Solves relativistic Hartree-Fock equations for core and valence. Optionally includes Breit and QED ef...
Definition: HartreeFock.hpp:70
Stores Wavefunction (set of valence orbitals, grid, HF etc.)
Definition: Wavefunction.hpp:36
Functions and classes for Hartree-Fock.
Definition: CI_Integrals.hpp:12