Fortran-FOSS-Programmers / Fortran-FOSS-Programmers/FOODIE

Support for implicit methods

Open
#21 8 comments 0 reactions 0 assignees View on GitHub
enhancement open discussion
Dominant language
Fortran
Stars
132
Forks
29
PR merge metrics
No merged PRs in 30d

Description

FOODiE currently supports only explicit integration methods, i.e. methods that compute the solution at a future time based on the state at present and/or past times. Implicit methods require a guess of the state at a future time to obtain a more accurate solution. They are useful for some families of problems and in some cases may allow unconditionally stable integration with arbitrarily large time steps, at the expense of accuracy.

I believe that it is essential for FOODiE to include these methods, such as 1st order backward Euler, 2nd order trapezoidal, Adams-Moulton family of methods, Adams-Bashforth-Moulton etc.

Implicit solvers require evaluating the residual function `R` at time step `n+1`. This is usually done by a combination of initial guess and iterative procedure like Newton-Raphson iteration or similar. FOODiE should provide such methods for obtaining `R` at time step `n+1`. Once they are in place, implementation of the above-mentioned implicit methods should be trivial.

This issue aims to spark discussion on:
- How to implement evaluation of `R(n+1)` in FOODiE?
- What implicit methods do we want?
- Any other implementation / API suggestions.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing FOODiE’s existing explicit integration methods and how residual evaluation is represented. The issue requires deciding how to evaluate R(n+1), which implicit methods and APIs to support, and how Newton-Raphson or a similar iteration fits in. Done requires an agreed design and implementation plan before the individual methods can be added.

Written by the indexing model from the issue text.

Assessment

Tech stack
fortran
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.