Minimization of Nonlinear Energies in Python Using FEM and Automatic Differentiation Tools
Michal B\'ere\v{s}, Jan Valdman

TL;DR
This paper demonstrates Python's effectiveness in solving nonlinear energy minimization problems using FEM and automatic differentiation, showing significant speed improvements over MATLAB in benchmark tests.
Contribution
It introduces a Python-based approach for nonlinear energy minimization that is simple, efficient, and faster than traditional MATLAB methods, especially for large-scale problems.
Findings
Python implementation is about ten times faster than MATLAB for large problems.
The approach simplifies the process by requiring only the energy functional.
Benchmarks include p-Laplacian, Ginzburg-Landau, and Neo-Hookean models.
Abstract
This contribution examines the capabilities of the Python ecosystem to solve nonlinear energy minimization problems, with a particular focus on transitioning from traditional MATLAB methods to Python's advanced computational tools, such as automatic differentiation. We demonstrate Python's streamlined approach to minimizing nonlinear energies by analyzing three problem benchmarks - the p-Laplacian, the Ginzburg-Landau model, and the Neo-Hookean hyperelasticity. This approach merely requires the provision of the energy functional itself, making it a simple and efficient way to solve this category of problems. The results show that the implementation is about ten times faster than the MATLAB implementation for large-scale problems. Our findings highlight Python's efficiency and ease of use in scientific computing, establishing it as a preferable choice for implementing sophisticated…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsComputational Physics and Python Applications
