History#

gotran was developed back in 2012 by Johan Hake at the Simula Research Laboratory with the main purpose of generating efficient code for models in cardiac electrophysiology. In particular it was used to take a model from CellML, and translating it into an human readable language, with a suffix .ode which could be used to generate code originally in Python, Matlab, C and C++.

In 2014, a master student also implemented support for Latex and CUDA under the supervision of Johan Hake.

In 2017, Johan Hake left Simula Research Laboratory and Henrik Finsberg took over as the core maintainer of gotran. He also added support for Julia and Markdown, and Kristian Hustad implemented support for OpenCL and added a lot of optimizations to the code generation. in 2023-2024 Kristian Hustad also had a master student together with Xing Cai to implement support for lookup tables in gotran.

Why a full rewrite of gotran?#

The original gotran project currently contains about 20 000 lines of python code. In addition it heavily depends on another project called modelparameters which in turn depends heavily on sympy. This dependency on sympy was so strong that we were unable to upgrade sympy passed version 1.1.1, which is why we in 2022 decided to vendor this version into modelparameters. Furthermore, some flaky behavior ended up being very annoying and impossible to track down. These two factors were the main cause of a full rewrite of gotran.