hyteg issueshttps://i10git.cs.fau.de/hyteg/hyteg/-/issues2022-01-11T16:19:11+01:00https://i10git.cs.fau.de/hyteg/hyteg/-/issues/170Rename dotGlobal() to dot()2022-01-11T16:19:11+01:00Nils KohlRename dotGlobal() to dot()Should generally be "global" for users, shouldn't it?Should generally be "global" for users, shouldn't it?https://i10git.cs.fau.de/hyteg/hyteg/-/issues/92General interface for (numerical) form integration2021-07-27T17:50:27+02:00Nils KohlGeneral interface for (numerical) form integrationWe need to define a proper interface for a "Form" class.
This allows us to separate form integration (stencil assembly) from the actual application (or relaxation, ...) kernels.
For instance we would only need an ElementwiseOperator instead of an Elementwise- plus a Blen{}dingOperator.
Our current idea for the integration interface is as follows (or similar):
```
class SomeForm
{
// 2D P1
void integrate( const Vec3< Vec2 > in, Vec3 & out );
// 3D P1
void integrate( const Vec4< Vec3 > in, Vec4 & out );
};
```
Unclear:
* What other parameters shall the integrate form have?
~~Currently we think that the PrimitiveID as another parameter should be sufficient (the storage can be given during construction).~~ -> it is unclear which PrimitiveIDs are required here? For each point of the micro-element?
Maybe we should keep it as simple as possible.
* How do we define the integrate functions for different stiffness matrix sizes (e.g. for the "mixedoperators")?
* How do we define the evaluation point (i.e. the row that we want to compute from the stiffness matrix)?
* Better to pass constant sized arrays than custom vector data structures to be more compatible to code generators.
We need to define a proper interface for a "Form" class.
This allows us to separate form integration (stencil assembly) from the actual application (or relaxation, ...) kernels.
For instance we would only need an ElementwiseOperator instead of an Elementwise- plus a Blen{}dingOperator.
Our current idea for the integration interface is as follows (or similar):
```
class SomeForm
{
// 2D P1
void integrate( const Vec3< Vec2 > in, Vec3 & out );
// 3D P1
void integrate( const Vec4< Vec3 > in, Vec4 & out );
};
```
Unclear:
* What other parameters shall the integrate form have?
~~Currently we think that the PrimitiveID as another parameter should be sufficient (the storage can be given during construction).~~ -> it is unclear which PrimitiveIDs are required here? For each point of the micro-element?
Maybe we should keep it as simple as possible.
* How do we define the integrate functions for different stiffness matrix sizes (e.g. for the "mixedoperators")?
* How do we define the evaluation point (i.e. the row that we want to compute from the stiffness matrix)?
* Better to pass constant sized arrays than custom vector data structures to be more compatible to code generators.
Marcus MohrMarcus Mohr