ATiFEM overzicht Oplosvolgorde FEM software: ο· Virtual work theorie + standaard mechanica = ο· K matrix en r matrix kan gemaakt worden voor elk element. Hierbij is de keuze van het type element belangrijk, deze bepaalt immers met welke interpolatiefuncties de K matrix gemaakt wordt (B is afgeleide van N, N is de matrix met interpolatie functies). Uiteindelijk worden alle K en r matrixen van de elementen geassembleerd naar een System of Matrix equations. Deze System of Matrix equations wordt naar een solver gestuurd, welke de nodal displacements berekend. Dit kan hij direct of iterative doen (zie kopje solving options). Met behulp van de nodal displacements en de gekozen elementen (en daarmee de gekozen interpolatiefuncties) kunnen op basis van Gauss punts-integratie de displacements uitgerekend worden in de integratie punten. Hierbij is wederom de keuze voor het type element erg belangrijk: deze bepaalt hoe de nodal displacements uiteindelijk geïnterpoleerd worden naar de displacements in de integratiepunten. Als dit niet met de juiste interpolatie functie gebeurd, kan locking ontstaan of kunnen er grote onnauwkeurigheden geïntroduceerd worden. Daarnaast is de keuze voor het aantal ‘punts-integreren’ integreren ook belangrijk omdat dit iets zegt over de nauwkeurigheid waarmee de nodal displacements omgezet worden in displacements in de integratiepunten. Vervolgens worden met behulp van de berekende displacements in de integratiepunten, de strains berekend door deze af te leiden, immers: π = ππ’/ππ₯. Op basis van de strains wordt met behulp van materiaal eigenschappen en Hooke’s law (voor lineaire materialen) de stresses berekend. Let op: dit gebeurd dus allemaal in de integratiepunten en niet op de nodes! De stresses/strains in de integratiepunten worden vervolgens geprojecteerd op de nodes, waardoor ook de stresses/strains in de nodes bekend zijn (zie onderstaande afbeelding). Dit wordt gedaan door averaging (College 6 ‘errors’ van Semih) ο· ο· ο· ο· Work ο· De definitie van K en r volgens (25) en (26) zijn op basis van force equilibrium bepaald. Hetzelfde kan gedaan worden voor work: πΌπ−π = π ∗ π = βπ½π (elastische energie) πΌπ−π = π π» π = βπ½π πΌπ−π = π π» π = π π» π π²π π (scalar vorm is ½ kx2) Dit omgezet naar potentiele energie: Ππ = π π» π π²π − π π π» π Bovenstaande vergelijking komt terug bij het implementeren van constraints. Omdat de natuur streeft naar een zo laag mogelijke potentiele energie, moet de afgeleide van bovenstaande vergelijking gelijk zijn aan nul (minimum): Kd – r = 0 volgt dus ook uit de work theorie. Boundary conditions, constraints en interactions ο· ο· BC’s zijn super easy: bij BC’s worden er voor nodes (onafhankelijk van elkaar) bepaalde displacements (of juist geen displacementrs) voorgeschreven (single point constraint). Hierdoor kun je gewoon rijen/kolommen uit de System of Matrix equations weghalen. BC’s hebben daardoor geen/positieve invloed op de oplosbaarheid van de System of Matrix equations, omdat deze alleen aangepast of gereduceerd wordt. Constraints zijn in tegenstelling tot BC’s relaties tussen bepaalde nodes. Hierdoor veranderd de K matrix aanzienlijk, wat gevolgen heeft voor de oplosbaarheid van het systeem. Constraints kunnen op 4 manieren worden toegepast: o Simpelweg verwerken in de K-waarden in de K-matrix o Transformation of Equations toepassen o Lagrange multipliers toevoegen o Penalty method equation toevoegen Verwerken in de K-waarden in de K-matrix Een nadeel hiervan is dat als er grote verschillen zitten tussen de waarden op de diagonaal van de K-matrix, kan dit leiden tot numerieke onnauwkeurigheid/instabiliteit: ill-conditioned system Transformation of Equations toepassen Bij transformations of Equations worden de constraint equations omgeschreven in matrix-vector vorm. Vervolgens wordt deze matrix-vector equation omgeschreven naar een vorm van d = Tdm + q waardoor deze ingevuld kan worden in de Kd = r Dit leidt dus tot een nieuw sytseem: Kmdm=rm Een nadeel hiervan is dat de K matrix aangepast moet worden met dure computational effort Een voordeel hiervan is dat de #DOF constant blijft, doordat de d vector niet wordt vergroot. Lagrange multiplier toevoegen Bij het toevoegen van Lagrange multiplier wordt er in de term Ππ = π π» π π²π − π π π» π een extra term + ππ» (πͺπ − π) toegevoegd. In de System of Matrix equations leidt dit tot een extra DOF: Een nadeel hiervan is dus dat #DOF toeneemt per constraint Een voordeel is dat de K-matrix intact blijft For contact geeft Lagrange een exacte oplossing Penalty method equation toevoegen Bij de Penalty method wordt er in de term Ππ = π π» π π²π − π π π» π een extra term toegevoegd. Wanneer de minimale potentiele energie wordt bepaald, leidt dit tot het volgende System of Matrix equations: Een nadeel hiervan is dat als de Penalty factor α ο ∞, dan kan dit resulteren in een ill-conditioned system (groot verschil binnen de K matrix) Een voordeel hiervan is dat de K matrix intact blijft, eigenlijk veranderd deze wel, maar met goedkope computational effort Een tweede voordeel hiervan is dat de #DOF gelijk blijft For contact geeft Penalty method een benadering (gap or penetration) ο· Interactions zijn toepassing van constraints o Coupling of DOFs ο§ Kintematic coupling Reference node vs. surface All DOFs coupled invididually Exact solution ο§ Tie Coupling Surface vs. surface Nodes do not need to be coinciding Interpolated solution o Friction o Contact between bodies ο§ Lagrange Multipliers geven een exacte oplossing ο§ Penalty Method geeft een gat of penetratie Solving options ο· Er zijn twee soorten solvers: Direct solvers Deze zijn voor lineaire problemen van ‘reasonable size’ o Inverteren: Kd = r ο d = K-1r Het inverteren van de K-matrix is tijdrovend en numeriek instabiel: O(N3) De K-1 matrix heeft geen band structuur meer, waardoor het vermenigvuldigen met r langer duurt o Gauss Eliminatie: rijen bij elkaar optellen zodat alles onder de diagonaal 0 wordt. Vervolgens kan de onderste oplossing gevonden worden en met backsubstitution de rest gevonden worden. Dit kost O(b2N) + O(Nb), dit is veel goedkoper dan O(N3) ο· Iterative solvers Deze zijn voor non-lineaire problemen van ‘large size’ o Jacobi ο§ Met behulp van een initiële gok de displacements berekenen o Gauss-Seidel ο§ De displacement in de eerste node die is berekend met behulp van een initiële gok meteen gebruiken voor de displacement van de tweede node enz., in plaats van deze ook berekenen met een gok (zoals bij Jacobi) o Residual based Let op: in ‘Ku – f = r’ is u=d en f=r in de rest van de theorie Locking Zoals onder het kopje ‘Oplosvolgorde FEM software’ wordt uitgelegd, is de element keuze erg belangrijk. Als het verkeerde element wordt gekozen kan er locking ontstaan. Er zijn twee verschillende soorten locking: shear locking en volume locking ο· Shear locking Als een beam wordt gedeformed door bending, moeten volgens Euler-Bernoulli de volgende definities waar zijn: Vooral de bovenste en onderste zijn van belang. Bij een biquadratic 2D element (8 nodes), lijden de interpolatiefuncties tot de volgende partiële afgeleiden: Voor deze afgeleiden is het mogelijk om aan de voorwaarde voor εxx = -Y/R en ϒxy = 0 tegelijkertijd te voldoen, door de juiste waarden voor de a’s en b’s te kiezen. Bij een bilineair 2D element (4 nodes), lijden de interpolatiefucnties tot de volgende partiële afgeleiden: Voor deze afgeleiden is het onmogelijk om a’s en b’s te kiezen waarbij er tegelijkertijd aan de voorwaarde voor εxx = -Y/R en ϒxy = 0 wordt voldaan. Conclusie: shear locking treed op als er een te laag orde element gekozen wordt ο· Volume locking Wanneer de poisson ratio van een material gelijk is aan ν = 0.5 dan gebeuren er gekke dingen, omdat het volume in alle richtingen constant blijft: Waarom dan locking? Voorbeeld: 2D, plane strain, 4 node, bilineair quadrilateral element. Plane strain wil sowieso al zeggen εzz = 0, dus dan geldt εxx + εyy = a2 + a4y + b3 + b4x = 0. Dat kan alleen als a2 + b3 = 0, a4 = 0 en b4 = 0, oftewel 3 nieuwe constraint equations. Als je naar dit plaatje kijkt krijg je bij bijvoorbeeld een nieuw 11e element maar 1 nieuwe node met 2 DOFs erbij, maar doordat je een nieuwe element krijgt, krijg je er 3 constraint equations bij. Meer constraints dan DOFs, dus locking. Dit kan ook niet opgelost worden door een hoger orde element te kiezen (bijvoorbeeld 8 nodes), dan komen er bij elke nieuw element 6 DOFs bij, maar ook 6 constraint equations, nog steeds locking dus. Dit probleem kan opgelost worden met reduced integration. Door reduced integration vallen precies de delen van de polynoom weg die voor constraint equations zorgen. Als deze onderdelen wegvallen, betekent dit dus dat er weer DOFs vrij komen, waardoor locking is opgelost. Een manier waarop je volume locking kunt voorspellen is ratio #π·ππΉ π‘πππππ£ππππ #πΌπ π‘πππππ£ππππ #π·ππΉ π‘πππππ£ππππ #πΌπ π‘πππππ£ππππ < 1 is locking > 1 is geen locking. Dit is wel beetje skufte rosserij maar het werkt. Error analysis Errors worden veroorzaakt door de keuze van de elementen, zowel het type als de grootte. Om te weten hoe goed de simulatie is, moet de error geanalyseerd worden. Dit kan dmv van nodal averaging en patch recovery/least squares approximation. ο· Nodal averaging (fout berekenen in de nodes) Makkelijk uit te voeren Er zit sowieso een grotere fout in de nodes omdat deze geprojecteerd zijn vanuit de integratie punten (zie eerste hoofdstuk) ο· Patch recovery/least squares approximation (fout berekenen midden in het element) Nauwkeurige error estimation, omdat de waardes op de integratiepunten gepakt worden Kost meer effort ο· ο· ο· Hoeveel er verbeterd kan worden op basis van de error hangt af welke error je wilt verbeteren. Displacement error verbeteren = O(h2) ο element size *½ betekent displacement fout *¼ Strain error verbeteren = O(h) ο element size *½ betekent strain fout *½ Das niet zo heel drastisch dus Om de fout veroorzaakt door de interpolatiefunctie te verbeteren = O(hp+1-r) Waarin p de order van de interpolatiefunctie is en r aangeeft met welke afgeleide je werkt (r=0 voor displacement, r=1 voor strain). Plates en shells In de engineering leef zijn veel dunwandige objecten Deze simuleren met solid elements zou dom zijn: je hebt er knetters veel nodig (want aspect ratio rond de 1 is nice) dus je kunt niet hele platte elementen maken, je hebt veel nodig dus dat is nogal ineffcient. Daarom zijn speciale shell elements ontwikkeld. Er bestonden al platte elementen, maar deze maken alleen gebruik van bending (out-ofplane deformations). Deze kun je niet echt gebruiken omdat ze in-plane (membrane) deformations niet mee nemen. Shell elementen doen dit wel: op twee verschillende manieren. ο· Straight shells Deze combineren bending (k) deformations op basis van plate theorie en membrane (η) deformations op basis van 2d plane stress theorie in een stijheidsmatrix zoals: Belangrijk: er staan alleen waarden op de diagonaal, dus er is geen koppeling tussen de bending stijfheid en membraan stijfheid Deze koppeling is echter wel belangrijk wanneer een dunwandige plaat van zichzelf al gekromd is. Deze kromming draagt veel bij aan de stijfheid. ο· Curved shells Daarom zijn in curved shells de off-diagonal terms non-zero. Hierdoor zijn de bending en membrande deformations gekoppeld: er is extra stijfheid tegen bending, omdat de plaat stijfheid heeft tegen langer/korter worden (membrane stiffness). Omdat deze membrane stiffness voor dunne platen vaak veel hoger is dan de bending stiffness, lijdt dit tot aanzienlijk andere resultaten dan de ongekoppelde straight shells. Curved shells kunnen echter voor membrane locking zorgen: De Arch theory zegt dat the deformation van een arch komt door axiaal, radiaal en buiging. De axiale en radiale vervormingen leiden tot membrane components (eerste twee in onderstaande afbeelding). De axiale en buiging leiden tot een bending component (derde in onderstaande afbeelding). Wanneer bepaalde interpolatiefuncties gekozen worden, en een beam gebogen wordt (waardoor de bending components nonzero zijn), zijn de membrane termen kneiters hoog (door hoge machts termen in de membrane components). Voor dikkere beams is dit effect alleen maar groter. Conclusie: kies niet een type element waarbij dat gebeurt (u hogere orde dan w?) Dynamics Lumped: o Quick to solve, not very accurate Consistent: o Slower to solve, higher accuracy ο· Semi-discrete equation of motion: ο· To find the natural/eigen frequency, some assumptions are made ο· The harmonic time response is used for steady state loading o Bearings o Gearboxes o Pumps o Combustion engines o Noise control o Bridge vibrations o Train response o Structure/system response o Etc. Damping must be included: ο· Dynamic problems need to be reduced in size, because they are very costly. Dense grids/meshes are necessary for accurate estimation of stresses, but not for dynamic response. There are two methods to reduce the size of a dynamic problem o Guyan Reduction o ο· Modal reduction The transient response is used for: o Impacts o Crashes o Earthquakes o Non-stationary systems o Wind turbines operation o Response to positioning (precision mechanisms) Implicit time integration Explicit time integration Rewrite everything in terms of d’’n+1 and d’n+1 to find the solution for dn+1 expliciete Let op, links staat een M en een C. Gelukkig kunnen we voor M een lumped system nemen, waardoor we die niet hoeven te inverteren. In kleine tijdsdomeinen kun je c verwaarlozen. Daarom geeft het een displacement.