diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml index b8597a578d..3ca54ac68d 100644 --- a/.github/ISSUE_TEMPLATE/documentation.yml +++ b/.github/ISSUE_TEMPLATE/documentation.yml @@ -1,7 +1,7 @@ name: Docs description: For users or developers to report issues related to software documentation, such as missing or incomplete documentation, or documentation that is difficult to understand. labels: [Docs] -assignees: hongriTianqi +assignees: [insert assignee here] body: - type: textarea attributes: diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml index c598abf8de..b2e8f2b76b 100755 --- a/.github/ISSUE_TEMPLATE/feature-request.yml +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -25,6 +25,14 @@ body: validations: required: true +- type: textarea + attributes: + label: Notice Possible Change of Behavior (Reminder only for developers) + description: | + Please ensure that you have carefully considered the possible change of behavior your code changes might introduce. Make sure to provide a detailed explanation of these changes and their potential impact on the application. This will help reviewers to better understand your changes and assess their implications. + placeholder: | + Example: My changes might affect the performance of the application under certain conditions, and I have tested the impact on various scenarios... + - type: textarea attributes: label: Additional Context diff --git a/.github/ISSUE_TEMPLATE/tests.yml b/.github/ISSUE_TEMPLATE/tests.yml index ecb32bb31c..e73055189d 100644 --- a/.github/ISSUE_TEMPLATE/tests.yml +++ b/.github/ISSUE_TEMPLATE/tests.yml @@ -1,7 +1,7 @@ name: Tests description: For developers to report issues related to software testing, such as test failures, missing or incomplete tests, or issues with test automation. labels: [Tests] -assignees: hongriTianqi +assignees: [insert assignee here] body: - type: textarea diff --git a/Dockerfile.gnu b/Dockerfile.gnu index 0b6b45d248..666e94974b 100644 --- a/Dockerfile.gnu +++ b/Dockerfile.gnu @@ -2,7 +2,7 @@ FROM ubuntu:22.04 RUN apt update && apt install -y --no-install-recommends \ libopenblas-openmp-dev liblapack-dev libscalapack-mpi-dev libelpa-dev libfftw3-dev libcereal-dev \ libxc-dev libgtest-dev libgmock-dev python3-numpy \ - bc cmake git g++ make bc time sudo unzip vim wget gfortran + bc cmake git g++ make bc time sudo unzip vim wget gfortran libmpich-dev mpich ENV GIT_SSL_NO_VERIFY=true TERM=xterm-256color \ OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 OMPI_MCA_btl_vader_single_copy_mechanism=none @@ -19,6 +19,8 @@ ENV CMAKE_PREFIX_PATH=/opt/libtorch/share/cmake ADD https://api.github.com/repos/deepmodeling/abacus-develop/git/refs/heads/develop /dev/null +ENV CMAKE_Fortran_COMPILER=/usr/bin/mpifort + RUN git clone https://github.com/deepmodeling/abacus-develop.git --depth 1 && \ cd abacus-develop && \ cmake -B build -DENABLE_DEEPKS=ON -DENABLE_LIBXC=ON -DENABLE_LIBRI=ON && \ diff --git a/docs/advanced/input_files/input-main.md b/docs/advanced/input_files/input-main.md index 705ce8e03b..c2446eb52d 100644 --- a/docs/advanced/input_files/input-main.md +++ b/docs/advanced/input_files/input-main.md @@ -909,12 +909,15 @@ calculations. - **plain**: Just simple mixing. - **pulay**: Standard Pulay method. [P. Pulay Chemical Physics Letters, (1980)](https://www.sciencedirect.com/science/article/abs/pii/0009261480803964) - **broyden**: Simplified modified Broyden method. [D.D. Johnson Physical Review B (1988)](https://journals.aps.org/prb/abstract/10.1103/PhysRevB.38.12807) + + In general, the convergence of the Broyden method is slightly faster than that of the Pulay method. - **Default**: broyden ### mixing_beta - **Type**: Real -- **Description**: mixing parameter. We recommend the following options: +- **Description**: In general, the formula of charge mixing can be written as $\rho_{new} = \rho_{old} + \beta * \rho_{update}$, where $\rho_{new}$ represents the new charge density after charge mixing, $\rho_{old}$ represents the charge density in previous step, $\rho_{update}$ is obtained through various mixing methods, and $\beta$ is set by the parameter `mixing_beta`. A lower value of 'mixing_beta' results in less influence of $\rho_{update}$ on $\rho_{new}$, making the self-consistent field (SCF) calculation more stable. However, it may require more steps to achieve convergence. +We recommend the following options: - **-10.0**: Program will auto set `mixing_beta` and `mixing_gg0` before charge mixing method starts. - Default values of transition metal system are `mixing_beta=0.2` and `mixing_gg0=1.5`; - Default values of metal system (bandgap <= 1.0 eV) are `mixing_beta=0.2` and `mixing_gg0=0.0`; @@ -930,6 +933,8 @@ calculations. - **Type**: Integer - **Description**: It indicates the mixing dimensions in Pulay or Broyden. Pulay and Broyden method use the density from previous mixing_ndim steps and do a charge mixing based on this density. + + For systems that are difficult to converge, one could try increasing the value of 'mixing_ndim' to enhance the stability of the self-consistent field (SCF) calculation. - **Default**: 8 ### mixing_gg0 @@ -938,6 +943,8 @@ calculations. - **Description**: Whether to perfom Kerker scaling. - **>0**: The high frequency wave vectors will be suppressed by multiplying a scaling factor $\frac{k^2}{k^2+gg0^2}$. Setting `mixing_gg0 = 1.5` is normally a good starting point. - **0**: No Kerker scaling is performed. + + For systems that are difficult to converge, particularly metallic systems, enabling Kerker scaling may aid in achieving convergence. - **Default**: 0.0 ### mixing_tau