![]() |
Dune-Fufem 2.12-git
|
Loading...
Searching...
No Matches
userfunctions.hh
Go to the documentation of this file.
44 auto composeImpl(const OuterTransform& outerTransform, const TransformedOperator<InnerTransform, InnerOp>& op)
46 return TransformedOperator(LocalOperators::localCompose(outerTransform, op.transformation()), op.baseOperator());
57 auto composeImpl(const OuterOp& outerOp, const Dune::Fufem::Forms::SumOperator<InnerOps...>& innerOps)
207 requires requires (const Op op, const Li... li, const SumOperator<Rj...> r) { (productImpl(op, li, r),...); }
233 auto dotImpl(const FEFunctionOperator<B,TP,argIndex_L>& l, const FEFunctionOperator<B,TP,argIndex_R>& r);
236 auto dotImpl(const FEFunctionJacobianOperator<B,TP,argIndex_L>& l, const FEFunctionJacobianOperator<B,TP,argIndex_R>& r);
239 using TransposedOperator = TransformedOperator<Dune::Fufem::Forms::LocalOperators::TransposeOp, InnerOp>;
249 auto dotImpl(const FEFunctionOperator<B,TP,argIndex_L>& l, const FEFunctionOperator<B,TP,argIndex_R>& r)
265 auto dotImpl(const FEFunctionJacobianOperator<B,TP,argIndex_L>& l, const FEFunctionJacobianOperator<B,TP,argIndex_R>& r)
319 static_assert(L::arity==R::arity, "The operators passed to operator+ do not have the same arity");
369 static_assert(L::arity==R::arity, "The operators passed to operator- do not have the same arity");
371 static_assert(R::arity==0, "Differences with plain values can only be used with 0-linear operators");
373 static_assert(L::arity==0, "Differences with plain values can only be used with 0-linear operators");
425 and requires (LocalOperators::MultOp mult, const L l, const R r) { Impl::productImpl(mult, l, r); })
476 and requires (const OuterOp outerOp, typename InnerOp::Range inner_range) { outerOp(inner_range); })
691 return FEFunctionOperator<RootBasis, typename Basis::PrefixPath, 0>(basis.rootBasis(), basis.prefixPath());
714 return FEFunctionOperator<RootBasis, typename Basis::PrefixPath, 0>(basis.rootBasis(), basis.prefixPath(), false);
771 return FEFunctionOperator<RootBasis, typename Basis::PrefixPath, 1>(basis.rootBasis(), basis.prefixPath());
794 return FEFunctionOperator<RootBasis, typename Basis::PrefixPath, 1>(basis.rootBasis(), basis.prefixPath(), false);
823 return trialFunction(Dune::Functions::subspaceBasis(basis, treePathArgs...), NonAffineFamily{});
1060 return FEFunctionJacobianOperator<B, TP, argIndex>(std::get<0>(op.basis()), std::get<0>(op.treePath()), op.isAffine());
1073 return FEFunctionDivergenceOperator<B, TP, argIndex>(std::get<0>(op.basis()), std::get<0>(op.treePath()), op.isAffine());
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
T apply(T... args)
T bind(T... args)
Wrapper binding a linear operator to a coefficient vector.
Definition boundunaryoperator.hh:56
Linear map representing the divergenc of the elements of an FE-space.
Definition unaryoperators.hh:467
Linear map representing the jacobians of the elements of an FE-space.
Definition unaryoperators.hh:340
Linear map representing the elements of an FE-space.
Definition unaryoperators.hh:216
Operator representing the normal field on intersection.
Definition geometryoperators.hh:41
Operator representing the mesh size of entities.
Definition geometryoperators.hh:179
Tag type to classify non-affine finite element families.
Definition userfunctions.hh:671
Operator for switching to the outside entity.
Definition outsideoperator.hh:58
Adaptor for making a callback compatible with Dune::Fufem::Forms.
Definition userfunctions.hh:504
auto operator()(Op &&baseOperator, Args... args) const
Definition userfunctions.hh:510
RangeOperator(const OuterOp &outerOp)
Definition userfunctions.hh:506
auto operator()(Op &&baseOperator) const
Definition userfunctions.hh:518
T forward_as_tuple(T... args)
T forward(T... args)
auto operator-(const Op &op)
Negate an operator.
Definition userfunctions.hh:339
auto dot(const L &l, const R &r)
Exterior product of two multilinear operators based on pointwise dot-product.
Definition userfunctions.hh:452
auto product(const Op &op, const L &l, const R &r)
Generic exterior product of two multilinear operators.
Definition userfunctions.hh:401
auto gradient(const Op &op)
Obtain the gradient of an operator.
Definition userfunctions.hh:1161
auto divergence(const FEFunctionOperator< B, TP, argIndex > &op)
Obtain the divergence of an operator.
Definition userfunctions.hh:1071
auto jacobian(const FEFunctionOperator< B, TP, argIndex > &op)
Obtain the jacobian of an operator.
Definition userfunctions.hh:1058
auto div(const Op &op)
Obtain the divergence of an operator.
Definition userfunctions.hh:1195
auto curl(const FEFunctionOperator< B, TP, argIndex > &op)
Obtain the curl of an operator.
Definition userfunctions.hh:1086
auto D(const Op &op, std::size_t k)
Obtain the i-th partial derivative of an operator.
Definition userfunctions.hh:1229
auto grad(const Op &op)
Obtain the gradient of an operator.
Definition userfunctions.hh:1181
auto rot(const Op &op)
Obtain the curl of an operator.
Definition userfunctions.hh:1211
auto testFunction(const Basis &basis)
Create unary identity operator on test function space.
Definition userfunctions.hh:688
auto trialFunction(const Basis &basis)
Create unary identity operator on trial function space.
Definition userfunctions.hh:768
auto meshSize()
Construct mesh size operator.
Definition userfunctions.hh:943
auto bindToCoefficients(const Op &op, V &&vector)
Bind a linear operator to a coefficient vector.
Definition userfunctions.hh:1004
auto faceNormal()
Construct operator representing the face normals.
Definition userfunctions.hh:978
auto avg(const Op &op)
Construct intersection average of a given operator.
Definition userfunctions.hh:883
auto outside(const Op &op)
Construct outside version of a given operator.
Definition userfunctions.hh:858
auto jump(const Op &op)
Construct intersection jump of a given operator.
Definition userfunctions.hh:906
auto trace(const Op &op)
Transform an operator by pointwise computation of the matrix trace.
Definition userfunctions.hh:589
auto compose(const OuterOp &outerOp, const InnerOp &innerOp)
Generic composition of a multilinear operators with a pointwise outer operator.
Definition userfunctions.hh:477
auto transpose(const Op &op)
Transform an operator by pointwise matrix transposition.
Definition userfunctions.hh:553
auto symmetrize(const Op &op)
Transform an operator by pointwise matrix symmetrization.
Definition userfunctions.hh:571
auto inv(const Op &op)
Transform an operator by pointwise computation of the matrix inverse.
Definition userfunctions.hh:615
auto istlVectorBackend(Vector &v)
auto localCompose(const OuterOp &outerOp, const InnerOp &innerOp)
Definition localoperators.hh:617
Definition baseclass.hh:22
auto subspaceBasis(const RootBasis &rootBasis, const TypeTree::TreePath< PrefixTreeIndices... > &prefixPath)
Definition localoperators.hh:501
Definition localoperators.hh:278
Definition localoperators.hh:538
Definition localoperators.hh:397
Definition localoperators.hh:66
Definition localoperators.hh:514
Definition localoperators.hh:524
Definition localoperators.hh:487
