ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
boundary_fix.h
Go to the documentation of this file.
1
5#ifndef BOUNDARY_FIX_H
6#define BOUNDARY_FIX_H
7
9#include "source_cell/klist.h"
11#include "source_psi/psi.h"
13namespace module_rt{
14
29void reset_matrix_boundary(const UnitCell& ucell,
30 const K_Vectors& kv,
31 const Parallel_Orbitals* pv,
32 ct::Tensor& hk_last,
33 ct::Tensor& sk_last,
34 psi::Psi<std::complex<double>>* psi_last,
35 const size_t len_hs);
36
46void boundary_shift_mat(const std::complex<double>& phase,
47 std::complex<double>* matk,
48 const Parallel_Orbitals* pv,
49 const size_t iat);
59void boundary_shift_c(const std::complex<double>& phase,
60 std::complex<double>* psi_k_last,
61 const Parallel_Orbitals* pv,
62 const size_t iat);
63}// namespace module_rt
64#endif // BOUNDARY_FIX_H
Definition klist.h:13
Definition parallel_orbitals.h:9
Definition unitcell.h:17
A multi-dimensional array of elements of a single data type.
Definition tensor.h:32
Definition psi.h:37
Definition band_energy.cpp:11
void boundary_shift_c(const std::complex< double > &phase, std::complex< double > *psi_k_last, const Parallel_Orbitals *pv, const size_t iat)
Add extra phase to the wfc coefficient belong to iat.
Definition boundary_fix.cpp:81
void reset_matrix_boundary(const UnitCell &ucell, const K_Vectors &kv, const Parallel_Orbitals *pv, ct::Tensor &hk_last, ct::Tensor &sk_last, psi::Psi< std::complex< double > > *psi_last, const size_t len_hs)
Add phases to the matrix and coefficient from the previous step to correct the boundary discontinuity...
Definition boundary_fix.cpp:8
void boundary_shift_mat(const std::complex< double > &phase, std::complex< double > *matk, const Parallel_Orbitals *pv, const size_t iat)
Add extra phase to the matrix element belong to iat.
Definition boundary_fix.cpp:51