5 template <
class ElementAssembler,
class IntersectionAssembler,
class BoundaryAssembler>
8 ElementAssembler elementAssembler;
9 IntersectionAssembler intersectionAssembler;
10 BoundaryAssembler boundaryAssembler;
13 template <
class EA,
class IA,
class BA>
20 template <
class GV,
class Element,
class Operators,
class EA,
class IA,
class BA>
21 void assembleOperators(GV
const& gridView, Element
const& element,
26 assemblerTriple.elementAssembler(element, operators.onElement());
29 if (!operators.onIntersection().empty()
30 || (!operators.onBoundary().empty() && element.hasBoundaryIntersections()))
32 for (
auto const& intersection : intersections(gridView, element)) {
33 if (intersection.boundary())
34 assemblerTriple.boundaryAssembler(intersection, operators.onBoundary());
36 assemblerTriple.intersectionAssembler(intersection, operators.onIntersection());
42 template <
class Node,
class Vec>
43 auto makeVectorAssembler(Node
const& node, Vec& elementVector)
45 return makeAssemblerTriple(
46 [&](
auto const& element,
auto& operators) {
47 for (
auto& op : operators)
48 op->assemble(element, node, elementVector);
50 [&](
auto const& is,
auto& operators) {
51 for (
auto& op : operators)
52 op->assemble(is, node, elementVector);
54 [&](
auto const& bis,
auto& operators) {
55 for (
auto& data : operators) {
57 data.op->assemble(bis, node, elementVector);
63 template <
class RN,
class CN,
class Mat>
64 auto makeMatrixAssembler(RN
const& rowNode, CN
const& colNode, Mat& elementMatrix)
66 return makeAssemblerTriple(
67 [&](
auto const& element,
auto& operators) {
68 for (
auto& op : operators)
69 op->assemble(element, rowNode, colNode, elementMatrix);
71 [&](
auto const& is,
auto& operators) {
72 for (
auto& op : operators)
73 op->assemble(is, rowNode, colNode, elementMatrix);
75 [&](
auto const& bis,
auto& operators) {
76 for (
auto& data : operators) {
78 data.op->assemble(bis, rowNode, colNode, elementMatrix);
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
Definition: AssembleOperators.hpp:6