@@ -155,14 +155,11 @@ class Function
155
155
156
156
// / @brief Interpolate an expression f(x) on the whole domain.
157
157
// / @param[in] f Expression to be interpolated.
158
- void
159
- interpolate (const std::function<
160
- std::pair<std::vector<value_type>, std::vector<std::size_t >>(
161
- MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan<
162
- const geometry_type,
163
- MDSPAN_IMPL_STANDARD_NAMESPACE::extents<
164
- std::size_t , 3 ,
165
- MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent>>)>& f)
158
+ void interpolate (
159
+ const std::function<
160
+ std::pair<std::vector<value_type>, std::vector<std::size_t >>(
161
+ md::mdspan<const geometry_type,
162
+ md::extents<std::size_t , 3 , md::dynamic_extent>>)>& f)
166
163
{
167
164
assert (_function_space);
168
165
assert (_function_space->mesh ());
@@ -180,11 +177,8 @@ class Function
180
177
void interpolate (
181
178
const std::function<
182
179
std::pair<std::vector<value_type>, std::vector<std::size_t >>(
183
- MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan<
184
- const geometry_type,
185
- MDSPAN_IMPL_STANDARD_NAMESPACE::extents<
186
- std::size_t , 3 ,
187
- MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent>>)>& f,
180
+ md::mdspan<const geometry_type,
181
+ md::extents<std::size_t , 3 , md::dynamic_extent>>)>& f,
188
182
std::span<const std::int32_t> cells)
189
183
{
190
184
assert (_function_space);
@@ -194,10 +188,8 @@ class Function
194
188
= fem::interpolation_coords<geometry_type>(
195
189
*_function_space->element (), _function_space->mesh ()->geometry (),
196
190
cells);
197
- MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan<
198
- const geometry_type,
199
- MDSPAN_IMPL_STANDARD_NAMESPACE::extents<
200
- std::size_t , 3 , MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent>>
191
+ md::mdspan<const geometry_type,
192
+ md::extents<std::size_t , 3 , md::dynamic_extent>>
201
193
_x (x.data (), 3 , x.size () / 3 );
202
194
203
195
const auto [fx, fshape] = f (_x);
@@ -387,10 +379,8 @@ class Function
387
379
std::size_t num_cells = cells0.size ();
388
380
std::size_t num_points = e0 .X ().second [0 ];
389
381
std::vector<value_type> fdata (num_cells * num_points * value_size);
390
- MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan<
391
- const value_type,
392
- MDSPAN_IMPL_STANDARD_NAMESPACE::dextents<std::size_t , 3 >>
393
- f (fdata.data (), num_cells, num_points, value_size);
382
+ md::mdspan<const value_type, md::dextents<std::size_t , 3 >> f (
383
+ fdata.data (), num_cells, num_points, value_size);
394
384
395
385
// Evaluate Expression at points
396
386
tabulate_expression (std::span (fdata), e0 , *mesh0,
@@ -402,9 +392,8 @@ class Function
402
392
// point. The interpolation uses xxyyzz input, ordered for all
403
393
// points of each cell, i.e. (value_size, num_cells*num_points).
404
394
std::vector<value_type> fdata1 (num_cells * num_points * value_size);
405
- MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan<
406
- value_type, MDSPAN_IMPL_STANDARD_NAMESPACE::dextents<std::size_t , 3 >>
407
- f1 (fdata1.data (), value_size, num_cells, num_points);
395
+ md::mdspan<value_type, md::dextents<std::size_t , 3 >> f1 (
396
+ fdata1.data (), value_size, num_cells, num_points);
408
397
for (std::size_t i = 0 ; i < f.extent (0 ); ++i)
409
398
for (std::size_t j = 0 ; j < f.extent (1 ); ++j)
410
399
for (std::size_t k = 0 ; k < f.extent (2 ); ++k)
@@ -535,19 +524,17 @@ class Function
535
524
phi0_shape.begin (), phi0_shape.end (), 1 , std::multiplies{}));
536
525
impl::mdspan_t <const geometry_type, 4 > phi0 (phi0_b.data (), phi0_shape);
537
526
cmap.tabulate (1 , std::vector<geometry_type>(tdim), {1 , tdim}, phi0_b);
538
- auto dphi0 = MDSPAN_IMPL_STANDARD_NAMESPACE::submdspan (
539
- phi0, std::pair (1 , tdim + 1 ), 0 ,
540
- MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent, 0 );
527
+ auto dphi0
528
+ = md::submdspan (phi0, std::pair (1 , tdim + 1 ), 0 , md::full_extent, 0 );
541
529
542
530
// Data structure for evaluating geometry basis at specific points.
543
531
// Used in non-affine case.
544
532
std::array<std::size_t , 4 > phi_shape = cmap.tabulate_shape (1 , 1 );
545
533
std::vector<geometry_type> phi_b (
546
534
std::reduce (phi_shape.begin (), phi_shape.end (), 1 , std::multiplies{}));
547
535
impl::mdspan_t <const geometry_type, 4 > phi (phi_b.data (), phi_shape);
548
- auto dphi = MDSPAN_IMPL_STANDARD_NAMESPACE::submdspan (
549
- phi, std::pair (1 , tdim + 1 ), 0 ,
550
- MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent, 0 );
536
+ auto dphi
537
+ = md::submdspan (phi, std::pair (1 , tdim + 1 ), 0 , md::full_extent, 0 );
551
538
552
539
// Reference coordinates for each point
553
540
std::vector<geometry_type> Xb (xshape[0 ] * tdim);
@@ -571,8 +558,7 @@ class Function
571
558
continue ;
572
559
573
560
// Get cell geometry (coordinate dofs)
574
- auto x_dofs = MDSPAN_IMPL_STANDARD_NAMESPACE::submdspan (
575
- x_dofmap, cell_index, MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent);
561
+ auto x_dofs = md::submdspan (x_dofmap, cell_index, md::full_extent);
576
562
assert (x_dofs.size () == num_dofs_g);
577
563
for (std::size_t i = 0 ; i < num_dofs_g; ++i)
578
564
{
@@ -584,18 +570,11 @@ class Function
584
570
for (std::size_t j = 0 ; j < gdim; ++j)
585
571
xp (0 , j) = x[p * xshape[1 ] + j];
586
572
587
- auto _J = MDSPAN_IMPL_STANDARD_NAMESPACE::submdspan (
588
- J, p, MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent,
589
- MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent);
590
- auto _K = MDSPAN_IMPL_STANDARD_NAMESPACE::submdspan (
591
- K, p, MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent,
592
- MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent);
573
+ auto _J = md::submdspan (J, p, md::full_extent, md::full_extent);
574
+ auto _K = md::submdspan (K, p, md::full_extent, md::full_extent);
593
575
594
576
std::array<geometry_type, 3 > Xpb = {0 , 0 , 0 };
595
- MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan<
596
- geometry_type,
597
- MDSPAN_IMPL_STANDARD_NAMESPACE::extents<
598
- std::size_t , 1 , MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent>>
577
+ md::mdspan<geometry_type, md::extents<std::size_t , 1 , md::dynamic_extent>>
599
578
Xp (Xpb.data (), 1 , tdim);
600
579
601
580
// Compute reference coordinates X, and J, detJ and K
@@ -681,16 +660,10 @@ class Function
681
660
cell_info, cell_index, reference_value_size);
682
661
683
662
{
684
- auto _U = MDSPAN_IMPL_STANDARD_NAMESPACE::submdspan (
685
- basis_derivatives_reference_values, 0 , p,
686
- MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent,
687
- MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent);
688
- auto _J = MDSPAN_IMPL_STANDARD_NAMESPACE::submdspan (
689
- J, p, MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent,
690
- MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent);
691
- auto _K = MDSPAN_IMPL_STANDARD_NAMESPACE::submdspan (
692
- K, p, MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent,
693
- MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent);
663
+ auto _U = md::submdspan (basis_derivatives_reference_values, 0 , p,
664
+ md::full_extent, md::full_extent);
665
+ auto _J = md::submdspan (J, p, md::full_extent, md::full_extent);
666
+ auto _K = md::submdspan (K, p, md::full_extent, md::full_extent);
694
667
push_forward_fn (basis_values, _U, _J, detJ[p], _K);
695
668
}
696
669
0 commit comments