SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

型ヒントについて考えよう!
型ヒントについて考えよう!型ヒントについて考えよう!
型ヒントについて考えよう!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
 

What's hot (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?
 

Similar to 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
 

Similar to 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
 

Recently uploaded

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
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityMorshed Ahmed Rahath
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaOmar Fathy
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfRagavanV2
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...SUHANI PANDEY
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdfKamal Acharya
 
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
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptMsecMca
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086anil_gaur
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...soginsider
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 

Recently uploaded (20)

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...
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
(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
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
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
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 

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