1 Why MATLAB ?
Total Page:16
File Type:pdf, Size:1020Kb
Structural Dynamics Toolbox • Structural Dynamics Toolbox offers : • 3D Finite Element Modeling • Experimental Modal Analysis • Test / Analysis correlation SDT & OpenFEM • With a modular approach • MATLAB environment A technical overview • OpenFEM : Core software for Finite Element Modeling (co-developed with INRIA) • FEMlink : Import / export industrial modules • Runtime SDT : Customized and standalone compiled applications Etienne Balmes CAD Meshing Runtime SDT SDTools FEM SDT, Visco, Rotor Simulation OpenFEM FEMlink Tests MATLAB Current SDTools activities Why MATLAB ? Requirements for a long term development environment •Ease of development – Interactive operation on data structures ☺☺☺x – Prior declaration not required (automated memory management) but pre-allocation possible ☺☺x – Interactive debugger ☺ ? –Profiler ☺ ? • 90 % the code fully portable ⇒ –virtual machine ☺☺☺☺ – Performance of interpretation (in-line compiler) ☺ ? x • Native support of math libraries ☺☺ x • Native support of sparse libraries ☺☺ x • Allow links of few specific libraries to C, C++, Fortran, Java (compile only the small part that needs it) ☺☺☺☺ •MATLAB best (SDT/OpenFEM) • Python only alternative (ABAQUS, Code_Aster) Problems •Memory handling: argument passing without copy often critical (pre-allocation) but user need to pay attention •MATLAB not perceived as capable of handling large jobs •NOT FREE: cheap licenses but many users because interactive •FREEdeployment of MATLAB Runtime Matlab Python Scilab Java Funding Bosch (squeal), SNECMA (full rotor), PSA (damping design), SNCF (train/track), VALEO (joint non linearities), … Application areas FEM (3) : OpenFEM / SDT architecture Mechanics/dynamics problems are at the interface of many Preprocessing FEM core Postprocessing scientific/software areas • Mesh • Shape function utilities • Stress computations manipulations • Element functions • Signal processing • Structured • Matrix and load assembly • 3D visualization (major meshing • Factored matrix object extension , optimized, (dynamic selection of sparse object based) CATIA, IDEAS, ProEngineer, … • Property/boundary CAD condition setting library, additional solvers) Export • Linear static and time •VTK, MEDIT Import response (linear and non Simulation • NASTRAN, IDEAS, • Modulef, GMSH, linear) PATRAN, … SAMCEF Meshing GID • Real eigenvalues • Ensight, MISS3D, • NASTRAN, • Optimized solvers for large Gefdyn IDEAS, ANSYS, problems, superelements, NASTRAN, ABAQUS, ANSYS,... FEM PERMAS, and system dynamics, model SAMCEF, reduction and optimization, ABAQUS, MISS, vibroacoustics, active control, Adams, Simulink,... Simulation GEFDYN … • Drive other software (NASTRAN, MISS) CADA-X, IDEAS Test, … Testing Validation OpenFEM, SDTools, MSSMat 1 OpenFEM Meshing 1: unstructured OpenFEM toolbox (Collaboration with INRIA, LGPL license ) Meshing is a serious business that needs to be • Element library (2-D & 3-D, linear & non-linear, integrated in a CAD environment. mechanics, acoustics, heat, …), load generation, stress evaluations OpenFEM is a computing environment. • Time and non-linear solvers • Pre- and post-processing tools •IMPORT (MODULEF, GMSH, GID, Objectives for the partners: • augment use of general purpose FEM in the MATLAB NASTRAN, ANSYS, SAMCEF, PERMAS, environment IDEAS) •INRIA: prototyping environment, demonstrate viability • Structured meshing of MATLAB/Scilab type environment for FEM computations • Run meshing software : GMSH Driver • SDTools : share development costs for non core • 2D quad meshing, 2D Delaunay applications (2-D, non-linear mechanics, …) OpenFEM, SDTools SDT/FEMLink Why NASTRAN, ANSYS … and SDT ? • NASTRAN : read/write/drive Typical reasons to use your FEM and SDT 2 •ABAQUSread/write model and • Post-processing ⇒ extract response from full model output, generate state-space results (.fil) models, visualize, … •ANSYS: read model and • Pre-processing element matrices, partial write ⇒ generate parts of your job, for example in a shape optimization process model 1 • Serve as base for your in-house developments •UFF: read/write model (example Bosch time simulation of squeal) • PERMAS : read/write model • Integrate pre- and post-processing in an and matrices optimization process (example PSA topology optimization for • SAMCEF read model and vibroacoustic response) matrices, write topology … • Model reduction capabilities of SDT • Focus on very large model and matrix support 1. ESA ESTEC, 2e6 DOF, 8 GB modal base 2. PSA Peugeot Citroen : body with partial trim 1.2 MDOF 3 3. Bosch : brake model with contact for squeal Meshing 1 : structured example Meshing 2 : femesh/feutil femesh • Structured meshing • Add FEeli FEelj, AddSel • ObjectBeamLine i, ObjectMass i • AddNode [,New] [, From i] • ObjectHoleInPlate FEelt=[]; • Mapped divisions • Object[Quad,Beam,Hexa] MatId ProId FEnode = [1 0 0 0 0 0 0;2 0 0 0 0 0 .15; • AddTest [,NodeShift,Merge] • Objects (beam, circle, • Divide div1 div2 div3 • Object[Circle,Cylinder,Disk] 3 0 0 0 0.4 1.0 .176;4 0 0 0 0.4 0.9 0.176]; • Optim [Model, NodeNum, EltCheck] % fuselage tube, …) •DivideInGroups • DivideGroup i ElementSelectors • Orient, Orient i [ , n nx ny nz] [,-neg] femesh('objectbeamline 1 2'); • Plot [Elt, El0] femesh('extrude 0 1.0 0.0 0.0', … •EltId • Extrude nRep tx ty tz • Quad2Tria, quad42quadb, etc. [linspace(0,.55,5) linspace(.65,1.4,6) 1.5]); • RefineBeam femesh('addsel;'); • FindDof ElementSelectors •GetDof • Remove[Elt,El0] ElementSelectors •Renumber % vertical tail • Find [Elt,El0] ElementSelectors • FindNode Selectors • RepeatSel nITE tx ty tz femesh('objectbeamline',femesh('findnode z==.15 & x>=1.4')); •Rev nDivOrigIDAngnxnynz femesh(';extrude 3 0 0 .1;addsel;'); •GetEdge[Line,Patch] • GetElemF • RotateSel OrigID Ang nx ny nz % vertical horizontal tail • Sel [Elt,El0] ElementSelectors femesh('objectbeamline',femesh('findnode z==.45')); •GetLine •GetNodeSelectors •SelGroupi, SelNodei femesh('extrude 0 0.0 0.2 0.0',[-1 -.5 0 .5 1]); • SetGroup [i,name] [Mat j, Pro k, EGID e, Name s] femesh('addsel;'); • GetNormal[Elt,Node][,Map] •GetPatch •StringDOF Node: [144x7 double] • Info [ ,FEeli, Nodei] •SymSelOrigIDnxnynz % right drum •TransSeltxtytz femesh(';objectbeamline 3 4;extrude 1 .4 0 0'); Elt: [100x9 double] • Join [,el0] [group i, EName] •model [,0] •UnJoinGp1 Gp2 femesh('divide',[0 2/40 15/40 25/40 1],[0 .7 1]); pl: [2x6 double] femesh('addsel;'); •Matid,ProId,MPID il: [4x6 double] % left drum bas: [] femesh(';symsel 1 0 1 0;addsel;'); Stack: {} Generation, Selection, … 2 Meshing 4: fe_gmsh Meshing 5: selection FEnode = [1 0 0 0 0 0 0; 2 0 0 0 1 0 0; 3 0 0 0 0 2 0]; femesh('objectholeinplate 1 2 3 .5 .5 3 4 4'); Recursive node and element selections FEelt=FEel0;femesh('selelt seledge');model=femesh('model0'); GID ~=i EltId i model.Node=feutil('getnode groupall',model); Group ~=i EltInd i Groupa i EltName ~=s model=fe_gmsh('addline',model,'groupall'); mo1=fe_gmsh('write temp.msh -lc .3 -run -2 -v 0',model); InElt{sel} EGID == i feplot(mo1); delete('temp.msh') NodeId > i Facing > cos x y z NotIn{sel} Group i Default element size Plane == i nx ny nz InNode i GMSH options rad <=r x y z MatId i cyl <=r i nx ny nz ProId i Setname name SelEdge type • Good functionality for 2D and 3D SelFace type • Limited handling of complex surfaces x >a x y z Setname name • Extensions for TETGEN and NETGEN WithNode i WithoutNode i FEM (3) : OpenFEM / SDT architecture FEM (1) : why MATLAB ? FEM core Postprocessing Preprocessing MATLAB can be an efficient driver for • Easy to manipulate • Mesh • Shape function utilities • Stress computations manipulations • Element functions • Signal processing all of FEM applications •Lower • Structured • Matrix and load assembly • 3D visualization (major • Very useful versatility in manipulating input to FEM development costs meshing • Factored matrix object extension , optimized, • Many steps can be performed in MATLAB itself • No loss of (dynamic selection of sparse object based) • Property/boundary • MATLAB can be efficiently linked against external performance condition setting library, additional solvers) Export libraries (compile only the small part that needs it) • Linear static and time •VTK, MEDIT Import response (linear and non • Debugger and profiler allow quality and optimization • NASTRAN, IDEAS, • Modulef, GMSH, linear) SAMCEF NetGen, TetGen, • Real eigenvalues But • Ensight, MISS3D, GID • Optimized solvers for large • Element level computations need to be compiled Gefdyn • NASTRAN, problems, superelements, • Argument passing without copy often critical IDEAS, ANSYS, and system dynamics, model •MATLAB not perceived as capable of handling large PERMAS, reduction and optimization, jobs SAMCEF, vibroacoustics, active control, • A different pricing strategy : cheap licenses but ABAQUS, MISS, … GEFDYN • Drive other software many users because interactive (need for SDT (NASTRAN, MISS) Runtime) OpenFEM, SDTools, MSSMat FEM (2) : How big ? ofact : gateway to sparse libraries • 64 bit OS no particular limitation : 2000e6 (int32) Kq=F is central to most FEM problems. Optimal is case/machine nodes/DOFs, typical failure for very large dataset : matrix factor dependent. ofact object allows library independent code. (no out-of-core solver), very long time response, … •Method: dynamic selection of method (OpenFEM, SDTools) • 32 bit OS : models that have run 400.000 DOF car body, 150.000 engine blade, generally fails due to memory segmentation lu : MATLAB sparse LU solver chol : MATLAB sparse Cholesky solver (largest block becomes small) pardiso : PARDISO