18#ifndef configurationalForce_H_
19#define configurationalForce_H_
30 template <dftfe::utils::MemorySpace memorySpace>
40 const MPI_Comm &mpi_comm_parent,
41 const MPI_Comm &mpi_comm_domain,
42 const MPI_Comm &interpoolcomm,
43 const MPI_Comm &interBandGroupComm,
48 const dealii::parallel::distributed::Triangulation<3>
49 &unmovedTriangulation,
50 const dealii::Triangulation<3, 3> &serialUnmovedTriangulation,
51 const std::vector<std::vector<double>> &domainBoundingVectors);
63 basisOperationsPtrHost,
66 basisOperationsPtrElectro,
69 FEBasisOperations<double, double, dftfe::utils::MemorySpace::HOST>>
70 basisOperationsPtrElectroHost,
73 pseudopotentialClassPtr,
80 const dftfe::uInt smearedChargeQuadratureIdElectro);
84 const std::vector<double> &kPointCoords,
85 const std::vector<double> &kPointWeights,
86 const std::vector<std::vector<double>> &domainBoundingVectors,
87 const double domainVolume,
88 const std::shared_ptr<groupSymmetryClass> &groupSymmetryPtr,
92 const std::vector<std::vector<double>> &eigenValues,
93 const std::vector<std::vector<double>> &partialOccupancies,
94 const std::vector<std::vector<double>> &atomLocations,
95 const std::vector<dftfe::Int> &imageIds,
96 const std::vector<double> &imageCharges,
97 const std::vector<std::vector<double>> &imagePositions,
105 &gradDensityOutValues,
110 &rhoTotalOutValuesLpsp,
112 &gradRhoTotalOutValuesLpsp,
114 auxDensityXCOutRepresentationPtr,
115 const std::map<dealii::CellId, std::vector<double>> &rhoCoreValues,
116 const std::map<dealii::CellId, std::vector<double>> &gradRhoCoreValues,
117 const std::map<dealii::CellId, std::vector<double>> &hessianRhoCoreValues,
118 const std::map<
dftfe::uInt, std::map<dealii::CellId, std::vector<double>>>
120 const std::map<
dftfe::uInt, std::map<dealii::CellId, std::vector<double>>>
121 &hessianRhoCoreAtoms,
122 const std::map<dealii::CellId, std::vector<double>> &pseudoVLocValues,
123 const std::map<
dftfe::uInt, std::map<dealii::CellId, std::vector<double>>>
125 const dealii::DoFHandler<3> &dofHandlerRhoNodal,
128 &vselfFieldGateauxDerStrainFDBins,
129 const dftfe::uInt &binsStartDofHandlerIndexElectro,
131 const std::map<dealii::CellId, std::vector<dftfe::Int>>
132 &bQuadAtomIdsAllAtoms,
133 const std::map<dealii::CellId, std::vector<dftfe::Int>>
134 &bQuadAtomIdsAllAtomsImages,
135 const std::map<dealii::CellId, std::vector<double>> &bQuadValuesAllAtoms,
136 const std::vector<double> &smearedChargeWidths,
137 const std::vector<double> &smearedChargeScaling,
138 const std::vector<double> &gaussianConstantsForce,
139 const std::vector<double> &generatorFlatTopWidths,
140 const bool floatingNuclearCharges,
141 const bool computeForce,
142 const bool computeStress);
150 std::vector<double> &
153 dealii::Tensor<2, 3, double> &
167 const std::map<dftfe::uInt, dftfe::uInt> nonlocalAtomIdToGlobalIdMap,
169 const std::vector<double> &kPointCoords,
170 const std::vector<double> &kPointWeights,
173 const std::vector<std::vector<double>> &eigenValues,
174 const std::vector<std::vector<double>> &partialOccupancies,
175 const bool floatingNuclearCharges,
176 const bool computeForce,
177 const bool computeStress);
188 const std::map<dftfe::uInt, dftfe::uInt> nonlocalAtomIdToGlobalIdMap,
190 const std::vector<double> &kPointCoords,
191 const std::vector<double> &kPointWeights,
194 const std::vector<std::vector<double>> &eigenValues,
195 const std::vector<std::vector<double>> &partialOccupancies,
196 const bool floatingNuclearCharges,
197 const bool computeForce,
198 const bool computeStress);
203 const std::vector<double> &kPointCoords,
204 const std::vector<double> &kPointWeights,
207 const std::vector<std::vector<double>> &eigenValues,
208 const std::vector<std::vector<double>> &partialOccupancies,
209 const bool floatingNuclearCharges,
211 auxDensityXCOutRepresentationPtr,
212 const bool computeForce,
213 const bool computeStress);
220 const bool floatingNuclearCharges,
221 const bool computeForce,
222 const bool computeStress);
226 const std::vector<std::vector<double>> &atomLocations,
227 const std::vector<dftfe::Int> &imageIds,
228 const std::vector<double> &imageCharges,
229 const std::vector<std::vector<double>> &imagePositions,
231 const bool floatingNuclearCharges,
232 const bool computeForce,
233 const bool computeStress);
237 const std::vector<std::vector<double>> &atomLocations,
238 const std::vector<std::vector<double>> &imagePositions,
240 const dftfe::uInt &binsStartDofHandlerIndexElectro,
242 const std::map<dealii::CellId, std::vector<dftfe::Int>>
243 &bQuadAtomIdsAllAtoms,
244 const std::map<dealii::CellId, std::vector<dftfe::Int>>
245 &bQuadAtomIdsAllAtomsImages,
246 const std::map<dealii::CellId, std::vector<double>> &bQuadValuesAllAtoms,
247 const bool floatingNuclearCharges,
248 const bool computeForce,
249 const bool computeStress);
253 const std::vector<std::vector<double>> &atomLocations,
254 const std::vector<dftfe::Int> &imageIds,
255 const std::vector<double> &imageCharges,
256 const std::vector<std::vector<double>> &imagePositions,
259 &rhoTotalOutValuesLpsp,
261 &gradRhoTotalOutValuesLpsp,
262 const std::map<dealii::CellId, std::vector<double>> &pseudoVLocValues,
263 const std::map<
dftfe::uInt, std::map<dealii::CellId, std::vector<double>>>
265 const dealii::DoFHandler<3> &dofHandlerRhoNodal,
268 &vselfFieldGateauxDerStrainFDBins,
269 const std::vector<double> &smearedChargeWidths,
270 const std::vector<double> &smearedChargeScaling,
271 const bool floatingNuclearCharges,
272 const bool computeForce,
273 const bool computeStress);
277 const std::vector<std::vector<double>> &atomLocations,
278 const std::vector<dftfe::Int> &imageIds,
279 const std::vector<std::vector<double>> &imagePositions,
285 &gradDensityOutValues,
290 auxDensityXCOutRepresentationPtr,
291 const std::map<dealii::CellId, std::vector<double>> &rhoCoreValues,
292 const std::map<dealii::CellId, std::vector<double>> &gradRhoCoreValues,
293 const std::map<
dftfe::uInt, std::map<dealii::CellId, std::vector<double>>>
295 const std::map<
dftfe::uInt, std::map<dealii::CellId, std::vector<double>>>
296 &hessianRhoCoreAtoms,
297 const bool floatingNuclearCharges,
298 const bool computeForce,
299 const bool computeStress);
305 const dealii::DoFHandler<3> &dofHandlerRhoNodal,
307 std::vector<std::vector<dealii::DoFHandler<3>::active_cell_iterator>>
308 &cellsVselfBallsDofHandler,
309 std::vector<std::vector<dealii::DoFHandler<3>::active_cell_iterator>>
310 &cellsVselfBallsDofHandlerForce,
311 std::vector<std::map<dealii::CellId, dftfe::uInt>>
312 &cellsVselfBallsClosestAtomIdDofHandler,
313 std::map<dftfe::uInt, dftfe::uInt> &AtomIdBinIdLocalDofHandler,
314 std::vector<std::map<dealii::DoFHandler<3>::active_cell_iterator,
315 std::vector<dftfe::uInt>>>
316 &cellFacesVselfBallSurfacesDofHandler,
317 std::vector<std::map<dealii::DoFHandler<3>::active_cell_iterator,
318 std::vector<dftfe::uInt>>>
319 &cellFacesVselfBallSurfacesDofHandlerForce);
323 const std::vector<std::vector<double>> &atomLocations,
324 const std::vector<dftfe::Int> &imageIds,
325 const std::vector<std::vector<double>> &imagePositions,
326 const std::vector<double> &gaussianConstantsForce,
327 const std::vector<double> &generatorFlatTopWidths,
329 const MPI_Comm mpiComm,
332 std::shared_ptr<dftfe::linearAlgebra::BLASWrapper<memorySpace>>
350 FEBasisOperations<double, double, dftfe::utils::MemorySpace::HOST>>
386 std::vector<std::vector<dealii::DoFHandler<3>::active_cell_iterator>>
391 std::vector<std::vector<dealii::DoFHandler<3>::active_cell_iterator>>
396 std::vector<std::map<dealii::CellId, dftfe::uInt>>
409 std::vector<std::map<dealii::DoFHandler<3>::active_cell_iterator,
410 std::vector<dftfe::uInt>>>
419 std::vector<std::map<dealii::DoFHandler<3>::active_cell_iterator,
420 std::vector<dftfe::uInt>>>
423 std::map<dealii::CellId, dealii::DoFHandler<3>::active_cell_iterator>
442 const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
443 const std::pair<dftfe::uInt, dftfe::uInt> vecRange,
445 const double kcoordx,
446 const double kcoordy,
447 const double kcoordz,
448 double *partialOccupVec,
449 double *eigenValuesVec,
452 double *eshelbyContributions,
454 const bool floatingNuclearCharges,
455 const bool isTauMGGA,
456 double *pdexTauLocallyOwnedCellsBlock,
457 double *pdecTauLocallyOwnedCellsBlock,
458 const bool computeForce,
459 const bool computeStress);
472 const dftfe::uInt *projecterKetTimesFlattenedVectorLocalIds,
Definition AtomicCenteredNonLocalOperator.h:66
Definition AuxDensityMatrix.h:40
Definition FEBasisOperations.h:85
std::vector< double > & getAtomsForces()
const dftfe::uInt n_mpi_processes
Definition configurationalForce.h:371
void computeWfcContribNloc(std::shared_ptr< AtomicCenteredNonLocalOperator< dataTypes::number, memorySpace > > nonLocalOperator, const CouplingStructure couplingtype, const std::vector< const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > * > &couplingMatrixPtrs, const std::map< dftfe::uInt, dftfe::uInt > nonlocalAtomIdToGlobalIdMap, const dftfe::uInt &numEigenValues, const std::vector< double > &kPointCoords, const std::vector< double > &kPointWeights, const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > &eigenVectors, const std::vector< std::vector< double > > &eigenValues, const std::vector< std::vector< double > > &partialOccupancies, const bool floatingNuclearCharges, const bool computeForce, const bool computeStress)
std::shared_ptr< excManager< memorySpace > > d_excManagerPtr
Definition configurationalForce.h:356
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_forceTotal
Definition configurationalForce.h:359
void computeXCContribAll(const std::vector< std::vector< double > > &atomLocations, const std::vector< dftfe::Int > &imageIds, const std::vector< std::vector< double > > &imagePositions, const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &densityOutValues, const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &gradDensityOutValues, const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &tauOutValues, const std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityXCOutRepresentationPtr, const std::map< dealii::CellId, std::vector< double > > &rhoCoreValues, const std::map< dealii::CellId, std::vector< double > > &gradRhoCoreValues, const std::map< dftfe::uInt, std::map< dealii::CellId, std::vector< double > > > &gradRhoCoreAtoms, const std::map< dftfe::uInt, std::map< dealii::CellId, std::vector< double > > > &hessianRhoCoreAtoms, const bool floatingNuclearCharges, const bool computeForce, const bool computeStress)
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > d_BLASWrapperPtrHost
Definition configurationalForce.h:336
void computeESelfContribEshelby(const std::vector< std::vector< double > > &atomLocations, const std::vector< dftfe::Int > &imageIds, const std::vector< double > &imageCharges, const std::vector< std::vector< double > > &imagePositions, const vselfBinsManager &vselfBinsManager, const bool floatingNuclearCharges, const bool computeForce, const bool computeStress)
std::map< dealii::CellId, dealii::DoFHandler< 3 >::active_cell_iterator > d_cellIdToActiveCellIteratorMapDofHandlerRhoNodalElectro
Definition configurationalForce.h:424
distributedCPUVec< double > d_configForceContribsLinFE
Definition configurationalForce.h:432
configurationalForceClass(std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperPtr, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > BLASWrapperPtrHost, const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain, const MPI_Comm &interpoolcomm, const MPI_Comm &interBandGroupComm, const dftParameters &dftParams)
const MPI_Comm d_mpiCommInterBandGroup
Definition configurationalForce.h:369
std::vector< std::vector< dealii::DoFHandler< 3 >::active_cell_iterator > > d_cellsVselfBallsDofHandlerElectro
Definition configurationalForce.h:387
const MPI_Comm d_mpiCommParent
Definition configurationalForce.h:366
dealii::ConditionalOStream pcout
Definition configurationalForce.h:373
dftfe::uInt d_smearedChargeQuadratureIdElectro
Definition configurationalForce.h:380
const MPI_Comm d_mpiCommDomain
Definition configurationalForce.h:367
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > d_BLASWrapperPtr
Definition configurationalForce.h:333
std::vector< std::vector< dealii::DoFHandler< 3 >::active_cell_iterator > > d_cellsVselfBallsDofHandlerForceElectro
Definition configurationalForce.h:392
dealii::Tensor< 2, 3, double > & getStress()
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > d_basisOperationsPtr
Definition configurationalForce.h:339
void computeSmearedContribAll(const std::vector< std::vector< double > > &atomLocations, const std::vector< std::vector< double > > &imagePositions, const vselfBinsManager &vselfBinsManager, const dftfe::uInt &binsStartDofHandlerIndexElectro, const distributedCPUVec< double > &phiTotRhoOutValues, const std::map< dealii::CellId, std::vector< dftfe::Int > > &bQuadAtomIdsAllAtoms, const std::map< dealii::CellId, std::vector< dftfe::Int > > &bQuadAtomIdsAllAtomsImages, const std::map< dealii::CellId, std::vector< double > > &bQuadValuesAllAtoms, const bool floatingNuclearCharges, const bool computeForce, const bool computeStress)
dealii::IndexSet d_locally_owned_dofsForce
Definition configurationalForce.h:431
const dftfe::uInt this_mpi_process
Definition configurationalForce.h:372
std::vector< std::map< dealii::CellId, dftfe::uInt > > d_cellsVselfBallsClosestAtomIdDofHandlerElectro
Definition configurationalForce.h:397
void computeWfcContribLocal(const dftfe::uInt &numEigenValues, const std::vector< double > &kPointCoords, const std::vector< double > &kPointWeights, const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > &eigenVectors, const std::vector< std::vector< double > > &eigenValues, const std::vector< std::vector< double > > &partialOccupancies, const bool floatingNuclearCharges, const std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityXCOutRepresentationPtr, const bool computeForce, const bool computeStress)
dealii::DoFHandler< 3 > d_dofHandlerForce
Definition configurationalForce.h:430
dftfe::uInt d_lpspQuadratureId
Definition configurationalForce.h:377
dealii::Tensor< 2, 3, double > d_stressTensor
Definition configurationalForce.h:364
distributedCPUVec< double > d_configForceContribsWfcLinFE
Definition configurationalForce.h:433
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_stressTotal
Definition configurationalForce.h:361
dftfe::uInt d_nlpspQuadratureId
Definition configurationalForce.h:379
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > d_basisOperationsPtrHost
Definition configurationalForce.h:344
std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, memorySpace > > d_basisOperationsPtrElectro
Definition configurationalForce.h:347
std::vector< std::map< dealii::DoFHandler< 3 >::active_cell_iterator, std::vector< dftfe::uInt > > > d_cellFacesVselfBallSurfacesDofHandlerForceElectro
Definition configurationalForce.h:421
void computeAtomsForcesGaussianGenerator(const std::vector< std::vector< double > > &atomLocations, const std::vector< dftfe::Int > &imageIds, const std::vector< std::vector< double > > &imagePositions, const std::vector< double > &gaussianConstantsForce, const std::vector< double > &generatorFlatTopWidths, const distributedCPUVec< double > &configForceVectorLinFE, const MPI_Comm mpiComm, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &forceContrib)
std::map< dftfe::uInt, dftfe::uInt > d_AtomIdBinIdLocalDofHandlerElectro
Definition configurationalForce.h:401
const dftParameters & d_dftParams
Definition configurationalForce.h:370
const MPI_Comm d_mpiCommInterPool
Definition configurationalForce.h:368
void computeLPSPContribAll(const std::vector< std::vector< double > > &atomLocations, const std::vector< dftfe::Int > &imageIds, const std::vector< double > &imageCharges, const std::vector< std::vector< double > > &imagePositions, const distributedCPUVec< double > &rhoOutNodalValues, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &rhoTotalOutValuesLpsp, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &gradRhoTotalOutValuesLpsp, const std::map< dealii::CellId, std::vector< double > > &pseudoVLocValues, const std::map< dftfe::uInt, std::map< dealii::CellId, std::vector< double > > > &pseudoVLocAtoms, const dealii::DoFHandler< 3 > &dofHandlerRhoNodal, const vselfBinsManager &vselfBinsManager, const std::vector< distributedCPUVec< double > > &vselfFieldGateauxDerStrainFDBins, const std::vector< double > &smearedChargeWidths, const std::vector< double > &smearedChargeScaling, const bool floatingNuclearCharges, const bool computeForce, const bool computeStress)
void computeWfcContribNlocAtomOnNode(std::shared_ptr< AtomicCenteredNonLocalOperator< dataTypes::number, memorySpace > > nonLocalOperator, const CouplingStructure couplingtype, const std::vector< const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > * > &couplingMatrixPtrs, const std::map< dftfe::uInt, dftfe::uInt > nonlocalAtomIdToGlobalIdMap, const dftfe::uInt &numEigenValues, const std::vector< double > &kPointCoords, const std::vector< double > &kPointWeights, const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > &eigenVectors, const std::vector< std::vector< double > > &eigenValues, const std::vector< std::vector< double > > &partialOccupancies, const bool floatingNuclearCharges, const bool computeForce, const bool computeStress)
dealii::AffineConstraints< double > d_affineConstraintsForce
Definition configurationalForce.h:429
dftfe::uInt d_densityQuadratureId
Definition configurationalForce.h:375
std::vector< double > d_forceVector
Definition configurationalForce.h:363
void setUnmovedTriangulation(const dealii::parallel::distributed::Triangulation< 3 > &unmovedTriangulation, const dealii::Triangulation< 3, 3 > &serialUnmovedTriangulation, const std::vector< std::vector< double > > &domainBoundingVectors)
std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > d_basisOperationsPtrElectroHost
Definition configurationalForce.h:351
dftfe::uInt d_lpspQuadratureIdElectro
Definition configurationalForce.h:378
std::vector< std::map< dealii::DoFHandler< 3 >::active_cell_iterator, std::vector< dftfe::uInt > > > d_cellFacesVselfBallSurfacesDofHandlerElectro
Definition configurationalForce.h:411
void createBinObjectsForce(const dftfe::uInt &phiExtDofHandlerIndexElectro, const dealii::DoFHandler< 3 > &dofHandlerRhoNodal, const vselfBinsManager &vselfBinsManager, std::vector< std::vector< dealii::DoFHandler< 3 >::active_cell_iterator > > &cellsVselfBallsDofHandler, std::vector< std::vector< dealii::DoFHandler< 3 >::active_cell_iterator > > &cellsVselfBallsDofHandlerForce, std::vector< std::map< dealii::CellId, dftfe::uInt > > &cellsVselfBallsClosestAtomIdDofHandler, std::map< dftfe::uInt, dftfe::uInt > &AtomIdBinIdLocalDofHandler, std::vector< std::map< dealii::DoFHandler< 3 >::active_cell_iterator, std::vector< dftfe::uInt > > > &cellFacesVselfBallSurfacesDofHandler, std::vector< std::map< dealii::DoFHandler< 3 >::active_cell_iterator, std::vector< dftfe::uInt > > > &cellFacesVselfBallSurfacesDofHandlerForce)
dealii::TimerOutput computing_timer
Definition configurationalForce.h:435
dealii::FESystem< 3 > FEForce
Definition configurationalForce.h:428
void computeElectroContribEshelby(const distributedCPUVec< double > &phiTotRhoOutValues, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &rhooutValues, const bool floatingNuclearCharges, const bool computeForce, const bool computeStress)
void initialize(std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > basisOperationsPtr, std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > basisOperationsPtrHost, std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, memorySpace > > basisOperationsPtrElectro, std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > basisOperationsPtrElectroHost, std::shared_ptr< dftfe::pseudopotentialBaseClass< dataTypes::number, memorySpace > > pseudopotentialClassPtr, std::shared_ptr< excManager< memorySpace > > excManagerPtr, const dftfe::uInt densityQuadratureId, const dftfe::uInt densityQuadratureIdElectro, const dftfe::uInt lpspQuadratureId, const dftfe::uInt lpspQuadratureIdElectro, const dftfe::uInt nlpspQuadratureId, const dftfe::uInt smearedChargeQuadratureIdElectro)
void computeForceAndStress(const dftfe::uInt &numEigenValues, const std::vector< double > &kPointCoords, const std::vector< double > &kPointWeights, const std::vector< std::vector< double > > &domainBoundingVectors, const double domainVolume, const std::shared_ptr< groupSymmetryClass > &groupSymmetryPtr, const dispersionCorrection &dispersionCorr, const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > &eigenVectors, const std::vector< std::vector< double > > &eigenValues, const std::vector< std::vector< double > > &partialOccupancies, const std::vector< std::vector< double > > &atomLocations, const std::vector< dftfe::Int > &imageIds, const std::vector< double > &imageCharges, const std::vector< std::vector< double > > &imagePositions, const distributedCPUVec< double > &phiTotRhoOutValues, const distributedCPUVec< double > &rhoOutNodalValues, const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &densityOutValues, const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &gradDensityOutValues, const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &tauOutValues, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &rhoTotalOutValuesLpsp, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &gradRhoTotalOutValuesLpsp, const std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityXCOutRepresentationPtr, const std::map< dealii::CellId, std::vector< double > > &rhoCoreValues, const std::map< dealii::CellId, std::vector< double > > &gradRhoCoreValues, const std::map< dealii::CellId, std::vector< double > > &hessianRhoCoreValues, const std::map< dftfe::uInt, std::map< dealii::CellId, std::vector< double > > > &gradRhoCoreAtoms, const std::map< dftfe::uInt, std::map< dealii::CellId, std::vector< double > > > &hessianRhoCoreAtoms, const std::map< dealii::CellId, std::vector< double > > &pseudoVLocValues, const std::map< dftfe::uInt, std::map< dealii::CellId, std::vector< double > > > &pseudoVLocAtoms, const dealii::DoFHandler< 3 > &dofHandlerRhoNodal, const vselfBinsManager &vselfBinsManager, const std::vector< distributedCPUVec< double > > &vselfFieldGateauxDerStrainFDBins, const dftfe::uInt &binsStartDofHandlerIndexElectro, const dftfe::uInt &phiExtDofHandlerIndexElectro, const std::map< dealii::CellId, std::vector< dftfe::Int > > &bQuadAtomIdsAllAtoms, const std::map< dealii::CellId, std::vector< dftfe::Int > > &bQuadAtomIdsAllAtomsImages, const std::map< dealii::CellId, std::vector< double > > &bQuadValuesAllAtoms, const std::vector< double > &smearedChargeWidths, const std::vector< double > &smearedChargeScaling, const std::vector< double > &gaussianConstantsForce, const std::vector< double > &generatorFlatTopWidths, const bool floatingNuclearCharges, const bool computeForce, const bool computeStress)
dftfe::uInt d_densityQuadratureIdElectro
Definition configurationalForce.h:376
std::shared_ptr< dftfe::pseudopotentialBaseClass< dataTypes::number, memorySpace > > d_pseudopotentialClassPtr
Definition configurationalForce.h:354
Namespace which declares the input parameters and the functions to parse them from the input paramete...
Definition dftParameters.h:36
Calculates dispersion correction to energy, force and stress.
Definition dftd.h:37
Definition excManager.h:28
Definition BLASWrapper.h:35
Definition pseudopotentialBaseClass.h:60
Definition MemoryStorage.h:33
Categorizes atoms into bins for efficient solution of nuclear electrostatic self-potential.
Definition vselfBinsManager.h:34
Definition FEBasisOperations.h:30
double number
Definition dftfeDataTypes.h:41
The functions in this namespace contain the expressions for the various terms of the configurational ...
Definition eshelbyTensor.h:65
@ HOST
Definition MemorySpaceType.h:34
Definition pseudoPotentialToDftfeConverter.cc:34
CouplingStructure
Enum class that lists used in the non-local Operator.
Definition AtomicCenteredNonLocalOperator.h:48
dealii::LinearAlgebra::distributed::Vector< elem_type, dealii::MemorySpace::Host > distributedCPUVec
Definition headers.h:92
std::uint32_t uInt
Definition TypeConfig.h:10
void computeWavefuncEshelbyContributionLocal(std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > &BLASWrapperPtr, const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const std::pair< dftfe::uInt, dftfe::uInt > vecRange, const dftfe::uInt nQuadsPerCell, const double kcoordx, const double kcoordy, const double kcoordz, double *partialOccupVec, double *eigenValuesVec, dataTypes::number *wfcQuadPointData, dataTypes::number *gradWfcQuadPointData, double *eshelbyContributions, double *eshelbyTensor, const bool floatingNuclearCharges, const bool isTauMGGA, double *pdexTauLocallyOwnedCellsBlock, double *pdecTauLocallyOwnedCellsBlock, const bool computeForce, const bool computeStress)
void nlpWfcContractionContribution(std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > &BLASWrapperPtr, const dftfe::uInt wfcBlockSize, const dftfe::uInt blockSizeNlp, const dftfe::uInt numQuadsNLP, const dftfe::uInt startingIdNlp, const dataTypes::number *projectorKetTimesVectorPar, const dataTypes::number *gradPsiOrPsiQuadValuesNLP, const dftfe::uInt *nonTrivialIdToElemIdMap, const dftfe::uInt *projecterKetTimesFlattenedVectorLocalIds, dataTypes::number *nlpContractionContribution)