Skip to content
Snippets Groups Projects
Commit 972810e3 authored by Christoph Lehmann's avatar Christoph Lehmann Committed by Dmitri Naumov
Browse files

[NL] Removed mesh element template param

parent d05789c5
No related branches found
No related tags found
No related merge requests found
......@@ -62,9 +62,9 @@ struct FieldType
{
};
template <class T_MESH_ELEMENT, class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
template <class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
inline void computeMappingMatrices(
const T_MESH_ELEMENT& /*ele*/,
const MeshLib::Element& /*ele*/,
const double* natural_pt,
const MeshLib::ElementCoordinatesMappingLocal& /*ele_local_coord*/,
T_SHAPE_MATRICES& shapemat,
......@@ -73,9 +73,9 @@ inline void computeMappingMatrices(
T_SHAPE_FUNC::computeShapeFunction(natural_pt, shapemat.N);
}
template <class T_MESH_ELEMENT, class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
template <class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
inline void computeMappingMatrices(
const T_MESH_ELEMENT& /*ele*/,
const MeshLib::Element& /*ele*/,
[[maybe_unused]] const double* natural_pt,
const MeshLib::ElementCoordinatesMappingLocal& /*ele_local_coord*/,
[[maybe_unused]] T_SHAPE_MATRICES& shapemat,
......@@ -126,9 +126,9 @@ static void checkJacobianDeterminant(const double detJ,
}
}
template <class T_MESH_ELEMENT, class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
template <class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
inline void computeMappingMatrices(
const T_MESH_ELEMENT& ele,
const MeshLib::Element& ele,
[[maybe_unused]] const double* natural_pt,
const MeshLib::ElementCoordinatesMappingLocal& ele_local_coord,
T_SHAPE_MATRICES& shapemat,
......@@ -136,15 +136,15 @@ inline void computeMappingMatrices(
{
if constexpr (T_SHAPE_FUNC::DIM != 0)
{
computeMappingMatrices<T_MESH_ELEMENT, T_SHAPE_FUNC, T_SHAPE_MATRICES>(
computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
ele,
natural_pt,
ele_local_coord,
shapemat,
FieldType<ShapeMatrixType::DNDR>());
auto const dim = T_MESH_ELEMENT::dimension;
auto const nnodes = T_MESH_ELEMENT::n_all_nodes;
auto const dim = ele.getDimension();
auto const nnodes = ele.getNumberOfNodes(); // TODO Taylor-Hood
// jacobian: J=[dx/dr dy/dr // dx/ds dy/ds]
for (auto k = decltype(nnodes){0}; k < nnodes; k++)
......@@ -171,21 +171,21 @@ inline void computeMappingMatrices(
}
}
template <class T_MESH_ELEMENT, class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
template <class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
inline void computeMappingMatrices(
const T_MESH_ELEMENT& ele,
const MeshLib::Element& ele,
const double* natural_pt,
const MeshLib::ElementCoordinatesMappingLocal& ele_local_coord,
T_SHAPE_MATRICES& shapemat,
FieldType<ShapeMatrixType::N_J> /*unused*/)
{
computeMappingMatrices<T_MESH_ELEMENT, T_SHAPE_FUNC, T_SHAPE_MATRICES>(
computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
ele,
natural_pt,
ele_local_coord,
shapemat,
FieldType<ShapeMatrixType::N>());
computeMappingMatrices<T_MESH_ELEMENT, T_SHAPE_FUNC, T_SHAPE_MATRICES>(
computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
ele,
natural_pt,
ele_local_coord,
......@@ -193,15 +193,15 @@ inline void computeMappingMatrices(
FieldType<ShapeMatrixType::DNDR_J>());
}
template <class T_MESH_ELEMENT, class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
template <class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
inline void computeMappingMatrices(
const T_MESH_ELEMENT& ele,
const MeshLib::Element& ele,
const double* natural_pt,
const MeshLib::ElementCoordinatesMappingLocal& ele_local_coord,
T_SHAPE_MATRICES& shapemat,
FieldType<ShapeMatrixType::DNDX> /*unused*/)
{
computeMappingMatrices<T_MESH_ELEMENT, T_SHAPE_FUNC, T_SHAPE_MATRICES>(
computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
ele,
natural_pt,
ele_local_coord,
......@@ -238,21 +238,21 @@ inline void computeMappingMatrices(
}
}
template <class T_MESH_ELEMENT, class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
template <class T_SHAPE_FUNC, class T_SHAPE_MATRICES>
inline void computeMappingMatrices(
const T_MESH_ELEMENT& ele,
const MeshLib::Element& ele,
const double* natural_pt,
const MeshLib::ElementCoordinatesMappingLocal& ele_local_coord,
T_SHAPE_MATRICES& shapemat,
FieldType<ShapeMatrixType::ALL> /*unused*/)
{
computeMappingMatrices<T_MESH_ELEMENT, T_SHAPE_FUNC, T_SHAPE_MATRICES>(
computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
ele,
natural_pt,
ele_local_coord,
shapemat,
FieldType<ShapeMatrixType::N>());
computeMappingMatrices<T_MESH_ELEMENT, T_SHAPE_FUNC, T_SHAPE_MATRICES>(
computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
ele,
natural_pt,
ele_local_coord,
......@@ -260,11 +260,10 @@ inline void computeMappingMatrices(
FieldType<ShapeMatrixType::DNDX>());
}
template <class T_MESH_ELEMENT,
class T_SHAPE_FUNC,
template <class T_SHAPE_FUNC,
class T_SHAPE_MATRICES,
ShapeMatrixType T_SHAPE_MATRIX_TYPE>
void naturalCoordinatesMappingComputeShapeMatrices(const T_MESH_ELEMENT& ele,
void naturalCoordinatesMappingComputeShapeMatrices(const MeshLib::Element& ele,
const double* natural_pt,
T_SHAPE_MATRICES& shapemat,
const unsigned global_dim)
......@@ -272,23 +271,21 @@ void naturalCoordinatesMappingComputeShapeMatrices(const T_MESH_ELEMENT& ele,
const MeshLib::ElementCoordinatesMappingLocal ele_local_coord(ele,
global_dim);
detail::
computeMappingMatrices<T_MESH_ELEMENT, T_SHAPE_FUNC, T_SHAPE_MATRICES>(
ele,
natural_pt,
ele_local_coord,
shapemat,
detail::FieldType<T_SHAPE_MATRIX_TYPE>());
detail::computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
ele,
natural_pt,
ele_local_coord,
shapemat,
detail::FieldType<T_SHAPE_MATRIX_TYPE>());
}
#define OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
RULE, SHAPE, DIM, WHICHPART, SHAPEMATRIXPOLICY) \
template void naturalCoordinatesMappingComputeShapeMatrices< \
MeshLib::TemplateElement<MeshLib::RULE>, \
NumLib::SHAPE, \
SHAPEMATRIXPOLICY<NumLib::SHAPE, DIM>::ShapeMatrices, \
ShapeMatrixType::WHICHPART>( \
MeshLib::TemplateElement<MeshLib::RULE> const&, \
MeshLib::Element const&, \
double const*, \
SHAPEMATRIXPOLICY<NumLib::SHAPE, DIM>::ShapeMatrices&, \
const unsigned global_dim)
......
......@@ -12,6 +12,7 @@
#pragma once
#include "MeshLib/Elements/Element.h"
#include "ShapeMatrices.h"
namespace NumLib
......@@ -19,11 +20,10 @@ namespace NumLib
namespace detail
{
//! Used to explicitly instantiate the NaturalCoordinatesMapping class template.
template <class T_MESH_ELEMENT,
class T_SHAPE_FUNC,
template <class T_SHAPE_FUNC,
class T_SHAPE_MATRICES,
ShapeMatrixType T_SHAPE_MATRIX_TYPE>
void naturalCoordinatesMappingComputeShapeMatrices(const T_MESH_ELEMENT& ele,
void naturalCoordinatesMappingComputeShapeMatrices(const MeshLib::Element& ele,
const double* natural_pt,
T_SHAPE_MATRICES& shapemat,
const unsigned global_dim);
......@@ -79,7 +79,6 @@ struct NaturalCoordinatesMapping
const unsigned global_dim)
{
detail::naturalCoordinatesMappingComputeShapeMatrices<
T_MESH_ELEMENT,
T_SHAPE_FUNC,
T_SHAPE_MATRICES,
T_SHAPE_MATRIX_TYPE>(ele, natural_pt, shapemat, global_dim);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment