26#ifndef dftefePoissonLinearSolverFunctionFE_h
27#define dftefePoissonLinearSolverFunctionFE_h
46 namespace electrostatics
69 template <
typename ValueTypeOperator,
70 typename ValueTypeOperand,
74 :
public linearAlgebra::
75 LinearSolverFunction<ValueTypeOperator, ValueTypeOperand, memorySpace>
96 dim>> feBasisManagerField,
99 feBasisDataStorageStiffnessMatrix,
102 feBasisDataStorageRhs,
115 dim>> feBasisManagerField,
118 feBasisDataStorageRhs,
124 const linearAlgebra::
125 OperatorContext<ValueTypeOperator, ValueTypeOperand, memorySpace> &
128 const linearAlgebra::
129 OperatorContext<ValueTypeOperator, ValueTypeOperand, memorySpace> &
153 FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>>
157 FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>>
177 std::shared_ptr<linearAlgebra::LinAlgOpContext<memorySpace>>
An abstract class to store and access data for a given basis, such as the basis function values on a ...
Definition: FEBasisDataStorage.h:53
An abstract class to encapsulate the partitioning of a finite element basis across multiple processor...
Definition: FEBasisManager.h:44
A derived class of linearAlgebra::LinearSolverFunction to encapsulate the Poisson partial differentia...
Definition: PoissonLinearSolverFunctionFE.h:76
size_type d_numComponents
Definition: PoissonLinearSolverFunctionFE.h:150
const utils::mpi::MPIComm & getMPIComm() const override
Definition: PoissonLinearSolverFunctionFE.t.cpp:486
void getSolution(linearAlgebra::MultiVector< ValueType, memorySpace > &solution) override
Definition: PoissonLinearSolverFunctionFE.t.cpp:425
linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > d_fieldInHomoDBCVec
Definition: PoissonLinearSolverFunctionFE.h:176
void setSolution(const linearAlgebra::MultiVector< ValueType, memorySpace > &x) override
Definition: PoissonLinearSolverFunctionFE.t.cpp:408
linearAlgebra::MultiVector< ValueType, memorySpace > d_b
Definition: PoissonLinearSolverFunctionFE.h:173
std::shared_ptr< const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > > d_PCContext
Definition: PoissonLinearSolverFunctionFE.h:170
linearAlgebra::PreconditionerType d_pcType
Definition: PoissonLinearSolverFunctionFE.h:171
const linearAlgebra::MultiVector< ValueType, memorySpace > & getInitialGuess() const override
Definition: PoissonLinearSolverFunctionFE.t.cpp:473
void reinit(std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > feBasisManagerField, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > feBasisDataStorageRhs, const quadrature::QuadratureValuesContainer< ValueType, memorySpace > &inpRhs)
Definition: PoissonLinearSolverFunctionFE.t.cpp:274
const size_type d_maxCellTimesNumVecs
Definition: PoissonLinearSolverFunctionFE.h:179
linearAlgebra::MultiVector< ValueType, memorySpace > d_initial
Definition: PoissonLinearSolverFunctionFE.h:174
linearAlgebra::MultiVector< ValueType, memorySpace > d_x
Definition: PoissonLinearSolverFunctionFE.h:172
const linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > & getRhs() const override
Definition: PoissonLinearSolverFunctionFE.t.cpp:457
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > d_feBasisDataStorageRhs
Definition: PoissonLinearSolverFunctionFE.h:185
linearAlgebra::blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand > ValueType
define ValueType as the superior (bigger set) of the ValueTypeOperator and ValueTypeOperand (e....
Definition: PoissonLinearSolverFunctionFE.h:86
~PoissonLinearSolverFunctionFE()=default
std::shared_ptr< const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > > d_AxContext
Definition: PoissonLinearSolverFunctionFE.h:162
std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > d_feBasisManagerHomo
Definition: PoissonLinearSolverFunctionFE.h:158
std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > d_feBasisManagerField
Definition: PoissonLinearSolverFunctionFE.h:154
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > d_linAlgOpContext
Definition: PoissonLinearSolverFunctionFE.h:178
const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > & getPCContext() const override
Definition: PoissonLinearSolverFunctionFE.t.cpp:394
std::shared_ptr< const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > > d_AxContextNHDB
Definition: PoissonLinearSolverFunctionFE.h:166
const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > & getAxContext() const override
Definition: PoissonLinearSolverFunctionFE.t.cpp:380
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > d_feBasisDataStorageStiffnessMatrix
Definition: PoissonLinearSolverFunctionFE.h:182
Definition: LinAlgOpContext.h:38
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
Definition: QuadratureValuesContainer.h:39
blas::scalar_type< ValueType1, ValueType2 > scalar_type
Definition: BlasLapackTypedef.h:70
PreconditionerType
Definition: LinearAlgebraTypes.h:41
int MPIComm
Definition: MPITypes.h:83
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8