![]() |
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)
213 requires requires (const Op op, const Li... li, const SumOperator<Rj...> r) { (productImpl(op, li, 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");
431 and requires (LocalOperators::MultOp mult, const L l, const R r) { Impl::productImpl(mult, l, r); })
482 and requires (const OuterOp outerOp, typename InnerOp::Range inner_range) { outerOp(inner_range); })
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);
777 return FEFunctionOperator<RootBasis, typename Basis::PrefixPath, 1>(basis.rootBasis(), basis.prefixPath());
800 return FEFunctionOperator<RootBasis, typename Basis::PrefixPath, 1>(basis.rootBasis(), basis.prefixPath(), false);
829 return trialFunction(Dune::Functions::subspaceBasis(basis, treePathArgs...), NonAffineFamily{});
1066 return FEFunctionJacobianOperator<B, TP, argIndex>(std::get<0>(op.basis()), std::get<0>(op.treePath()), op.isAffine());
1079 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 testFunction(const Basis &basis)
Create unary identity operator on test function space.
Definition userfunctions.hh:694
auto trialFunction(const Basis &basis)
Create unary identity operator on trial function space.
Definition userfunctions.hh:774
auto meshSize()
Construct mesh size operator.
Definition userfunctions.hh:949
auto bindToCoefficients(const Op &op, V &&vector)
Bind a linear operator to a coefficient vector.
Definition userfunctions.hh:1010
auto faceNormal()
Construct operator representing the face normals.
Definition userfunctions.hh:984
auto avg(const Op &op)
Construct intersection average of a given operator.
Definition userfunctions.hh:889
auto outside(const Op &op)
Construct outside version of a given operator.
Definition userfunctions.hh:864
auto jump(const Op &op)
Construct intersection jump of a given operator.
Definition userfunctions.hh:912
auto gradient(const Op &op)
Obtain the gradient of an operator.
Definition userfunctions.hh:1167
auto divergence(const FEFunctionOperator< B, TP, argIndex > &op)
Obtain the divergence of an operator.
Definition userfunctions.hh:1077
auto jacobian(const FEFunctionOperator< B, TP, argIndex > &op)
Obtain the jacobian of an operator.
Definition userfunctions.hh:1064
auto div(const Op &op)
Obtain the divergence of an operator.
Definition userfunctions.hh:1201
auto curl(const FEFunctionOperator< B, TP, argIndex > &op)
Obtain the curl of an operator.
Definition userfunctions.hh:1092
auto D(const Op &op, std::size_t k)
Obtain the i-th partial derivative of an operator.
Definition userfunctions.hh:1235
auto grad(const Op &op)
Obtain the gradient of an operator.
Definition userfunctions.hh:1187
auto rot(const Op &op)
Obtain the curl of an operator.
Definition userfunctions.hh:1217
auto operator-(const Op &op)
Negate an operator.
Definition userfunctions.hh:345
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:407
auto trace(const Op &op)
Transform an operator by pointwise computation of the matrix trace.
Definition userfunctions.hh:595
auto compose(const OuterOp &outerOp, const InnerOp &innerOp)
Generic composition of a multilinear operators with a pointwise outer operator.
Definition userfunctions.hh:483
auto transpose(const Op &op)
Transform an operator by pointwise matrix transposition.
Definition userfunctions.hh:559
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
Definition baseclass.hh:22
auto localCompose(const OuterOp &outerOp, const InnerOp &innerOp)
Definition localoperators.hh:549
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:66
Definition localoperators.hh:250
Definition localoperators.hh:341
Definition localoperators.hh:419
Definition localoperators.hh:433
Definition localoperators.hh:446
Definition localoperators.hh:456
Definition localoperators.hh:470
Operator for switching to the outside entity.
Definition outsideoperator.hh:58
Linear map representing the elements of an FE-space.
Definition unaryoperators.hh:222
Linear map representing the jacobians of the elements of an FE-space.
Definition unaryoperators.hh:346
Linear map representing the divergenc of the elements of an FE-space.
Definition unaryoperators.hh:473
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()(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 forward_as_tuple(T... args)
T forward(T... args)
