26#ifndef dftefePoissonLinearSolverFunctionFE_h
27#define dftefePoissonLinearSolverFunctionFE_h
47 namespace electrostatics
70 template <
typename ValueTypeOperator,
71 typename ValueTypeOperand,
75 :
public linearAlgebra::
76 LinearSolverFunction<ValueTypeOperator, ValueTypeOperand, memorySpace>
97 dim>> feBasisManagerField,
100 feBasisDataStorageStiffnessMatrix,
105 &feBasisDataStorageRhs,
123 dim>> feBasisManagerField,
126 feBasisDataStorageStiffnessMatrix,
129 feBasisDataStorageRhs,
143 dim>> feBasisManagerField,
154 dim>> feBasisManagerField,
160 const linearAlgebra::
161 OperatorContext<ValueTypeOperator, ValueTypeOperand, memorySpace> &
164 const linearAlgebra::
165 OperatorContext<ValueTypeOperator, ValueTypeOperand, memorySpace> &
189 FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>>
193 FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>>
215 std::shared_ptr<linearAlgebra::LinAlgOpContext<memorySpace>>
224 std::map<std::string,
227 std::map<std::string,
An abstract class to store and access data for a given basis, such as the basis function values on a ...
Definition: FEBasisDataStorage.h:54
An abstract class to encapsulate the partitioning of a finite element basis across multiple processor...
Definition: FEBasisManager.h:44
A derived class of linearAlgebra::OperatorContext to encapsulate the action of a discrete operator on...
Definition: LaplaceOperatorContextFE.h:63
A derived class of linearAlgebra::LinearSolverFunction to encapsulate the Poisson partial differentia...
Definition: PoissonLinearSolverFunctionFE.h:77
size_type d_numComponents
Definition: PoissonLinearSolverFunctionFE.h:186
const utils::mpi::MPIComm & getMPIComm() const override
Definition: PoissonLinearSolverFunctionFE.t.cpp:652
void getSolution(linearAlgebra::MultiVector< ValueType, memorySpace > &solution) override
Definition: PoissonLinearSolverFunctionFE.t.cpp:587
linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > d_fieldInHomoDBCVec
Definition: PoissonLinearSolverFunctionFE.h:214
void setSolution(const linearAlgebra::MultiVector< ValueType, memorySpace > &x) override
Definition: PoissonLinearSolverFunctionFE.t.cpp:570
linearAlgebra::MultiVector< ValueType, memorySpace > d_b
Definition: PoissonLinearSolverFunctionFE.h:211
std::shared_ptr< LaplaceOperatorContextFE< ValueTypeOperator, ValueTypeOperand, memorySpace, dim > > d_AxContextNHDB
Definition: PoissonLinearSolverFunctionFE.h:204
std::shared_ptr< const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > > d_PCContext
Definition: PoissonLinearSolverFunctionFE.h:208
utils::Profiler d_p
Definition: PoissonLinearSolverFunctionFE.h:222
void reinit(std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > feBasisManagerField, const quadrature::QuadratureValuesContainer< ValueType, memorySpace > &inpRhs)
utils::ConditionalOStream d_rootCout
Definition: PoissonLinearSolverFunctionFE.h:223
std::shared_ptr< LaplaceOperatorContextFE< ValueTypeOperator, ValueTypeOperand, memorySpace, dim > > d_AxContext
Definition: PoissonLinearSolverFunctionFE.h:199
PoissonLinearSolverFunctionFE(std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > feBasisManagerField, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > feBasisDataStorageStiffnessMatrix, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > feBasisDataStorageRhs, const quadrature::QuadratureValuesContainer< ValueType, memorySpace > &inpRhs, const linearAlgebra::PreconditionerType pcType, std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > linAlgOpContext, const size_type maxCellBlock, const size_type maxFieldBlock)
This constructor creates an instance of a base LinearSolverFunction called PoissonLinearSolverFE.
std::map< std::string, linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > > d_rhsMultiVecComponent
Definition: PoissonLinearSolverFunctionFE.h:226
linearAlgebra::PreconditionerType d_pcType
Definition: PoissonLinearSolverFunctionFE.h:209
const linearAlgebra::MultiVector< ValueType, memorySpace > & getInitialGuess() const override
Definition: PoissonLinearSolverFunctionFE.t.cpp:639
std::map< std::string, quadrature::QuadratureValuesContainer< ValueType, memorySpace > > d_rhsQuadValComponent
Definition: PoissonLinearSolverFunctionFE.h:229
std::map< std::string, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > > d_feBasisDataStorageRhs
Definition: PoissonLinearSolverFunctionFE.h:234
void reinit(std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > feBasisManagerField, const std::map< std::string, const quadrature::QuadratureValuesContainer< ValueType, memorySpace > & > &inpRhs)
Definition: PoissonLinearSolverFunctionFE.t.cpp:326
linearAlgebra::MultiVector< ValueType, memorySpace > d_initial
Definition: PoissonLinearSolverFunctionFE.h:212
linearAlgebra::MultiVector< ValueType, memorySpace > d_x
Definition: PoissonLinearSolverFunctionFE.h:210
const linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > & getRhs() const override
Definition: PoissonLinearSolverFunctionFE.t.cpp:623
const size_type d_maxCellBlock
Definition: PoissonLinearSolverFunctionFE.h:217
linearAlgebra::blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand > ValueType
define ValueType as the superior (bigger set) of the ValueTypeOperator and ValueTypeOperand (e....
Definition: PoissonLinearSolverFunctionFE.h:87
~PoissonLinearSolverFunctionFE()=default
std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > d_feBasisManagerHomo
Definition: PoissonLinearSolverFunctionFE.h:194
std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > d_feBasisManagerField
Definition: PoissonLinearSolverFunctionFE.h:190
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > d_linAlgOpContext
Definition: PoissonLinearSolverFunctionFE.h:216
const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > & getPCContext() const override
Definition: PoissonLinearSolverFunctionFE.t.cpp:556
const size_type d_maxFieldBlock
Definition: PoissonLinearSolverFunctionFE.h:218
const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > & getAxContext() const override
Definition: PoissonLinearSolverFunctionFE.t.cpp:542
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > d_feBasisDataStorageStiffnessMatrix
Definition: PoissonLinearSolverFunctionFE.h:221
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
Provides an interface to print based on whether a certain condition is met or not....
Definition: ConditionalOStream.h:47
Definition: Profiler.h:44
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