|
ampsci
High-precision calculations for one- and two-valence atomic systems
|
Functions for atomic ionisation form factors.
Enumerations | |
| enum class | Coupling { Vector , Scalar , AxialVector , PseudoScalar , Error } |
| DM-electron couplings. More... | |
| enum class | OutputFormat { matrix , xyz , Error } |
| Format for output file. More... | |
| enum class | Units { Atomic , Particle , Error } |
| Units used in output file. More... | |
Functions | |
| LinAlg::Matrix< double > | calculateK_nk (const HF::HartreeFock *vHF, const DiracSpinor &Fnk, int max_L, const Grid &Egrid, const DiracOperator::jL *jl, bool force_rescale, bool hole_particle, bool force_orthog, bool zeff_cont, bool zeff_bound, double ec_cut=1.0e99) |
| Calculates ionisation factor K(E,q) for given core state, Fnk, using standard method. Stored as matrix. use_rpa0 is flag for including lowest-order RPA (i.e., with zero iterations) | |
| std::array< LinAlg::Matrix< double >, 13 > | calculate_formFactors_nk (const HF::HartreeFock *vHF, const DiracSpinor &Fa, int lc_min, int lc_max, double ec_min, double ec_max, bool force_rescale, bool hole_particle, bool force_orthog, const std::vector< double > &Egrid, const std::vector< double > &qgrid, bool diagonal_Eq, bool low_q, const SphericalBessel::JL_table &jK_tab, int Kmin, int Kmax, bool vectorQ, bool axialQ, bool scalarQ, bool pseudoscalarQ, bool spatialQ) |
| Calculates all 13 form factors (V,A,S,P) for a single core state Fa. | |
| bool | check_radial_grid (double Emax, double qmax, const Grid &rgrid) |
| Checks if radial grid is dense enough at large r for continuum state. | |
| void | write_to_file_xyz (const std::string &filename, const std::vector< double > &E_grid, const std::vector< double > &q_grid, const std::vector< std::string > &titles, const std::vector< std::string > &descriptions, std::vector< LinAlg::Matrix_view< const double > > factors, Units units=Units::Particle, int num_digits=6, bool diagonal=false) |
| Writes ouput file in 'xyz' form: for easy 2D interpolation. | |
| void | write_to_file_xyz_13 (const std::string &filename, const std::vector< double > &E_grid, const std::vector< double > &q_grid, const std::vector< std::string > &titles, const std::vector< std::string > &descriptions, const std::array< LinAlg::Matrix< double >, 13 > K_factors, Units units, int num_digits, bool diagonal) |
| void | write_to_file_matrix (const LinAlg::Matrix< double > &K, const std::vector< double > &E_grid, const std::vector< double > &q_grid, const std::string &filename, int num_digits=5, Units units=Units::Particle) |
| Writes ouput file in matrix form. | |
|
strong |
DM-electron couplings.
|
strong |
Format for output file.
xyz: For easy 2D interpolation. list formmated with each row 'E q K(E,q)' gnuplot: For easy plotting. Each column is new E. matrix: Outputs entire matrix in table form. E and q grids printed prior.
|
strong |
Units used in output file.
Atomic: [q] = [1/a_0], [E] = Hartree; Particle: [q] = eV, [E] = eV;
| LinAlg::Matrix< double > Kion::calculateK_nk | ( | const HF::HartreeFock * | vHF, |
| const DiracSpinor & | Fnk, | ||
| int | max_L, | ||
| const Grid & | Egrid, | ||
| const DiracOperator::jL * | jl, | ||
| bool | force_rescale, | ||
| bool | hole_particle, | ||
| bool | force_orthog, | ||
| bool | zeff_cont, | ||
| bool | zeff_bound, | ||
| double | ec_cut | ||
| ) |
Calculates ionisation factor K(E,q) for given core state, Fnk, using standard method. Stored as matrix. use_rpa0 is flag for including lowest-order RPA (i.e., with zero iterations)
| std::array< LinAlg::Matrix< double >, 13 > Kion::calculate_formFactors_nk | ( | const HF::HartreeFock * | vHF, |
| const DiracSpinor & | Fa, | ||
| int | lc_min, | ||
| int | lc_max, | ||
| double | ec_min, | ||
| double | ec_max, | ||
| bool | force_rescale, | ||
| bool | hole_particle, | ||
| bool | force_orthog, | ||
| const std::vector< double > & | Egrid, | ||
| const std::vector< double > & | qgrid, | ||
| bool | diagonal_Eq, | ||
| bool | low_q, | ||
| const SphericalBessel::JL_table & | jK_tab, | ||
| int | Kmin, | ||
| int | Kmax, | ||
| bool | vectorQ, | ||
| bool | axialQ, | ||
| bool | scalarQ, | ||
| bool | pseudoscalarQ, | ||
| bool | spatialQ | ||
| ) |
Calculates all 13 form factors (V,A,S,P) for a single core state Fa.
Returns an array of 13 matrices: {K_VT, K_VE, K_VM, K_VL, K_T5, K_E5, K_M5, K_L5, K_X, K_X5, K_Z, K_S, K_S5}.
| bool Kion::check_radial_grid | ( | double | Emax_au, |
| double | qmax_au, | ||
| const Grid & | rgrid | ||
| ) |
Checks if radial grid is dense enough at large r for continuum state.
| void Kion::write_to_file_xyz | ( | const std::string & | filename, |
| const std::vector< double > & | E_grid, | ||
| const std::vector< double > & | q_grid, | ||
| const std::vector< std::string > & | titles, | ||
| const std::vector< std::string > & | descriptions, | ||
| std::vector< LinAlg::Matrix_view< const double > > | factors, | ||
| Units | units = Units::Particle, |
||
| int | num_digits = 6, |
||
| bool | diagonal = false |
||
| ) |
Writes ouput file in 'xyz' form: for easy 2D interpolation.
xyz: For easy 2D interpolation. list formmated with each row 'E q K(E,q)'
| void Kion::write_to_file_matrix | ( | const LinAlg::Matrix< double > & | K, |
| const std::vector< double > & | E_grid, | ||
| const std::vector< double > & | q_grid, | ||
| const std::string & | filename, | ||
| int | num_digits = 5, |
||
| Units | units = Units::Particle |
||
| ) |
Writes ouput file in matrix form.
matrix : Outputs entire matrix in table form. E and q grids printed prior. In K[E,q] form: each column is different q