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 dftfe::uInt locallyOwned,
40 dftfe::uInt blockSize,
41 const double absTolerance,
42 const dftfe::uInt maxNumberIterations,
43 const dftfe::uInt debugLevel = 0,
44 bool distributeFlag = true); // override;
45
46 private:
47 const MPI_Comm mpi_communicator;
50 dealii::ConditionalOStream pcout;
51 };
52} // namespace dftfe
53
54#endif // DFTFE_MULTIVECTORCGSOLVER_H
const dftfe::uInt n_mpi_processes
Definition MultiVectorCGSolver.h:48
const dftfe::uInt this_mpi_process
Definition MultiVectorCGSolver.h:49
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, dftfe::uInt locallyOwned, dftfe::uInt blockSize, const double absTolerance, const dftfe::uInt maxNumberIterations, const dftfe::uInt debugLevel=0, bool distributeFlag=true)
MultiVectorCGSolver(const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain)
const MPI_Comm mpi_communicator
Definition MultiVectorCGSolver.h:47
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
std::uint32_t uInt
Definition TypeConfig.h:10