ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
meshgrid_info.h
Go to the documentation of this file.
1#pragma once
2
3#include "gint_type.h"
4
5namespace ModuleGint
6{
7
9{
10 public:
11 // constructor
13 Vec3d meshgrid_vec1,
14 Vec3d meshgrid_vec2,
15 Vec3d meshgrid_vec3)
16 : meshgrid_vec1_(meshgrid_vec1),
17 meshgrid_vec2_(meshgrid_vec2),
18 meshgrid_vec3_(meshgrid_vec3)
19 {
20 // initialize the mgrid_latvec0_
24
28
32
33 // initialize the GT matrix
35
36 mgrid_vol_ = std::abs(mgrid_latvec0_.Det());
37 }
38
39 double get_volume() const { return mgrid_vol_; }
40 Vec3d get_cartesian_coord(const Vec3i& index_3d) const { return index_3d * mgrid_latvec0_; }
41 Vec3d get_direct_coord(const Vec3d& cart_coord) const { return cart_coord * meshgrid_GT_; }
42
43 private:
44 // basis vectors of meshgrid
48
49 // used to convert the (i, j, k) index of the meshgrid to the Cartesian coordinate
50 // if meshrid_vec1_ is row vector,
51 // then mgrid_latvec0_ = [meshgrid_vec1_; meshgrid_vec2_; meshgrid_vec3_],
52 // (i, j, k) * mgrid_latvec0_ = (x, y, z)
54
55 // used to convert the Cartesian coordinate to the (i, j, k) index of the mesh grid
56 // meshgrid_GT_ = mgrid_latvec0_.Inverse()
57 // (x, y, z) * meshgrid_GT_ = (i, j, k)
59
60 double mgrid_vol_;
61};
62
63} // namespace ModuleGint
3x3 matrix and related mathamatical operations
Definition matrix3.h:19
double e13
Definition matrix3.h:26
Matrix3 Inverse(void) const
Inverse a 3x3 matrix.
Definition matrix3.cpp:44
double e31
Definition matrix3.h:26
double e11
element e_ij: i_row, j_column
Definition matrix3.h:26
double e33
Definition matrix3.h:26
double e32
Definition matrix3.h:26
double e21
Definition matrix3.h:26
double e12
Definition matrix3.h:26
double Det(void) const
Calculate the determinant of a 3x3 matrix.
Definition matrix3.cpp:29
double e23
Definition matrix3.h:26
double e22
Definition matrix3.h:26
T x
Definition vector3.h:26
T y
Definition vector3.h:27
T z
Definition vector3.h:28
Definition meshgrid_info.h:9
Matrix3 meshgrid_GT_
Definition meshgrid_info.h:58
Vec3d get_cartesian_coord(const Vec3i &index_3d) const
Definition meshgrid_info.h:40
Vec3d get_direct_coord(const Vec3d &cart_coord) const
Definition meshgrid_info.h:41
Vec3d meshgrid_vec2_
Definition meshgrid_info.h:46
Matrix3 mgrid_latvec0_
Definition meshgrid_info.h:53
Vec3d meshgrid_vec1_
Definition meshgrid_info.h:45
double mgrid_vol_
Definition meshgrid_info.h:60
MeshGridInfo(Vec3d meshgrid_vec1, Vec3d meshgrid_vec2, Vec3d meshgrid_vec3)
Definition meshgrid_info.h:12
double get_volume() const
Definition meshgrid_info.h:39
Vec3d meshgrid_vec3_
Definition meshgrid_info.h:47
Definition batch_biggrid.cpp:4