Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • hyteg hyteg
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 40
    • Issues 40
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • hyteg
  • hyteghyteg
  • Issues
  • #92
Closed
Open
Issue created Feb 18, 2019 by Nils Kohl@kohl🌝Maintainer

General interface for (numerical) form integration

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.
Edited Feb 22, 2022 by Nils Kohl
Assignee
Assign to
Time tracking