Skip to content

Commit 75368d1

Browse files
author
Kloepfer
committed
removed default dimension and added static assert
1 parent 305e49c commit 75368d1

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

src/MeshField.hpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,9 @@ MeshField::MeshInfo getMeshInfo(Omega_h::Mesh &mesh) {
3232
return meshInfo;
3333
}
3434

35-
template <typename ExecutionSpace,
35+
template <typename ExecutionSpace, size_t dim,
3636
template <typename...>
37-
typename Controller = MeshField::KokkosController,
38-
size_t dim>
37+
typename Controller = MeshField::KokkosController>
3938
decltype(MeshField::CreateCoordinateField<ExecutionSpace, Controller, dim>(
4039
MeshField::MeshInfo()))
4140
createCoordinateField(const MeshField::MeshInfo &mesh_info,
@@ -170,24 +169,25 @@ template <int ShapeOrder> auto getTriangleElement(Omega_h::Mesh &mesh) {
170169

171170
} // namespace Omegah
172171

173-
template <typename ExecutionSpace,
172+
template <typename ExecutionSpace, size_t dim,
174173
template <typename...> typename Controller =
175-
MeshField::KokkosController,
176-
size_t dim = 3>
174+
MeshField::KokkosController>
177175
class OmegahMeshField {
178176
private:
179177
Omega_h::Mesh &mesh;
180178
const MeshField::MeshInfo meshInfo;
181179
using CoordField =
182-
decltype(createCoordinateField<ExecutionSpace, Controller, dim>(
180+
decltype(createCoordinateField<ExecutionSpace, dim, Controller>(
183181
MeshField::MeshInfo(), Omega_h::Reals()));
184182
CoordField coordField;
185183

186184
public:
187185
OmegahMeshField(Omega_h::Mesh &mesh_in)
188186
: mesh(mesh_in), meshInfo(getMeshInfo(mesh)),
189-
coordField(createCoordinateField<ExecutionSpace, Controller, dim>(
190-
getMeshInfo(mesh_in), mesh_in.coords())) {}
187+
coordField(createCoordinateField<ExecutionSpace, dim, Controller>(
188+
getMeshInfo(mesh_in), mesh_in.coords())) {
189+
static_assert(dim == 1 || dim == 2 || dim == 3);
190+
}
191191

192192
template <typename DataType, size_t order>
193193
// Ordering of field indexing changed to 'entity, node, component'

test/testCountIntegrator.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ int main(int argc, char **argv) {
6060
Kokkos::initialize(argc, argv);
6161
auto lib = Omega_h::Library(&argc, &argv);
6262
auto mesh = createMeshTri18(lib);
63-
MeshField::OmegahMeshField<ExecutionSpace, MeshField::KokkosController> omf(
64-
mesh);
63+
MeshField::OmegahMeshField<ExecutionSpace, 2, MeshField::KokkosController>
64+
omf(mesh);
6565

6666
const auto ShapeOrder = 1;
6767
auto field = omf.getCoordField();

test/testOmegahElement.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ void doFail(std::string_view order, std::string_view function,
143143

144144
template <template <typename...> typename Controller>
145145
void doRun(Omega_h::Mesh &mesh,
146-
MeshField::OmegahMeshField<ExecutionSpace, Controller, 2> &omf) {
146+
MeshField::OmegahMeshField<ExecutionSpace, 2, Controller> &omf) {
147147

148148
// setup field with values from the analytic function
149149
static const size_t OnePtPerElem = 1;
@@ -225,14 +225,14 @@ int main(int argc, char **argv) {
225225
#ifdef MESHFIELDS_ENABLE_CABANA
226226
{
227227
auto mesh = createMeshTri18(lib);
228-
MeshField::OmegahMeshField<ExecutionSpace, MeshField::CabanaController, 2>
228+
MeshField::OmegahMeshField<ExecutionSpace, 2, MeshField::CabanaController>
229229
omf(mesh);
230230
doRun<MeshField::CabanaController>(mesh, omf);
231231
}
232232
#endif
233233
{
234234
auto mesh = createMeshTri18(lib);
235-
MeshField::OmegahMeshField<ExecutionSpace, MeshField::KokkosController, 2>
235+
MeshField::OmegahMeshField<ExecutionSpace, 2, MeshField::KokkosController>
236236
omf(mesh);
237237
doRun<MeshField::KokkosController>(mesh, omf);
238238
}

0 commit comments

Comments
 (0)