Skip to content

Commit 54f0a77

Browse files
committed
Merged in lowerBoundWantedSpectrumFix (pull request #586)
fix inconsistency in setting lower bound of wanted spectrum for chebyshev filtering Approved-by: Phani Motamarri
2 parents 894f70e + 274e7d5 commit 54f0a77

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

src/dft/initElectronicFields.cc

+18-16
Original file line numberDiff line numberDiff line change
@@ -92,26 +92,28 @@ namespace dftfe
9292
mpi_communicator, "Overloaded constraint matrices initialized");
9393

9494
//
95-
// initialize density and PSI/ interpolate from previous ground state
96-
// solution
95+
// initialize PSI and density
9796
//
98-
for (unsigned int kPoint = 0;
99-
kPoint < (1 + d_dftParamsPtr->spinPolarized) * d_kPointWeights.size();
100-
++kPoint)
97+
98+
AssertThrow(
99+
(1 + d_dftParamsPtr->spinPolarized) * d_kPointWeights.size() *
100+
d_numEigenValues <
101+
INT_MAX / matrix_free_data.get_vector_partitioner()->local_size(),
102+
dealii::ExcMessage(
103+
"DFT-FE error: size of local wavefunctions storage exceeds integer bounds. Please increase number of MPI tasks"));
104+
105+
d_eigenVectorsFlattenedHost.resize(
106+
(d_numEigenValues *
107+
matrix_free_data.get_vector_partitioner()->local_size()) *
108+
(1 + d_dftParamsPtr->spinPolarized) * d_kPointWeights.size(),
109+
dataTypes::number(0.0));
110+
if (d_numEigenValuesRR != d_numEigenValues)
101111
{
102-
d_eigenVectorsFlattenedHost.resize(
103-
(d_numEigenValues *
104-
matrix_free_data.get_vector_partitioner()->local_size()) *
112+
d_eigenVectorsRotFracDensityFlattenedHost.resize(
113+
d_numEigenValuesRR *
114+
matrix_free_data.get_vector_partitioner()->local_size() *
105115
(1 + d_dftParamsPtr->spinPolarized) * d_kPointWeights.size(),
106116
dataTypes::number(0.0));
107-
if (d_numEigenValuesRR != d_numEigenValues)
108-
{
109-
d_eigenVectorsRotFracDensityFlattenedHost.resize(
110-
d_numEigenValuesRR *
111-
matrix_free_data.get_vector_partitioner()->local_size() *
112-
(1 + d_dftParamsPtr->spinPolarized) * d_kPointWeights.size(),
113-
dataTypes::number(0.0));
114-
}
115117
}
116118

117119
pcout << std::endl

utils/dftParameters.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1260,7 +1260,7 @@ namespace dftfe
12601260
useMixedPrecXTHXSpectrumSplit = false;
12611261
useMixedPrecSubspaceRotRR = false;
12621262
useMixedPrecCommunOnlyXTHXCGSO = false;
1263-
spectrumSplitStartingScfIter = 1;
1263+
spectrumSplitStartingScfIter = 0;
12641264
useELPA = false;
12651265
constraintsParallelCheck = true;
12661266
createConstraintsFromSerialDofhandler = true;
@@ -2013,6 +2013,9 @@ namespace dftfe
20132013
{
20142014
spinMixingEnhancementFactor = 1.0;
20152015
}
2016+
2017+
if (numCoreWfcRR == 0)
2018+
spectrumSplitStartingScfIter = 10000;
20162019
}
20172020

20182021

0 commit comments

Comments
 (0)