Skip to content

Commit 3fc7c83

Browse files
Merge pull request #247 from sayanbhowmik/master
2 parents 0fc456f + 0c7ac52 commit 3fc7c83

File tree

7 files changed

+33
-14
lines changed

7 files changed

+33
-14
lines changed

ChangeLog

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,15 @@
33
-Name
44
-changes
55

6+
--------------
7+
June 17, 2025
8+
Name: Sayan Bhowmik
9+
Changes: README.md, doc/.LaTeX/Introduction.tex, doc/Manual.pdf,
10+
src/initialization.c, src/hubbard/hubbardStress.c
11+
1. Fixed minor bug in domain parallelization for DFT+U stress calculation.
12+
2. Added band structure calculation part for DFT+U.
13+
3. Updated README, doc.
14+
615
--------------
716
June 03, 2025
817
Name: Sayan Bhowmik

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ SPARC is an open-source software package for the accurate, effcient, and scalabl
1212
* Spin-orbit coupling (SOC).
1313
* Noncollinear spin.
1414
* Dispersion interactions through DFT-D3, vdW-DF1, and vdW-DF2.
15-
* DFT+U through Dudarev's formulation.
15+
* DFT+U
1616
* Symmetry-adaption for cyclic and/or helical symmetries (Cyclix-DFT).
1717
* O(N) Spectral Quadrature (SQ) method.
1818
* On-the-fly machine-learned force field (MLFF) molecular dynamics (MD) simulations.
@@ -199,14 +199,16 @@ If you publish work using/regarding SPARC, please cite some of the following art
199199
* **Linear solvers**: https://doi.org/10.1016/j.cpc.2018.07.007, https://doi.org/10.1016/j.jcp.2015.11.018
200200
* **Stress tensor/pressure**: https://doi.org/10.1063/1.5057355
201201
* **Atomic forces**: https://doi.org/10.1016/j.cpc.2016.09.020 (isolated systems), https://doi.org/10.1016/j.cpc.2017.02.019 (extended systems)
202+
* **Hybrid XC**: https://doi.org/10.1063/5.0225396, https://doi.org/10.1063/5.0260892 (GPU)
202203
* **Mixing**: https://doi.org/10.1016/j.cplett.2016.01.033, https://doi.org/10.1016/j.cplett.2015.06.029 (restarting), https://doi.org/10.1016/j.cplett.2019.136983 (preconditioning)
203204
* **SPMS pseudopotentials**: https://doi.org/10.1016/j.cpc.2022.108594
204205
* **Cyclic and/or helical symmetry**: https://doi.org/10.1103/PhysRevB.103.035101, https://doi.org/10.1103/PhysRevB.100.125143 (initial developments, extended systems), https://doi.org/10.1016/j.jmps.2016.08.007 (initial developments, isolated systems)
205206
* **O(N) Spectral Quadrature method**: https://doi.org/10.1016/j.cpc.2015.11.005, https://doi.org/10.1016/j.cpc.2015.11.005 (initial implementation), https://doi.org/10.1016/j.cplett.2013.08.035 (formulation), https://doi.org/10.1007/978-3-031-22340-2_12 (detailed mathematical formulation)
206-
* **On-the-fly MLFF**: https://doi.org/10.1063/5.0180541, https://doi.org/10.1063/5.0204229 (SQ), https://doi.org/10.48550/arXiv.2408.07554 (Cyclix), https://doi.org/10.48550/arXiv.2407.15290 (internal energy)
207+
* **On-the-fly MLFF**: https://doi.org/10.1063/5.0180541, https://doi.org/10.1063/5.0204229 (SQ), https://doi.org/10.1016/j.jmps.2024.105927 (Cyclix), https://doi.org/10.1063/5.0230060 (internal energy)
208+
* **Atom code**: https://doi.org/10.1016/j.cpc.2024.109448 (spectral scheme)
207209
208210
209-
### (7) Acknowledgement:
211+
### (8) Acknowledgement:
210212
211213
* **U.S. Department of Energy (DOE), Office of Science (SC): DE-SC0023445, DE-SC0019410**
212214
* **U.S. Department of Energy (DOE), National Nuclear Security Administration (NNSA): Advanced Simulation and Computing (ASC) Program**

doc/.LaTeX/Introduction.tex

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
2+
13
\begin{frame}[allowframebreaks]{\textbf{Introduction}} \label{Introduction}
24
SPARC is an open-source software package for the accurate, efficient, and scalable solution of the Kohn-Sham density functional theory (DFT) problem. The main features of SPARC currently include
35
\begin{itemize}
@@ -9,6 +11,7 @@
911
\item Spin polarized and unpolarized calculations.
1012
\item Spin-orbit coupling.
1113
\item Dispersion interactions through DFT-D3, vdW-DF1, and vdW-DF2.
14+
\item DFT+U
1215
\item Symmetry-adaption for cyclic and/or helical symmetries.
1316
\item Linear-scaling Spectral Quadrature (SQ) method.
1417
\item Soft and transferable table of SPMS pseudopotentials.
@@ -33,7 +36,7 @@
3336
\item \textbf{Boqin Zhang}: vdW-DF, DFT-D3, meta-GGA (SCAN) \\
3437
\item \textbf{Shashikant Kumar}: Testing framework, NLCC, MLFF \\
3538
\item \textbf{Mostafa Faghih Shojaei}: SPMS table of pseudopotentials \\
36-
\item \textbf{Sayan Bhowmik\footnotemark}: Atom code, DFT+U (Dudarev) \\
39+
\item \textbf{Sayan Bhowmik\footnotemark[1]}: Atom code, DFT+U (Dudarev) \\
3740
\item \textbf{Swarnava Ghosh}: Preliminary development \\
3841
\item \textbf{Deepa Phanish}: Initial development
3942
\end{itemize}
@@ -48,11 +51,11 @@
4851
\item \textbf{Benjamin Comer}: Code testing, Initial testing framework
4952
\item \textbf{Sushree Jagriti Sahoo}: Code testing
5053
\item \textbf{Tian Tian}: Socket communication layer, code testing, Python API
51-
\item \textbf{Lucas R Timmerman}: Socket communication layer, code testing, Python API
52-
\item \textbf{Sayan Bhowmik\footnotemark[\value{footnote}]}: Atom code, DFT+U (Dudarev)
54+
\item \textbf{Lucas R Timmerman\footnotemark[2]}: Socket communication layer, code testing, Python API
5355
\end{itemize}
5456
\end{itemize}
55-
\footnotetext{co-advised}
57+
\footnotetext[1]{co-advised with Andrew J. Medford}
58+
\footnotetext[2]{co-advised with Phanish Suryanarayana}
5659
\end{frame}
5760

5861

@@ -64,6 +67,8 @@
6467
\item Linear solvers: \url{https://doi.org/10.1016/j.cpc.2018.07.007}, \url{https://doi.org/10.1016/j.jcp.2015.11.018}
6568
\item Stress tensor/pressure: \url{https://doi.org/10.1063/1.5057355}
6669
\item Atomic forces: \url{https://doi.org/10.1016/j.cpc.2016.09.020} (isolated systems), \url{https://doi.org/10.1016/j.cpc.2017.02.019} (extended systems)
70+
\item Hybrid XC:
71+
\url{https://doi.org/10.1063/5.0225396}, \url{https://doi.org/10.1063/5.0260892} (GPU)
6772
\item Mixing: \url{https://doi.org/10.1016/j.cplett.2016.01.033}, \url{https://doi.org/10.1016/j.cplett.2015.06.029} (restarting), \url{https://doi.org/10.1016/j.cplett.2019.136983} (preconditioning)
6873
\item SPMS pseudopotentials: \url{https://doi.org/10.1016/j.cpc.2022.108594}
6974
\item Cyclic and/or helical symmetry:
@@ -75,7 +80,9 @@
7580
\url{https://doi.org/10.1016/j.cplett.2013.08.035} (formulation),
7681
\url{https://doi.org/10.1007/978-3-031-22340-2_12} (detailed mathematical formulation)
7782
\item On-the-fly MLFF:
78-
\url{https://doi.org/10.1063/5.0180541}, \url{https://doi.org/10.1063/5.0204229} (SQ), \url{https://doi.org/10.48550/arXiv.2408.07554} (Cyclix), \url{https://doi.org/10.48550/arXiv.2407.15290} (internal energy)
83+
\url{https://doi.org/10.1063/5.0180541}, \url{https://doi.org/10.1063/5.0204229} (SQ), \url{https://doi.org/10.1016/j.jmps.2024.105927} (Cyclix), \url{https://doi.org/10.1063/5.0230060} (internal energy)
84+
\item Atom code:
85+
\url{https://doi.org/10.1016/j.cpc.2024.109448} (spectral scheme)
7986
\end{itemize}
8087
\end{frame}
8188

doc/Manual.pdf

5.2 KB
Binary file not shown.

src/atom/electronicGroundStateAtom.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,16 @@ void electronicGroundState_atom(SPARC_ATOM_OBJ *pSPARC_ATOM){
7777
/* SCF loop for local and semi-local part */
7878
scfLoopAtom(pSPARC_ATOM);
7979
while (!pSPARC_ATOM->scf_success) {
80-
#ifdef DEBUG
80+
// #ifdef DEBUG
8181
printf("#######################################################################\n");
8282
printf(" WARNING! BE CAREFUL. \n");
8383
printf("#######################################################################\n");
8484
printf("\nAdjusting SCF tolerance for convergence....\n");
85-
#endif
85+
// #endif
8686
pSPARC_ATOM->SCF_tol *= 10;
87-
#ifdef DEBUG
87+
// #ifdef DEBUG
8888
printf("Adjusted SCF tolerance now is %0.6e\n",pSPARC_ATOM->SCF_tol);
89-
#endif
89+
// #endif
9090
scfLoopAtom(pSPARC_ATOM);
9191
}
9292
if ((pSPARC_ATOM->scf_success) && (pSPARC_ATOM->usefock == 0)) {

src/initialization.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1704,6 +1704,7 @@ void SPARC_copy_input(SPARC_OBJ *pSPARC, SPARC_INPUT_OBJ *pSPARC_Input) {
17041704
if (pSPARC->BandStructFlag == 1) {
17051705
pSPARC->MAXIT_SCF = 1;
17061706
pSPARC->MINIT_SCF = 1;
1707+
if (pSPARC->is_hubbard) pSPARC->MAXIT_SCF = 50;
17071708
pSPARC->PrintElecDensFlag = 0;
17081709
pSPARC->PrintEigenFlag = 1;
17091710
}
@@ -3720,7 +3721,7 @@ void write_output_init(SPARC_OBJ *pSPARC) {
37203721
}
37213722

37223723
fprintf(output_fp,"***************************************************************************\n");
3723-
fprintf(output_fp,"* SPARC (version June 3, 2025) *\n");
3724+
fprintf(output_fp,"* SPARC (version June 17, 2025) *\n");
37243725
fprintf(output_fp,"* Copyright (c) 2020 Material Physics & Mechanics Group, Georgia Tech *\n");
37253726
fprintf(output_fp,"* Distributed under GNU General Public License 3 (GPL) *\n");
37263727
fprintf(output_fp,"* Start time: %s *\n",c_time_str);

src/xc/hubbard/hubbardStress.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,7 @@ void Calculate_hubbard_stress_kpt(SPARC_OBJ *pSPARC) {
694694
free(dpsi_full);
695695

696696
if (pSPARC->npNd > 1) {
697-
MPI_Allreduce(MPI_IN_PLACE, alpha, pSPARC->IP_displ_U[atm_idx] * ncol * Nspinor * 7, MPI_DOUBLE_COMPLEX, MPI_SUM, pSPARC->dmcomm);
697+
MPI_Allreduce(MPI_IN_PLACE, alpha, pSPARC->IP_displ_U[atm_idx] * ncol * Nspinor * Nk * 7, MPI_DOUBLE_COMPLEX, MPI_SUM, pSPARC->dmcomm);
698698
}
699699

700700
/* calculate hubbard stress */

0 commit comments

Comments
 (0)