Skip to content
Snippets Groups Projects
Commit c9f57fa4 authored by Porrmann, Maik's avatar Porrmann, Maik
Browse files

make DerivativeTraits compatible to Dune-functions DefaultDerivativeTraits

parent dcb12072
No related branches found
No related tags found
No related merge requests found
......@@ -40,7 +40,16 @@ namespace Dune
std::void_t<std::common_type_t<S, T>>>
{
using ST = std::common_type_t<S, T>;
using type = FieldVector<ST, n>;
// using type = FieldVector<ST, n>;
using type = FieldMatrix<ST, 1, n>;
};
template <typename S, typename T, int n, int m>
struct DerivativeTraits<FieldMatrix<S, 1, n>(FieldVector<T, m>),
std::void_t<std::common_type_t<S, T>>>
{
using ST = std::common_type_t<S, T>;
using type = FieldMatrix<ST, n, m>;
};
// call `f.derivative(Domain)`
......@@ -105,6 +114,15 @@ namespace Dune
J[j][i] = df_i[j];
}
template <typename S, int m, typename T, int n,
std::enable_if_t<std::is_convertible_v<S, T>, int> = 0>
void assignPartialDerivative(const FieldMatrix<S, 1, m> &df_i, FieldMatrix<T, m, n> &J,
std::size_t i)
{
for (int j = 0; j < m; ++j)
J[j][i] = df_i[0][j];
}
template <typename S, typename T, int n,
std::enable_if_t<std::is_convertible_v<S, T>, int> = 0>
void assignPartialDerivative(const S &df_i, FieldMatrix<T, 1, n> &J, std::size_t i)
......
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