DFT-EFE
 
Loading...
Searching...
No Matches
LaplaceOperatorContextFE.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 Bikash Kanungo
24 */
25
26#ifndef dftefeLaplaceOperatorContextFE_h
27#define dftefeLaplaceOperatorContextFE_h
28
39#include <memory>
40
41namespace dftefe
42{
43 namespace electrostatics
44 {
56 template <typename ValueTypeOperator,
57 typename ValueTypeOperand,
58 utils::MemorySpace memorySpace,
59 size_type dim>
61 : public linearAlgebra::
62 OperatorContext<ValueTypeOperator, ValueTypeOperand, memorySpace>
63 {
64 public:
71 using ValueType =
73 ValueTypeOperand>;
74
75 public:
80 const basis::
81 FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>
82 &feBasisManagerX,
83 const basis::
84 FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>
85 &feBasisManagerY,
86 std::shared_ptr<
88 feBasisDataStorage,
90 linAlgOpContext,
91 const size_type maxCellTimesNumVecs);
92
94
95 // void
96 // apply(const linearAlgebra::Vector<ValueTypeOperand, memorySpace> &x,
97 // linearAlgberba::Vector<ValueType, memorySpace> &y) const
98 // override;
99
100 void
101 apply(
104
105 private:
106 const basis::
107 FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>
109 const basis::
110 FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>
115 }; // end of class LaplaceOperatorContextFE
116 } // end of namespace electrostatics
117} // end of namespace dftefe
119#endif // dftefeLaplaceOperatorContextFE_h
An abstract class to store and access data for a given basis, such as the basis function values on a ...
Definition: FEBasisDataStorage.h:53
A derived class of linearAlgebra::OperatorContext to encapsulate the action of a discrete operator on...
Definition: LaplaceOperatorContextFE.h:63
const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > * d_feBasisManagerX
Definition: LaplaceOperatorContextFE.h:108
utils::MemoryStorage< ValueTypeOperator, memorySpace > d_gradNiGradNjInAllCells
Definition: LaplaceOperatorContextFE.h:114
const size_type d_maxCellTimesNumVecs
Definition: LaplaceOperatorContextFE.h:112
void apply(linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > &X, linearAlgebra::MultiVector< ValueType, memorySpace > &Y) const override
Definition: LaplaceOperatorContextFE.t.cpp:337
const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > * d_feBasisManagerY
Definition: LaplaceOperatorContextFE.h:111
linearAlgebra::blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand > ValueType
define ValueType as the superior (bigger set) of the ValueTypeOperator and ValueTypeOperand (e....
Definition: LaplaceOperatorContextFE.h:73
Definition: LinAlgOpContext.h:38
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition: MultiVector.h:134
Definition: MemoryStorage.h:38
blas::scalar_type< ValueType1, ValueType2 > scalar_type
Definition: BlasLapackTypedef.h:70
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8