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,
81 distributedCPUVec<double> &x,
82 const dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST>
91 distributedDeviceVec<double> &
100 distributedDeviceVec<double> &
109 computeAX(distributedDeviceVec<double> &Ax,
110 distributedDeviceVec<double> &x);
123 computeRhs(distributedCPUVec<double> &rhs);
139 copyXfromDeviceToHost();
145 subscribe(std::atomic<bool> *
const validity,
146 const std::string &identifier =
"")
const {};
152 unsubscribe(std::atomic<bool> *
const validity,
153 const std::string &identifier =
"")
const {};
158 operator!=(
double val)
const
188 distributedCPUVec<double> d_diagonalA;
189 distributedDeviceVec<double> d_diagonalAdevice;
192 distributedCPUVec<double> *d_xPtr;
195 distributedDeviceVec<double> d_xDevice;
199 dftfe::Int d_nLocalCells, d_xLocalDof, d_xLen;
205 dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::DEVICE>
206 d_shapeFunction, d_jacobianFactor;
207 dftfe::utils::MemoryStorage<dftfe::Int, dftfe::utils::MemorySpace::DEVICE>
212 double *d_shapeFunctionPtr;
213 double *d_jacobianFactorPtr;
217 dftUtils::constraintMatrixInfo<dftfe::utils::MemorySpace::DEVICE>
218 d_constraintsTotalPotentialInfo;
229 const dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST>
230 *d_residualQuadValuesPtr;
231 const dealii::DoFHandler<3> *d_dofHandlerPRefinedPtr;
232 const dealii::AffineConstraints<double> *d_constraintMatrixPRefinedPtr;
233 const dealii::MatrixFree<3, double> *d_matrixFreeDataPRefinedPtr;
236 FEBasisOperations<double, double, dftfe::utils::MemorySpace::DEVICE>>
237 d_basisOperationsPtr;
241 const MPI_Comm d_mpiCommParent;
242 const MPI_Comm mpi_communicator;
245 dealii::ConditionalOStream pcout;
Definition pseudoPotentialToDftfeConverter.cc:34
std::uint32_t uInt
Definition TypeConfig.h:10
std::int32_t Int
Definition TypeConfig.h:11