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,
 
  130      const std::map<dealii::CellId, std::vector<dftfe::Int>>
 
  131        &bQuadAtomIdsAllAtoms,
 
  132      const std::map<dealii::CellId, std::vector<dftfe::Int>>
 
  133        &bQuadAtomIdsAllAtomsImages,
 
  134      const std::map<dealii::CellId, std::vector<double>> &bQuadValuesAllAtoms,
 
  135      const std::vector<double>                           &smearedChargeWidths,
 
  136      const std::vector<double>                           &smearedChargeScaling,
 
  137      const std::vector<double> &gaussianConstantsForce,
 
  138      const std::vector<double> &generatorFlatTopWidths,
 
  139      const bool                 floatingNuclearCharges,
 
  140      const bool                 computeForce,
 
  141      const bool                 computeStress);
 
  149    std::vector<double> &
 
  152    dealii::Tensor<2, 3, double> &
 
  166      const std::map<dftfe::uInt, dftfe::uInt> nonlocalAtomIdToGlobalIdMap,
 
  168      const std::vector<double>               &kPointCoords,
 
  169      const std::vector<double>               &kPointWeights,
 
  172      const std::vector<std::vector<double>> &eigenValues,
 
  173      const std::vector<std::vector<double>> &partialOccupancies,
 
  174      const bool                              floatingNuclearCharges,
 
  175      const bool                              computeForce,
 
  176      const bool                              computeStress);
 
  187      const std::map<dftfe::uInt, dftfe::uInt> nonlocalAtomIdToGlobalIdMap,
 
  189      const std::vector<double>               &kPointCoords,
 
  190      const std::vector<double>               &kPointWeights,
 
  193      const std::vector<std::vector<double>> &eigenValues,
 
  194      const std::vector<std::vector<double>> &partialOccupancies,
 
  195      const bool                              floatingNuclearCharges,
 
  196      const bool                              computeForce,
 
  197      const bool                              computeStress);
 
  202      const std::vector<double> &kPointCoords,
 
  203      const std::vector<double> &kPointWeights,
 
  206      const std::vector<std::vector<double>> &eigenValues,
 
  207      const std::vector<std::vector<double>> &partialOccupancies,
 
  208      const bool                              floatingNuclearCharges,
 
  210                 auxDensityXCOutRepresentationPtr,
 
  211      const bool computeForce,
 
  212      const bool computeStress);
 
  219      const bool floatingNuclearCharges,
 
  220      const bool computeForce,
 
  221      const bool computeStress);
 
  225      const std::vector<std::vector<double>> &atomLocations,
 
  226      const std::vector<dftfe::Int>          &imageIds,
 
  227      const std::vector<double>              &imageCharges,
 
  228      const std::vector<std::vector<double>> &imagePositions,
 
  230      const bool                              floatingNuclearCharges,
 
  231      const bool                              computeForce,
 
  232      const bool                              computeStress);
 
  236      const std::vector<std::vector<double>> &atomLocations,
 
  237      const std::vector<std::vector<double>> &imagePositions,
 
  239      const dftfe::uInt                      &binsStartDofHandlerIndexElectro,
 
  241      const std::map<dealii::CellId, std::vector<dftfe::Int>>
 
  242        &bQuadAtomIdsAllAtoms,
 
  243      const std::map<dealii::CellId, std::vector<dftfe::Int>>
 
  244        &bQuadAtomIdsAllAtomsImages,
 
  245      const std::map<dealii::CellId, std::vector<double>> &bQuadValuesAllAtoms,
 
  246      const bool floatingNuclearCharges,
 
  247      const bool computeForce,
 
  248      const bool computeStress);
 
  252      const std::vector<std::vector<double>> &atomLocations,
 
  253      const std::vector<dftfe::Int>          &imageIds,
 
  254      const std::vector<double>              &imageCharges,
 
  255      const std::vector<std::vector<double>> &imagePositions,
 
  258        &rhoTotalOutValuesLpsp,
 
  260        &gradRhoTotalOutValuesLpsp,
 
  261      const std::map<dealii::CellId, std::vector<double>> &pseudoVLocValues,
 
  262      const std::map<
dftfe::uInt, std::map<dealii::CellId, std::vector<double>>>
 
  264      const dealii::DoFHandler<3> &dofHandlerRhoNodal,
 
  267                                &vselfFieldGateauxDerStrainFDBins,
 
  268      const std::vector<double> &smearedChargeWidths,
 
  269      const std::vector<double> &smearedChargeScaling,
 
  270      const bool                 floatingNuclearCharges,
 
  271      const bool                 computeForce,
 
  272      const bool                 computeStress);
 
  276      const std::vector<std::vector<double>> &atomLocations,
 
  277      const std::vector<dftfe::Int>          &imageIds,
 
  278      const std::vector<std::vector<double>> &imagePositions,
 
  284        &gradDensityOutValues,
 
  289        auxDensityXCOutRepresentationPtr,
 
  290      const std::map<dealii::CellId, std::vector<double>> &rhoCoreValues,
 
  291      const std::map<dealii::CellId, std::vector<double>> &gradRhoCoreValues,
 
  292      const std::map<
dftfe::uInt, std::map<dealii::CellId, std::vector<double>>>
 
  294      const std::map<
dftfe::uInt, std::map<dealii::CellId, std::vector<double>>>
 
  295                &hessianRhoCoreAtoms,
 
  296      const bool floatingNuclearCharges,
 
  297      const bool computeForce,
 
  298      const bool computeStress);
 
  303      const dealii::DoFHandler<3> &dofHandlerRhoNodal,
 
  305      std::vector<std::vector<dealii::DoFHandler<3>::active_cell_iterator>>
 
  306        &cellsVselfBallsDofHandler,
 
  307      std::vector<std::vector<dealii::DoFHandler<3>::active_cell_iterator>>
 
  308        &cellsVselfBallsDofHandlerForce,
 
  309      std::vector<std::map<dealii::CellId, dftfe::uInt>>
 
  310        &cellsVselfBallsClosestAtomIdDofHandler,
 
  311      std::map<dftfe::uInt, dftfe::uInt> &AtomIdBinIdLocalDofHandler,
 
  312      std::vector<std::map<dealii::DoFHandler<3>::active_cell_iterator,
 
  313                           std::vector<dftfe::uInt>>>
 
  314        &cellFacesVselfBallSurfacesDofHandler,
 
  315      std::vector<std::map<dealii::DoFHandler<3>::active_cell_iterator,
 
  316                           std::vector<dftfe::uInt>>>
 
  317        &cellFacesVselfBallSurfacesDofHandlerForce);
 
  321      const std::vector<std::vector<double>> &atomLocations,
 
  322      const std::vector<dftfe::Int>          &imageIds,
 
  323      const std::vector<std::vector<double>> &imagePositions,
 
  324      const std::vector<double>              &gaussianConstantsForce,
 
  325      const std::vector<double>              &generatorFlatTopWidths,
 
  327      const MPI_Comm                          mpiComm,
 
  330    std::shared_ptr<dftfe::linearAlgebra::BLASWrapper<memorySpace>>
 
  348        FEBasisOperations<double, double, dftfe::utils::MemorySpace::HOST>>
 
  384    std::vector<std::vector<dealii::DoFHandler<3>::active_cell_iterator>>
 
  389    std::vector<std::vector<dealii::DoFHandler<3>::active_cell_iterator>>
 
  394    std::vector<std::map<dealii::CellId, dftfe::uInt>>
 
  407    std::vector<std::map<dealii::DoFHandler<3>::active_cell_iterator,
 
  408                         std::vector<dftfe::uInt>>>
 
  417    std::vector<std::map<dealii::DoFHandler<3>::active_cell_iterator,
 
  418                         std::vector<dftfe::uInt>>>
 
  421    std::map<dealii::CellId, dealii::DoFHandler<3>::active_cell_iterator>
 
 
  440    const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
 
  441    const std::pair<dftfe::uInt, dftfe::uInt> vecRange,
 
  443    const double                              kcoordx,
 
  444    const double                              kcoordy,
 
  445    const double                              kcoordz,
 
  446    double                                   *partialOccupVec,
 
  447    double                                   *eigenValuesVec,
 
  450    double                                   *eshelbyContributions,
 
  452    const bool                                floatingNuclearCharges,
 
  453    const bool                                isTauMGGA,
 
  454    double                                   *pdexTauLocallyOwnedCellsBlock,
 
  455    double                                   *pdecTauLocallyOwnedCellsBlock,
 
  456    const bool                                computeForce,
 
  457    const bool                                computeStress);
 
  470    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:369
 
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:354
 
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_forceTotal
Definition configurationalForce.h:357
 
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:334
 
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:422
 
distributedCPUVec< double > d_configForceContribsLinFE
Definition configurationalForce.h:430
 
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)
 
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 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)
 
const MPI_Comm d_mpiCommInterBandGroup
Definition configurationalForce.h:367
 
std::vector< std::vector< dealii::DoFHandler< 3 >::active_cell_iterator > > d_cellsVselfBallsDofHandlerElectro
Definition configurationalForce.h:385
 
const MPI_Comm d_mpiCommParent
Definition configurationalForce.h:364
 
dealii::ConditionalOStream pcout
Definition configurationalForce.h:371
 
dftfe::uInt d_smearedChargeQuadratureIdElectro
Definition configurationalForce.h:378
 
const MPI_Comm d_mpiCommDomain
Definition configurationalForce.h:365
 
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > d_BLASWrapperPtr
Definition configurationalForce.h:331
 
std::vector< std::vector< dealii::DoFHandler< 3 >::active_cell_iterator > > d_cellsVselfBallsDofHandlerForceElectro
Definition configurationalForce.h:390
 
dealii::Tensor< 2, 3, double > & getStress()
 
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > d_basisOperationsPtr
Definition configurationalForce.h:337
 
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:429
 
const dftfe::uInt this_mpi_process
Definition configurationalForce.h:370
 
std::vector< std::map< dealii::CellId, dftfe::uInt > > d_cellsVselfBallsClosestAtomIdDofHandlerElectro
Definition configurationalForce.h:395
 
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:428
 
dftfe::uInt d_lpspQuadratureId
Definition configurationalForce.h:375
 
dealii::Tensor< 2, 3, double > d_stressTensor
Definition configurationalForce.h:362
 
distributedCPUVec< double > d_configForceContribsWfcLinFE
Definition configurationalForce.h:431
 
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_stressTotal
Definition configurationalForce.h:359
 
dftfe::uInt d_nlpspQuadratureId
Definition configurationalForce.h:377
 
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > d_basisOperationsPtrHost
Definition configurationalForce.h:342
 
std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, memorySpace > > d_basisOperationsPtrElectro
Definition configurationalForce.h:345
 
void createBinObjectsForce(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)
 
std::vector< std::map< dealii::DoFHandler< 3 >::active_cell_iterator, std::vector< dftfe::uInt > > > d_cellFacesVselfBallSurfacesDofHandlerForceElectro
Definition configurationalForce.h:419
 
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:399
 
const dftParameters & d_dftParams
Definition configurationalForce.h:368
 
const MPI_Comm d_mpiCommInterPool
Definition configurationalForce.h:366
 
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:427
 
dftfe::uInt d_densityQuadratureId
Definition configurationalForce.h:373
 
std::vector< double > d_forceVector
Definition configurationalForce.h:361
 
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:349
 
dftfe::uInt d_lpspQuadratureIdElectro
Definition configurationalForce.h:376
 
std::vector< std::map< dealii::DoFHandler< 3 >::active_cell_iterator, std::vector< dftfe::uInt > > > d_cellFacesVselfBallSurfacesDofHandlerElectro
Definition configurationalForce.h:409
 
dealii::TimerOutput computing_timer
Definition configurationalForce.h:433
 
dealii::FESystem< 3 > FEForce
Definition configurationalForce.h:426
 
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)
 
dftfe::uInt d_densityQuadratureIdElectro
Definition configurationalForce.h:374
 
std::shared_ptr< dftfe::pseudopotentialBaseClass< dataTypes::number, memorySpace > > d_pseudopotentialClassPtr
Definition configurationalForce.h:352
 
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)