Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • dumux dumux
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 96
    • Issues 96
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 101
    • Merge requests 101
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • dumux-repositories
  • dumuxdumux
  • Issues
  • #692
Closed
Open
Created Apr 18, 2019 by Kilian Weishaupt@kweisOwner

[staggered] Passing the object of partial(sol) to VtkWriter leads to segfault

When using the staggered scheme in a multi-domain context, initializing the VtkWriter like

auto partialSol = partial(sol);

StaggeredVtkOutputModule<GridVariables, 
                         GetPropType<TypeTag, Properties::SolutionVector>> vtkWriter(*gridVariables, partialSol, name);

leads to a segfault.

If the writer is instead initialized like

auto partialSol = partial(sol);

StaggeredVtkOutputModule<GridVariables, 
                         decltype(partialSol)> vtkWriter(*gridVariables, partialSol, name);

everything works as expected.

Could be related to the fact that partialSol only stores references to the actual solution sub-vectors. It indeed has a different type than SolutionVector.

C++17 probably would elegantly fix this, since we could just remove SolutionVector from the class template list because it could be inferred from the constructor.

Edited Apr 18, 2019 by Kilian Weishaupt
Assignee
Assign to
Time tracking