DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
forceWfcContractions.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (c) 2017-2025 The Regents of the University of Michigan and DFT-FE
4// authors.
5//
6// This file is part of the DFT-FE code.
7//
8// The DFT-FE code is free software; you can use it, redistribute
9// it, and/or modify it under the terms of the GNU Lesser General
10// Public License as published by the Free Software Foundation; either
11// version 2.1 of the License, or (at your option) any later version.
12// The full text of the license can be found in the file LICENSE at
13// the top level of the DFT-FE distribution.
14//
15// ---------------------------------------------------------------------
16//
17
18#ifndef forceWfcContractions_H_
19#define forceWfcContractions_H_
20
21#include "headers.h"
22#include "dftParameters.h"
23#include "FEBasisOperations.h"
24#include "oncvClass.h"
25#include <memory>
26#include <BLASWrapper.h>
27#include "hubbardClass.h"
28
29namespace dftfe
30{
31 namespace force
32 {
33 template <dftfe::utils::MemorySpace memorySpace>
34 void
36 std::shared_ptr<
38 & basisOperationsPtr,
39 const unsigned int densityQuadratureId,
40 const unsigned int nlpspQuadratureId,
42 &BLASWrapperPtr,
44 oncvClassPtr,
45 std::shared_ptr<hubbard<dataTypes::number, memorySpace>> hubbardClassPtr,
46 const bool useHubbard,
47 const dataTypes::number * X,
48 const unsigned int spinPolarizedFlag,
49 const unsigned int spinIndex,
50 const std::vector<std::vector<double>> &eigenValuesH,
51 const std::vector<std::vector<double>> &partialOccupanciesH,
52 const std::vector<double> & kPointCoordinates,
53 const unsigned int MLoc,
54 const unsigned int N,
55 const unsigned int numCells,
56 const unsigned int numQuads,
57 const unsigned int numQuadsNLP,
58 double * eshelbyTensorQuadValuesH,
60 projectorKetTimesPsiTimesVTimesPartOccContractionGradPsiQuadsFlattenedH,
62 projectorKetTimesPsiTimesVTimesPartOccContractionGradPsiQuadsFlattenedHHubbard,
63#ifdef USE_COMPLEX
65 *projectorKetTimesPsiTimesVTimesPartOccContractionPsiQuadsFlattenedH,
67 projectorKetTimesPsiTimesVTimesPartOccContractionPsiQuadsFlattenedHHubbard,
68#endif
69 const MPI_Comm & mpiCommParent,
70 const MPI_Comm & interBandGroupComm,
71 const bool isPsp,
72 const bool isFloatingChargeForces,
73 const bool addEk,
74 const dftParameters &dftParams);
75 } // namespace force
76} // namespace dftfe
77#endif
Definition FEBasisOperations.h:84
Namespace which declares the input parameters and the functions to parse them from the input paramete...
Definition dftParameters.h:35
This class provides the Hubbard correction. This class is an object of ExcDFTPluU Class.
Definition hubbardClass.h:70
Definition BLASWrapper.h:35
Definition oncvClass.h:49
double number
Definition dftfeDataTypes.h:44
Definition forceWfcContractions.h:32
void wfcContractionsForceKernelsAllH(std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > &basisOperationsPtr, const unsigned int densityQuadratureId, const unsigned int nlpspQuadratureId, const std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > &BLASWrapperPtr, std::shared_ptr< dftfe::oncvClass< dataTypes::number, memorySpace > > oncvClassPtr, std::shared_ptr< hubbard< dataTypes::number, memorySpace > > hubbardClassPtr, const bool useHubbard, const dataTypes::number *X, const unsigned int spinPolarizedFlag, const unsigned int spinIndex, const std::vector< std::vector< double > > &eigenValuesH, const std::vector< std::vector< double > > &partialOccupanciesH, const std::vector< double > &kPointCoordinates, const unsigned int MLoc, const unsigned int N, const unsigned int numCells, const unsigned int numQuads, const unsigned int numQuadsNLP, double *eshelbyTensorQuadValuesH, dataTypes::number *projectorKetTimesPsiTimesVTimesPartOccContractionGradPsiQuadsFlattenedH, dataTypes::number *projectorKetTimesPsiTimesVTimesPartOccContractionGradPsiQuadsFlattenedHHubbard, const MPI_Comm &mpiCommParent, const MPI_Comm &interBandGroupComm, const bool isPsp, const bool isFloatingChargeForces, const bool addEk, const dftParameters &dftParams)
Definition pseudoPotentialToDftfeConverter.cc:34