Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
D
dorie
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 31
    • Issues 31
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 9
    • Merge Requests 9
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • dorie
  • dorie
  • Issues
  • #187

Closed
Open
Opened Apr 17, 2020 by Lukas Riedel@lriedelOwner

Time step restriction by boundary conditions differs between processors

Time step adjustments to boundary condition changes only consider the boundary conditions localized to each processor.

Summary

When executing DORiE in parallel on multiple processors, the BoundaryConditionManager reads all boundary condition, but only stores the ones that will be applied on its local boundary segments. Therefore, the values returned by BoundaryConditionManager::max_time_step() will differ between processes if a certain boundary condition change is not "visible" to all processes. This leads to different processes having different time step sizes. The current behavior does not generally result in an error message but led to hanging processes in one occasion.

Steps to reproduce

Execute example case below with

dorie run -p 2 config.ini

What is the current bug behaviour?

  • Time step is not adjusted to BC change.
  • Processes hang when boundary condition changes.

What is the expected correct behaviour?

  • Time step is adjusted to BC change.
  • Program completes successfully like in sequential execution.

Relevant logs, screenshots, files...?

Time step adjustment to time 345600 fails: Annotation_2020-04-17_120714

Reproducing input

Note: Input data requires features of !187 (merged).

Input data
Simulation Case VZJ 2D extended testing phase run
Boundary Condition file richards_bc.yml
Parameterization file richards_param.yml
Run config file config.ini
Initial condition field_cor0101_var05_seed2.h5

Ideas how to fix this?

Communicate minimal max_time_step() between all processes. Note that BoundaryConditionManager has no means of communicating because it does not know the GridView.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: dorie/dorie#187