Skip to content
GitLab
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 104
    • Issues 104
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 86
    • Merge requests 86
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and 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-repositoriesdumux-repositories
  • dumuxdumux
  • Issues
  • #692
Closed
Open
Issue 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