20#if defined(DFTFE_WITH_DEVICE)
22# ifndef kerkerSolverProblemDevice_H_
23# define kerkerSolverProblemDevice_H_
41 template <dftfe::uInt FEOrderElectro>
42 class kerkerSolverProblemDevice :
public linearSolverProblemDevice
46 kerkerSolverProblemDevice(
const MPI_Comm &mpi_comm_parent,
47 const MPI_Comm &mpi_comm_domain);
62 FEBasisOperations<double, double, dftfe::utils::MemorySpace::DEVICE>>
64 dealii::AffineConstraints<double> &constraintMatrix,
65 distributedCPUVec<double> &x,
66 double kerkerMixingParameter,
82 distributedCPUVec<double> &x,
83 const dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST>
92 distributedDeviceVec<double> &
101 distributedDeviceVec<double> &
110 computeAX(distributedDeviceVec<double> &Ax,
111 distributedDeviceVec<double> &x);
124 computeRhs(distributedCPUVec<double> &rhs);
140 copyXfromDeviceToHost();
166 distributedCPUVec<double> d_diagonalA;
167 distributedDeviceVec<double> d_diagonalAdevice;
170 distributedCPUVec<double> *d_xPtr;
173 distributedDeviceVec<double> d_xDevice;
177 dftfe::Int d_nLocalCells, d_xLocalDof, d_xLen;
183 dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::DEVICE>
184 d_shapeFunction, d_jacobianFactor;
185 dftfe::utils::MemoryStorage<dftfe::Int, dftfe::utils::MemorySpace::DEVICE>
190 double *d_shapeFunctionPtr;
191 double *d_jacobianFactorPtr;
195 dftUtils::constraintMatrixInfo<dftfe::utils::MemorySpace::DEVICE>
196 d_constraintsTotalPotentialInfo;
208 const dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST>
209 *d_residualQuadValuesPtr;
210 const dealii::DoFHandler<3> *d_dofHandlerPRefinedPtr;
211 const dealii::AffineConstraints<double> *d_constraintMatrixPRefinedPtr;
212 const dealii::MatrixFree<3, double> *d_matrixFreeDataPRefinedPtr;
215 FEBasisOperations<double, double, dftfe::utils::MemorySpace::DEVICE>>
216 d_basisOperationsPtr;
220 const MPI_Comm d_mpiCommParent;
221 const MPI_Comm mpi_communicator;
224 dealii::ConditionalOStream pcout;
Definition pseudoPotentialToDftfeConverter.cc:34
std::uint32_t uInt
Definition TypeConfig.h:10
std::int32_t Int
Definition TypeConfig.h:11