Skip to content

Commit

Permalink
added assert check for wavefunctions storage size exceeding integer b…
Browse files Browse the repository at this point in the history
…ounds
  • Loading branch information
dsambit committed Apr 21, 2024
1 parent ceb05e3 commit 3c71e40
Showing 1 changed file with 18 additions and 16 deletions.
34 changes: 18 additions & 16 deletions src/dft/initElectronicFields.cc
Original file line number Diff line number Diff line change
Expand Up @@ -92,26 +92,28 @@ namespace dftfe
mpi_communicator, "Overloaded constraint matrices initialized");

//
// initialize density and PSI/ interpolate from previous ground state
// solution
// initialize PSI and density
//
for (unsigned int kPoint = 0;
kPoint < (1 + d_dftParamsPtr->spinPolarized) * d_kPointWeights.size();
++kPoint)

AssertThrow(
(1 + d_dftParamsPtr->spinPolarized) * d_kPointWeights.size() *
d_numEigenValues <
INT_MAX / matrix_free_data.get_vector_partitioner()->local_size(),
dealii::ExcMessage(
"DFT-FE error: size of local wavefunctions storage exceeds integer bounds. Please increase number of MPI tasks"));

d_eigenVectorsFlattenedHost.resize(
(d_numEigenValues *
matrix_free_data.get_vector_partitioner()->local_size()) *
(1 + d_dftParamsPtr->spinPolarized) * d_kPointWeights.size(),
dataTypes::number(0.0));
if (d_numEigenValuesRR != d_numEigenValues)
{
d_eigenVectorsFlattenedHost.resize(
(d_numEigenValues *
matrix_free_data.get_vector_partitioner()->local_size()) *
d_eigenVectorsRotFracDensityFlattenedHost.resize(
d_numEigenValuesRR *
matrix_free_data.get_vector_partitioner()->local_size() *
(1 + d_dftParamsPtr->spinPolarized) * d_kPointWeights.size(),
dataTypes::number(0.0));
if (d_numEigenValuesRR != d_numEigenValues)
{
d_eigenVectorsRotFracDensityFlattenedHost.resize(
d_numEigenValuesRR *
matrix_free_data.get_vector_partitioner()->local_size() *
(1 + d_dftParamsPtr->spinPolarized) * d_kPointWeights.size(),
dataTypes::number(0.0));
}
}

pcout << std::endl
Expand Down

0 comments on commit 3c71e40

Please sign in to comment.