[STT54-P01] Python based finite element code development for fluid geodynamics using JIT compiler and benchmark test
Keywords:Python, Finite element method, Numerical geodynamics
Python has very high productivity by supporting intuitive grammar and various libraries, but as an interpreted language, it is relatively slower than compiled languages such as c. Many attempts have been made to overcome working process of Python code which executes source code written by high-level language and translates to machine language simultaneously, including development of JIT (Just In Time) Compiler. Jit caches functions defined within the Python script by translating them into machine language. Since it omits the translation process to the machine language when reusing the cached function, Python using JIT compiler may show computational speed equal to the compiled language. We developed a Python-based finite element code for geodynamics equipped with JIT compiler, improving computational speed and keeping its good maintainability. Our code simulates the thermal convection within the coupled system between the time-dependent heat equation and the steady-state Stokes equation. It affords various simulations such as the boundaries between multiphase-fluid and large deformation of materials in Eulerian mesh with particle-in-cell method. In this study, we benchmarked various tests to assess the reliability of the code. Not only we successfully made simple mantle convection model but also we added a lot of geometries and sticky-air approach into test models using PIC (particle-in-cell) method.