Skip to content

Commit b054731

Browse files
authored
Merge pull request #184 from deepmodeling/develop
Merge: v2.3.5
2 parents 429fdd6 + b8e0b47 commit b054731

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+6165
-2867
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ target_link_libraries(${ABACUS_BIN_NAME}
336336
driver
337337
xc_
338338
hsolver
339+
genelpa
339340
elecstate
340341
hamilt
341342
psi

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ ABACUS provides the following features and functionalities:
5656
20. (subsidiary tool)Generator for second generation numerical orbital basis.
5757
21. Interface with DPGEN
5858
22. Interface with phonopy
59+
23. Implicit solvation model
5960

6061
[back to top](#readme-top)
6162

@@ -161,6 +162,7 @@ The following provides basic sample jobs in ABACUS. More can be found in the dir
161162
- [BSSE for molecular formation energy](docs/examples/BSSE.md)
162163
- [ABACUS-DPGEN interface](docs/examples/dpgen.md)
163164
- [ABACUS-phonopy interface](docs/examples/phonopy.md)
165+
- [Implicit solvation model](docs/examples/implicit-sol.md)
164166

165167
[back to top](#readme-top)
166168

docs/examples/implicit-sol.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Implicit solvation model
2+
3+
[back to main page](../../README.md)
4+
5+
Solid-liquid interfaces are ubiquitous in nature and frequently encountered and employed in materials simulation. The solvation effect should be taken into account in accurate first-principles calculations of such systems.
6+
Implicit solvation model is a well-developed method to deal with solvation effects, which has been widely used in finite and periodic systems. This approach treats the solvent as a continuous medium instead of individual “explicit” solvent molecules, which means that the solute embedded in an implicit solvent and the average over the solvent degrees of freedom becomes implicit in the properties of the solvent bath.
7+
8+
## Input
9+
```
10+
INPUT_PARAMETERS
11+
imp_sol 1
12+
eb_k 80
13+
tau 0.000010798
14+
sigma_k 0.6
15+
nc_k 0.00037
16+
```
17+
- imp_sol
18+
19+
If set to 1, an implicit solvation correction is considered. 0:vacuum calculation(default).
20+
- eb_k
21+
22+
The relative permittivity of the bulk solvent, 80 for water. Used only if `imp_sol` == true.
23+
- tau
24+
25+
The effective surface tension parameter, which describes the cavitation, the dispersion, and the repulsion interaction between the solute and the solvent that are not captured by the electrostatic terms.
26+
We use the values of `tau`, `sigma_k`, `nc_k` that were obtained by a fit of the model to experimental solvation energies for molecules in water. tau = 0.525 $meV/Å^{2}$ = 1.0798e-05 $Ry/Bohr^{2}$.
27+
- sigma_k
28+
29+
We assume a diffuse cavity that is implicitly determined by the electronic structure of the solute.
30+
`sigma_k` is the parameter that describes the width of the diffuse cavity. The specific value is sigma_k = 0.6.
31+
- nc_k
32+
33+
`nc_k` determines at what value of the electron density the dielectric cavity forms.
34+
The specific value is nc_k = 0.0025 $Å^{-3}$ = 0.00037 $Bohr^{-3}$.
35+
36+
## Output
37+
In this example, we calculate the implicit solvation correction for H2O.
38+
The results of the energy calculation are written in the “running_nscf.log” in the OUT folder.
39+
```
40+
Energy Rydberg eV
41+
E_KohnSham -34.3200995971 -466.948910448
42+
E_Harris -34.2973698556 -466.639656449
43+
E_band -7.66026117767 -104.223200184
44+
E_one_elec -56.9853883251 -775.325983964
45+
E_Hartree +30.0541108968 +408.907156521
46+
E_xc -8.32727420734 -113.298378028
47+
E_Ewald +0.961180728747 +13.0775347188
48+
E_demet +0 +0
49+
E_descf +0 +0
50+
E_efield +0 +0
51+
E_exx +0 +0
52+
E_sol_el -0.0250553663339 -0.340895747619
53+
E_sol_cav +0.00232667606131 +0.031656051834
54+
E_Fermi -0.499934383866 -6.8019562467
55+
56+
```
57+
- E_sol_el: Electrostatic contribution to the solvation energy.
58+
- E_sol_cav: Cavitation and dispersion contributions to the solvation energy.
59+
Both `E_sol_el` and `E_sol_cav` corrections are included in `E_KohnSham`.
60+
61+
62+
63+
[back to top](#implicit-solvation-model)

docs/examples/phonopy.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[back to main page](../../README.md)
44

55

6-
[Phonopy](https://github.com/phonopy/phonopy) is a powerful package to calculate phonon and related properties. It has provided interface with ABACUS. In the following, we take the FCC aluminum as an example:
6+
[Phonopy](https://github.com/phonopy/phonopy) (Note: please use the `develop` branch, rather than the `master` branch until the abacus interface has been merged into phonopy's `master` branch.) is a powerful package to calculate phonon and related properties. It has provided interface with ABACUS. In the following, we take the FCC aluminum as an example:
77

88

99
1. Prepare a 'setting.conf' with following tags:
@@ -39,4 +39,4 @@ PRIMITIVE_AXES = 0 1/2 1/2 1/2 0 1/2 1/2 1/2 0
3939
BAND= 1 1 1 1/2 1/2 1 3/8 3/8 3/4 0 0 0 1/2 1/2 1/2
4040
BAND_POINTS = 21
4141
BAND_CONNECTION = .TRUE.
42-
```
42+
```

docs/features.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,14 @@ ATOMIC_SPECIES
5050
Si 28.00 Si_ONCV_PBE-1.0.upf
5151
```
5252

53-
The user can download the pseudopotential files from our [website](http://abacus.ustc.edu.cn/pseudo.html).
53+
You can download the pseudopotential files from our [website](http://abacus.ustc.edu.cn/pseudo/list.htm).
5454

55-
For more information of different types of pseudopotentials, please visit the Quantum espresso [website](http://www.quantum-espresso.org/pseudopotentials/).
55+
There are pseudopotential files in these websites which are also supported by ABACUS:
56+
1. [Quantum ESPRESSO](http://www.quantum-espresso.org/pseudopotentials/).
57+
2. [SG15-ONCV](http://quantum-simulation.org/potentials/sg15_oncv/upf/).
58+
3. [DOJO](http://www.pseudo-dojo.org/).
59+
60+
If LCAO base is used, the numerical orbital files should match the pseudopotential files. The [official orbitals package](http://abacus.ustc.edu.cn/pseudo/list.htm) only matches SG15-ONCV pseudopotentials.
5661

5762
[back to top](#features)
5863

docs/input-main.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@
8282

8383
[cal_cond](#cal_cond) | [cond_nche](#cond_nche) | [cond_dw](#cond_dw) | [cond_wcut](#cond_wcut) | [cond_wenlarge](#cond_wenlarge) | [cond_fwhm ](#cond_fwhm )
8484

85+
- [Implicit solvation model](#implicit-solvation-model)
86+
87+
[imp_sol](#imp_sol) | [eb_k](#eb_k) | [tau](#tau) | [sigma_k](#sigma_k) | [nc_k](#nc_k)
88+
8589
[back to main page](../README.md)
8690

8791
## Structure of the file
@@ -1662,3 +1666,39 @@ Thermal conductivities: $\kappa = \lim_{\omega\to 0}\kappa(\omega)$
16621666
- **Type**: Integer
16631667
- **Description**: We use gaussian functions to approxiamte $\delta(E)\approx \frac{1}{\sqrt{2\pi}\Delta E}e^{-\frac{E^2}{2{\Delta E}^2}}$. FWHM for conductivities, $FWHM=2*\sqrt{2\ln2}\cdot \Delta E$. The unit is eV.
16641668
- **Default**: 0.3
1669+
1670+
### Implicit solvation model
1671+
1672+
This part of variables are used to control the usage of implicit solvation model. This approach treats the solvent as a continuous medium instead of individual “explicit” solvent molecules, which means that the solute embedded in an implicit solvent and the average over the solvent degrees of freedom becomes implicit in the properties of the solvent bath.
1673+
1674+
#### imp_sol
1675+
1676+
- **Type**: Boolean
1677+
- **Description**: If set to 1, an implicit solvation correction is considered.
1678+
- **Default**: 0
1679+
1680+
#### eb_k
1681+
1682+
- **Type**: Real
1683+
- **Description**: The relative permittivity of the bulk solvent, 80 for water. Used only if `imp_sol` == true.
1684+
- **Default**: 80
1685+
1686+
#### tau
1687+
1688+
- **Type**: Real
1689+
- **Description**: The effective surface tension parameter, which describes the cavitation, the dispersion, and the repulsion interaction between the solute and the solvent that are not captured by the electrostatic terms. The unit is $Ry/Bohr^{2}$.
1690+
- **Default**: 1.0798e-05
1691+
1692+
#### sigma_k
1693+
1694+
- **Type**: Real
1695+
- **Description**: We assume a diffuse cavity that is implicitly determined by the electronic structure of the solute.
1696+
`sigma_k` is the parameter that describes the width of the diffuse cavity.
1697+
- **Default**: 0.6
1698+
1699+
#### nc_k
1700+
1701+
- **Type**: Real
1702+
- **Description**: It determines at what value of the electron density the dielectric cavity forms.
1703+
The unit is $Bohr^{-3}$.
1704+
- **Default**: 0.00037

modules/FindELPA.cmake

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,4 @@ if(ELPA_FOUND)
3838
endif()
3939

4040
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${ELPA_INCLUDE_DIR})
41-
include(CheckCXXSourceCompiles)
42-
check_cxx_source_compiles("
43-
#include <elpa/elpa_version.h>
44-
#if ELPA_API_VERSION < 20210430
45-
#error ELPA version is too old.
46-
#endif
47-
int main(){}
48-
"
49-
ELPA_VERSION_SATISFIES
50-
)
51-
if(NOT ELPA_VERSION_SATISFIES)
52-
message(FATAL_ERROR "ELPA version is too old. We support version 2017 or higher.")
53-
endif()
5441
mark_as_advanced(ELPA_INCLUDE_DIR ELPA_LIBRARY)

source/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ VPATH=./src_global\
2020
:./module_xc\
2121
:./module_esolver\
2222
:./module_hsolver\
23+
:./module_hsolver/genelpa\
2324
:./module_elecstate\
2425
:./module_psi\
2526
:./module_hamilt\

source/Makefile.Objects

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,11 @@ hsolver_lcao.o\
277277
hsolver_pw.o\
278278
hsolver_pw_sdft.o
279279

280+
OBJ_GENELPA=elpa_new_complex.o\
281+
elpa_new_real.o\
282+
elpa_new.o\
283+
utils.o
284+
280285
OBJ_ELECSTATES=elecstate.o\
281286
dm2d_to_grid.o\
282287
elecstate_lcao.o\
@@ -304,6 +309,7 @@ $(OBJ_HSOLVER)\
304309
$(OBJ_ELECSTATES)\
305310
$(OBJ_PSI)\
306311
${OBJ_OPERATOR}\
312+
${OBJ_GENELPA}\
307313
charge.o \
308314
charge_mixing.o \
309315
charge_pulay.o \

source/input_conv.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,7 @@ void Input_Conv::Convert(void)
373373

374374
if (GlobalC::exx_global.info.hybrid_type != Exx_Global::Hybrid_Type::No)
375375
{
376+
//EXX case, convert all EXX related variables
376377
GlobalC::exx_global.info.hybrid_alpha = INPUT.exx_hybrid_alpha;
377378
XC_Functional::get_hybrid_alpha(INPUT.exx_hybrid_alpha);
378379
GlobalC::exx_global.info.hse_omega = INPUT.exx_hse_omega;
@@ -406,6 +407,9 @@ void Input_Conv::Convert(void)
406407
Exx_Abfs::Jle::Lmax = INPUT.exx_opt_orb_lmax;
407408
Exx_Abfs::Jle::Ecut_exx = INPUT.exx_opt_orb_ecut;
408409
Exx_Abfs::Jle::tolerence = INPUT.exx_opt_orb_tolerence;
410+
411+
//EXX does not support any symmetry analyse, force symmetry setting to -1
412+
ModuleSymmetry::Symmetry::symm_flag = -1;
409413
}
410414
#endif
411415
#endif

0 commit comments

Comments
 (0)