You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In #225, we started storing a single state. This is because large systems take a long time (~5 seconds) to initialize the state. Repeated calls to solve from python were constantly making and deleting a state which very drastically degraded solving time.
Additionally, fortran and python have to call solve with many arguments
All solving interfaces are updated to pass a state
You may be able to make a solver state pair and just pass that as we do now, but be able to remove the other arguments. Note that time_step is not a state parameter
In #225, we started storing a single state. This is because large systems take a long time (~5 seconds) to initialize the state. Repeated calls to solve from python were constantly making and deleting a state which very drastically degraded solving time.
Additionally, fortran and python have to call solve with many arguments
musica/fortran/test/fetch_content_integration/test_micm_api.F90
Lines 122 to 123 in 954265b
musica/python/test/test_analytical.py
Lines 55 to 62 in 954265b
And, when that data gets into C++, we have to copy it onto the state
musica/src/micm/micm.cpp
Lines 437 to 450 in 326b511
musica/python/wrapper.cpp
Lines 48 to 122 in 326b511
This means that we are doing many copies of the data before we even get to solve.
Write a wrapper around the micm state class which allows for data to be accessed and set directly in both python and fortran.
Acceptance criteria
musica/include/musica/micm.hpp
Lines 254 to 267 in 326b511
musica/src/micm/micm.cpp
Lines 418 to 428 in 326b511
Ideas
The text was updated successfully, but these errors were encountered: