1#ifndef EXX_ABFS_CONSTRUCT_ORBS_H
2#define EXX_ABFS_CONSTRUCT_ORBS_H
9#include "../../source_basis/module_ao/ORB_atomic_lm.h"
16 static std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
change_orbs(
19 static std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
change_orbs(
20 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &orb_in,
23 static std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
abfs_same_atom(
26 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &lcaos,
27 const double kmesh_times_mot,
28 const double times_threshold=0);
32 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &orbs,
43 static std::vector<std::vector<std::vector<double>>>
get_multipole(
44 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>&
48 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>&
50 static inline double get_Rmax(
const std::vector<double>& rcut) {
51 return *std::max_element(rcut.begin(), rcut.end());
54 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>&
56 std::vector<double> rcut =
get_Rcut(orb_in);
61 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &orbs);
64 static std::vector<std::vector<std::vector<std::vector<double>>>>
psi_mult_psi(
65 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &lcaos );
67 static std::vector<std::vector<std::vector<std::vector<double>>>>
psir_mult_psir(
68 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &lcaos );
70 static std::vector<std::vector<std::vector<std::vector<double>>>>
orth(
71 const std::vector<std::vector<std::vector<std::vector<double>>>> &psis,
72 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &lcaos,
73 const double norm_threshold = std::numeric_limits<double>::min() );
75 static std::vector<std::vector<std::vector<std::vector<double>>>>
pca(
78 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &abfs,
79 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &orbs,
80 const double kmesh_times_mot,
81 const double times_threshold );
83 static std::vector<std::vector<std::vector<std::vector<double>>>>
div_r(
84 const std::vector<std::vector<std::vector<std::vector<double>>>> &psirs,
85 const std::vector<double> &r_radial );
87 static std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
orbital(
88 const std::vector<std::vector<std::vector<std::vector<double>>>> &psis,
89 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &orbs_info,
92 static std::vector<std::vector<std::vector<std::vector<double>>>>
get_psi(
93 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &orbs );
Definition exx_abfs-construct_orbs.h:14
static std::vector< std::vector< std::vector< std::vector< double > > > > psi_mult_psi(const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &lcaos)
Definition exx_abfs-construct_orbs.cpp:156
static void print_orbs_size(const UnitCell &ucell, const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &orbs, std::ostream &os)
Definition exx_abfs-construct_orbs.cpp:474
static std::vector< std::vector< std::vector< std::vector< double > > > > pca(const UnitCell &ucell, const LCAO_Orbitals &orb, const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &abfs, const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &orbs, const double kmesh_times_mot, const double times_threshold)
Definition exx_abfs-construct_orbs.cpp:261
static double get_Rmax(const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &orb_in)
Definition exx_abfs-construct_orbs.h:53
static std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > orbital(const std::vector< std::vector< std::vector< std::vector< double > > > > &psis, const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &orbs_info, const double kmesh_times)
Definition exx_abfs-construct_orbs.cpp:396
static double get_Rmax(const std::vector< double > &rcut)
Definition exx_abfs-construct_orbs.h:50
static void filter_empty_orbs(std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &orbs)
Definition exx_abfs-construct_orbs.cpp:544
static std::vector< std::vector< std::vector< std::vector< double > > > > orth(const std::vector< std::vector< std::vector< std::vector< double > > > > &psis, const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &lcaos, const double norm_threshold=std::numeric_limits< double >::min())
Definition exx_abfs-construct_orbs.cpp:330
static std::vector< std::vector< std::vector< std::vector< double > > > > div_r(const std::vector< std::vector< std::vector< std::vector< double > > > > &psirs, const std::vector< double > &r_radial)
Definition exx_abfs-construct_orbs.cpp:352
static std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > abfs_same_atom(const UnitCell &ucell, const LCAO_Orbitals &orb, const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &lcaos, const double kmesh_times_mot, const double times_threshold=0)
Definition exx_abfs-construct_orbs.cpp:81
static std::vector< std::vector< std::vector< std::vector< double > > > > psir_mult_psir(const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &lcaos)
Definition exx_abfs-construct_orbs.cpp:227
static std::vector< std::vector< std::vector< double > > > get_multipole(const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &orb_in)
Definition exx_abfs-construct_orbs.cpp:496
static std::vector< std::vector< std::vector< std::vector< double > > > > get_psi(const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &orbs)
Definition exx_abfs-construct_orbs.cpp:377
static std::vector< double > get_Rcut(const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &orb_in)
Definition exx_abfs-construct_orbs.cpp:523
static std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > change_orbs(const LCAO_Orbitals &orb_in, const double kmesh_times)
Definition exx_abfs-construct_orbs.cpp:11
int kmesh_times
Definition exx_abfs.h:25