Skip to content

Commit a399ec2

Browse files
committed
Update code
1 parent 1c046c6 commit a399ec2

File tree

2 files changed

+19
-29
lines changed

2 files changed

+19
-29
lines changed

examples/deal.II/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)
1+
CMAKE_MINIMUM_REQUIRED(VERSION 3.5)
22

33
FIND_PACKAGE(deal.II 8.0 QUIET
44
HINTS ${deal.II_DIR} ${DEAL_II_DIR} ../ ../../ $ENV{DEAL_II_DIR}

examples/deal.II/bps_02.cc

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@
3939
#include <deal.II/lac/precondition.h>
4040
#include <deal.II/lac/solver_cg.h>
4141

42-
#include <deal.II/matrix_free/cuda_fe_evaluation.h>
43-
#include <deal.II/matrix_free/cuda_matrix_free.h>
42+
#include <deal.II/matrix_free/portable_fe_evaluation.h>
43+
#include <deal.II/matrix_free/portable_matrix_free.h>
4444

4545
// boost
4646
#include <boost/algorithm/string.hpp>
@@ -134,8 +134,8 @@ class OperatorDealiiMassQuad
134134
{
135135
public:
136136
DEAL_II_HOST_DEVICE void
137-
operator()(CUDAWrappers::FEEvaluation<dim, fe_degree, fe_degree + 1, 1, Number> *fe_eval,
138-
const int q_point) const
137+
operator()(Portable::FEEvaluation<dim, fe_degree, fe_degree + 1, 1, Number> *fe_eval,
138+
const int q_point) const
139139
{
140140
fe_eval->submit_value(fe_eval->get_value(q_point), q_point);
141141
}
@@ -148,8 +148,8 @@ class OperatorDealiiLaplaceQuad
148148
{
149149
public:
150150
DEAL_II_HOST_DEVICE void
151-
operator()(CUDAWrappers::FEEvaluation<dim, fe_degree, fe_degree + 1, 1, Number> *fe_eval,
152-
const int q_point) const
151+
operator()(Portable::FEEvaluation<dim, fe_degree, fe_degree + 1, 1, Number> *fe_eval,
152+
const int q_point) const
153153
{
154154
fe_eval->submit_gradient(fe_eval->get_gradient(q_point), q_point);
155155
}
@@ -162,23 +162,18 @@ class OperatorDealiiMassLocal
162162
{
163163
public:
164164
DEAL_II_HOST_DEVICE void
165-
operator()(const unsigned int cell,
166-
const typename CUDAWrappers::MatrixFree<dim, Number>::Data *gpu_data,
167-
CUDAWrappers::SharedData<dim, Number> *shared_data,
168-
const Number *src,
169-
Number *dst) const
165+
operator()(const typename Portable::MatrixFree<dim, Number>::Data *data,
166+
const Portable::DeviceVector<Number> &src,
167+
Portable::DeviceVector<Number> &dst) const
170168
{
171-
(void)cell;
172-
173-
CUDAWrappers::FEEvaluation<dim, fe_degree, fe_degree + 1, 1, Number> fe_eval(/*cell,*/ gpu_data,
174-
shared_data);
169+
Portable::FEEvaluation<dim, fe_degree, fe_degree + 1, 1, Number> fe_eval(data);
175170
fe_eval.read_dof_values(src);
176171
fe_eval.evaluate(EvaluationFlags::values);
177172
fe_eval.apply_for_each_quad_point(OperatorDealiiMassQuad<dim, fe_degree, Number>());
178173
fe_eval.integrate(EvaluationFlags::values);
179174
fe_eval.distribute_local_to_global(dst);
180175
}
181-
static const unsigned int n_dofs_1d = fe_degree + 1;
176+
182177
static const unsigned int n_local_dofs = Utilities::pow(fe_degree + 1, dim);
183178
static const unsigned int n_q_points = Utilities::pow(fe_degree + 1, dim);
184179
};
@@ -190,23 +185,18 @@ class OperatorDealiiLaplaceLocal
190185
{
191186
public:
192187
DEAL_II_HOST_DEVICE void
193-
operator()(const unsigned int cell,
194-
const typename CUDAWrappers::MatrixFree<dim, Number>::Data *gpu_data,
195-
CUDAWrappers::SharedData<dim, Number> *shared_data,
196-
const Number *src,
197-
Number *dst) const
188+
operator()(const typename Portable::MatrixFree<dim, Number>::Data *data,
189+
const Portable::DeviceVector<Number> &src,
190+
Portable::DeviceVector<Number> &dst) const
198191
{
199-
(void)cell;
200-
201-
CUDAWrappers::FEEvaluation<dim, fe_degree, fe_degree + 1, 1, Number> fe_eval(/*cell,*/ gpu_data,
202-
shared_data);
192+
Portable::FEEvaluation<dim, fe_degree, fe_degree + 1, 1, Number> fe_eval(data);
203193
fe_eval.read_dof_values(src);
204194
fe_eval.evaluate(EvaluationFlags::gradients);
205195
fe_eval.apply_for_each_quad_point(OperatorDealiiLaplaceQuad<dim, fe_degree, Number>());
206196
fe_eval.integrate(EvaluationFlags::gradients);
207197
fe_eval.distribute_local_to_global(dst);
208198
}
209-
static const unsigned int n_dofs_1d = fe_degree + 1;
199+
210200
static const unsigned int n_local_dofs = Utilities::pow(fe_degree + 1, dim);
211201
static const unsigned int n_q_points = Utilities::pow(fe_degree + 1, dim);
212202
};
@@ -248,7 +238,7 @@ class OperatorDealii : public OperatorBase<Number, MemorySpace::Default>
248238
reinit() override
249239
{
250240
// configure MatrixFree
251-
typename CUDAWrappers::MatrixFree<dim, Number>::AdditionalData additional_data;
241+
typename Portable::MatrixFree<dim, Number>::AdditionalData additional_data;
252242

253243
if (bp <= BPType::BP2) // mass matrix
254244
additional_data.mapping_update_flags = update_JxW_values | update_values;
@@ -351,7 +341,7 @@ class OperatorDealii : public OperatorBase<Number, MemorySpace::Default>
351341
/**
352342
* MatrixFree object.
353343
*/
354-
CUDAWrappers::MatrixFree<dim, Number> matrix_free;
344+
Portable::MatrixFree<dim, Number> matrix_free;
355345
};
356346

357347

0 commit comments

Comments
 (0)