DUNE-ACFEM (unstable)

Dune::ACFem::PDEModel::ModelMethod< Model, ReturnValueFunctor, tag, LinArgSeq, OuterArgSeq, InnerArgSeq, Enable > Class Template Reference

Implement the method specified by tag with the signature defined by OuterArgSeq. More...

Detailed Description

template<class Model, class ReturnValueFunctor, std::size_t tag, class LinArgSeq, class OuterArgSeq, class InnerArgSeq, class Enable = void>
class Dune::ACFem::PDEModel::ModelMethod< Model, ReturnValueFunctor, tag, LinArgSeq, OuterArgSeq, InnerArgSeq, Enable >

Implement the method specified by tag with the signature defined by OuterArgSeq.

If Model defines the corresponding method then forward to the method defined by the model with the call-signature defined by InnerArgSeq. Otherwise forward to the linearized method or implement a dummy method with the requested call-signature which returns 0.

Note
Unfortunately, the quadrature point comes as a free template. This again doubles the number of specializations: if the point is omitted, then the method is a non-template method. Also: at least gcc fails to deduce the correct call pattern when not specializing the quad-point/no quad-point case.
Parameters
[in]ModelThe model class.
[in]ReturnValueFunctorA function-like object (e.g. a lambda) which is applied to the return value of the respective model method in order to implement unary model operations.
[in]tagThe "name" of the requested method.
[in]LinArgSeqIndices into to closure argument tuple to get the point of linearization.
[in]OuterArgSeqIndices into the closure argument tuple.
[in]InnerArgSeqIndices into the sub-tuple of the closure argument tuple defined by OuterArgSeq.
[in]DisableDummy template parameter in order to disable template instantiation using the usual std::enable_if_t technique.

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Apr 25, 22:37, 2024)