ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
write_HS_R.h
Go to the documentation of this file.
1#ifndef WRITE_HS_R_H
2#define WRITE_HS_R_H
3
6#include "source_cell/klist.h"
9#include "source_lcao/module_dftu/dftu.h" // mohan add 20251107
10
11#ifdef __EXX
12#include "RI/global/Tensor.h" // for RI::Tensor
13#endif
14
15namespace ModuleIO
16{
17void output_dHR(const int& istep,
18 const ModuleBase::matrix& v_eff,
19 const UnitCell& ucell,
20 const Parallel_Orbitals& pv,
21 LCAO_HS_Arrays& HS_Arrays,
22 const Grid_Driver& grid, // mohan add 2024-04-06
23 const TwoCenterBundle& two_center_bundle,
24 const LCAO_Orbitals& orb,
25 const K_Vectors& kv,
26 const bool& binary = false,
27 const double& sparse_threshold = 1e-10);
28
29void output_dSR(const int& istep,
30 const UnitCell& ucell,
31 const Parallel_Orbitals& pv,
32 LCAO_HS_Arrays& HS_Arrays,
33 const Grid_Driver& grid, // mohan add 2024-04-06
34 const TwoCenterBundle& two_center_bundle,
35 const LCAO_Orbitals& orb,
36 const K_Vectors& kv,
37 const bool& binary = false,
38 const double& sparse_thr = 1e-10);
39
40void output_TR(const int istep,
41 const UnitCell& ucell,
42 const Parallel_Orbitals& pv,
43 LCAO_HS_Arrays& HS_Arrays,
44 const Grid_Driver& grid,
45 const TwoCenterBundle& two_center_bundle,
46 const LCAO_Orbitals& orb,
47 const std::string& TR_filename = "trs1_nao.csr",
48 const bool& binary = false,
49 const double& sparse_threshold = 1e-10);
50
51template <typename TK>
53 const Grid_Driver& grid,
54 hamilt::Hamilt<TK>* p_ham,
55 const std::string& SR_filename = "srs1_nao.csr",
56 const bool& binary = false,
57 const double& sparse_threshold = 1e-10);
58
60std::string hsr_gen_fname(const std::string& prefix,
61 const int ispin,
62 const bool append,
63 const int istep);
64
66std::string dhr_gen_fname(const std::string& prefix,
67 const int ispin,
68 const bool append,
69 const int istep);
70
72template <typename TR>
73void write_hcontainer_csr(const std::string& fname,
74 const UnitCell* ucell,
75 const int precision,
76 hamilt::HContainer<TR>* mat_serial,
77 const int istep,
78 const int ispin,
79 const int nspin,
80 const std::string& label);
81
83template <typename TR>
84void write_hsr(const std::vector<hamilt::HContainer<TR>*>& hr_vec,
85 const hamilt::HContainer<TR>* sr,
86 const UnitCell* ucell,
87 const int precision,
88 const Parallel_2D& paraV,
89 const bool append,
90 const int* iat2iwt,
91 const int nat,
92 const int istep);
93
95template <typename TR>
96void write_matrix_r(const std::string& matrix_label,
97 const std::string& description,
98 const std::vector<hamilt::HContainer<TR>*>& matrices,
99 const UnitCell* ucell,
100 const int precision,
101 const Parallel_2D& paraV,
102 const bool append,
103 const int* iat2iwt,
104 const int nat,
105 const int istep);
106
107} // namespace ModuleIO
108
109#endif
Definition sltk_grid_driver.h:40
Definition klist.h:12
Definition LCAO_HS_arrays.hpp:9
Definition ORB_read.h:18
Definition matrix.h:18
This class packs the basic information of 2D-block-cyclic parallel distribution of an arbitrary matri...
Definition parallel_2d.h:12
Definition parallel_orbitals.h:9
Definition two_center_bundle.h:11
Definition unitcell.h:15
Definition hcontainer.h:144
Definition hamilt.h:17
Definition input_help.cpp:10
void write_hcontainer_csr(const std::string &fname, const UnitCell *ucell, const int precision, hamilt::HContainer< TR > *mat_serial, const int istep, const int ispin, const int nspin, const std::string &label)
Write a single HContainer to CSR file with header.
Definition write_HS_R.cpp:272
void output_TR(const int istep, const UnitCell &ucell, const Parallel_Orbitals &pv, LCAO_HS_Arrays &HS_Arrays, const Grid_Driver &grid, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, const std::string &TR_filename="trs1_nao.csr", const bool &binary=false, const double &sparse_threshold=1e-10)
Definition write_HS_R.cpp:176
std::string hsr_gen_fname(const std::string &prefix, const int ispin, const bool append, const int istep)
Generate filename for HR/SR CSR output.
Definition write_HS_R.cpp:242
void output_dHR(const int &istep, const ModuleBase::matrix &v_eff, const UnitCell &ucell, const Parallel_Orbitals &pv, LCAO_HS_Arrays &HS_Arrays, const Grid_Driver &grid, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, const K_Vectors &kv, const bool &binary=false, const double &sparse_threshold=1e-10)
Definition write_HS_R.cpp:69
std::string dhr_gen_fname(const std::string &prefix, const int ispin, const bool append, const int istep)
Generate filename for derivative matrices (dH/dR, dS/dR).
Definition write_HS_R.cpp:257
void write_hsr(const std::vector< hamilt::HContainer< TR > * > &hr_vec, const hamilt::HContainer< TR > *sr, const UnitCell *ucell, const int precision, const Parallel_2D &paraV, const bool append, const int *iat2iwt, const int nat, const int istep)
Write H(R) and S(R) in CSR format, unified with write_dmr interface.
Definition write_HS_R.cpp:309
void output_dSR(const int &istep, const UnitCell &ucell, const Parallel_Orbitals &pv, LCAO_HS_Arrays &HS_Arrays, const Grid_Driver &grid, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, const K_Vectors &kv, const bool &binary=false, const double &sparse_thr=1e-10)
Definition write_HS_R.cpp:44
void write_matrix_r(const std::string &matrix_label, const std::string &description, const std::vector< hamilt::HContainer< TR > * > &matrices, const UnitCell *ucell, const int precision, const Parallel_2D &paraV, const bool append, const int *iat2iwt, const int nat, const int istep)
Write real-space matrix in CSR format (generic interface).
Definition write_HS_R.cpp:391
void output_SR(Parallel_Orbitals &pv, const Grid_Driver &grid, hamilt::Hamilt< TK > *p_ham, const std::string &SR_filename="srs1_nao.csr", const bool &binary=false, const double &sparse_threshold=1e-10)
Definition write_HS_R.cpp:116