Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions source/source_lcao/module_gint/batch_biggrid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace ModuleGint
int BatchBigGrid::max_batch_size_ = 0;
int BatchBigGrid::max_atoms_num_ = 0;
int BatchBigGrid::max_phi_len_ = 0;
int BatchBigGrid::max_atom_pairs_num_ = 0;
int BatchBigGrid::max_atom_pairs_ = 0;

BatchBigGrid::BatchBigGrid(std::vector<std::shared_ptr<BigGrid>> biggrids)
{
Expand All @@ -19,14 +19,14 @@ BatchBigGrid::BatchBigGrid(std::vector<std::shared_ptr<BigGrid>> biggrids)
{
max_nw_ = std::max(max_nw_, atom->get_nw());
}
max_atoms_num_per_bgrid_ = std::max(max_atoms_num_per_bgrid_, biggrid->get_atoms_num());
max_atoms_per_bgrid_ = std::max(max_atoms_per_bgrid_, biggrid->get_atoms_num());
atoms_num_ += biggrid->get_atoms_num();
atom_pairs_num += std::pow(biggrid->get_atoms_num(), 2);
phi_len_ += biggrid->get_phi_len() * biggrid->get_mgrids_num();
}
max_atoms_num_ = std::max(max_atoms_num_, atoms_num_);
max_phi_len_ = std::max(max_phi_len_, phi_len_);
max_atom_pairs_num_ = std::max(max_atom_pairs_num_, atom_pairs_num);
max_atom_pairs_ = std::max(max_atom_pairs_, atom_pairs_num);
}


Expand Down
8 changes: 4 additions & 4 deletions source/source_lcao/module_gint/batch_biggrid.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ class BatchBigGrid
int get_batch_size() const { return biggrids_.size(); }
int get_atoms_num() const { return atoms_num_; }
int get_phi_len() const { return phi_len_;}
int get_max_atoms_num_per_bgrid() const { return max_atoms_num_per_bgrid_; }
int get_max_atoms_per_bgrid() const { return max_atoms_per_bgrid_; }
bool empty() {return atoms_num_ == 0; }
static int get_max_batch_size() { return max_batch_size_; }
static int get_max_atoms_num() { return max_atoms_num_; }
static int get_max_phi_len() { return max_phi_len_; }
static int get_max_atom_pairs_num() { return max_atom_pairs_num_; }
static int get_max_atom_pairs_num() { return max_atom_pairs_; }
static std::shared_ptr<const BigGridInfo> get_bgrid_info() { return BigGrid::get_bgrid_info(); }

private:
Expand All @@ -35,7 +35,7 @@ class BatchBigGrid
int atoms_num_ = 0;

// the max number of atoms of a single biggrid
int max_atoms_num_per_bgrid_ = 0;
int max_atoms_per_bgrid_ = 0;

// the max number of biggrids of a biggrids batch
static int max_batch_size_;
Expand All @@ -44,7 +44,7 @@ class BatchBigGrid
// the max number of total wavefunctions of a biggrids batch
static int max_phi_len_;
// the max number of atom pairs of a biggrids batch
static int max_atom_pairs_num_;
static int max_atom_pairs_;
};

}
8 changes: 4 additions & 4 deletions source/source_lcao/module_gint/big_grid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ void BigGrid::set_atoms_phi_len(std::vector<int>& phi_len) const
void BigGrid::set_mgrids_coord(std::vector<Vec3d>& coord) const
{
coord.resize(biggrid_info_->get_mgrids_num());
Vec3d this_bgrid_coord = localcell_info_->get_bgrid_global_coord_3D(idx_);
Vec3d bgrid_coord = localcell_info_->get_bgrid_global_coord_3D(idx_);
for(int im = 0; im < biggrid_info_->get_mgrids_num(); ++im)
{
coord[im] = biggrid_info_->get_mgrid_coord(im) + this_bgrid_coord;
coord[im] = biggrid_info_->get_mgrid_coord(im) + bgrid_coord;
}
}

Expand Down Expand Up @@ -83,14 +83,14 @@ void BigGrid::set_atom_relative_coords(const Vec3i bgrid_idx, const Vec3d tau_in
Vec3i this_bgrid_idx = localcell_info_->get_bgrid_global_idx_3D(idx_);

// the relative coordinates of this big grid and the atom
Vec3d bgrid_relative_coord
Vec3d bgrid_rcoord
= unitcell_info_->get_relative_coord(bgrid_idx, this_bgrid_idx) + tau_in_bgrid;

atom_coord.resize(biggrid_info_->get_mgrids_num());
for(int im = 0; im < biggrid_info_->get_mgrids_num(); ++im)
{
const Vec3d& mgrid_coord = biggrid_info_->get_mgrid_coord(im);
atom_coord[im] = mgrid_coord - bgrid_relative_coord;
atom_coord[im] = mgrid_coord - bgrid_rcoord;
}
}

Expand Down
28 changes: 14 additions & 14 deletions source/source_lcao/module_gint/biggrid_info.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,33 @@ BigGridInfo::BigGridInfo(
biggrid_vec3_(biggrid_vec3),
nmx_(nmx), nmy_(nmy), nmz_(nmz), nmxyz_(nmx*nmy*nmz)
{
// initialize the biggrid_latvec0_
biggrid_latvec0_.e11 = biggrid_vec1_.x;
biggrid_latvec0_.e12 = biggrid_vec1_.y;
biggrid_latvec0_.e13 = biggrid_vec1_.z;
// initialize the bgrid_latvec0_
bgrid_latvec0_.e11 = biggrid_vec1_.x;
bgrid_latvec0_.e12 = biggrid_vec1_.y;
bgrid_latvec0_.e13 = biggrid_vec1_.z;

biggrid_latvec0_.e21 = biggrid_vec2_.x;
biggrid_latvec0_.e22 = biggrid_vec2_.y;
biggrid_latvec0_.e23 = biggrid_vec2_.z;
bgrid_latvec0_.e21 = biggrid_vec2_.x;
bgrid_latvec0_.e22 = biggrid_vec2_.y;
bgrid_latvec0_.e23 = biggrid_vec2_.z;

biggrid_latvec0_.e31 = biggrid_vec3_.x;
biggrid_latvec0_.e32 = biggrid_vec3_.y;
biggrid_latvec0_.e33 = biggrid_vec3_.z;
bgrid_latvec0_.e31 = biggrid_vec3_.x;
bgrid_latvec0_.e32 = biggrid_vec3_.y;
bgrid_latvec0_.e33 = biggrid_vec3_.z;

// initialize the GT matrix
biggrid_GT_ = biggrid_latvec0_.Inverse();
biggrid_GT_ = bgrid_latvec0_.Inverse();

// initialize the meshgrid_info_
meshgrid_info_ = std::make_shared<MeshGridInfo>(
biggrid_vec1_ / static_cast<double>(nmx),
biggrid_vec2_ / static_cast<double>(nmy),
biggrid_vec3_ / static_cast<double>(nmz));

// initialize the meshgrid_coords_
meshgrid_coords_.resize(nmxyz_);
// initialize the mgrid_coords_
mgrid_coords_.resize(nmxyz_);
for(int index_1d = 0; index_1d < nmxyz_; index_1d++)
{
meshgrid_coords_[index_1d] =
mgrid_coords_[index_1d] =
meshgrid_info_->get_cartesian_coord(mgrid_idx_1Dto3D(index_1d));
}
ModuleBase::Memory::record("BigGridInfo::meshgrid_coords", (long long)nmxyz_ * sizeof(Vec3d), true);
Expand Down
18 changes: 9 additions & 9 deletions source/source_lcao/module_gint/biggrid_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ class BigGridInfo

~BigGridInfo();

Vec3d get_cartesian_coord(const Vec3d& index_3d) const { return index_3d * biggrid_latvec0_; }
Vec3d get_cartesian_coord(const Vec3i& index_3d) const { return index_3d * biggrid_latvec0_; }
Vec3d get_cartesian_coord(const Vec3d& index_3d) const { return index_3d * bgrid_latvec0_; }
Vec3d get_cartesian_coord(const Vec3i& index_3d) const { return index_3d * bgrid_latvec0_; }
Vec3d get_direct_coord(const Vec3d& cart_coord) const { return cart_coord * biggrid_GT_; }

// Return the maximum number of big grids that can fit inside a sphere of radius r,
Expand All @@ -38,8 +38,8 @@ class BigGridInfo
int get_nmz() const { return nmz_; }
int get_mgrids_num() const { return nmxyz_; }

const std::vector<Vec3d>& get_mgrids_coord() const { return meshgrid_coords_; }
const Vec3d& get_mgrid_coord(int index_1d) const { return meshgrid_coords_[index_1d]; }
const std::vector<Vec3d>& get_mgrids_coord() const { return mgrid_coords_; }
const Vec3d& get_mgrid_coord(int index_1d) const { return mgrid_coords_[index_1d]; }

std::shared_ptr<const MeshGridInfo> get_mgrid_info() const { return meshgrid_info_; }

Expand All @@ -63,12 +63,12 @@ class BigGridInfo

// used to convert the (i, j, k) index of the big grid to the Cartesian coordinate
// if biggrid_vec1_ is row vector,
// then biggrid_latvec0_ = [biggrid_vec1_; biggrid_vec2_; biggrid_vec3_],
// (i, j, k) * biggrid_latvec0_ = (x, y, z)
Matrix3 biggrid_latvec0_;
// then bgrid_latvec0_ = [biggrid_vec1_; biggrid_vec2_; biggrid_vec3_],
// (i, j, k) * bgrid_latvec0_ = (x, y, z)
Matrix3 bgrid_latvec0_;

// used to convert the Cartesian coordinate to the (i, j, k) index of the big grid
// biggrid_GT_ = biggrid_latvec0_.Inverse()
// biggrid_GT_ = bgrid_latvec0_.Inverse()
// (x, y, z) * biggrid_GT_ = (i, j, k)
Matrix3 biggrid_GT_;

Expand All @@ -95,7 +95,7 @@ class BigGridInfo

// store the relative Cartesian coordinates of all meshgrids in the biggrid
// the size of vector is nbxyz_
std::vector<Vec3d> meshgrid_coords_;
std::vector<Vec3d> mgrid_coords_;
};

} // namespace ModuleGint
28 changes: 14 additions & 14 deletions source/source_lcao/module_gint/gint_common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,10 @@ void compose_hr_gint(HContainer<T>& hr_gint)
}

template <typename T>
void transfer_hr_gint_to_hR(const HContainer<T>& hr_gint, HContainer<T>& hR)
void hr_gint_to_hR(const HContainer<T>& hr_gint, HContainer<T>& hR)
{
ModuleBase::TITLE("Gint", "transfer_hr_gint_to_hR");
ModuleBase::timer::start("Gint", "transfer_hr_gint_to_hR");
ModuleBase::TITLE("Gint", "hr_gint_to_hR");
ModuleBase::timer::start("Gint", "hr_gint_to_hR");
#ifdef __MPI
int size = 0;
MPI_Comm_size(MPI_COMM_WORLD, &size);
Expand All @@ -131,7 +131,7 @@ void transfer_hr_gint_to_hR(const HContainer<T>& hr_gint, HContainer<T>& hR)
#else
hR.add(hr_gint);
#endif
ModuleBase::timer::end("Gint", "transfer_hr_gint_to_hR");
ModuleBase::timer::end("Gint", "hr_gint_to_hR");
}


Expand Down Expand Up @@ -258,7 +258,7 @@ void merge_hr_part_to_hR(const std::vector<hamilt::HContainer<double>>& hr_gint_



// C++11-compatible helpers for transfer_dm_2d_to_gint:
// C++11-compatible helpers for dm_2d_to_gint:
// SFINAE (enable_if) to select same-type vs cross-type code paths at compile time.

// Same-type path (TGint == TDM): transfer directly
Expand Down Expand Up @@ -294,13 +294,13 @@ gather_dm(const HContainer<TDM>& dm_src, HContainer<TGint>& dm_dst,
// gint_info should not have been a parameter, but it was added to initialize dm_gint_full
// In the future, we might try to remove the gint_info parameter
template<typename TGint, typename TDM>
void transfer_dm_2d_to_gint(
void dm_2d_to_gint(
const GintInfo& gint_info,
const std::vector<HContainer<TDM>*>& dm,
std::vector<HContainer<TGint>>& dm_gint)
{
ModuleBase::TITLE("Gint", "transfer_dm_2d_to_gint");
ModuleBase::timer::start("Gint", "transfer_dm_2d_to_gint");
ModuleBase::TITLE("Gint", "dm_2d_to_gint");
ModuleBase::timer::start("Gint", "dm_2d_to_gint");

if (PARAM.inp.nspin != 4)
{
Expand Down Expand Up @@ -368,7 +368,7 @@ void transfer_dm_2d_to_gint(
delete dm2d_tmp;
#endif
}
ModuleBase::timer::end("Gint", "transfer_dm_2d_to_gint");
ModuleBase::timer::end("Gint", "dm_2d_to_gint");
}

int globalIndex(int localindex, int nblk, int nprocs, int myproc)
Expand Down Expand Up @@ -480,10 +480,10 @@ void wfc_2d_to_gint(const T* wfc_2d,

template void compose_hr_gint(HContainer<double>& hr_gint);
template void compose_hr_gint(HContainer<float>& hr_gint);
template void transfer_hr_gint_to_hR(
template void hr_gint_to_hR(
const HContainer<double>& hr_gint,
HContainer<double>& hR);
template void transfer_hr_gint_to_hR(
template void hr_gint_to_hR(
const HContainer<std::complex<double>>& hr_gint,
HContainer<std::complex<double>>& hR);
template void cast_hcontainer_values(
Expand All @@ -494,15 +494,15 @@ template void cast_hcontainer_values(
HContainer<double>& dst);
template HContainer<float> make_cast_hcontainer(const HContainer<double>& src);
template HContainer<double> make_cast_hcontainer(const HContainer<float>& src);
template void transfer_dm_2d_to_gint(
template void dm_2d_to_gint(
const GintInfo& gint_info,
const std::vector<HContainer<double>*>& dm,
std::vector<HContainer<double>>& dm_gint);
template void transfer_dm_2d_to_gint(
template void dm_2d_to_gint(
const GintInfo& gint_info,
const std::vector<HContainer<double>*>& dm,
std::vector<HContainer<float>>& dm_gint);
template void transfer_dm_2d_to_gint(
template void dm_2d_to_gint(
const GintInfo& gint_info,
const std::vector<HContainer<std::complex<double>>*>& dm,
std::vector<HContainer<std::complex<double>>>& dm_gint);
Expand Down
4 changes: 2 additions & 2 deletions source/source_lcao/module_gint/gint_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ namespace ModuleGint


template <typename T>
void transfer_hr_gint_to_hR(const HContainer<T>& hr_gint, HContainer<T>& hR);
void hr_gint_to_hR(const HContainer<T>& hr_gint, HContainer<T>& hR);
// for nspin=4 case
void merge_hr_part_to_hR(const std::vector<hamilt::HContainer<double>>& hr_gint_tmp ,
hamilt::HContainer<std::complex<double>>* hR,
const GintInfo& gint_info);

template<typename TGint, typename TDM>
void transfer_dm_2d_to_gint(
void dm_2d_to_gint(
const GintInfo& gint_info,
const std::vector<HContainer<TDM>*>& dm,
std::vector<HContainer<TGint>>& dm_gint);
Expand Down
Loading
Loading