Loading [MathJax]/extensions/tex2jax.js

DUNE-ACFEM (unstable)

apply.hh
1#ifndef __DUNE_ACFEM_MODELS_OPERATIONS_APPLY_HH__
2#define __DUNE_ACFEM_MODELS_OPERATIONS_APPLY_HH__
3
4#include "../applyexpression.hh"
5#include "../expressiontraits.hh"
6#include "../expressionoperations.hh"
7
8namespace Dune {
9
10 namespace ACFem {
11
12 namespace PDEModel {
13
15 template<class Flavour, class Model, class Function,
16 std::enable_if_t<(IsProperPDEModel<Model>::value
17 && !Expressions::IsPromotedTopLevel<Function>::value
18 ), int> = 0>
19 auto apply(Model&& m, Function&& f, Flavour = Flavour{})
20 {
21 return Expressions::finalize<ApplyOperation<Flavour> >(std::forward<Model>(m), std::forward<Function>(f));
22 }
23
25 template<class Model, class Function>
26 constexpr decltype(auto) loadModel(Model&& m, Function&& f)
27 {
28 return apply<L2LoadFlavour>(std::forward<Model>(m), std::forward<Function>(f));
29 }
30
32 template<class Model, class Function>
33 constexpr decltype(auto) ritzLoadModel(Model&& m, Function&& f)
34 {
35 return apply<RitzLoadFlavour>(std::forward<Model>(m), std::forward<Function>(f));
36 }
37
38 } // NS PDEModel
39
40 } // NS ACFem
41
42} // NS Dune
43
44#endif // __DUNE_ACFEM_MODELS_OPERATIONS_APPLY_HH__
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (Mar 12, 23:28, 2025)