MFront for the Code-Aster’users and beyond Code-Aster users meeting — Thomas Helfer 1 , Jean-Michel Proix 2 , Olivier Fandeur 3 , 4 , ¸ois Curtit 5 , Charles Toulemonde 5 , Franc ¸ois Hamon 2 , Vincent Faucher 3 , 4 , Franc Michel Casella 1 26 March 2015 1 CEA, D´ epartement d’´ Etudes des Combustibles 2 EDF R&D, D´ epartement Analyses M´ ecaniques et Acoustique 3 CEA, D´ epartement de Mod´ elisation des Syst` emes et des Structures 4 IMSIA, UMR 8193, CNRS-EDF-CEA-ENSTA 5 EDF R&D, D´ epartement des Mat´ eriaux et M´ ecanique des Composants
Table of contents Forewords A brief tour of MFront Material knowledge management Conclusions Appendix PAGE 1/11
Pleiades PAGE 2/11
A brief tour of MFront
MFront MFront is an open-source code generator based on C++ developed within the PLEIADES platform for : material properties mechanical behaviours models PAGE 3/11
MFront MFront is an open-source code generator based on C++ developed within the PLEIADES platform for : material properties mechanical behaviours of particular interest for Code-Aster models PAGE 3/11
MFront MFront is an open-source code generator based on C++ developed within the PLEIADES platform for : material properties mechanical behaviours of particular interest for Code-Aster models MFront provides several domain specific languages : ease of use, expressivness, etc.. ◮ focus on physical content ◮ low programming skills requirements PAGE 3/11
MFront MFront is an open-source code generator based on C++ developed within the PLEIADES platform for : material properties mechanical behaviours of particular interest for Code-Aster models MFront provides several domain specific languages : ease of use, expressivness, etc.. ◮ focus on physical content ◮ low programming skills requirements MFront tries to comply with ´ Eric Lorentz’s rule of three : reliability (gives the correct result) robustness (gives a result) numerical efficiency (is as fast as possible). PAGE 3/11
MFront MFront is an open-source code generator based on C++ developed within the PLEIADES platform for : material properties mechanical behaviours of particular interest for Code-Aster models MFront provides several domain specific languages : ease of use, expressivness, etc.. ◮ focus on physical content ◮ low programming skills requirements MFront tries to comply with ´ Eric Lorentz’s rule of three : reliability (gives the correct result) robustness (gives a result) numerical efficiency (is as fast as possible). Interoperability (rule of four ? See ”Intefaces” below). PAGE 3/11
MFront MFront is an open-source code generator based on C++ developed within the PLEIADES platform for : material properties mechanical behaviours of particular interest for Code-Aster models MFront provides several domain specific languages : ease of use, expressivness, etc.. ◮ focus on physical content ◮ low programming skills requirements MFront tries to comply with ´ Eric Lorentz’s rule of three : reliability (gives the correct result) robustness (gives a result) numerical efficiency (is as fast as possible). Interoperability (rule of four ? See ”Intefaces” below). Strong emphasis on Quality Assurance (rule of five ? See ”Material knowledge management” below). PAGE 3/11
MFront MFront is an open-source code generator based on C++ developed within the PLEIADES platform for : material properties mechanical behaviours of particular interest for Code-Aster models MFront provides several domain specific languages : ease of use, expressivness, etc.. ◮ focus on physical content ◮ low programming skills requirements MFront tries to comply with ´ Eric Lorentz’s rule of three : reliability (gives the correct result) robustness (gives a result) numerical efficiency (is as fast as possible). Interoperability (rule of four ? See ”Intefaces” below). Strong emphasis on Quality Assurance (rule of five ? See ”Material knowledge management” below). PLEIADES goals : building high quality fuels performance codes PAGE 3/11
A first example : material property @DSL MaterialLaw ; // t r e a t i n g a m a t e r i a l p r o p e r t y @Mate rial UO2 ; // m a t e r i a l name @Law YoungModulus Martin1989 ; // name of the m a t e r i a l p r o p e r t y @Output E ; // output of the m a t e r i a l p r o p e r t y @Input T, f ; // i n p u t s of the m a t e r i a l p r o p e r t y @Function // imple me ntation body { E = 2.2693 e11 ∗ (1. − 2.5 ∗ f ) ∗ (1 − 6.786 e − 05 ∗ T − 4.23e − 08 ∗ T ∗ T) ; } E ( T , f ) = 2 . 2693 10 11 (1 − 2 . 5 f ) (1 − 6 . 786 10 − 5 T − 4 . 23 10 − 8 T 2 ) usable in Code-Aster through the python interface. also in C , C++ , fortran , excel , Cast3M , etc.. usable in MFront ’s mechanical behaviours ! PAGE 4/11
A first example : material property @DSL MaterialLaw ; // t r e a t i n g a m a t e r i a l p r o p e r t y @Mate rial UO2 ; // m a t e r i a l name @Law YoungModulus Martin1989 ; // name of the m a t e r i a l p r o p e r t y @Author T. H e l f e r ; // author name @Date 04/04/2014; // imple me ntation date @De sc ription // d e t a i l l e d d e s c r i p t i o n { The e l a s t i c c o n s t a n t s of p o l y c r y s t a l l i n e UO2 and (U, Pu) mixed o x i d e s : a re vie w and recommendations Martin , DG High Temperatures . High Pre ssure s , 1989 } @Output E ; // output of the m a t e r i a l p r o p e r t y E . setGlossaryName ( ”YoungModulus ” ) ; @Input T, f ; // i n p u t s of the m a t e r i a l p r o p e r t y T. setGlossaryName ( ” Temperature ” ) ; f . setGlossaryName ( ” P o r o s i t y ” ) ; @PhysicalBounds T i n [ 0 : ∗ [ ; // Temperature i s p o s i t i v e @PhysicalBounds f i n [ 0 : 1 . ] ; // P o r o s i t y i s p o s i t i v e and lowe r than one @Bounds T i n [ 2 7 3 . 1 5 : 2 6 1 0 . 1 5 ] ; // V a l i d i t y range @Function // imple me ntation body { E = 2.2693 e11 ∗ (1. − 2.5 ∗ f ) ∗ (1 − 6.786 e − 05 ∗ T − 4.23e − 08 ∗ T ∗ T) ; } E ( T , f ) = 2 . 2693 10 11 (1 − 2 . 5 f ) (1 − 6 . 786 10 − 5 T − 4 . 23 10 − 8 T 2 ) PAGE 4/11
Mechanical behaviours @DSL I s o t r o p i c P l a s t i c M i s e s F l o w ; @Behaviour p l a s t i c f l o w ; @Author H e l f e r Thomas ; @Date 23/11/06; @Mate rialPrope rty s t r e s s H; @FlowRule { f = seq − H ∗ p ; d f d s e q = 1; df dp = − H; } A simple J 2 (isotropic) plastic behaviour : f ( σ eq , p ) = σ eq − H p ≤ 0 example of specific behaviour implementation automatic computation of the consistent tangent operator PAGE 5/11
Mechanical behaviours @DSL I s o t r o p i c P l a s t i c M i s e s F l o w ; @Behaviour p l a s t i c f l o w ; @Author H e l f e r Thomas ; @Date 23/11/06; @Mate rialPrope rty s t r e s s H; @FlowRule { f = seq − H ∗ p ; d f d s e q = 1; df dp = − H; } A simple J 2 (isotropic) plastic behaviour : f ( σ eq , p ) = σ eq − H p ≤ 0 example of specific behaviour implementation automatic computation of the consistent tangent operator various domain specific languages are available to cope with : general small strain behaviours, general finite strain behaviours, cohesive zone models explicit or implicit integration schemes ◮ various algorithms available PAGE 5/11
Code generation and interfaces Finite elements solvers : Code-Aster, Cast3M , ZeBuLoN . Fast Fourier transform solvers : TMFFT , AMITEX FFT Fuel performance codes : Cyrano3 PAGE 6/11
Code generation and interfaces Finite elements solvers : Code-Aster, Cast3M , ZeBuLoN , EuroPlexus , Abaqus , Ansys . Fast Fourier transform solvers : TMFFT , AMITEX FFT , CraFT working Fuel performance codes : planned Cyrano3, Galileo signs of interest PAGE 6/11
Material knowledge management
Studies quality assurance One of the main benefits of MFront is to make the link between : Solvers : ◮ Finite elements solvers (Code-Aster, Cast3M , etc..) ◮ Fuel performances codes ( PLEIADES ), etc...) Material knowledge management projects PAGE 7/11
Studies quality assurance One of the main benefits of MFront is to make the link between : Solvers : ◮ Finite elements solvers (Code-Aster, Cast3M , etc..) ◮ Fuel performances codes ( PLEIADES ), etc...) Material knowledge management projects With those projects, users are/will be granted access to : Checked implementations (expert judgement, unit tests) Technical notes, experimental data, etc... Material knowledge versionning PAGE 7/11
Studies quality assurance One of the main benefits of MFront is to make the link between : Solvers : ◮ Finite elements solvers (Code-Aster, Cast3M , etc..) ◮ Fuel performances codes ( PLEIADES ), etc...) Material knowledge management projects With those projects, users are/will be granted access to : Checked implementations (expert judgement, unit tests) Technical notes, experimental data, etc... Material knowledge versionning Those projects allow much deeper interactions/discussion/feed-backs between simulation and experimental people. PAGE 7/11
Recommend
More recommend