@@ -1161,14 +1161,16 @@ getBasisValues(const bool weighted,
1161
1161
}
1162
1162
auto tmp_basis_scalar_ref = af.buildStaticArray <Scalar,Cell,BASIS,IP>(" tmp_basis_scalar_ref" ,num_cells,num_card,num_points);
1163
1163
Kokkos::deep_copy (tmp_basis_scalar_ref.get_view (),tmp_basis_scalar_host);
1164
+ const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1165
+ auto s_aux = Kokkos::subview (tmp_basis_scalar.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1166
+ auto s_ref = Kokkos::subview (tmp_basis_scalar_ref.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1164
1167
1165
1168
using fst=Intrepid2::FunctionSpaceTools<PHX::Device>;
1166
1169
if (element_space == PureBasis::HVOL){
1167
- const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1168
1170
auto s_cjd = Kokkos::subview (cubature_jacobian_determinant_.get_view (), cell_range, Kokkos::ALL ());
1169
- fst::HVOLtransformVALUE (tmp_basis_scalar. get_view () ,s_cjd,tmp_basis_scalar_ref. get_view () );
1171
+ fst::HVOLtransformVALUE (s_aux ,s_cjd,s_ref );
1170
1172
} else if (element_space == PureBasis::HGRAD || element_space == PureBasis::CONST) {
1171
- fst::HGRADtransformVALUE (tmp_basis_scalar. get_view (),tmp_basis_scalar_ref. get_view () );
1173
+ fst::HGRADtransformVALUE (s_aux,s_ref );
1172
1174
}
1173
1175
} else {
1174
1176
#endif
@@ -1184,14 +1186,16 @@ getBasisValues(const bool weighted,
1184
1186
}
1185
1187
auto tmp_basis_scalar_ref = af.buildStaticArray <Scalar,Cell,BASIS,IP>(" tmp_basis_scalar_ref" ,num_cells,num_card,num_points);
1186
1188
Kokkos::deep_copy (tmp_basis_scalar_ref.get_view (),tmp_basis_scalar_host);
1189
+ const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1190
+ auto s_aux = Kokkos::subview (tmp_basis_scalar.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1191
+ auto s_ref = Kokkos::subview (tmp_basis_scalar_ref.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1187
1192
1188
1193
using fst=Intrepid2::FunctionSpaceTools<PHX::Device>;
1189
1194
if (element_space == PureBasis::HVOL){
1190
- const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1191
1195
auto s_cjd = Kokkos::subview (cubature_jacobian_determinant_.get_view (), cell_range, Kokkos::ALL ());
1192
- fst::HVOLtransformVALUE (tmp_basis_scalar. get_view () ,s_cjd,tmp_basis_scalar_ref. get_view () );
1196
+ fst::HVOLtransformVALUE (s_aux ,s_cjd,s_ref );
1193
1197
} else if (element_space == PureBasis::HGRAD || element_space == PureBasis::CONST) {
1194
- fst::HGRADtransformVALUE (tmp_basis_scalar. get_view (),tmp_basis_scalar_ref. get_view () );
1198
+ fst::HGRADtransformVALUE (s_aux,s_ref );
1195
1199
}
1196
1200
#ifdef KOKKOS_ENABLE_CUDA
1197
1201
}
@@ -1323,15 +1327,16 @@ getVectorBasisValues(const bool weighted,
1323
1327
1324
1328
const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1325
1329
auto s_aux = Kokkos::subview (tmp_basis_vector.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1330
+ auto s_ref = Kokkos::subview (tmp_basis_vector_ref.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1326
1331
1327
1332
using fst=Intrepid2::FunctionSpaceTools<PHX::Device>;
1328
1333
if (element_space == PureBasis::HCURL){
1329
1334
auto s_jac_inv = Kokkos::subview (cubature_jacobian_inverse_.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1330
- fst::HCURLtransformVALUE (s_aux,s_jac_inv,tmp_basis_vector_ref. get_view () );
1335
+ fst::HCURLtransformVALUE (s_aux,s_jac_inv,s_ref );
1331
1336
} else if (element_space == PureBasis::HDIV){
1332
1337
auto s_jac = Kokkos::subview (cubature_jacobian_.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1333
1338
auto s_jac_det = Kokkos::subview (cubature_jacobian_determinant_.get_view (), cell_range, Kokkos::ALL ());
1334
- fst::HDIVtransformVALUE (s_aux,s_jac, s_jac_det, tmp_basis_vector_ref. get_view () );
1339
+ fst::HDIVtransformVALUE (s_aux,s_jac, s_jac_det, s_ref );
1335
1340
}
1336
1341
} else {
1337
1342
#endif
@@ -1350,15 +1355,16 @@ getVectorBasisValues(const bool weighted,
1350
1355
1351
1356
const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1352
1357
auto s_aux = Kokkos::subview (tmp_basis_vector.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1358
+ auto s_ref = Kokkos::subview (tmp_basis_vector_ref.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1353
1359
1354
1360
using fst=Intrepid2::FunctionSpaceTools<PHX::Device>;
1355
1361
if (element_space == PureBasis::HCURL){
1356
1362
auto s_jac_inv = Kokkos::subview (cubature_jacobian_inverse_.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1357
- fst::HCURLtransformVALUE (s_aux,s_jac_inv,tmp_basis_vector_ref. get_view () );
1363
+ fst::HCURLtransformVALUE (s_aux,s_jac_inv,s_ref );
1358
1364
} else if (element_space == PureBasis::HDIV){
1359
1365
auto s_jac = Kokkos::subview (cubature_jacobian_.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1360
1366
auto s_jac_det = Kokkos::subview (cubature_jacobian_determinant_.get_view (), cell_range, Kokkos::ALL ());
1361
- fst::HDIVtransformVALUE (s_aux,s_jac, s_jac_det, tmp_basis_vector_ref. get_view () );
1367
+ fst::HDIVtransformVALUE (s_aux,s_jac, s_jac_det, s_ref );
1362
1368
}
1363
1369
#ifdef KOKKOS_ENABLE_CUDA
1364
1370
}
@@ -1477,10 +1483,11 @@ getGradBasisValues(const bool weighted,
1477
1483
const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1478
1484
auto s_aux = Kokkos::subview (tmp_grad_basis.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1479
1485
auto s_jac_inv = Kokkos::subview (cubature_jacobian_inverse_.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1486
+ auto s_ref = Kokkos::subview (tmp_grad_basis_ref.get_view (),cell_range,Kokkos::ALL (),Kokkos::ALL (),Kokkos::ALL ());
1480
1487
1481
1488
// Apply transformation
1482
1489
using fst=Intrepid2::FunctionSpaceTools<PHX::Device::execution_space>;
1483
- fst::HGRADtransformGRAD (s_aux, s_jac_inv,tmp_grad_basis_ref. get_view () );
1490
+ fst::HGRADtransformGRAD (s_aux, s_jac_inv, s_ref );
1484
1491
} else {
1485
1492
#endif
1486
1493
auto cubature_points_ref_host = Kokkos::create_mirror_view (cubature_points_ref_.get_view ());
@@ -1499,10 +1506,11 @@ getGradBasisValues(const bool weighted,
1499
1506
const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1500
1507
auto s_aux = Kokkos::subview (tmp_grad_basis.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1501
1508
auto s_jac_inv = Kokkos::subview (cubature_jacobian_inverse_.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1509
+ auto s_ref = Kokkos::subview (tmp_grad_basis_ref.get_view (),cell_range,Kokkos::ALL (),Kokkos::ALL (),Kokkos::ALL ());
1502
1510
1503
1511
// Apply transformation
1504
1512
using fst=Intrepid2::FunctionSpaceTools<PHX::Device::execution_space>;
1505
- fst::HGRADtransformGRAD (s_aux, s_jac_inv,tmp_grad_basis_ref. get_view () );
1513
+ fst::HGRADtransformGRAD (s_aux, s_jac_inv, s_ref );
1506
1514
#ifdef KOKKOS_ENABLE_CUDA
1507
1515
}
1508
1516
#endif
@@ -1621,12 +1629,13 @@ getCurl2DVectorBasis(const bool weighted,
1621
1629
const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1622
1630
auto s_aux = Kokkos::subview (tmp_curl_basis_scalar.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1623
1631
auto s_jac_det = Kokkos::subview (cubature_jacobian_determinant_.get_view (), cell_range, Kokkos::ALL ());
1632
+ auto s_ref = Kokkos::subview (tmp_curl_basis_scalar_ref.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1624
1633
1625
1634
// note only volume deformation is needed!
1626
1635
// this relates directly to this being in
1627
1636
// the divergence space in 2D!
1628
1637
using fst=Intrepid2::FunctionSpaceTools<PHX::Device::execution_space>;
1629
- fst::HDIVtransformDIV (s_aux,s_jac_det,tmp_curl_basis_scalar_ref. get_view () );
1638
+ fst::HDIVtransformDIV (s_aux,s_jac_det,s_ref );
1630
1639
} else {
1631
1640
#endif
1632
1641
auto cubature_points_ref_host = Kokkos::create_mirror_view (cubature_points_ref_.get_view ());
@@ -1645,12 +1654,13 @@ getCurl2DVectorBasis(const bool weighted,
1645
1654
const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1646
1655
auto s_aux = Kokkos::subview (tmp_curl_basis_scalar.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1647
1656
auto s_jac_det = Kokkos::subview (cubature_jacobian_determinant_.get_view (), cell_range, Kokkos::ALL ());
1657
+ auto s_ref = Kokkos::subview (tmp_curl_basis_scalar_ref.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1648
1658
1649
1659
// note only volume deformation is needed!
1650
1660
// this relates directly to this being in
1651
1661
// the divergence space in 2D!
1652
1662
using fst=Intrepid2::FunctionSpaceTools<PHX::Device::execution_space>;
1653
- fst::HDIVtransformDIV (s_aux,s_jac_det,tmp_curl_basis_scalar_ref. get_view () );
1663
+ fst::HDIVtransformDIV (s_aux,s_jac_det,s_ref );
1654
1664
#ifdef KOKKOS_ENABLE_CUDA
1655
1665
}
1656
1666
#endif
@@ -1756,7 +1766,7 @@ getCurlVectorBasis(const bool weighted,
1756
1766
1757
1767
auto intrepid_basis_host = intrepid_basis->getHostBasis ();
1758
1768
for (int cell=0 ; cell<num_evaluate_cells_; ++cell) {
1759
- auto my_cell_curl_basis_host = Kokkos::subview (tmp_curl_basis_vector_host,cell,Kokkos::ALL (),Kokkos::ALL ());
1769
+ auto my_cell_curl_basis_host = Kokkos::subview (tmp_curl_basis_vector_host,cell,Kokkos::ALL (),Kokkos::ALL (), Kokkos::ALL () );
1760
1770
auto my_cell_cub_points_ref_host = Kokkos::subview (cubature_points_ref_host,cell,Kokkos::ALL (),Kokkos::ALL ());
1761
1771
intrepid_basis_host->getValues (my_cell_curl_basis_host,my_cell_cub_points_ref_host,Intrepid2::OPERATOR_CURL);
1762
1772
}
@@ -1767,9 +1777,10 @@ getCurlVectorBasis(const bool weighted,
1767
1777
auto s_aux = Kokkos::subview (tmp_curl_basis_vector.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1768
1778
auto s_jac = Kokkos::subview (cubature_jacobian_.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1769
1779
auto s_jac_det = Kokkos::subview (cubature_jacobian_determinant_.get_view (), cell_range, Kokkos::ALL ());
1780
+ auto s_ref = Kokkos::subview (tmp_curl_basis_vector_ref.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1770
1781
1771
1782
using fst=Intrepid2::FunctionSpaceTools<PHX::Device::execution_space>;
1772
- fst::HCURLtransformCURL (s_aux, s_jac, s_jac_det, tmp_curl_basis_vector_ref. get_view () );
1783
+ fst::HCURLtransformCURL (s_aux, s_jac, s_jac_det, s_ref );
1773
1784
} else {
1774
1785
#endif
1775
1786
auto cubature_points_ref_host = Kokkos::create_mirror_view (cubature_points_ref_.get_view ());
@@ -1778,7 +1789,7 @@ getCurlVectorBasis(const bool weighted,
1778
1789
1779
1790
auto intrepid_basis_host = intrepid_basis->getHostBasis ();
1780
1791
for (int cell=0 ; cell<num_evaluate_cells_; ++cell) {
1781
- auto my_cell_curl_basis_host = Kokkos::subview (tmp_curl_basis_vector_host,cell,Kokkos::ALL (),Kokkos::ALL ());
1792
+ auto my_cell_curl_basis_host = Kokkos::subview (tmp_curl_basis_vector_host,cell,Kokkos::ALL (),Kokkos::ALL (), Kokkos::ALL () );
1782
1793
auto my_cell_cub_points_ref_host = Kokkos::subview (cubature_points_ref_host,cell,Kokkos::ALL (),Kokkos::ALL ());
1783
1794
intrepid_basis_host->getValues (my_cell_curl_basis_host,my_cell_cub_points_ref_host,Intrepid2::OPERATOR_CURL);
1784
1795
}
@@ -1789,9 +1800,10 @@ getCurlVectorBasis(const bool weighted,
1789
1800
auto s_aux = Kokkos::subview (tmp_curl_basis_vector.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1790
1801
auto s_jac = Kokkos::subview (cubature_jacobian_.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1791
1802
auto s_jac_det = Kokkos::subview (cubature_jacobian_determinant_.get_view (), cell_range, Kokkos::ALL ());
1803
+ auto s_ref = Kokkos::subview (tmp_curl_basis_vector_ref.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL (), Kokkos::ALL ());
1792
1804
1793
1805
using fst=Intrepid2::FunctionSpaceTools<PHX::Device::execution_space>;
1794
- fst::HCURLtransformCURL (s_aux, s_jac, s_jac_det, tmp_curl_basis_vector_ref. get_view () );
1806
+ fst::HCURLtransformCURL (s_aux, s_jac, s_jac_det, s_ref );
1795
1807
#ifdef KOKKOS_ENABLE_CUDA
1796
1808
}
1797
1809
#endif
@@ -1905,9 +1917,10 @@ getDivVectorBasis(const bool weighted,
1905
1917
const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1906
1918
auto s_aux = Kokkos::subview (tmp_div_basis.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1907
1919
auto s_jac_det = Kokkos::subview (cubature_jacobian_determinant_.get_view (), cell_range, Kokkos::ALL ());
1920
+ auto s_ref = Kokkos::subview (tmp_div_basis_ref.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1908
1921
1909
1922
using fst=Intrepid2::FunctionSpaceTools<PHX::Device::execution_space>;
1910
- fst::HDIVtransformDIV (s_aux,s_jac_det,tmp_div_basis_ref. get_view () );
1923
+ fst::HDIVtransformDIV (s_aux,s_jac_det,s_ref );
1911
1924
} else {
1912
1925
#endif
1913
1926
auto cubature_points_ref_host = Kokkos::create_mirror_view (cubature_points_ref_.get_view ());
@@ -1926,9 +1939,10 @@ getDivVectorBasis(const bool weighted,
1926
1939
const std::pair<int ,int > cell_range (0 ,num_evaluate_cells_);
1927
1940
auto s_aux = Kokkos::subview (tmp_div_basis.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1928
1941
auto s_jac_det = Kokkos::subview (cubature_jacobian_determinant_.get_view (), cell_range, Kokkos::ALL ());
1942
+ auto s_ref = Kokkos::subview (tmp_div_basis_ref.get_view (), cell_range, Kokkos::ALL (), Kokkos::ALL ());
1929
1943
1930
1944
using fst=Intrepid2::FunctionSpaceTools<PHX::Device::execution_space>;
1931
- fst::HDIVtransformDIV (s_aux,s_jac_det,tmp_div_basis_ref. get_view () );
1945
+ fst::HDIVtransformDIV (s_aux,s_jac_det,s_ref );
1932
1946
#ifdef KOKKOS_ENABLE_CUDA
1933
1947
}
1934
1948
#endif
0 commit comments