const LinearAlgebra::distributed::Vector<double, MemorySpace::CUDA>
&src) const;
+ void initialize_dof_vector(
+ LinearAlgebra::distributed::Vector<double, MemorySpace::CUDA> &vec) const;
+
private:
CUDAWrappers::MatrixFree<dim, double> mf_data;
LinearAlgebra::CUDAWrappers::Vector<double> coef;
}
+
+ template <int dim, int fe_degree>
+ void HelmholtzOperator<dim, fe_degree>::initialize_dof_vector(
+ LinearAlgebra::distributed::Vector<double, MemorySpace::CUDA> &vec) const
+ {
+ mf_data.initialize_dof_vector(vec);
+ }
+
+
// @sect3{Class <code>HelmholtzProblem</code>}
// This is the main class of this program. It defines the usual
ghost_solution_host.reinit(locally_owned_dofs,
locally_relevant_dofs,
mpi_communicator);
- solution_dev.reinit(locally_owned_dofs, mpi_communicator);
- system_rhs_dev.reinit(locally_owned_dofs, mpi_communicator);
+ system_matrix_dev->initialize_dof_vector(solution_dev);
+ system_rhs_dev.reinit(solution_dev);
}