DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
MultiVectorCGSolver.h
Go to the documentation of this file.
1// This file is part of the DFT-FE code.
2//
3// The DFT-FE code is free software; you can use it, redistribute
4// it, and/or modify it under the terms of the GNU Lesser General
5// Public License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7// The full text of the license can be found in the file LICENSE at
8// the top level of the DFT-FE distribution.
9//
10// ---------------------------------------------------------------------
11//
12
13#ifndef DFTFE_MULTIVECTORCGSOLVER_H
14#define DFTFE_MULTIVECTORCGSOLVER_H
15
17#include "headers.h"
18#include "BLASWrapper.h"
19
20namespace dftfe
21{
22 /*
23 * @brief MultiVector CG solver. This class is an extension of dealiiLinearSolver
24 * but extended to multi vector.
25 */
27 {
28 public:
29 MultiVectorCGSolver(const MPI_Comm &mpi_comm_parent,
30 const MPI_Comm &mpi_comm_domain);
31
32 template <dftfe::utils::MemorySpace memorySpace>
33 void
36 BLASWrapperPtr,
39 unsigned int locallyOwned,
40 unsigned int blockSize,
41 const double absTolerance,
42 const unsigned int maxNumberIterations,
43 const unsigned int debugLevel = 0,
44 bool distributeFlag = true); // override;
45
46 private:
47 const MPI_Comm mpi_communicator;
48 const unsigned int n_mpi_processes;
49 const unsigned int this_mpi_process;
50 dealii::ConditionalOStream pcout;
51 };
52} // namespace dftfe
53
54#endif // DFTFE_MULTIVECTORCGSOLVER_H
MultiVectorCGSolver(const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain)
void solve(MultiVectorLinearSolverProblem< memorySpace > &problem, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperPtr, dftfe::linearAlgebra::MultiVector< double, memorySpace > &x, dftfe::linearAlgebra::MultiVector< double, memorySpace > &NDBCVec, unsigned int locallyOwned, unsigned int blockSize, const double absTolerance, const unsigned int maxNumberIterations, const unsigned int debugLevel=0, bool distributeFlag=true)
const MPI_Comm mpi_communicator
Definition MultiVectorCGSolver.h:47
const unsigned int n_mpi_processes
Definition MultiVectorCGSolver.h:48
const unsigned int this_mpi_process
Definition MultiVectorCGSolver.h:49
dealii::ConditionalOStream pcout
Definition MultiVectorCGSolver.h:50
Definition MultiVectorLinearSolverProblem.h:31
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 pseudoPotentialToDftfeConverter.cc:34