Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • Nektar Nektar
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 93
    • Issues 93
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 66
    • Merge requests 66
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Nektar
  • NektarNektar
  • Merge requests
  • !1325

WIP: TensorRegions core data structures

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Chris Cantwell requested to merge ccantwel/nektar:feature/tensorregions into master Mar 30, 2022
  • Overview 0
  • Commits 6
  • Changes 16

Issue/feature addressed

Nektar++ currently supports solving PDEs in up to three dimensions. Some problems, such as the Vlasov-Poisson equation in modelling plasma kinetics, requires the solution of a higher-dimensional PDE in a potentially six-dimensional position-velocity space. A natural solution to this is to construct a finite element space as a tensor-product of our existing lower-dimensional finite element spaces.

Proposed solution

Implementation of a TensorRegions library, which represents a finite element space on a tensor-product of lower-dimensional finite element spaces (from MultiRegions). This MR provides the initial groundwork for this library, including the core data structures.

Implementation

There are two core classes in the proposed TensorRegions library:

  • TensorRegion, which encapsulates the high-dimensional finite element space;
  • TensorStorage, which encapsulates the storage of a solution on such a space. The TensorStorage class has a subclass TensorStorage::View, which allows one to operate on the data along a particular slice of the high-dimensional space (corresponding to one of the lower-dimensional spaces). There is also the ability to extract the data (of type Array)from the view, as well as inject data back into the higher-dimensional storage.

Tests

TODO

Notes

This MR corresponds to deliverable D1.1 for the UKAEA project on solving high-dimensional plasma kinetics in Nektar++.

Checklist

  • Functions and classes, or changes to them, are documented.
  • User guide/documentation is updated.
  • Changelog is updated.
  • Suitable tests added for new functionality.
  • Newly added files are correctly formatted.
  • License added to any new files.
  • No extraneous files have been added (e.g. compiler output or test data files).
Edited Mar 30, 2022 by Chris Cantwell
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: feature/tensorregions