Skip to content

Commit 2a0f141

Browse files
authored
Merge branch 'brucefan1983:master' into mini
2 parents 5a751a7 + 189af83 commit 2a0f141

File tree

23 files changed

+4043
-3915
lines changed

23 files changed

+4043
-3915
lines changed

doc/gpumd/input_files/basis_in.rst

Lines changed: 0 additions & 34 deletions
This file was deleted.

doc/gpumd/input_files/index.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,5 @@ To run one a simulation using the ``gpumd`` executable, one has to prepare at le
1212

1313
run_in
1414
model_xyz
15-
basis_in
1615
kpoints_in
1716
eigenvector_in

doc/gpumd/input_files/kpoints_in.rst

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,38 @@ File format
1313
The format of this file must be as follows:
1414

1515
.. code::
16+
# high symmetry points
17+
k_points_x(0) k_points_y(0) k_points_z(0) name(0)
18+
k_points_x(1) k_points_y(1) k_points_z(1) name(1)
19+
...
1620

17-
N_kpoints
18-
kx(0) ky(0) kz(0)
19-
kx(1) ky(1) kz(1)
20-
...
21-
kx(N_kpoints-1) ky(N_kpoints-1) kz(N_kpoints-1)
21+
22+
Example
23+
-------
24+
25+
For example, the command::
26+
27+
.. code::
28+
29+
0 0 0 G
30+
0.5 0 0 M
31+
0.333 0.333 0 K
32+
0 0 0 G
2233
23-
Here,
24-
* ``N_kpoints`` is the number of k points you want to consider.
25-
* The remaining lines give the k vectors (in units of 1/Å) you want to consider.
26-
* The user has to make sure that the k vectors are defined in the reciprocal space with respect to the unit cell chosen.
34+
or
35+
36+
.. code::
2737
38+
0 0 0 G
39+
0.5 0 0.5 X
40+
0.625 0.25 0.625 U
41+
#Represents a breakpoint, marking the start of the second path.
42+
0.375 0.375 0.75 K
43+
0 0 0 G
44+
0.5 0.5 0.5 L
45+
0.5 0.25 0.75 W
46+
0.5 0 0.5 X
47+
48+
Here,
49+
* The first three columns represent the coordinates of high symmetry points. The last column corresponds to names.
50+
* A blank line indicates a breakpoint or the initiation of a second path.

doc/gpumd/input_parameters/add_spring.rst

Lines changed: 50 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,55 +5,80 @@
55
:attr:`add_spring`
66
==================
77

8-
This keyword is used to add a spring between a ghost atom and the centroid of atoms in a selected group.
8+
This keyword adds spring interactions to selected atom groups at each step of a run.
9+
10+
It supports three modes: :attr:`ghost_com`, :attr:`ghost_atom`, and :attr:`com_com`, which add spring forces between a ghost atom and the center of mass (COM) of a group, between ghost atoms and their corresponding atoms in a group, and between the COMs of two groups, respectively. The ghost atom(s) can be static or move at a constant velocity. Each mode supports two spring types: :attr:`couple` (a single radial spring) and :attr:`decouple` (three independent springs along the x, y, and z directions).
911

1012
Syntax
1113
------
1214

13-
This keyword is used in one of the following two ways::
15+
The complete syntax for the six combinations is::
1416

15-
add_spring ghost_com <group_method> <group_id> <ghost_vx> <ghost_vy> <ghost_vz> couple <k_couple> <R0> <offset_x> <offset_y> <offset_z> # usage 1
16-
add_spring ghost_com <group_method> <group_id> <ghost_vx> <ghost_vy> <ghost_vz> decouple <k_decouple_x> <k_decouple_y> <k_decouple_z> <offset_x> <offset_y> <offset_z> # usage 2
17+
add_spring ghost_com <group_method> <group_id> <ghost_vx> <ghost_vy> <ghost_vz> couple <k_couple> <R0> <offset_x> <offset_y> <offset_z>
18+
add_spring ghost_com <group_method> <group_id> <ghost_vx> <ghost_vy> <ghost_vz> decouple <k_decouple_x> <k_decouple_y> <k_decouple_z> <offset_x> <offset_y> <offset_z>
19+
add_spring ghost_atom <group_method> <group_id> <ghost_vx> <ghost_vy> <ghost_vz> couple <k_couple> <R0> <offset_x> <offset_y> <offset_z>
20+
add_spring ghost_atom <group_method> <group_id> <ghost_vx> <ghost_vy> <ghost_vz> decouple <k_decouple_x> <k_decouple_y> <k_decouple_z> <offset_x> <offset_y> <offset_z>
21+
add_spring com_com <group_method> <group_id_1> <group_id_2> couple <k_couple> <R0>
22+
add_spring com_com <group_method> <group_id_1> <group_id_2> decouple <k_decouple_x> <k_decouple_y> <k_decouple_z>
1723

18-
The function of the coupled spring potential is given by the equation:
24+
The coupled spring potential is:
1925

2026
.. math::
2127
2228
U_{\mathrm{couple}} = \frac{1}{2} k_{\mathrm{couple}} (R - R_0)^2
23-
24-
where :math:`R` is the distance between the ghost atom and the centroid of the selected group. The function of the decoupled spring potential is given by the equation:
29+
30+
where :math:`R` is the distance between the two points connected by the spring.
31+
32+
The decoupled spring potential is:
2533

2634
.. math::
2735
28-
U_{\mathrm{decouple}} = \frac{1}{2} k_{\mathrm{decouple},x} (x - x_{\mathrm{ghost}})^2 + \frac{1}{2} k_{\mathrm{decouple},y} (y - y_{\mathrm{ghost}})^2 + \frac{1}{2} k_{\mathrm{decouple},z} (z - z_{\mathrm{ghost}})^2
29-
30-
where :math:`(x_{\mathrm{ghost}}, y_{\mathrm{ghost}}, z_{\mathrm{ghost}})` is the position of the ghost atom and :math:`(x, y, z)` is the position of the centroid of the selected group.
36+
U_{\mathrm{decouple}} = \frac{1}{2} k_{\mathrm{decouple},x} (x_2 - x_1)^2 + \frac{1}{2} k_{\mathrm{decouple},y} (y_2 - y_1)^2 + \frac{1}{2} k_{\mathrm{decouple},z} (z_2 - z_1)^2
3137
32-
* Force is added to atoms in group :attr:`group_id` of group method :attr:`group_method`.
33-
* In the first usage, a spring is coupled to the ghost atom with spring constant :attr:`k_couple` and equilibrium distance :attr:`R0`.
34-
* In the second usage, a spring is decoupled from the ghost atom with spring constants :attr:`k_decouple_x`, :attr:`k_decouple_y`, and :attr:`k_decouple_z` in the x, y, and z directions, respectively.
35-
* The ghost atom starts at the position of the centroid of the selected group plus the offset vector (:attr:`offset_x`, :attr:`offset_y`, :attr:`offset_z`), and moves with velocity (:attr:`ghost_vx`, :attr:`ghost_vy`, :attr:`ghost_vz`).
38+
where :math:`(x_1, y_1, z_1)` and :math:`(x_2, y_2, z_2)` are the Cartesian coordinates of the two points connected by the spring.
39+
40+
* In :attr:`ghost_com` mode, force is added to atoms in group :attr:`group_id` of group method :attr:`group_method` with mass-weighted distribution. The ghost is initially placed at the COM + (:attr:`offset_x`, :attr:`offset_y`, :attr:`offset_z`) and is displaced by (:attr:`ghost_vx`, :attr:`ghost_vy`, :attr:`ghost_vz`) at each step.
41+
* In :attr:`ghost_atom` mode, each atom in group :attr:`group_id` is attached to its own ghost anchor. The anchor is initially placed at the atom position + (:attr:`offset_x`, :attr:`offset_y`, :attr:`offset_z`) and is displaced by (:attr:`ghost_vx`, :attr:`ghost_vy`, :attr:`ghost_vz`) at each step. The input spring constant(s) (:attr:`k_couple` or :attr:`k_decouple_x`, :attr:`k_decouple_y`, :attr:`k_decouple_z`) represent the total stiffness of the entire group and are divided internally by the number of atoms in the group. Thus, each atom experiences a spring with an effective stiffness of :attr:`k / N_atoms`.
42+
* In :attr:`com_com` mode, a spring interaction is applied between the COM of group :attr:`group_id_1` and the COM of group :attr:`group_id_2` under the same :attr:`group_method`. Equal and opposite forces are applied to the two groups with mass-weighted distribution within each group.
43+
* In :attr:`couple` mode, :attr:`k_couple` must be positive and :attr:`R0` must be non-negative.
44+
* In :attr:`decouple` mode, :attr:`k_decouple_x`, :attr:`k_decouple_y`, and :attr:`k_decouple_z` must be non-negative.
45+
* In :attr:`com_com` mode, :attr:`group_id_1` and :attr:`group_id_2` must be different.
3646
* Force is in units of eV/Å, distance is in units of Å, velocity is in units of Å/step, and spring constant is in units of eV/Ų.
37-
* Spring forces are written to `spring_force_*.out`, where the asterisk is replaced by a zero-based index that increments with each invocation of the command. The meaning of each column in the file is::
47+
* Spring forces are written to the file :attr:`spring_force_*.out`, where the asterisk is replaced by a zero-based index that increments with each invocation of the command. The meaning of each column in the file is::
48+
49+
# step mode Fx Fy Fz Ftotal energy
50+
51+
where :attr:`mode` is an integer flag: 0 = ghost_com, 1 = ghost_atom, 2 = com_com. In :attr:`com_com` mode, the reported :attr:`Fx`, :attr:`Fy`, and :attr:`Fz` correspond to the net spring force applied to :attr:`group_id_1`.
52+
53+
Example 1 (ghost_com + couple)
54+
------------------------------
55+
56+
Add a coupled spring with spring constant 10 eV/Ų and equilibrium distance 0 Šbetween a static ghost atom and the COM of atoms in group 2 defined by group method 0. The ghost atom is initially located at the COM::
57+
58+
add_spring ghost_com 0 2 0 0 0 couple 10 0 0 0 0
59+
60+
Example 2 (ghost_com + decouple)
61+
--------------------------------
3862

39-
# step call mode Fx Fy Fz energy spring_force
63+
Add a decoupled spring with spring constants 10 eV/Ų in the x direction and 0 eV/Ų in the y and z directions between a ghost atom moving at velocity (0.00005, 0, 0) Å/step and the COM of atoms in group 2 defined by group method 0. The ghost atom is initially located at the COM::
4064

65+
add_spring ghost_com 0 2 0.00005 0 0 decouple 10 0 0 0 0 0
4166

42-
Example 1
43-
---------
67+
Example 3 (ghost_atom + couple)
68+
-------------------------------
4469

45-
Add a coupled spring with spring constant 10 eV/Ų and equilibrium distance 0 Šbetween a static ghost atom and the centroid of atoms in group 2 of group method 0. The ghost atom is initially in the same position as the centroid::
70+
Add a coupled spring between each atom in group 2 defined by group method 0 and its corresponding moving ghost anchor. Each anchor is initially placed at the corresponding atom position and moves at velocity (0.00005, 0, 0) Å/step::
4671

47-
add_spring ghost_com 0 2 0 0 0 couple 10 0 0 0 0
72+
add_spring ghost_atom 0 2 0.00005 0 0 couple 10 0 0 0 0
4873

49-
Example 2
50-
---------
74+
Example 4 (com_com + decouple)
75+
------------------------------
5176

52-
Add a decoupled spring with spring constants 10 eV/Ų in the x direction and 0 eV/Ų in the y and z directions between a ghost atom moving with velocity (0.00005, 0, 0) Å/step and the centroid of atoms in group 2 of group method 0. The ghost atom is initially in the same position as the centroid::
77+
Add a decoupled Cartesian spring between the COM of group 1 and the COM of group 2 under the same group method 0::
5378

54-
add_spring ghost_com 0 2 0.00005 0 0 decouple 10 0 0 0 0 0
79+
add_spring com_com 0 1 2 decouple 10 0 0
5580

5681
Note
5782
----
5883

59-
This keyword can be used multiple times during a run.
84+
This keyword can be used multiple times during a run.

doc/gpumd/input_parameters/compute_phonon.rst

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,18 @@ To use this keyword, please make sure the following files have been preprared in
1717

1818
* - Input filename
1919
- Brief description
20-
* - ``basis.in``
21-
- Define the mapping from the atom label to the basis label
2220
* - ``kpoints.in``
23-
- Specify the :math:`\boldsymbol{k}`-points
21+
- Specify the :math:`\boldsymbol{k}`-points along the high-symmetry paths
22+
23+
24+
To use this keyword, :attr:`replicate` keywords must write head in the :attr:`run.in` file.
2425

2526
Syntax
2627
------
2728

2829
This keyword is used as follows::
2930

30-
compute_phonon <cutoff> <displacement>
31-
32-
:attr:`cutoff` is the cutoff distance (in units of Å) for calculating the force constants.
31+
compute_phonon <displacement>
3332

3433
:attr:`displacement` is the displacement (in units of Å) for calculating the force constants using the finite-displacement method.
3534

@@ -38,13 +37,14 @@ Example
3837

3938
For example, the command::
4039

41-
compute_phonon 5.0 0.01
40+
compute_phonon 0.01
4241

43-
means that one wants to compute the phonon dispersion using a cutoff distance of 5 Å and a displacement of 0.01 Å.
42+
means that one wants to compute the phonon dispersion using a displacement of 0.01 Å.
4443

4544
Caveats
4645
-------
4746

47+
4848
This keyword should occur after all the :attr:`potential` keywords.
4949

5050
For two-body potentials, the cutoff distance for force constants can be the same as that for force evaluations.

doc/gpumd/output_files/D_out.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ This file contains the dynamical matrices :math:`D(\boldsymbol{k})` at different
1111
File format
1212
-----------
1313

14-
The file contains :attr:`3 * N_basis * N_kpoints` rows and :attr:`6 * N_basis` columns, where :attr:`N_basis` is the number of basis atoms in the unit cell defined in the :ref:`basis.in input file <basis_in>` and :attr:`N_kpoints` is the number of :math:`\boldsymbol{k}`-points in the :ref:`kpoints.in input file <kpoints_in>`.
14+
The file contains :attr:`3 * N_basis * N_kpoints` rows and :attr:`6 * N_basis` columns, where :attr:`N_basis` is the number of basis atoms in the unit cell defined and :attr:`N_kpoints` is the number of :math:`\boldsymbol{k}`-points from :ref:`kpoints.in input file <kpoints_in>` created.
1515

1616
Each consecutive :attr:`3 * N_basis` rows correspond to one :math:`\boldsymbol{k}`-point.
1717
For each :math:`\boldsymbol{k}`-point, the first :attr:`3*N_basis` columns correspond to the real part and the second :attr:`3*N_basis` columns correspond to the imaginary part.

doc/publications.bib

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,16 @@ @article{CaoCaoZhu24
205205
doi = {10.1016/j.ijheatmasstransfer.2024.125359}
206206
}
207207

208+
@article{CaoJuLiu26,
209+
title = {Temperature-stable thermal transport in graphene antidot lattices: {Phonon} scattering regulation},
210+
journal = {Chemical Physics Letters},
211+
pages = {142740},
212+
year = {2026},
213+
issn = {0009-2614},
214+
doi = {10.1016/j.cplett.2026.142740},
215+
author = {Bin Cao and Boqia Ju and Gang Liu and Ge Yao and Jiuyu Sun and Yongping Du}
216+
}
217+
208218
@article{CaoLiuChen25,
209219
author = {Cao, Jian and Liu, Chang and Chen, Zian and Li, Haichao and Xu, Lina and Xiao, Hongping and Wang, Shun and He, Xiao and Fang, Guoyong},
210220
title = {Accelerated Discovery of Refractory High-Entropy Alloys via Interpretable Machine Learning},

0 commit comments

Comments
 (0)