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
I initially created this issue over on the Reaktoro github, but as it seems to be related to ThermoFun i will also raise it here. In developing reactive transport simulations using Reaktoro and ThermoFun as the thermodynamic backend, i discovered that the ThermoFun part (namely the PropertiesSolvent, ElectroPropertiesSolvent and ThermoPropertiesSubstance objects) grows in memory use over runtime, until it crashes the program.
From the previous discussion with @allanleal, this may be related to memoization in ThermoFun. I believe the memory issues arise because the thermodynamic properties are stored at all unique P/T points. While this may be efficient for smaller batch calculations, its too much information to handle in the kinds of simulations i run.
Is there a way to control or turn off this feature?
Any help would be greatly appreciated!
Cheers,
Jasper
The text was updated successfully, but these errors were encountered:
If anyone else runs into this issue, i have found a solution:
The memoization is set up in ThermoFun/ThermoEngine.cpp, using template functions defined in OptimizationUtils.h. By commenting lines 107, 113, 119 and 125, you can simply turn it off. For reference, they all look something like this, calling memoize():
I also created a new template memoizeN(fun,max_cache_size) where the least recently used entry is removed if the max size of the cache is reached. Using that with a max size of 1e6, i can smoothly run my simulations with stable memory usage.
I initially created this issue over on the Reaktoro github, but as it seems to be related to ThermoFun i will also raise it here. In developing reactive transport simulations using Reaktoro and ThermoFun as the thermodynamic backend, i discovered that the ThermoFun part (namely the
PropertiesSolvent
,ElectroPropertiesSolvent
andThermoPropertiesSubstance
objects) grows in memory use over runtime, until it crashes the program.From the previous discussion with @allanleal, this may be related to memoization in ThermoFun. I believe the memory issues arise because the thermodynamic properties are stored at all unique P/T points. While this may be efficient for smaller batch calculations, its too much information to handle in the kinds of simulations i run.
Is there a way to control or turn off this feature?
Any help would be greatly appreciated!
Cheers,
Jasper
The text was updated successfully, but these errors were encountered: