@@ -92,26 +92,28 @@ namespace dftfe
92
92
mpi_communicator, " Overloaded constraint matrices initialized" );
93
93
94
94
//
95
- // initialize density and PSI/ interpolate from previous ground state
96
- // solution
95
+ // initialize PSI and density
97
96
//
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)
101
111
{
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 () *
105
115
(1 + d_dftParamsPtr->spinPolarized ) * d_kPointWeights.size (),
106
116
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
- }
115
117
}
116
118
117
119
pcout << std::endl
0 commit comments