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"
5
6namespace ModuleGint
7{
8
10{
11 public:
12 // constructor
14 Vec3d meshgrid_vec1,
15 Vec3d meshgrid_vec2,
16 Vec3d meshgrid_vec3)
17 : meshgrid_vec1_(meshgrid_vec1),
18 meshgrid_vec2_(meshgrid_vec2),
19 meshgrid_vec3_(meshgrid_vec3)
20 {
21 // initialize the meshgrid_latvec0_
25
29
33
34 // initialize the GT matrix
36
38 }
39
40 double get_volume() const { return meshgrid_volume_; }
41 Vec3d get_cartesian_coord(const Vec3i& index_3d) const { return index_3d * meshgrid_latvec0_; }
42 Vec3d get_direct_coord(const Vec3d& cart_coord) const { return cart_coord * meshgrid_GT_; }
43
44 private:
45 // basis vectors of meshgrid
49
50 // used to convert the (i, j, k) index of the meshgrid to the Cartesian coordinate
51 // if meshrid_vec1_ is row vector,
52 // then meshgrid_latvec0_ = [meshgrid_vec1_; meshgrid_vec2_; meshgrid_vec3_],
53 // (i, j, k) * meshgrid_latvec0_ = (x, y, z)
55
56 // used to convert the Cartesian coordinate to the (i, j, k) index of the mesh grid
57 // meshgrid_GT_ = meshgrid_latvec0_.Inverse()
58 // (x, y, z) * meshgrid_GT_ = (i, j, k)
60
62};
63
64} // 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:24
T y
Definition vector3.h:25
T z
Definition vector3.h:26
Definition meshgrid_info.h:10
Matrix3 meshgrid_GT_
Definition meshgrid_info.h:59
Vec3d get_cartesian_coord(const Vec3i &index_3d) const
Definition meshgrid_info.h:41
Vec3d get_direct_coord(const Vec3d &cart_coord) const
Definition meshgrid_info.h:42
Vec3d meshgrid_vec2_
Definition meshgrid_info.h:47
double meshgrid_volume_
Definition meshgrid_info.h:61
Matrix3 meshgrid_latvec0_
Definition meshgrid_info.h:54
Vec3d meshgrid_vec1_
Definition meshgrid_info.h:46
MeshGridInfo(Vec3d meshgrid_vec1, Vec3d meshgrid_vec2, Vec3d meshgrid_vec3)
Definition meshgrid_info.h:13
double get_volume() const
Definition meshgrid_info.h:40
Vec3d meshgrid_vec3_
Definition meshgrid_info.h:48
Definition batch_biggrid.cpp:4