-
Notifications
You must be signed in to change notification settings - Fork 55
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Documentation for random displacement
- Loading branch information
Showing
5 changed files
with
143 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
(random-displacements)= | ||
# Randan displacements | ||
|
||
Random displacements and corresponding forces in supercells can be employed as a | ||
displacement-force dataset for computing force constants. This requires an | ||
external force constants calculator, e.g., symfc or ALM. Here, examples are | ||
presented with using symfc that can be installed via pip or conda easily. | ||
|
||
## Related setting tags | ||
|
||
- {ref}`random_displacements_option` (`--rd`, `--random-seed`) | ||
- {ref}`fc_calculator_option` (`--fc-calc`) | ||
- {ref}`fc_calculator_options_option` (`--fc-calc-opt`) | ||
|
||
## Generation of random directional displacements | ||
|
||
The option `--rd NUM` is used instead of `-d` in generating displacements as follows: | ||
|
||
``` | ||
% phono3py --rd 100 --dim 2 2 2 --pa auto -c POSCAR-unitcell | ||
``` | ||
|
||
`NUM` means the number of supercells with random directional displacements. This | ||
must be specified, and the initial guess may be from around the number of | ||
supecells generated for the systematic displacements by `-d`. In the case of the | ||
`NaCl-rd` example, 146 supercells are generated with `-d`, so similar | ||
number `--rd 100` was chosen here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# Example of using random directional displacements | ||
|
||
## How to use symfc | ||
|
||
This example utilizes an NaCl calculation result from A. Togo and A. Seko, J. | ||
Chem. Phys. 160, 211001 (2024). Supercells of 2x2x2 and 4x4x4 conventional unit | ||
cells are chosen for the third-order force constants (fc3) and second-order | ||
force constants (fc2), respectively. Displacement-force datasets consisting of | ||
100 supercells for fc3 and 4 supercells for fc2 are extracted and stored in | ||
`phono3py_params_NaCl.yaml.xz`. Random directional displacements of a constant | ||
0.03 Angstrom are used. | ||
|
||
To calculate force constants, an external force constants calculator is | ||
necessary. Here, the symfc tool (available at https://github.com/symfc/symfc) is | ||
used, which can be easily installed via pip or conda. | ||
|
||
The `fc3.hdf5` and `fc2.hdf5` are computed using the command: | ||
|
||
``` | ||
% phono3py-load phono3py_params_NaCl.yaml.xz --symfc -v | ||
``` | ||
|
||
Lattice thermal conductivity (LTC) is calculated with the following command: | ||
|
||
``` | ||
% phono3py-load phono3py_params_NaCl.yaml.xz --br --ts 300 --mesh 50 | ||
``` | ||
|
||
By this, LTC is obtained around 7.8 W/m-k. | ||
|
||
|
||
## How to use pypolymlp | ||
|
||
The polynomial machine learning potential (poly-MLP) by pypolymlp can be used to | ||
calculate fc3 by the following command: | ||
|
||
``` | ||
% phono3py-load phono3py_params_NaCl.yaml.xz --pypolymlp --symfc --rd 400 -v | ||
``` | ||
|
||
the procedure below is performed: | ||
|
||
1. Poly-MLPs are computed from the displacement-force dataset for fc3. This is | ||
activated by the `--pypolymlp` option. | ||
2. 800=400+400 supercells for random directional displacements are generated, | ||
where 400+400 means 400 supercells with random displacements (u) and 400 | ||
supercells with opposite displacement vectors (-u). This is activated by the | ||
`--rd 400` option. The default displacement distance is 0.001 Angstrom in the | ||
`--pypolymlp` mode. Since random displacements are generated `--symfc` has to | ||
be specified for fc3. In this example, random displacements are used for fc2, | ||
too, `--symfc` is applied to both of fc3 and fc2. Without the `--rd` option, | ||
systematic displacements are generated, for which the option `--fc-calc "symfc|"` | ||
has to be specified instead of `--symfc` (equivalent to `--fc-calc "symfc|symfc")`). | ||
3. Forces on atoms in these 800 supercells are calculated using poly-MLP. | ||
4. Force constants are calculated. | ||
|
||
|
||
The `fc3.hdf5` and `fc2.hdf5` are obtained. Using these force constants, LTC is | ||
calculated by | ||
|
||
``` | ||
% phono3py-load phono3py_params_NaCl.yaml.xz --br --ts 300 --mesh 50 | ||
``` | ||
|
||
and the LTC value of around 7.8 W/m-k is obtained. This LTC value is equivalent | ||
to above, but of course, it can be different. |
Binary file not shown.