Skip to content

Steady state initialization through ModelRunner - #1707

Open
jwboth wants to merge 9 commits into
developfrom
quasi-static-init
Open

Steady state initialization through ModelRunner#1707
jwboth wants to merge 9 commits into
developfrom
quasi-static-init

Conversation

@jwboth

@jwboth jwboth commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Proposed changes

An extension of the ModelRunner is suggested that enables the implicit definition of initial conditions through a steady state solution that complies with boundary conditions and governing equations. The routine requires a small set of control parameters such as convergence criteria for characterizing when to call a state a steady state, and pseudo time discretization parameters. A tutorial is added to illustrate both the functionality and the rationale behind the intialization routine.

The initialization routine essentially runs a pseudo-time stepping routine. It is therefore expected that the code can actually be substantially shortened after #1682 has been finalized. A TODO note is added to model_runner.py to indicate the foreseen changes.

API and placement of code has not been fully thought through (also in light of the changes of time loops).

NOTE: This PR will be used as basis to extend to initialization of reference states.

What types of changes does this PR introduce to PorePy?
Put an x in the boxes that apply.

  • Minor change (e.g., dependency bumps, broken links).
  • Bugfix (non-breaking change which fixes an issue).
  • New feature (non-breaking change which adds functionality).
  • Breaking change (fix or feature that would cause existing functionality to not work as expected).
  • Testing (contribution related to testing of existing or new functionality).
  • Documentation (contribution related to adding, improving, or fixing documentation).
  • Maintenance (e.g., improve logic and performance, remove obsolete code).
  • Other:

Checklist

Put an x in the boxes that apply or explain briefly why the box is not relevant.

  • The documentation is up-to-date.
  • Static typing is included in the update.
  • This PR does not duplicate existing functionality.
  • The update is covered by the test suite (including tests added in the PR).
  • If new skipped tests have been introduced in this PR, pytest was run with the --run-skipped flag.

@review-notebook-app

Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@jwboth jwboth mentioned this pull request Jun 27, 2026
13 tasks
@review-notebook-app

review-notebook-app Bot commented Jul 6, 2026

Copy link
Copy Markdown

View / edit / reply to this conversation on ReviewNB

IvarStefansson commented on 2026-07-06T08:35:38Z
----------------------------------------------------------------

Some of the code is obsolete after recent PRs. I think most of the remaining code should be split between an example and applications.


@review-notebook-app

review-notebook-app Bot commented Jul 6, 2026

Copy link
Copy Markdown

View / edit / reply to this conversation on ReviewNB

IvarStefansson commented on 2026-07-06T08:35:40Z
----------------------------------------------------------------

I don't think we need this and the next few blocks. Can't we explain the problem more precisely without illustrating, then proceed to the solution (implicit initialization)?


@keileg
keileg force-pushed the quasi-static-init branch from f5f35f4 to 73f9a09 Compare July 6, 2026 10:24
@keileg keileg mentioned this pull request Jul 6, 2026
13 tasks
@keileg

keileg commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

For clarity: This PR is in hiatus, to be picked up after summer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants