<p>The implementation of new constitutive models in existing finite element software is often complicated and daunting. It requires in-depth knowledge of different disciplines such as mathematics (tensor calculus), computer science (advanced knowledge of different programming languages: <Emphasis FontCategory="NonProportional">MATLAB</Emphasis>, <Emphasis FontCategory="NonProportional">FORTRAN</Emphasis>, <Emphasis FontCategory="NonProportional">Python</Emphasis>, <Emphasis FontCategory="NonProportional">Julia</Emphasis>, etc., data structures, and software architecture), and continuum mechanics. Therefore, the process of implementing new material models is a rather complex task, best left to specialists in the field of computational material science. This, however, constitutes a severe roadblock for scientific progress as experts developing novel numerical algorithms might lack knowledge in at least one of the mentioned areas. Hence, the overarching goal of this paper is to provide a cookbook-type recipe for implementing <i>hyperelastic</i> material models in finite element software. The process of implementing a hyperelastic model is broken down into small steps such that only a good understanding of calculus of univariate functions (chain rule, product rule, etc.) is required. Without loss of generality, we limit our presentation to material models implemented in <Emphasis FontCategory="NonProportional">MATLAB</Emphasis>. The general methodology is, however, easily applicable also to any other programming language of choice. To facilitate the adoption of our approach, the implementation of several constitutive laws is showcased, including established models such as the 2-parameter Mooney-Rivlin model and the Arruda-Boyce (8-chain) model and more exotic ones such as the 4-parameter model and the Knowles model. Listings of all necessary files are provided throughout the paper, which can be easily adapted for other models and additionally an <a href="https://bitbucket.org/ifmedevs/hyper-mat/src/main/">https://bitbucket.org/ifmedevs/hyper-mat/src/main/</a>repository can be accessed. </p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Implementation of isotropic hyperelastic material models: a »template« approach

  • S. Eisenträger,
  • L. Maurer,
  • D. Juhre,
  • H. Altenbach,
  • J. Eisenträger

摘要

The implementation of new constitutive models in existing finite element software is often complicated and daunting. It requires in-depth knowledge of different disciplines such as mathematics (tensor calculus), computer science (advanced knowledge of different programming languages: MATLAB, FORTRAN, Python, Julia, etc., data structures, and software architecture), and continuum mechanics. Therefore, the process of implementing new material models is a rather complex task, best left to specialists in the field of computational material science. This, however, constitutes a severe roadblock for scientific progress as experts developing novel numerical algorithms might lack knowledge in at least one of the mentioned areas. Hence, the overarching goal of this paper is to provide a cookbook-type recipe for implementing hyperelastic material models in finite element software. The process of implementing a hyperelastic model is broken down into small steps such that only a good understanding of calculus of univariate functions (chain rule, product rule, etc.) is required. Without loss of generality, we limit our presentation to material models implemented in MATLAB. The general methodology is, however, easily applicable also to any other programming language of choice. To facilitate the adoption of our approach, the implementation of several constitutive laws is showcased, including established models such as the 2-parameter Mooney-Rivlin model and the Arruda-Boyce (8-chain) model and more exotic ones such as the 4-parameter model and the Knowles model. Listings of all necessary files are provided throughout the paper, which can be easily adapted for other models and additionally an https://bitbucket.org/ifmedevs/hyper-mat/src/main/repository can be accessed.