![]() |
Dune-Fufem 2.11-git
|
Loading...
Searching...
No Matches
userfunctions.hh
Go to the documentation of this file.
50 auto composeImpl(const OuterTransform& outerTransform, const TransformedOperator<InnerTransform, InnerOp>& op)
52 return TransformedOperator(LocalOperators::localCompose(outerTransform, op.transformation()), op.baseOperator());
63 auto composeImpl(const OuterOp& outerOp, const Dune::Fufem::Forms::SumOperator<InnerOps...>& innerOps)
191 class = std::void_t<decltype((productImpl(std::declval<Op>(), std::declval<Li>(), std::declval<R>()),...))>>
202 class = std::void_t<decltype((productImpl(std::declval<Op>(), std::declval<L>(), std::declval<Ri>()),...))>>
213 class = std::void_t<decltype((productImpl(std::declval<Op>(), std::declval<Li>(), std::declval<SumOperator<Rj...>>()),...))>>
232 class = std::void_t<decltype(productImpl(std::declval<LocalOperators::DotOp>(), std::declval<L>(), std::declval<R>()))>>
239 auto dotImpl(const FEFunctionOperator<B,TP,argIndex_L>& l, const FEFunctionOperator<B,TP,argIndex_R>& r);
242 auto dotImpl(const FEFunctionJacobianOperator<B,TP,argIndex_L>& l, const FEFunctionJacobianOperator<B,TP,argIndex_R>& r);
245 using TransposedOperator = TransformedOperator<Dune::Fufem::Forms::LocalOperators::TransposeOp, InnerOp>;
255 auto dotImpl(const FEFunctionOperator<B,TP,argIndex_L>& l, const FEFunctionOperator<B,TP,argIndex_R>& r)
271 auto dotImpl(const FEFunctionJacobianOperator<B,TP,argIndex_L>& l, const FEFunctionJacobianOperator<B,TP,argIndex_R>& r)
325 static_assert(L::arity==R::arity, "The operators passed to operator+ do not have the same arity");
375 static_assert(L::arity==R::arity, "The operators passed to operator- do not have the same arity");
377 static_assert(R::arity==0, "Differences with plain values can only be used with 0-linear operators");
379 static_assert(L::arity==0, "Differences with plain values can only be used with 0-linear operators");
408 class = std::void_t<decltype(Impl::productImpl(std::declval<Op>(), std::declval<L>(), std::declval<R>()))>>
431 class = std::void_t<decltype(product(std::declval<LocalOperators::MultOp>(), std::declval<L>(), std::declval<R>()))>>
432 auto operator* (const L& l, const R& r)
457 class = std::void_t<decltype(product(std::declval<LocalOperators::DotOp>(), std::declval<L>(), std::declval<R>()))>>
647 class = std::void_t<decltype(product(std::declval<LocalOperators::MultOp>(), std::declval<L>(), inv(std::declval<R>())))>>
648 auto operator/ (const L& l, const R& r)
697 return FEFunctionOperator<RootBasis, typename Basis::PrefixPath, 0>(basis.rootBasis(), basis.prefixPath());
720 return FEFunctionOperator<RootBasis, typename Basis::PrefixPath, 0>(basis.rootBasis(), basis.prefixPath(), false);
776 return FEFunctionOperator<RootBasis, typename Basis::PrefixPath, 1>(basis.rootBasis(), basis.prefixPath());
799 return FEFunctionOperator<RootBasis, typename Basis::PrefixPath, 1>(basis.rootBasis(), basis.prefixPath(), false);
827 return trialFunction(Dune::Functions::subspaceBasis(basis, treePathArgs...), NonAffineFamily{});
1065 return FEFunctionJacobianOperator<B, TP, argIndex>(std::get<0>(op.basis()), std::get<0>(op.treePath()), op.isAffine());
1078 return FEFunctionDivergenceOperator<B, TP, argIndex>(std::get<0>(op.basis()), std::get<0>(op.treePath()), op.isAffine());
auto istlVectorBackend(Vector &v)
auto subspaceBasis(const RootBasis &rootBasis, const TypeTree::TreePath< PrefixTreeIndices... > &prefixPath)
This header provides fallback implementations for dune-typetree<2.11.
decltype(auto) applyPartial(F &&f, ArgTuple &&args, std::integer_sequence< I, i... >)
decltype(auto) constexpr unpackIntegerSequence(F &&f, std::integer_sequence< I, i... > sequence)
size_type dim() const
auto outside(const Op &op)
Construct outside version of a given operator.
Definition userfunctions.hh:862
auto testFunction(const Basis &basis)
Create unary identity operator on test function space.
Definition userfunctions.hh:694
auto operator|(const Op &op, V &&v)
Bind a linear operator to a coefficient vector.
Definition userfunctions.hh:1042
auto trialFunction(const Basis &basis)
Create unary identity operator on trial function space.
Definition userfunctions.hh:773
auto meshSize()
Construct mesh size operator.
Definition userfunctions.hh:947
auto avg(const Op &op)
Construct intersection average of a given operator.
Definition userfunctions.hh:887
auto jump(const Op &op)
Construct intersection jump of a given operator.
Definition userfunctions.hh:910
auto bindToCoefficients(const Op &op, V &&vector)
Bind a linear operator to a coefficient vector.
Definition userfunctions.hh:1008
auto faceNormal()
Construct operator representing the face normals.
Definition userfunctions.hh:982
auto gradient(const Op &op)
Obtain the gradient of an operator.
Definition userfunctions.hh:1166
auto divergence(const FEFunctionOperator< B, TP, argIndex > &op)
Obtain the divergence of an operator.
Definition userfunctions.hh:1076
auto jacobian(const FEFunctionOperator< B, TP, argIndex > &op)
Obtain the jacobian of an operator.
Definition userfunctions.hh:1063
auto div(const Op &op)
Obtain the divergence of an operator.
Definition userfunctions.hh:1200
auto curl(const FEFunctionOperator< B, TP, argIndex > &op)
Obtain the curl of an operator.
Definition userfunctions.hh:1091
auto D(const Op &op, std::size_t k)
Obtain the i-th partial derivative of an operator.
Definition userfunctions.hh:1234
auto grad(const Op &op)
Obtain the gradient of an operator.
Definition userfunctions.hh:1186
auto rot(const Op &op)
Obtain the curl of an operator.
Definition userfunctions.hh:1216
auto dot(const L &l, const R &r)
Exterior product of two multilinear operators based on pointwise dot-product.
Definition userfunctions.hh:458
auto product(const Op &op, const L &l, const R &r)
Generic exterior product of two multilinear operators.
Definition userfunctions.hh:409
auto operator-(const Op &op)
Negate an operator.
Definition userfunctions.hh:345
auto trace(const Op &op)
Transform an operator by pointwise computation of the matrix trace.
Definition userfunctions.hh:595
auto transpose(const Op &op)
Transform an operator by pointwise matrix transposition.
Definition userfunctions.hh:559
auto compose(const OuterOp &outerOp, const InnerOp &innerOp)
Generic composition of a multilinear operators with a pointwise outer operator.
Definition userfunctions.hh:483
auto symmetrize(const Op &op)
Transform an operator by pointwise matrix symmetrization.
Definition userfunctions.hh:577
auto inv(const Op &op)
Transform an operator by pointwise computation of the matrix inverse.
Definition userfunctions.hh:621
STL namespace.
Definition baseclass.hh:22
auto localCompose(const OuterOp &outerOp, const InnerOp &innerOp)
Definition localoperators.hh:432
Wrapper binding a linear operator to a coefficient vector.
Definition boundunaryoperator.hh:65
Operator representing the normal field on intersection.
Definition geometryoperators.hh:41
Operator representing the mesh size of entities.
Definition geometryoperators.hh:179
Definition localoperators.hh:36
Definition localoperators.hh:188
Definition localoperators.hh:268
Definition localoperators.hh:302
Definition localoperators.hh:316
Definition localoperators.hh:329
Definition localoperators.hh:339
Definition localoperators.hh:353
Operator for switching to the outside entity.
Definition outsideoperator.hh:58
Linear map representing the elements of an FE-space.
Definition unaryoperators.hh:212
Linear map representing the jacobians of the elements of an FE-space.
Definition unaryoperators.hh:325
Linear map representing the divergenc of the elements of an FE-space.
Definition unaryoperators.hh:441
Adaptor for making a callback compatible with Dune::Fufem::Forms.
Definition userfunctions.hh:510
auto operator()(Op &&baseOperator, Args... args) const
Definition userfunctions.hh:516
RangeOperator(const OuterOp &outerOp)
Definition userfunctions.hh:512
auto operator()(Arg0 &&arg0, Args &&... args) const
Definition userfunctions.hh:531
auto operator()(Op &&baseOperator) const
Definition userfunctions.hh:524
Tag type to classify non-affine finite element families.
Definition userfunctions.hh:677
T apply(T... args)
T bind(T... args)
T declval(T... args)
T forward_as_tuple(T... args)
T forward(T... args)
