diff --git a/index1.html b/index1.html index da58821..ae6fc28 100644 --- a/index1.html +++ b/index1.html @@ -1,10 +1,5 @@

Information

-pyoomph is a object-oriented multi-physics finite element framework. It is mainly a custom high level python frontend for the main functionalities of the powerful C++ library oomph-lib. While pyoomph does not support the entire plethora of features provided by oomph-lib, pyoomph follows a complementary approach, allowing for rapid development and e.g. automatic nondimensionalization and advanced stability analysis beyond oomph-lib's native capabilities. - -
-
- -For performance reasons, pyoomph uses GiNaC and CLN to automatically generate C code for the equations you have entered in python. It automatically generates C code for symbolically derived Jacobian matrices, parameter derivatives and Hessians. These even include the complicated derivatives with respect to the moving mesh coordinates on a symbolical level. The generated code is compiled and linked back to the running python script, either with the TinyC compiler (invoked by tccbox) or, when installed, with a more performant alternative like gcc, LLVM/clang or MSBuild. +pyoomph is an object-oriented multi-physics finite element framework for Python. It is mainly a custom high level frontend for the prime functionalities of the powerful C++ library oomph-lib. While pyoomph does not support the entire plethora of features provided by oomph-lib, pyoomph follows a complementary approach, allowing for rapid development and e.g. automatic nondimensionalization and advanced stability analysis beyond oomph-lib's native capabilities. diff --git a/index2.html b/index2.html index 6850fe5..1ef609f 100644 --- a/index2.html +++ b/index2.html @@ -42,9 +42,8 @@

How it works

-Formulating custom equations, meshes, problems and materials properties is directly done in Python. Subsequently, once the problem is assembled, the monolithic Jacobian matrix is symbolically derived. To speed up the assembly process, C code is automatically generated, compiled and loaded. Thereby, pyoomph is on par with hand-written implementations in a compiled programming language. +Formulating custom equations, meshes, problems and materials properties is directly done in Python. Subsequently, once the problem is assembled, the monolithic Jacobian matrix is symbolically derived. To speed up the assembly process, C code to fill the residuals and the Jacobian matrix is automatically generated, compiled and loaded back to the running program. For the code generation, pyoomph makes use of GiNaC and CLN. Besides symbolically derived Jacobian matrices, also parameter derivatives and Hessians, even including the complicated derivatives with respect to the moving mesh coordinates on a symbolical level, are transferred to performant C code. The generated code is compiled and linked back to the running python script, either with the TinyC compiler (invoked by tccbox) or, when installed, with a more performant alternative like gcc, LLVM/clang or MSBuild. Thereby, pyoomph is on par with hand-written implementations in a compiled programming language, yet with the ease of Python as scripting language. This approach allows for rapid development of complicated multi-physics and multi-domain problems, including physical dimensions (units) and realistic material properties, varying e.g. with the temperature or the composition.

[From our paper Christian Diddens and Duarte Rocha, Bifurcation tracking on moving meshes and with consideration of azimuthal symmetry breaking instabilities, J. Comput. Phys. 518, 113306, (2024).]

-This approach allows for rapid development of complicated multi-physics and multi-domain problems, including physical dimensions (units) and realistic material properties, varying e.g. with the temperature or the composition.