| 371 | }; |
| 372 | |
| 373 | shared_ptr<CoefficientFunction> NormalVectorCF (int dim, |
| 374 | optional<BitArray> inverted_faces) |
| 375 | { |
| 376 | switch(dim) |
| 377 | { |
| 378 | case 1: |
| 379 | return make_shared<cl_NormalVectorCF<1>>(inverted_faces); |
| 380 | case 2: |
| 381 | return make_shared<cl_NormalVectorCF<2>>(inverted_faces); |
| 382 | case 3: |
| 383 | return make_shared<cl_NormalVectorCF<3>>(inverted_faces); |
| 384 | case 4: |
| 385 | return make_shared<cl_NormalVectorCF<4>>(inverted_faces); |
| 386 | case 5: |
| 387 | return make_shared<cl_NormalVectorCF<5>>(inverted_faces); |
| 388 | case 6: |
| 389 | return make_shared<cl_NormalVectorCF<6>>(inverted_faces); |
| 390 | default: |
| 391 | throw Exception (string("Normal-vector not implemented for dimension") |
| 392 | +ToString(dim)); |
| 393 | } |
| 394 | } |
| 395 | |
| 396 | template <int D> |
| 397 | class cl_TangentialVectorCF : public CoefficientFunctionNoDerivative |