ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
cube_io.h
Go to the documentation of this file.
1#ifndef CUBE_IO_H
2#define CUBE_IO_H
4
5#include <string>
6class Parallel_Grid;
7
8namespace ModuleIO
9{
11bool read_vdata_palgrid(const Parallel_Grid& pgrid,
12 const int my_rank,
13 std::ofstream& ofs_running,
14 const std::string& fn,
15 double* const data,
16 const int nat);
17
19void write_vdata_palgrid(const Parallel_Grid& pgrid,
20 const double* const data,
21 const int is,
22 const int nspin,
23 const int iter,
24 const std::string& fn,
25 const double ef,
26 const UnitCell* const ucell,
27 const int precision = 11,
28 const int out_fermi = 1,
29 const bool reduce_all_pool = false); // only reduce in the main pool as default
30
32bool read_cube(const std::string& file,
33 std::vector<std::string>& comment,
34 int& natom,
35 std::vector<double>& origin,
36 int& nx,
37 int& ny,
38 int& nz,
39 std::vector<double>& dx,
40 std::vector<double>& dy,
41 std::vector<double>& dz,
42 std::vector<int>& atom_type,
43 std::vector<double>& atom_charge,
44 std::vector<std::vector<double>>& atom_pos,
45 std::vector<double>& data);
46
48void write_cube(const std::string& file,
49 const std::vector<std::string>& comment,
50 const int& natom,
51 const std::vector<double>& origin,
52 const int& nx,
53 const int& ny,
54 const int& nz,
55 const std::vector<double>& dx,
56 const std::vector<double>& dy,
57 const std::vector<double>& dz,
58 const std::vector<int>& atom_type,
59 const std::vector<double>& atom_charge,
60 const std::vector<std::vector<double>>& atom_pos,
61 const std::vector<double>& data,
62 const int precision,
63 const int ndata_line = 6);
64
95void trilinear_interpolate(const double* const data_in,
96 const int& nx_read,
97 const int& ny_read,
98 const int& nz_read,
99 const int& nx,
100 const int& ny,
101 const int& nz,
102 double* data_out);
103} // namespace ModuleIO
104
105#endif
Definition parallel_grid.h:8
Definition unitcell.h:16
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
bool read_cube(const std::string &file, std::vector< std::string > &comment, int &natom, std::vector< double > &origin, int &nx, int &ny, int &nz, std::vector< double > &dx, std::vector< double > &dy, std::vector< double > &dz, std::vector< int > &atom_type, std::vector< double > &atom_charge, std::vector< std::vector< double > > &atom_pos, std::vector< double > &data)
read the full data from a cube file
Definition read_cube.cpp:147
bool read_vdata_palgrid(const Parallel_Grid &pgrid, const int my_rank, std::ofstream &ofs_running, const std::string &fn, double *const data, const int nat)
read volumetric data from .cube file into the parallel distributed grid.
Definition read_cube.cpp:6
void write_cube(const std::string &file, const std::vector< std::string > &comment, const int &natom, const std::vector< double > &origin, const int &nx, const int &ny, const int &nz, const std::vector< double > &dx, const std::vector< double > &dy, const std::vector< double > &dz, const std::vector< int > &atom_type, const std::vector< double > &atom_charge, const std::vector< std::vector< double > > &atom_pos, const std::vector< double > &data, const int precision, const int ndata_line=6)
write a cube file
Definition write_cube.cpp:177
void write_vdata_palgrid(const Parallel_Grid &pgrid, const double *const data, const int is, const int nspin, const int iter, const std::string &fn, const double ef, const UnitCell *const ucell, const int precision=11, const int out_fermi=1, const bool reduce_all_pool=false)
write volumetric data on the parallized grid into a .cube file
Definition write_cube.cpp:15
file(GLOB ATen_CORE_SRCS "*.cpp") set(ATen_CPU_SRCS $
Definition CMakeLists.txt:1