Loading [MathJax]/extensions/TeX/AMSsymbols.js

DUNE-ACFEM (unstable)

l2projection.hh
1#ifndef __DUNE_ACFEM_L2PROJECTION_HH__
2#define __DUNE_ACFEM_L2PROJECTION_HH__
3
4#include "functionals/functionals.hh"
5#include "../models/basicmodels.hh"
6#include "../algorithms/ellipticfemscheme.hh"
7
8namespace Dune {
9
10 namespace ACFem {
11
50 template<class Functional, class DiscreteFunction,
51 std::enable_if_t<(IsLinearFunctional<Functional>::value
52 && IsDiscreteFunction<DiscreteFunction>::value
53 ), int> = 0>
54 void l2Projection(const Functional& phi, DiscreteFunction& result)
55 {
56 // skip the initialization, just do a quick loop over "result"
57 // in order to determine that all values are finite
58 for (auto&& dof : dofs(result)) {
59 if (!std::isfinite(dof)) {
60 dof = 0.;
61
62 }
63 }
64
65 ellipticFemScheme(result, massModel(result), phi, "acfem.l2projection").solve();
66 }
67
69 template<class GridFunction, class DiscreteFunction,
70 std::enable_if_t<(IsWrappableByConstLocalFunction<GridFunction>::value
71 && IsDiscreteFunction<DiscreteFunction>::value
72 ), int> = 0>
73 void l2Projection(GridFunction&& fct, DiscreteFunction& result)
74 {
75 // skip the initialization, just do a quick loop over "result"
76 // in order to determine that all values are finite
77 for (auto&& dof : dofs(result)) {
78 if (!std::isfinite(dof)) {
79 dof = 0.;
80
81 }
82 }
83
84 ellipticFemScheme(result, massModel(result) - fct, "acfem.l2projection").solve();
85 }
86
88
90
91 } // ACFem::
92
93} // Dune::
94
95#endif // __DUNE_ACFEM_L2PROJECTION_HH__
auto massModel(const Object &object, const std::string &name="")
Generate a mass model fitting the specified object.
Definition: massmodel.hh:94
void l2Projection(const Functional &phi, DiscreteFunction &result)
Compute the L2-projection of the given functional to a discrete space.
Definition: l2projection.hh:54
auto ellipticFemScheme(DiscreteFunction &solution, const Model &model, const InitialGuess &initialGuess, const RHSFunctional &rhsFunctional, const std::string name="acfem.schemes.elliptic")
Adaptive fem-scheme for "elliptic" problems.
Definition: ellipticfemscheme.hh:542
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (Mar 12, 23:28, 2025)