18#ifndef DFTFE_MULTIVECTORPOISSONLINEARSOLVERPROBLEM_H
19#define DFTFE_MULTIVECTORPOISSONLINEARSOLVERPROBLEM_H
30 template <dftfe::utils::MemorySpace memorySpace>
37 const MPI_Comm &mpi_comm_domain);
52 const dealii::AffineConstraints<double> &constraintMatrix,
56 bool isComputeMeanValueConstraint);
92 const double omega)
const override;
103 const double omega)
const override;
150 std::shared_ptr<dftfe::linearAlgebra::BLASWrapper<memorySpace>>
Definition MultiVectorLinearSolverProblem.h:31
char d_transA
Definition MultiVectorPoissonLinearSolverProblem.h:180
std::vector< double > d_shapeFunctionValue
storage for shapefunctions
Definition MultiVectorPoissonLinearSolverProblem.h:216
bool d_isMeanValueConstraintComputed
Definition MultiVectorPoissonLinearSolverProblem.h:133
const dealii::DoFHandler< 3 > * d_dofHandler
Definition MultiVectorPoissonLinearSolverProblem.h:197
double d_beta
Definition MultiVectorPoissonLinearSolverProblem.h:178
bool d_isComputeDiagonalA
Definition MultiVectorPoissonLinearSolverProblem.h:131
const dftfe::uInt n_mpi_processes
Definition MultiVectorPoissonLinearSolverProblem.h:167
dftfe::utils::MemoryStorage< double, memorySpace > d_xCellLLevelNodalData
Definition MultiVectorPoissonLinearSolverProblem.h:187
const dealii::MatrixFree< 3, double > * d_matrixFreeDataPtr
pointer to dealii MatrixFree object
Definition MultiVectorPoissonLinearSolverProblem.h:158
dftfe::utils::MemoryStorage< double, memorySpace > d_diagonalA
Definition MultiVectorPoissonLinearSolverProblem.h:147
dftfe::uInt d_inc
Definition MultiVectorPoissonLinearSolverProblem.h:175
dftfe::uInt d_matrixFreeVectorComponent
Definition MultiVectorPoissonLinearSolverProblem.h:144
void setDataForRhsVec(dftfe::utils::MemoryStorage< double, memorySpace > &inputQuadData)
function to set data for Rhs Vec.
dftfe::uInt d_locallyOwnedSize
Definition MultiVectorPoissonLinearSolverProblem.h:170
double d_scalarCoeffAlpha
Definition MultiVectorPoissonLinearSolverProblem.h:177
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > d_BLASWrapperPtr
Definition MultiVectorPoissonLinearSolverProblem.h:151
std::vector< double > d_cellShapeFunctionGradientIntegral
finite-element cell level matrix to store dot product between shapeFunction gradients (\dftfeInt(\nab...
Definition MultiVectorPoissonLinearSolverProblem.h:205
dftfe::linearAlgebra::MultiVector< double, memorySpace > & computeRhs(dftfe::linearAlgebra::MultiVector< double, memorySpace > &NDBCVec, dftfe::linearAlgebra::MultiVector< double, memorySpace > &outputVec, dftfe::uInt blockSizeInput) override
Compute right hand side vector for the problem Ax = rhs.
void distributeX() override
Apply the constraints to the solution vector.
const dftfe::utils::MemoryStorage< double, memorySpace > * d_cellStiffnessMatrixPtr
Definition MultiVectorPoissonLinearSolverProblem.h:161
std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, memorySpace > > d_basisOperationsPtr
Definition MultiVectorPoissonLinearSolverProblem.h:155
double d_negScalarCoeffAlpha
Definition MultiVectorPoissonLinearSolverProblem.h:176
const dftfe::uInt this_mpi_process
Definition MultiVectorPoissonLinearSolverProblem.h:168
dftfe::uInt d_matrixFreeQuadratureComponentRhs
Definition MultiVectorPoissonLinearSolverProblem.h:143
char d_transB
Definition MultiVectorPoissonLinearSolverProblem.h:181
dftfe::utils::MemoryStorage< double, memorySpace > d_diagonalSqrtA
Definition MultiVectorPoissonLinearSolverProblem.h:148
dftfe::uInt d_numCells
Definition MultiVectorPoissonLinearSolverProblem.h:173
dftfe::uInt d_matrixFreeQuadratureComponentAX
Definition MultiVectorPoissonLinearSolverProblem.h:193
dftfe::uInt d_cellBlockSize
Definition MultiVectorPoissonLinearSolverProblem.h:218
dealii::ConditionalOStream pcout
Definition MultiVectorPoissonLinearSolverProblem.h:169
dftfe::utils::MemoryStorage< dftfe::uInt, memorySpace > d_mapNodeIdToProcId
Definition MultiVectorPoissonLinearSolverProblem.h:184
void computeMeanValueConstraint()
~MultiVectorPoissonLinearSolverProblem()
const dealii::AffineConstraints< double > * d_constraintMatrixPtr
pointer to dealii dealii::AffineConstraints<double> object
Definition MultiVectorPoissonLinearSolverProblem.h:136
void precondition_JacobiSqrt(dftfe::linearAlgebra::MultiVector< double, memorySpace > &dst, const dftfe::linearAlgebra::MultiVector< double, memorySpace > &src, const double omega) const override
Apply square-root of the Jacobi preconditioner function.
dftfe::utils::MemoryStorage< double, memorySpace > * d_rhsQuadDataPtr
Definition MultiVectorPoissonLinearSolverProblem.h:191
void vmult(dftfe::linearAlgebra::MultiVector< double, memorySpace > &Ax, dftfe::linearAlgebra::MultiVector< double, memorySpace > &x, dftfe::uInt blockSize) override
Compute A matrix multipled by x.
std::vector< double > d_cellShapeFunctionJxW
finite-element cell level matrix to store dot product between shapeFunction gradients (\dftfeInt(\nab...
Definition MultiVectorPoissonLinearSolverProblem.h:213
dftfe::uInt d_numberDofsPerElement
Definition MultiVectorPoissonLinearSolverProblem.h:172
dftfe::linearAlgebra::MultiVector< double, memorySpace > * d_blockedXPtr
Definition MultiVectorPoissonLinearSolverProblem.h:140
void tempRhsVecCalc(dftfe::linearAlgebra::MultiVector< double, memorySpace > &rhs)
dftfe::utils::MemoryStorage< dftfe::uInt, memorySpace > d_mapQuadIdToProcId
Definition MultiVectorPoissonLinearSolverProblem.h:185
const MPI_Comm d_mpi_parent
Definition MultiVectorPoissonLinearSolverProblem.h:166
dftfe::linearAlgebra::MultiVector< double, memorySpace > * d_blockedNDBCPtr
Definition MultiVectorPoissonLinearSolverProblem.h:141
MultiVectorPoissonLinearSolverProblem(const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain)
void precondition_Jacobi(dftfe::linearAlgebra::MultiVector< double, memorySpace > &dst, const dftfe::linearAlgebra::MultiVector< double, memorySpace > &src, const double omega) const override
Jacobi preconditioning function.
dftfe::utils::MemoryStorage< double, memorySpace > d_AxCellLLevelNodalData
Definition MultiVectorPoissonLinearSolverProblem.h:188
const MPI_Comm mpi_communicator
data members for the mpi implementation
Definition MultiVectorPoissonLinearSolverProblem.h:166
dftfe::uInt d_nQuadsPerCell
Definition MultiVectorPoissonLinearSolverProblem.h:193
void preComputeShapeFunction()
dftUtils::constraintMatrixInfo< memorySpace > d_constraintsInfo
Definition MultiVectorPoissonLinearSolverProblem.h:163
dftfe::linearAlgebra::MultiVector< double, memorySpace > d_rhsVec
Definition MultiVectorPoissonLinearSolverProblem.h:141
void reinit(std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperPtr, std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, memorySpace > > basisOperationsPtr, const dealii::AffineConstraints< double > &constraintMatrix, const dftfe::uInt matrixFreeVectorComponent, const dftfe::uInt matrixFreeQuadratureComponentRhs, const dftfe::uInt matrixFreeQuadratureComponentAX, bool isComputeMeanValueConstraint)
dftfe::uInt d_blockSize
Definition MultiVectorPoissonLinearSolverProblem.h:145
double d_alpha
Definition MultiVectorPoissonLinearSolverProblem.h:179
Definition FEBasisOperations.h:85
Overloads dealii's distribute and distribute_local_to_global functions associated with constraints cl...
Definition constraintMatrixInfo.h:43
Definition BLASWrapper.h:35
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition MultiVector.h:127
Definition MemoryStorage.h:33
Definition pseudoPotentialToDftfeConverter.cc:34
std::uint32_t uInt
Definition TypeConfig.h:10