Operators.hpp 3.24 KB
 Praetorius, Simon committed Mar 13, 2016 1 2 ``````#pragma once `````` Praetorius, Simon committed Jan 28, 2018 3 4 ``````#include #include `````` Praetorius, Simon committed Dec 18, 2017 5 `````` `````` Praetorius, Simon committed Dec 30, 2017 6 ``````/* `````` Praetorius, Simon committed Dec 18, 2017 7 8 9 10 11 12 13 14 15 16 `````` * In the following comments we use the notation * psi ... scalar testfunction * Psi ... vector testfunction * phi ... scalar trialfunction * Phi ... vector trialfunction * A ..... matrix coefficient * b ..... vector coefficient * c ..... scalar coefficient */ `````` Praetorius, Simon committed Dec 30, 2017 17 18 19 20 21 22 `````` /** * \defgroup operators Operator module * \brief Defines operators to be assembled in the matrix/vector * * An `Operator` is a class providing methods necessary for assembling: `````` Praetorius, Simon committed Jan 02, 2018 23 `````` * - `bind(Element, Geometry)` and `unbind()` for binding an unbinding the `````` Praetorius, Simon committed Dec 30, 2017 24 25 `````` * element to (from) an GridView entity of codim 0. Additionally the Geometry * object of the element is provided. `````` Praetorius, Simon committed Jan 02, 2018 26 `````` * - `getQuadratureRule(Nodes...)` factory for the `````` Praetorius, Simon committed Dec 30, 2017 27 28 29 `````` * quadrature rules used in assembling the operator on the element. `Nodes...` * is either `{RowNode, ColNode}` for Matrix-Operators or `{Node}` for a * Vector-Operator. `````` Praetorius, Simon committed Jan 02, 2018 30 `````` * - `calculateElementVector(ContextGeometry, QuadratureRule, ElementVector, Node)` `````` Praetorius, Simon committed Dec 30, 2017 31 32 `````` * where the `ContextGeometry` provides a reference to the ElementGeometry and * geometry of the LocalContext (that can be different), *or* `````` Praetorius, Simon committed Jan 02, 2018 33 `````` * - `calculateElementMatrix(ContextGeometry, QuadratureRule, ElementMatrix, RowNode, ColNode, Flags...)` `````` Praetorius, Simon committed Dec 30, 2017 34 35 36 37 38 39 `````` * Same as for `calculateElementVector` but additionally two optimization flags * are provided as `bool_t<...>` type: * + `sameFE`: the FiniteElementSpace of `RowNode` and `ColNode` are the same. * + `sameNode`: the nodes are the same in the GlobalBasis-tree. **/ `````` Praetorius, Simon committed Dec 18, 2017 40 ``````// zero-order operators `````` Praetorius, Simon committed Jan 28, 2018 41 42 43 44 45 46 ``````#include // #include // #include // #include // #include // #include // , `````` Praetorius, Simon committed Dec 18, 2017 47 48 `````` // first-order operators `````` Praetorius, Simon committed Dec 04, 2018 49 50 51 52 ``````#include // #include // #include // `````` Praetorius, Simon committed Jan 28, 2018 53 54 55 56 57 58 59 60 ``````#include // #include // #include // #include // #include // #include // #include // #include // `````` Praetorius, Simon committed Dec 18, 2017 61 62 `````` // second-order operators `````` Praetorius, Simon committed Jan 28, 2018 63 64 65 ``````#include // #include // #include // `````` Praetorius, Simon committed Mar 13, 2016 66