DFT-EFE
 
Loading...
Searching...
No Matches
ElectrostaticFE.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (c) 2021. *
3 * The Regents of the University of Michigan and DFT-EFE developers. *
4 * *
5 * This file is part of the DFT-EFE code. *
6 * *
7 * DFT-EFE is free software: you can redistribute it and/or modify *
8 * it under the terms of the Lesser GNU General Public License as *
9 * published by the Free Software Foundation, either version 3 of *
10 * the License, or (at your option) any later version. *
11 * *
12 * DFT-EFE is distributed in the hope that it will be useful, but *
13 * WITHOUT ANY WARRANTY; without even the implied warranty *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
15 * See the Lesser GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU Lesser General Public *
18 * License at the top level of DFT-EFE distribution. If not, see *
19 * <https://www.gnu.org/licenses/>. *
20 ******************************************************************************/
21
22/*
23 * @author Avirup Sircar
24 */
25
26#ifndef dftefeElectrostaticFE_h
27#define dftefeElectrostaticFE_h
28
31#include <ksdft/Hamiltonian.h>
32#include <ksdft/Energy.h>
34
35namespace dftefe
36{
37 namespace ksdft
38 {
49 template <typename ValueTypeBasisData,
50 typename ValueTypeBasisCoeff,
51 typename ValueTypeWaveFnBasisData,
52 utils::MemorySpace memorySpace,
53 size_type dim>
55 : public Hamiltonian<
56 linearAlgebra::blasLapack::scalar_type<
57 linearAlgebra::blasLapack::scalar_type<ValueTypeBasisData,
58 ValueTypeWaveFnBasisData>,
59 ValueTypeBasisCoeff>,
60 memorySpace>,
61 public Energy<linearAlgebra::blasLapack::real_type<
62 linearAlgebra::blasLapack::scalar_type<ValueTypeBasisData,
63 ValueTypeBasisCoeff>>>
64 {
65 public:
66 using ValueType =
68 ValueTypeBasisCoeff>;
72 ValueTypeWaveFnBasisData>,
73 ValueTypeBasisCoeff>,
74 memorySpace>;
76
77 public:
78 virtual void
79 getLocal(Storage &cellWiseStorage) const = 0;
80 virtual RealType
81 getEnergy() const = 0;
82
83 }; // end of class ElectrostaticFE
84 } // end of namespace ksdft
85} // end of namespace dftefe
86#endif // dftefeElectrostaticFE_h
A derived class of linearAlgebra::OperatorContext to encapsulate the action of a discrete operator on...
Definition: ElectrostaticFE.h:64
linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeBasisCoeff > ValueType
Definition: ElectrostaticFE.h:68
virtual void getLocal(Storage &cellWiseStorage) const =0
linearAlgebra::blasLapack::real_type< ValueType > RealType
Definition: ElectrostaticFE.h:75
virtual RealType getEnergy() const =0
Definition: Energy.h:35
Definition: Hamiltonian.h:35
Definition: MemoryStorage.h:38
blas::scalar_type< ValueType1, ValueType2 > scalar_type
Definition: BlasLapackTypedef.h:70
blas::real_type< ValueType > real_type
Definition: BlasLapackTypedef.h:64
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8