Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a general interface for the time integrator #92

Open
CFD-Xing opened this issue May 17, 2024 · 1 comment
Open

Create a general interface for the time integrator #92

CFD-Xing opened this issue May 17, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@CFD-Xing
Copy link
Contributor

CFD-Xing commented May 17, 2024

Currently, the time integrator takes seven arguments as follow

time_integrator%step(u, v, w, du, dv, dw, dt)

We should consider instead to create a general interface taking flist_t as arguments such that the time integrator can be used for an arbitrary number of variables

time_integrator%step(sol, deriv, dt)

This will also simply the addition of unit test for the time integrator

EDIT:

We should also consider to generalize the method member variable to consider various type of integration techniques (AB, RK, IMEX, etc.)

@semi-h
Copy link
Member

semi-h commented May 17, 2024

I think it sounds good, we can also do a sanity check to make sure nvars of time_integrator matches with the list sizes.

It would be great if we could do

call time_integrator%step([u, v, w], [du, dv, dw], dt)

But I guess Fortran won't allow this, right? Array of pointer stuff in Fortran is a bit weird.

Then we'll have to dynamically assign them to lists in run and pass the lists, but I think it is okay.

@semi-h semi-h added the enhancement New feature or request label Feb 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants