Commit d29e2888 authored by Tobias Leibner's avatar Tobias Leibner

[local.numerical-fluxes] adapt to changes in fvector/fmatrix

parent 1cae30a8
Pipeline #45429 passed with stage
in 206 minutes and 53 seconds
......@@ -85,7 +85,8 @@ public:
const auto local_uu = quadrature_point.position();
const auto uu = state_interval.geometry().global(local_uu);
const auto df = local_flux.jacobian(x, uu, param);
ret += state_interval.geometry().integrationElement(local_uu) * quadrature_point.weight() * min_max(n * df, 0.);
ret +=
state_interval.geometry().integrationElement(local_uu) * quadrature_point.weight() * min_max(n * df[0], 0.);
}
return ret;
};
......
......@@ -66,7 +66,7 @@ public:
{
this->compute_entity_coords(x);
const auto df = local_flux_inside_->jacobian(x_in_inside_coords_, (u + v) / 2., param);
if (n * df > 0)
if (n * df[0] > 0)
return local_flux_inside_->evaluate(x_in_inside_coords_, u, param) * n;
else
return local_flux_outside_->evaluate(x_in_outside_coords_, v, param) * n;
......
......@@ -14,7 +14,7 @@
#include <functional>
#include <tuple>
#include <dune/xt/common/matrix.hh>
#include <dune/xt/common/fmatrix.hh>
#include <dune/xt/common/math.hh>
#include <dune/xt/la/eigen-solver.hh>
......
......@@ -174,12 +174,15 @@ public:
const auto source_grad_element = local_source_element->jacobian(point_in_reference_element, param)[0];
const auto source_grad_neighbor =
local_source_neighbor->jacobian(point_in_reference_neighbor, param)[0];
// df_value_* is of type FieldVector<F, 1>
const auto df_value_element = local_df_element->evaluate(point_in_reference_element, param);
const auto df_value_neighbor = local_df_neighbor->evaluate(point_in_reference_neighbor, param);
// dt_value_* is of type FieldMatrix<F, d, d>
const auto dt_value_element = local_dt_element->evaluate(point_in_reference_element, param);
const auto dt_value_neighbor = local_dt_neighbor->evaluate(point_in_reference_neighbor, param);
const auto diffusion_element = dt_value_element * df_value_element;
const auto diffusion_neighbor = dt_value_neighbor * df_value_neighbor;
// use df_value_*[0] to avoid confusion with matrix-vector multiplication
const auto diffusion_element = dt_value_element * df_value_element[0];
const auto diffusion_neighbor = dt_value_neighbor * df_value_neighbor[0];
// compute penalty factor (see Epshteyn, Riviere, 2007)
const F sigma = LocalEllipticIpdgIntegrands::internal::inner_sigma(max_polorder);
const double beta = LocalEllipticIpdgIntegrands::internal::default_beta(d);
......@@ -249,7 +252,7 @@ public:
const auto source_grad_element = local_source_element->jacobian(point_in_reference_element, param)[0];
const auto df_value_element = local_df_element->evaluate(point_in_reference_element, param);
const auto dt_value_element = local_dt_element->evaluate(point_in_reference_element, param);
const auto diffusion_element = dt_value_element * df_value_element;
const auto diffusion_element = dt_value_element * df_value_element[0];
// compute penalty (see Epshteyn, Riviere, 2007)
const F sigma = LocalEllipticIpdgIntegrands::internal::boundary_sigma(max_polorder);
const double beta = LocalEllipticIpdgIntegrands::internal::default_beta(d);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment