26#ifndef dftefeChebyshevFilter_h
27#define dftefeChebyshevFilter_h
39 namespace linearAlgebra
54 template <
typename ValueTypeOperator,
55 typename ValueTypeOperand,
59 const OperatorContext<ValueTypeOperator, ValueTypeOperand, memorySpace>
61 const OperatorContext<ValueTypeOperator, ValueTypeOperand, memorySpace>
63 MultiVector<ValueTypeOperand, memorySpace> &eigenSubspaceGuess,
65 const double wantedSpectrumLowerBound,
66 const double wantedSpectrumUpperBound,
67 const double unWantedSpectrumUpperBound,
68 MultiVector<blasLapack::scalar_type<ValueTypeOperator, ValueTypeOperand>,
69 memorySpace> & filteredSubspace,
70 MultiVector<blasLapack::scalar_type<ValueTypeOperator, ValueTypeOperand>,
71 memorySpace> & scratch1,
72 MultiVector<blasLapack::scalar_type<ValueTypeOperator, ValueTypeOperand>,
73 memorySpace> & scratch2);
95 template <
typename ValueTypeOperator,
96 typename ValueTypeOperand,
111 const double wantedSpectrumLowerBound,
112 const double wantedSpectrumUpperBound,
113 const double unWantedSpectrumUpperBound,
115 memorySpace> & filteredSubspace,
117 memorySpace> & scratch1,
119 memorySpace> & scratch2,
121 memorySpace> & scratch3,
123 memorySpace> & Residual,
125 memorySpace> & ResidualNew);
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition: MultiVector.h:134
Abstract class to encapsulate the action of a discrete operator on vectors, matrices,...
Definition: OperatorContext.h:51
typeInternal::real_type< ValueType > real_type
Definition: BlasLapackTypedef.h:177
typeInternal::scalar_type< ValueType1, ValueType2 > scalar_type
Definition: BlasLapackTypedef.h:183
void ChebyshevFilter(const OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > &A, const OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > &BInv, MultiVector< ValueTypeOperand, memorySpace > &eigenSubspaceGuess, const size_type polynomialDegree, const double wantedSpectrumLowerBound, const double wantedSpectrumUpperBound, const double unWantedSpectrumUpperBound, MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > &filteredSubspace, MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > &scratch1, MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > &scratch2)
A class to get chebyshevFiletered subspace "filteredSubspace" from original subspace "eigenSubspaceGu...
Definition: ChebyshevFilter.t.cpp:39
void ResidualChebyshevFilterGEP(const OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > &A, const OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > &B, const OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > &BInv, std::vector< blasLapack::real_type< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand > > > &eigenvalues, MultiVector< ValueTypeOperand, memorySpace > &eigenSubspaceGuess, const size_type polynomialDegree, const double wantedSpectrumLowerBound, const double wantedSpectrumUpperBound, const double unWantedSpectrumUpperBound, MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > &filteredSubspace, MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > &scratch1, MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > &scratch2, MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > &scratch3, MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > &Residual, MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > &ResidualNew)
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
std::uint64_t size_type
Definition: TypeConfig.h:9