A Finite Element solver for classical linear thermoelasticity in Python
Important note: This repository has just recently been made public. It is largely uncommented, with incomplete documentation and possibly still bugged. For now, users are incited to read the example scripts in order to make their own. There is a steady-state and three transient examples, showcasing the four available solvers (steady-state, transient, transient with reduced-order model, transient with reduced-order model and nonparametric uncertainty modeling). The mesh used in examples is described in terms of tagged nodes, surfaces and volumes in the folder data/sandwich.txt
- Handling of Dirichlet conditions has improved: you can now affect one to a specific DOF, not a whole node. Example scripts have been updated accordingly.
- Time-varying loads have been introduced for the transient solver. A new example script 'example_transient_2.py' showcases that.
- Reduced-order modeling for the transient solver using elastic and thermal modes has been added. A new example script 'example_transient_3.py' showcases that, mimicking the load case of 'example_transient_2.py' and solving much faster.
- Nonparametric uncertainty modeling for transient solver with reduced-order model has been added. A new example script 'example_UQ_1.py' showcases that, mimicking the load case of 'example_transient_2.py' and 'example_transient_3.py'.
- Uncertainty modeling: parametric uncertainties for material parameters.
Create and/or activate a virtual environment. Clone this repository in the folder of your choosing using:
git clone git@github.com:rcapillon/thermoelasticity_fem.git
Then, install the package and its dependencies using:
cd thermoelasticity_fem/
pip install .
The redaction of a scientific documentation is in progress on this repository's wiki. It is incomplete for now.
Sample graphics generated by the three example scripts.
example_steadystate | example_transient_1 |
---|---|
![]() |
![]() |
example_transient_2 (full model) | example_transient_3 (reduced-order model) |
---|---|
![]() |
![]() |
example_UQ_1 (displacement) | example_UQ_1 (temperature) |
---|---|
![]() |
![]() |
[1] Balla, M. “Formulation of coupled problems of thermoelasticity by finite elements", Periodica Polytechnica Mechanical Engineering, 1989.
[2] Selverian, J., Johnston, D., Johnson, M. A., Fox, K. M., & Hellmann, J. R., "Temperature dependent elastic properties of several commercial glasses", High Temperatures - High Pressures, 2010.
[3] Colinas-Armijo, N., Inigo, B., Aguirre, G., "Comparison of Thermal Modal Analysis and Proper Orthogonal Decomposition methods for thermal error estimation", Special Interest Group Meeting on Thermal Issues, 2020.
Reference [1] was used for the equations of classical linear thermoelasticity. Reference [2] was used to obtain reasonable properties for a glass material. Reference [3] is used for computing the reduced-order model.