Skip to content

GitLab

  • Menu
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 36
    • Issues 36
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 3
    • Merge requests 3
  • 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
  • #113

Closed
Open
Created Nov 25, 2019 by Marcus Mohr@mohrDeveloper

Interface of interpolate() for composite functions

Hi,

w.r.t. issue #112 (closed) I had just been contemplating whether I should also implement multElementwise() for our composite functions, i.e.

  • P1StokesFunction
  • P2P1TaylorHoodFunction
  • P2P2StokesFunction

Looking at their interpolate() methods as an example I decided against it for the moment. Now finally coming to the actual issue. I don't think that the following interface for the method is very useful

void interpolate( const std::function< real_t( const hyteg::Point3D& ) >& expr, size_t level, DoFType flag = All ) const

as it only allows to initialise all component functions with the same std::function which to me doesn't seem to be a scenario that is required too often. The apps I looked into consequently do not use this method at all, but instead call interpolate() on the component functions which are publicaly accessible. I'd suggest to do one of the following:

  1. Remove this interpolate() method from the composite functions (maybe also the one for a constant value?)
  2. Alternatively change the interface of both to accept an std::array of length four

Cheers
Marcus

Assignee
Assign to
Time tracking