The aim of this library is to have a (relatively) easy way to write
transient dynamic systems with 1D finite difference discretization, with
fast temporal solvers.
Triflow, PDE solver framework
The main two parts of the library are:
- symbolic tools defining the spatial discretization, with boundary
taking into account in a separated part
- a fast temporal solver written in order to use the sparsity of the
finite difference method to reduce the memory and CPU usage during
Moreover, extra tools are provided and the library is written in a
modular way, allowing an easy extension of these different parts (see
the plug-in module of the library.)
The library fits well with an interactive usage (in a jupyter notebook).
The dependency list is actually larger, but on-going work target a
reduction of the stack complexity.
- WARNING: some part of the API has changed:
- Simulation signature has changed.
t arg is now optional (with t=0) as default and
physical_parameters is now
- The displays have been completely rewritten, and the previous API is depreciated. Users are encouraged to modify their scripts or to stick to the ^0.4 triflow versions.
- move schemes from plugins to core
- compilers: remove tensorflow, add numpy which is way slower but has no compilation overhead.
- displays and containers are connected to the simulation via
- add post-processing.
- real-time display is now based on Holoviews. Backward compatibility for display is broken and users are encouraged to modify their scripts or to stick to the ^0.4 triflow versions.
- use poetry to manage dependencies.
tqdm to display simulation update.
- give user choice of compiler
- get out tensorflow compiler (not really efficient, lot of maintenance trouble)
- give access to theano and numpy compiler
- upwind scheme support
- using xarray as fields backend, allowing easy post process and save
- update display and containers
- adding repr string to all major classes