4#ifndef DUNE_PDELAB_LOCALOPERATOR_JACOBIANAPPLYHELPER_HH
5#define DUNE_PDELAB_LOCALOPERATOR_JACOBIANAPPLYHELPER_HH
22 template <
typename LOP,
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
26 const LFSU& lfsu,
const X& z,
const LFSV& lfsv,
29 lop.jacobian_apply_volume(eg, lfsu, z, lfsv, y);
31 template <
typename LOP,
typename EG,
typename LFSU,
typename X,
typename Z,
typename LFSV,
typename Y>
35 const LFSU& lfsu,
const X& x,
const Z& z,
const LFSV& lfsv,
38 DUNE_THROW(Dune::Exception,
"You try to call a nonlinear method on a linear operator");
40 template <
typename LOP,
typename EG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
44 const LFSU& lfsu,
const X& z,
const LFSV& lfsv,
47 DUNE_THROW(Dune::Exception,
"You try to call a linear method on a nonlinear operator");
49 template <
typename LOP,
typename EG,
typename LFSU,
typename X,
typename Z,
typename LFSV,
typename Y>
53 const LFSU& lfsu,
const X& x,
const Z& z,
const LFSV& lfsv,
56 lop.jacobian_apply_volume(eg, lfsu, x, z, lfsv, y);
63 template <
typename LOP,
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
67 const LFSU& lfsu_s,
const X& z_s,
const LFSV& lfsv_s,
68 const LFSU& lfsu_n,
const X& z_n,
const LFSV& lfsv_n,
71 lop.jacobian_apply_skeleton(
ig, lfsu_s, z_s, lfsv_s, lfsu_n, z_n, lfsv_n, y_s, y_n);
73 template <
typename LOP,
typename IG,
typename LFSU,
typename X,
typename Z,
typename LFSV,
typename Y>
77 const LFSU& lfsu_s,
const X& x_s,
const Z& z_s,
const LFSV& lfsv_s,
78 const LFSU& lfsu_n,
const X& x_n,
const Z& z_n,
const LFSV& lfsv_n,
81 DUNE_THROW(Dune::Exception,
"You try to call a nonlinear method on a linear operator");
83 template <
typename LOP,
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
87 const LFSU& lfsu_s,
const X& z_s,
const LFSV& lfsv_s,
88 const LFSU& lfsu_n,
const X& z_n,
const LFSV& lfsv_n,
91 DUNE_THROW(Dune::Exception,
"You try to call a nonlinear method on a linear operator");
93 template <
typename LOP,
typename IG,
typename LFSU,
typename X,
typename Z,
typename LFSV,
typename Y>
97 const LFSU& lfsu_s,
const X& x_s,
const Z& z_s,
const LFSV& lfsv_s,
98 const LFSU& lfsu_n,
const X& x_n,
const Z& z_n,
const LFSV& lfsv_n,
101 lop.jacobian_apply_skeleton(
ig, lfsu_s, x_s, z_s, lfsv_s, lfsu_n, x_n, z_n, lfsv_n, y_s, y_n);
108 template<
typename LOP,
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
112 const LFSU& lfsu_s,
const X& z_s,
const LFSV& lfsv_s,
115 lop.jacobian_apply_boundary(
ig, lfsu_s, z_s, lfsv_s, y_s);
117 template<
typename LOP,
typename IG,
typename LFSU,
typename X,
typename Z,
typename LFSV,
typename Y>
121 const LFSU& lfsu_s,
const X& x_s,
const Z& z_s,
const LFSV& lfsv_s,
124 DUNE_THROW(Dune::Exception,
"You try to call a nonlinear method on a linear operator");
126 template<
typename LOP,
typename IG,
typename LFSU,
typename X,
typename LFSV,
typename Y>
130 const LFSU& lfsu_s,
const X& z_s,
const LFSV& lfsv_s,
133 DUNE_THROW(Dune::Exception,
"You try to call a nonlinear method on a linear operator");
135 template<
typename LOP,
typename IG,
typename LFSU,
typename X,
typename Z,
typename LFSV,
typename Y>
139 const LFSU& lfsu_s,
const X& x_s,
const Z& z_s,
const LFSV& lfsv_s,
142 lop.jacobian_apply_boundary(
ig, lfsu_s, x_s, z_s, lfsv_s, y_s);
const IG & ig
Definition: constraints.hh:149
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
std::enable_if_t< LOP::isLinear > jacobianApplyVolume(const LOP &lop, const EG &eg, const LFSU &lfsu, const X &z, const LFSV &lfsv, Y &y)
Definition: jacobianapplyhelper.hh:23
std::enable_if_t< LOP::isLinear > jacobianApplySkeleton(const LOP &lop, const IG &ig, const LFSU &lfsu_s, const X &z_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &z_n, const LFSV &lfsv_n, Y &y_s, Y &y_n)
Definition: jacobianapplyhelper.hh:64
std::enable_if_t< LOP::isLinear > jacobianApplyBoundary(const LOP &lop, const IG &ig, const LFSU &lfsu_s, const X &z_s, const LFSV &lfsv_s, Y &y_s)
Definition: jacobianapplyhelper.hh:109