ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
cal_ldos.h
Go to the documentation of this file.
1#ifndef CAL_LDOS_H
2#define CAL_LDOS_H
3
6
7namespace ModuleIO
8{
9template <typename T>
11{
12 public:
15
17 const psi::Psi<T>& psi,
18 const Parallel_Grid& pgrid,
19 const UnitCell& ucell);
20}; // namespace Cal_ldos
21
22void cal_ldos_pw(const elecstate::ElecStatePW<std::complex<double>>* pelec,
23 const psi::Psi<std::complex<double>>& psi,
24 const Parallel_Grid& pgrid,
25 const UnitCell& ucell);
26
27void stm_mode_pw(const elecstate::ElecStatePW<std::complex<double>>* pelec,
28 const psi::Psi<std::complex<double>>& psi,
29 const Parallel_Grid& pgrid,
30 const UnitCell& ucell);
31
32void ldos_mode_pw(const elecstate::ElecStatePW<std::complex<double>>* pelec,
33 const psi::Psi<std::complex<double>>& psi,
34 const Parallel_Grid& pgrid,
35 const UnitCell& ucell);
36
37/*
38 * @brief Get grid points and shifts for interpolation.
39 *
40 * @param start The starting point of the line.
41 * @param end The ending point of the line.
42 * @param npoints The number of points in the line.
43 * @param nx The dimension of 3D grids in the x direction.
44 * @param ny The dimension of 3D grids in the y direction.
45 * @param nz The dimension of 3D grids in the z direction.
46 * @param points The grid index that the points in the line are placed in.
47 * @param shifts The shifts along three directions due to the points are not on the grid exactly.
48 */
49void get_grid_points(const std::vector<double>& start,
50 const std::vector<double>& end,
51 const int& npoints,
52 const int& nx,
53 const int& ny,
54 const int& nz,
55 std::vector<std::vector<int>>& points,
56 std::vector<std::vector<double>>& shifts);
57
58/*
59 * @brief Trilinear interpolation of data on a 3D grid.
60 *
61 * @param points The grid points for interpolation.
62 * @param shifts The shifts for interpolation.
63 * @param pgrid The parallel grid object.
64 * @param data The data to be interpolated.
65 * @param results The results of the interpolation.
66 */
67void trilinear_interpolate(const std::vector<std::vector<int>>& points,
68 const std::vector<std::vector<double>>& shifts,
69 const Parallel_Grid& pgrid,
70 const std::vector<double>& data,
71 std::vector<double>& results);
72
73} // namespace ModuleIO
74
75#endif // CAL_LDOS_H
Definition cal_ldos.h:11
Cal_ldos()
Definition cal_ldos.h:13
static void cal_ldos_lcao(const elecstate::ElecStateLCAO< T > *pelec, const psi::Psi< T > &psi, const Parallel_Grid &pgrid, const UnitCell &ucell)
~Cal_ldos()
Definition cal_ldos.h:14
Definition parallel_grid.h:8
Definition unitcell.h:16
Definition elecstate_lcao.h:15
Definition elecstate_pw.h:17
Definition psi.h:37
This class has two functions: restart psi from the previous calculation, and write psi to the disk.
Definition cal_dos.h:9
void trilinear_interpolate(const std::vector< std::vector< int > > &points, const std::vector< std::vector< double > > &shifts, const Parallel_Grid &pgrid, const std::vector< double > &data, std::vector< double > &results)
Definition cal_ldos.cpp:309
void stm_mode_pw(const elecstate::ElecStatePW< std::complex< double > > *pelec, const psi::Psi< std::complex< double > > &psi, const Parallel_Grid &pgrid, const UnitCell &ucell)
Definition cal_ldos.cpp:120
void ldos_mode_pw(const elecstate::ElecStatePW< std::complex< double > > *pelec, const psi::Psi< std::complex< double > > &psi, const Parallel_Grid &pgrid, const UnitCell &ucell)
Definition cal_ldos.cpp:168
void get_grid_points(const std::vector< double > &start, const std::vector< double > &end, const int &npoints, const int &nx, const int &ny, const int &nz, std::vector< std::vector< int > > &points, std::vector< std::vector< double > > &shifts)
Definition cal_ldos.cpp:259
void cal_ldos_pw(const elecstate::ElecStatePW< std::complex< double > > *pelec, const psi::Psi< std::complex< double > > &psi, const Parallel_Grid &pgrid, const UnitCell &ucell)
Definition cal_ldos.cpp:105
Definition exx_lip.h:23
iclock::time_point start
Definition test_partition.cpp:22