SlideShare une entreprise Scribd logo
1  sur  22
Numerical Simulation of Nonlinear
Mechanical Problems using Metafor
Romain BOMAN
Senior Assistant
University of Liège
Department of Aerospace and
Mechanical Engineering
CECI Meeting - 16th May 2014
Outline
2
1. Our in-house FE code : Metafor
2. Libraries and tools
3. Numerical examples
4. Future works
Outline
3
1. Our in-house FE code : Metafor
2. Libraries and tools
3. Numerical examples
4. Future works
Metafor
4
Implicit Finite Element code for the simulation of solids
submitted to large deformations
Metal Forming Applications
Biomechanics
Crash / Impact
•ALE formalism, remeshing,
•thermomechanical time integration schemes
•fracture modelling,
•crack propagation,
•contact algorithms
•Nonlinear constitutive laws,
•Mesh generation from medical images
•Enhanced finite elements
Fluid Structure
Interaction
•Fluid elements
•Monolothic scheme
Metafor
5
Version history
• 1992 : Version 1 (Fortran):
J.-P. Ponthot’s PhD thesis
• 1999 : As many versions as researchers
• 2000 : Rewritten as an Oofelie solver (C++)
• Today : Still one single version for 11 developers
How big is it?
• ~1500 C++ classes
• ~300k lines of code
• 52 libraries (.dll/.so)
• ~2200 FE models in the test suite
Operating Systems
Windows, Linux, MacOS
Users
• Researchers (PhD, FYP), students (FE course)
• Companies (ArcelorMittal, Techspace Aero, GDTech, …)
Outline
6
1. Our in-house FE code : Metafor
2. Libraries and tools
3. Numerical examples
4. Future works
Libraries and tools
7
Version management Makefiles/project
generator
3D display of meshes
Widgets, threads (GUI)
Interpreter &
user subroutines
Python interface
generator
Compiler, BLAS Parallelism (shared memory)
Threading
Building
Blocks
Parallel linear solver
PARDISO
Libraries and tools
8
Version management Makefiles/project
generator
3D display of meshes
Widgets, threads (GUI)
Interpreter &
user subroutines
Python interface
generator
Compiler, BLAS Parallelism (shared memory)
Threading
Building
Blocks
Parallel linear solver
PARDISO
Why TBB?
9
Shared Memory Parallel Programming with OpenMP
class Element; // a Finite Element
std::vector<Element*> els; // a set of Finite Elements
std::for_each(els.begin(), els.end(),
[&](Element *e)
{
e->getForces();
});
int nbelm = els.size();
#pragma omp parallel for
for(int i=0; i<nbelm; ++i)
{
Element *e = els[i];
e->getForces();
}
• C++ iterators are forbidden
• size_t cannot be used as a loop counter
• Calling a function in a for statement is not allowed
• Possibly bad load balancing
• Nested parallelism difficult to handle. Back to 1992!
Example of a loop over the set of Finite Elements…
ORIGINAL C++ LOOP OPENMP LOOP
Why TBB?
10
Intel Threading Building Blocks
• High Level Parallel programming library (SMP)
• Open Source!
• Highly portable (msvc, gcc, even old versions)
• Object oriented – similar to STL – tbb namespace )
• Task-oriented (instead of threads)
• Thread-safe C++ containers
• Efficient overloaded memory allocators (new, delete)
• Takes into account OpenMP libraries (Pardiso solver)
std::for_each(els.begin(), els.end(),
[&](Element *e)
{
e->getForces();
});
tbb::parallel_do(els.begin(), els.end(),
[&](Element *e)
{
e->getForces();
});
ORIGINAL C++ LOOP TBB LOOP
Same syntax as modern C++
Why TBB?
11
… and it is more efficient and reliable than OpenMP
Example: Matrix-vector product : a = B c (size = n)
• n=10000
 size(B)=763 Mb
• multiplication
performed 100x
Windows
Intel Core i7 960 3.2GHz (4 cores)
Hyper threading
Libraries and tools
12
Version management Makefiles/project
generator
3D display of meshes
Widgets, threads (GUI)
Interpreter &
user subroutines
Python interface
generator
Compiler, BLAS Parallelism (shared memory)
Threading
Building
Blocks
Parallel linear solver
PARDISO
Python interface
13
The main objects of Metafor are available through a python
interface for 2 main reasons
• Input files are written in python
• Less code: no complicated home-made parser required
• Full language: use of loops, conditional statements, objects in input
files
• Extensibility: calls to external libraries (Qt, wxWidgets, numpy, …)
• Glue language: calls to external codes (gmsh, SAMCEF, Abaqus,
matlab, etc.)
• Safety: errors are correctly handled (even C++ exceptions!)
• Extension of the code (“user subroutines”)
• A lot of C++ classes (boundary conditions, postprocessing commands,
geometrical entities, materials, meshers, etc.) can be derived by the
user in Python in the input file.
Python interface
14
Python scripts as input files
One Python class is automatically created by
SWIG for each C++ class
materials.i
%module materials
%{
%include "ElasticMat.h"
%}
#include "ElasticMat.h" materials.py
materials.pyd
from materials import *
mat = ElasticMat(E, nu)
model.setMaterial(mat)
model.run()
INPUT SCRIPT
(Compiled Python module)
(Shadow classes)
Adding one new material class requires
to add only two lines in the input file of
SWIG (material.i) to make it available
in Python!
Python interface
15
Python inheritance of C++ classes : “user subroutines”
SWIG can generate the (huge and complex) code required to derive
a C++ class in Python!
class ElasticMat
{
public:
virtual
T computeStress(T &strain);
};
C++ ELASTIC MATERIAL
from materials import *
class ElasticPlasticMat(ElasticMat):
def computeStress(self, strain):
# compute the stresses
# from the strains
# using python cmds here…
return stress
PYTHON ELASTICPLASTIC MATERIAL
This python code will be called
from the compiled C++ code!
Very useful for students (Final Year Projects)
A new material law is available
without any compiler!
Outline
16
1. Our in-house FE code : Metafor
2. Libraries and tools
3. Numerical examples
4. Future works
Fan Blade containment test
17
• Numerical simulation of an engine
validation test (FBO : Fan Blade Out)
• Implicit algorithm (Chung Hulbert)
• Fixed bearing & moving shaft
connected by springs
• Frictional contact interactions
between blades and casing
Buckling of a blade in LP compressor
18
• Thermo elasto visco plastic model
with damage / EAS finite elements
• We expect a lower buckling force
compared to a purely elastic model
 the total weight of the engine can
be safely decreased.
CPU time :
• 1 day 16 hours (1 core)
• 5h35’ (12 cores)
Roll forming simulation
19
Sheet Metal Forming : Simulation of a 15-stand forming mill
Outline
20
1. Our in-house FE code : Metafor
2. Libraries and tools
3. Numerical examples
4. Future works
Future?
21
Shared Memory Processing (TBB)
Go on with TBB parallelisation of loops…
• The contact algorithms are still sequential.
• Some materials are not thread safe.
Distributed Memory Processing (MPI?)
Nothing done until today…
• Domain decomposition should be implemented.
• How to manage contact efficiently?
22

Contenu connexe

Tendances

型ヒントについて考えよう!
型ヒントについて考えよう!型ヒントについて考えよう!
型ヒントについて考えよう!Yusuke Miyazaki
 
Test Driven Development of A Static Code Analyzer
Test Driven Development of A Static Code AnalyzerTest Driven Development of A Static Code Analyzer
Test Driven Development of A Static Code AnalyzerTerry Yin
 
PYTHON CURRENT TREND APPLICATIONS- AN OVERVIEW
PYTHON CURRENT TREND APPLICATIONS- AN OVERVIEWPYTHON CURRENT TREND APPLICATIONS- AN OVERVIEW
PYTHON CURRENT TREND APPLICATIONS- AN OVERVIEWEditorIJAERD
 
Py Con 2009 Pumping Iron Into Python
Py Con 2009   Pumping Iron Into PythonPy Con 2009   Pumping Iron Into Python
Py Con 2009 Pumping Iron Into PythonSarah Dutkiewicz
 
How to be a bioinformatician
How to be a bioinformaticianHow to be a bioinformatician
How to be a bioinformaticianChristian Frech
 
Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Carlos Miguel Ferreira
 
Programming with Python: Week 1
Programming with Python: Week 1Programming with Python: Week 1
Programming with Python: Week 1Ahmet Bulut
 
A peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk UserA peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk UserKoan-Sin Tan
 
Python quick guide1
Python quick guide1Python quick guide1
Python quick guide1Kanchilug
 
introduction of python in data science
introduction of python in data scienceintroduction of python in data science
introduction of python in data sciencebhavesh lande
 
A Sneak Peek of MLIR in TensorFlow
A Sneak Peek of MLIR in TensorFlowA Sneak Peek of MLIR in TensorFlow
A Sneak Peek of MLIR in TensorFlowKoan-Sin Tan
 
Python Introduction | JNTUA | R19 | UNIT 1
Python Introduction | JNTUA | R19 | UNIT 1 Python Introduction | JNTUA | R19 | UNIT 1
Python Introduction | JNTUA | R19 | UNIT 1 FabMinds
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonMohammed Rafi
 

Tendances (20)

Tensorflow 2.0 and Coral Edge TPU
Tensorflow 2.0 and Coral Edge TPU Tensorflow 2.0 and Coral Edge TPU
Tensorflow 2.0 and Coral Edge TPU
 
Taming Snakemake
Taming SnakemakeTaming Snakemake
Taming Snakemake
 
型ヒントについて考えよう!
型ヒントについて考えよう!型ヒントについて考えよう!
型ヒントについて考えよう!
 
Test Driven Development of A Static Code Analyzer
Test Driven Development of A Static Code AnalyzerTest Driven Development of A Static Code Analyzer
Test Driven Development of A Static Code Analyzer
 
PYTHON CURRENT TREND APPLICATIONS- AN OVERVIEW
PYTHON CURRENT TREND APPLICATIONS- AN OVERVIEWPYTHON CURRENT TREND APPLICATIONS- AN OVERVIEW
PYTHON CURRENT TREND APPLICATIONS- AN OVERVIEW
 
Py Con 2009 Pumping Iron Into Python
Py Con 2009   Pumping Iron Into PythonPy Con 2009   Pumping Iron Into Python
Py Con 2009 Pumping Iron Into Python
 
How to be a bioinformatician
How to be a bioinformaticianHow to be a bioinformatician
How to be a bioinformatician
 
Python lecture 01
Python lecture 01Python lecture 01
Python lecture 01
 
Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.
 
Introduction python
Introduction pythonIntroduction python
Introduction python
 
Programming with Python: Week 1
Programming with Python: Week 1Programming with Python: Week 1
Programming with Python: Week 1
 
A peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk UserA peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk User
 
Python quick guide1
Python quick guide1Python quick guide1
Python quick guide1
 
introduction of python in data science
introduction of python in data scienceintroduction of python in data science
introduction of python in data science
 
A Sneak Peek of MLIR in TensorFlow
A Sneak Peek of MLIR in TensorFlowA Sneak Peek of MLIR in TensorFlow
A Sneak Peek of MLIR in TensorFlow
 
Python Introduction | JNTUA | R19 | UNIT 1
Python Introduction | JNTUA | R19 | UNIT 1 Python Introduction | JNTUA | R19 | UNIT 1
Python Introduction | JNTUA | R19 | UNIT 1
 
Python for All
Python for All Python for All
Python for All
 
A Peek into TFRT
A Peek into TFRTA Peek into TFRT
A Peek into TFRT
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Why learn python in 2017?
Why learn python in 2017?Why learn python in 2017?
Why learn python in 2017?
 

Similaire à Numerical Simulation of Nonlinear Mechanical Problems using Metafor

Introduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaIntroduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaopenseesdays
 
Making fitting in RooFit faster
Making fitting in RooFit fasterMaking fitting in RooFit faster
Making fitting in RooFit fasterPatrick Bos
 
6-9-2017-slides-vFinal.pptx
6-9-2017-slides-vFinal.pptx6-9-2017-slides-vFinal.pptx
6-9-2017-slides-vFinal.pptxSimRelokasi2
 
pythonOCC PDE2009 presentation
pythonOCC PDE2009 presentationpythonOCC PDE2009 presentation
pythonOCC PDE2009 presentationThomas Paviot
 
Introduction-to-C-Part-1.pdf
Introduction-to-C-Part-1.pdfIntroduction-to-C-Part-1.pdf
Introduction-to-C-Part-1.pdfAnassElHousni
 
OpenSees: Future Directions
OpenSees: Future DirectionsOpenSees: Future Directions
OpenSees: Future Directionsopenseesdays
 
Async await in C++
Async await in C++Async await in C++
Async await in C++cppfrug
 
C++ helps you to format the I/O operations like determining the number of dig...
C++ helps you to format the I/O operations like determining the number of dig...C++ helps you to format the I/O operations like determining the number of dig...
C++ helps you to format the I/O operations like determining the number of dig...bhargavi804095
 
Unmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeUnmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeDmitri Nesteruk
 
Pysense: wireless sensor computing in Python?
Pysense: wireless sensor computing in Python?Pysense: wireless sensor computing in Python?
Pysense: wireless sensor computing in Python?Davide Carboni
 
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...AboutYouGmbH
 
Introduction-to-C-Part-1.pptx
Introduction-to-C-Part-1.pptxIntroduction-to-C-Part-1.pptx
Introduction-to-C-Part-1.pptxNEHARAJPUT239591
 

Similaire à Numerical Simulation of Nonlinear Mechanical Problems using Metafor (20)

Introduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaIntroduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKenna
 
Making fitting in RooFit faster
Making fitting in RooFit fasterMaking fitting in RooFit faster
Making fitting in RooFit faster
 
6-9-2017-slides-vFinal.pptx
6-9-2017-slides-vFinal.pptx6-9-2017-slides-vFinal.pptx
6-9-2017-slides-vFinal.pptx
 
OpenMP And C++
OpenMP And C++OpenMP And C++
OpenMP And C++
 
CS4961-L9.ppt
CS4961-L9.pptCS4961-L9.ppt
CS4961-L9.ppt
 
Ccp4 mmdb-python
Ccp4 mmdb-pythonCcp4 mmdb-python
Ccp4 mmdb-python
 
pythonOCC PDE2009 presentation
pythonOCC PDE2009 presentationpythonOCC PDE2009 presentation
pythonOCC PDE2009 presentation
 
Return of c++
Return of c++Return of c++
Return of c++
 
Introduction-to-C-Part-1.pdf
Introduction-to-C-Part-1.pdfIntroduction-to-C-Part-1.pdf
Introduction-to-C-Part-1.pdf
 
C++Basics2022.pptx
C++Basics2022.pptxC++Basics2022.pptx
C++Basics2022.pptx
 
OpenSees: Future Directions
OpenSees: Future DirectionsOpenSees: Future Directions
OpenSees: Future Directions
 
Modern C++
Modern C++Modern C++
Modern C++
 
An Introduction to OMNeT++ 5.4
An Introduction to OMNeT++ 5.4An Introduction to OMNeT++ 5.4
An Introduction to OMNeT++ 5.4
 
An Introduction to OMNeT++ 6.0
An Introduction to OMNeT++ 6.0An Introduction to OMNeT++ 6.0
An Introduction to OMNeT++ 6.0
 
Async await in C++
Async await in C++Async await in C++
Async await in C++
 
C++ helps you to format the I/O operations like determining the number of dig...
C++ helps you to format the I/O operations like determining the number of dig...C++ helps you to format the I/O operations like determining the number of dig...
C++ helps you to format the I/O operations like determining the number of dig...
 
Unmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeUnmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/Invoke
 
Pysense: wireless sensor computing in Python?
Pysense: wireless sensor computing in Python?Pysense: wireless sensor computing in Python?
Pysense: wireless sensor computing in Python?
 
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
 
Introduction-to-C-Part-1.pptx
Introduction-to-C-Part-1.pptxIntroduction-to-C-Part-1.pptx
Introduction-to-C-Part-1.pptx
 

Dernier

ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGSIVASHANKAR N
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxfenichawla
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesPrabhanshu Chaturvedi
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 

Dernier (20)

ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and Properties
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 

Numerical Simulation of Nonlinear Mechanical Problems using Metafor

  • 1. Numerical Simulation of Nonlinear Mechanical Problems using Metafor Romain BOMAN Senior Assistant University of Liège Department of Aerospace and Mechanical Engineering CECI Meeting - 16th May 2014
  • 2. Outline 2 1. Our in-house FE code : Metafor 2. Libraries and tools 3. Numerical examples 4. Future works
  • 3. Outline 3 1. Our in-house FE code : Metafor 2. Libraries and tools 3. Numerical examples 4. Future works
  • 4. Metafor 4 Implicit Finite Element code for the simulation of solids submitted to large deformations Metal Forming Applications Biomechanics Crash / Impact •ALE formalism, remeshing, •thermomechanical time integration schemes •fracture modelling, •crack propagation, •contact algorithms •Nonlinear constitutive laws, •Mesh generation from medical images •Enhanced finite elements Fluid Structure Interaction •Fluid elements •Monolothic scheme
  • 5. Metafor 5 Version history • 1992 : Version 1 (Fortran): J.-P. Ponthot’s PhD thesis • 1999 : As many versions as researchers • 2000 : Rewritten as an Oofelie solver (C++) • Today : Still one single version for 11 developers How big is it? • ~1500 C++ classes • ~300k lines of code • 52 libraries (.dll/.so) • ~2200 FE models in the test suite Operating Systems Windows, Linux, MacOS Users • Researchers (PhD, FYP), students (FE course) • Companies (ArcelorMittal, Techspace Aero, GDTech, …)
  • 6. Outline 6 1. Our in-house FE code : Metafor 2. Libraries and tools 3. Numerical examples 4. Future works
  • 7. Libraries and tools 7 Version management Makefiles/project generator 3D display of meshes Widgets, threads (GUI) Interpreter & user subroutines Python interface generator Compiler, BLAS Parallelism (shared memory) Threading Building Blocks Parallel linear solver PARDISO
  • 8. Libraries and tools 8 Version management Makefiles/project generator 3D display of meshes Widgets, threads (GUI) Interpreter & user subroutines Python interface generator Compiler, BLAS Parallelism (shared memory) Threading Building Blocks Parallel linear solver PARDISO
  • 9. Why TBB? 9 Shared Memory Parallel Programming with OpenMP class Element; // a Finite Element std::vector<Element*> els; // a set of Finite Elements std::for_each(els.begin(), els.end(), [&](Element *e) { e->getForces(); }); int nbelm = els.size(); #pragma omp parallel for for(int i=0; i<nbelm; ++i) { Element *e = els[i]; e->getForces(); } • C++ iterators are forbidden • size_t cannot be used as a loop counter • Calling a function in a for statement is not allowed • Possibly bad load balancing • Nested parallelism difficult to handle. Back to 1992! Example of a loop over the set of Finite Elements… ORIGINAL C++ LOOP OPENMP LOOP
  • 10. Why TBB? 10 Intel Threading Building Blocks • High Level Parallel programming library (SMP) • Open Source! • Highly portable (msvc, gcc, even old versions) • Object oriented – similar to STL – tbb namespace ) • Task-oriented (instead of threads) • Thread-safe C++ containers • Efficient overloaded memory allocators (new, delete) • Takes into account OpenMP libraries (Pardiso solver) std::for_each(els.begin(), els.end(), [&](Element *e) { e->getForces(); }); tbb::parallel_do(els.begin(), els.end(), [&](Element *e) { e->getForces(); }); ORIGINAL C++ LOOP TBB LOOP Same syntax as modern C++
  • 11. Why TBB? 11 … and it is more efficient and reliable than OpenMP Example: Matrix-vector product : a = B c (size = n) • n=10000  size(B)=763 Mb • multiplication performed 100x Windows Intel Core i7 960 3.2GHz (4 cores) Hyper threading
  • 12. Libraries and tools 12 Version management Makefiles/project generator 3D display of meshes Widgets, threads (GUI) Interpreter & user subroutines Python interface generator Compiler, BLAS Parallelism (shared memory) Threading Building Blocks Parallel linear solver PARDISO
  • 13. Python interface 13 The main objects of Metafor are available through a python interface for 2 main reasons • Input files are written in python • Less code: no complicated home-made parser required • Full language: use of loops, conditional statements, objects in input files • Extensibility: calls to external libraries (Qt, wxWidgets, numpy, …) • Glue language: calls to external codes (gmsh, SAMCEF, Abaqus, matlab, etc.) • Safety: errors are correctly handled (even C++ exceptions!) • Extension of the code (“user subroutines”) • A lot of C++ classes (boundary conditions, postprocessing commands, geometrical entities, materials, meshers, etc.) can be derived by the user in Python in the input file.
  • 14. Python interface 14 Python scripts as input files One Python class is automatically created by SWIG for each C++ class materials.i %module materials %{ %include "ElasticMat.h" %} #include "ElasticMat.h" materials.py materials.pyd from materials import * mat = ElasticMat(E, nu) model.setMaterial(mat) model.run() INPUT SCRIPT (Compiled Python module) (Shadow classes) Adding one new material class requires to add only two lines in the input file of SWIG (material.i) to make it available in Python!
  • 15. Python interface 15 Python inheritance of C++ classes : “user subroutines” SWIG can generate the (huge and complex) code required to derive a C++ class in Python! class ElasticMat { public: virtual T computeStress(T &strain); }; C++ ELASTIC MATERIAL from materials import * class ElasticPlasticMat(ElasticMat): def computeStress(self, strain): # compute the stresses # from the strains # using python cmds here… return stress PYTHON ELASTICPLASTIC MATERIAL This python code will be called from the compiled C++ code! Very useful for students (Final Year Projects) A new material law is available without any compiler!
  • 16. Outline 16 1. Our in-house FE code : Metafor 2. Libraries and tools 3. Numerical examples 4. Future works
  • 17. Fan Blade containment test 17 • Numerical simulation of an engine validation test (FBO : Fan Blade Out) • Implicit algorithm (Chung Hulbert) • Fixed bearing & moving shaft connected by springs • Frictional contact interactions between blades and casing
  • 18. Buckling of a blade in LP compressor 18 • Thermo elasto visco plastic model with damage / EAS finite elements • We expect a lower buckling force compared to a purely elastic model  the total weight of the engine can be safely decreased. CPU time : • 1 day 16 hours (1 core) • 5h35’ (12 cores)
  • 19. Roll forming simulation 19 Sheet Metal Forming : Simulation of a 15-stand forming mill
  • 20. Outline 20 1. Our in-house FE code : Metafor 2. Libraries and tools 3. Numerical examples 4. Future works
  • 21. Future? 21 Shared Memory Processing (TBB) Go on with TBB parallelisation of loops… • The contact algorithms are still sequential. • Some materials are not thread safe. Distributed Memory Processing (MPI?) Nothing done until today… • Domain decomposition should be implemented. • How to manage contact efficiently?
  • 22. 22