DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
kineticEnergyDensityCalculator.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 kineticEnergyDensityCalculator_H_
19#define kineticEnergyDensityCalculator_H_
20
21#include <headers.h>
22#include "dftParameters.h"
23#include "FEBasisOperations.h"
24
25namespace dftfe
26{
27 template <typename NumberType, dftfe::utils::MemorySpace memorySpace>
28 void
32 const unsigned int totalNumWaveFunctions,
33 const std::vector<std::vector<double>> &partialOccupancies,
34 std::shared_ptr<
36 & basisOperationsPtr,
37 const unsigned int quadratureIndex,
38 const std::vector<double> &kPointCoords,
39 const std::vector<double> &kPointWeights,
41 & kineticEnergyDensityValues,
42 const MPI_Comm & mpiCommParent,
43 const MPI_Comm & interpoolcomm,
44 const MPI_Comm & interBandGroupComm,
45 const MPI_Comm & mpiCommDomain,
46 const dftParameters &dftParams);
47
48 template <typename NumberType>
49 void
52 & BLASWrapperPtr,
53 const std::pair<unsigned int, unsigned int> cellRange,
54 const std::pair<unsigned int, unsigned int> vecRange,
55 const unsigned int nQuadsPerCell,
56 double * partialOccupVec,
57 double * kcoord,
58 NumberType * wfcQuadPointData,
59 NumberType * gradWfcQuadPointData,
60 double * kineticCellsWfcContributions,
61 double * kineticEnergyDensity,
62 const MPI_Comm & mpiCommDomain);
63
64} // namespace dftfe
65#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
Definition BLASWrapper.h:35
Definition MemoryStorage.h:33
Definition pseudoPotentialToDftfeConverter.cc:34
void computeKineticEnergyDensity(const dftfe::linearAlgebra::BLASWrapper< memorySpace > &BLASWrapperPtr, const dftfe::utils::MemoryStorage< NumberType, memorySpace > *X, const unsigned int totalNumWaveFunctions, const std::vector< std::vector< double > > &partialOccupancies, std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, memorySpace > > &basisOperationsPtr, const unsigned int quadratureIndex, const std::vector< double > &kPointCoords, const std::vector< double > &kPointWeights, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &kineticEnergyDensityValues, const MPI_Comm &mpiCommParent, const MPI_Comm &interpoolcomm, const MPI_Comm &interBandGroupComm, const MPI_Comm &mpiCommDomain, const dftParameters &dftParams)
void computeKineticEnergyDensityFromInterpolatedValues(const dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > &BLASWrapperPtr, const std::pair< unsigned int, unsigned int > cellRange, const std::pair< unsigned int, unsigned int > vecRange, const unsigned int nQuadsPerCell, double *partialOccupVec, double *kcoord, NumberType *wfcQuadPointData, NumberType *gradWfcQuadPointData, double *kineticCellsWfcContributions, double *kineticEnergyDensity, const MPI_Comm &mpiCommDomain)