Numerisk lösning av PDE: Comsol Multiphysics

Relevanta dokument
FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

Studio 6: Dubbelintegral.

TAIU07 Matematiska beräkningar med Matlab

KTH 2D1240 OPEN vt 06 p. 1 (5) J.Oppelstrup

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

Tynker gratisapp på AppStore

CHALMERS Finit Elementmetod M3 Institutionen för tillämpad mekanik. Teorifrågor

2 Matrisfaktorisering och lösning till ekvationssystem

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Utforska cirkelns ekvation

TMA226 datorlaboration

Föreläsning 14: Exempel på randvärdesproblem. LU-faktorisering för att lösa linjära ekvationssystem.

FEM1: Randvärdesproblem och finita elementmetoden i en variabel.

LABORATION cos (3x 2 ) dx I =

FYSIKENS MATEMATISKA METODER

Tentamen, del 2 DN1240 Numeriska metoder gk II för F

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Fouriers metod, egenfunktionsutvecklingar.

Kontinuerliga system, Datorövning 3

Kontinuerliga system, Datorövning 3

Introduktion till PDE med Comsol

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

Rita även grafen till Fourierserien på intervallet [ 2π, 4π]. (5) 1 + cos(2t),

= e 2x. Integrering ger ye 2x = e 2x /2 + C, vilket kan skrivas y = 1/2 + Ce 2x. Här är C en godtycklig konstant.

Tentamen del 1 SF1511, , kl , Numeriska metoder och grundläggande programmering

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

Uppgift 1. Minimeringsproblemet löses med en Monte Carlo algoritm:

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

Lösning av två dimensionella spänningsproblem med finit elementmetod i MATLAB. Peter W Möller

Programmering. Scratch - grundövningar

SIMULERINGAR MED FINITA-ELEMENT-METODEN inom ELEKTROMAGNETISM

MMA127 Differential och integralkalkyl II

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer

Laboration 1, M0039M, VT16

Laboration 2. Laborationen löses i grupper om två och redovisas individuellt genom en lappskrivning den 3/10. x = 1±0.01, y = 2±0.05.

15 februari 2016 Sida 1 / 32

Lösningsförslag till problem 1

Konvergens för iterativa metoder

Projekt om Finita Elementmetoden i kursen PDE F, TMA690, HT 2012

Laboration: Vektorer och matriser

En kort introduktion till. FEM-analys

Föreläsning 5. Approximationsteori

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

SF1633, Differentialekvationer I Tentamen, torsdagen den 7 januari Lösningsförslag. Del I

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

FFM234, Datoruppgift 2: Värmeledning

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

% Föreläsning 3 10/2. clear hold off. % Vi börjar med att titta på kommandot A\Y som löser AX=Y

Del I: Lösningsförslag till Numerisk analys,

Kompositberä kning i Solidworks

Laboration: Brinntid hos ett stearinljus

Workshop PIM 2 - PowerPoint

Lösningsförslag till inlämningsuppgift 3 i Beräkningsprogrammering Problem 1) function condtest format compact format long

Laboration 1. Ekvationslösning

Rita även upp grafen till Fourierseriens summa på intervallet [ 2π, 3π], samt ange summans värde i punkterna π, 0, π, 2π. (5) S(t) = c n e int,

Ordinära differentialekvationer,

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Uppdrag för LEGO projektet Hitta en vattensamling på Mars

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 11-14, 16/11-28/

Mayas UI. Grundläggande UI. Dag Stensson 2009

Den tidsberoende Schrödingerakvationen ges i allmänhet av

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet april. Liten introduktionsguide för nybörjare

Tentamen i Matematik 2: M0030M.

1.6 Castiglianos 2:a Sats och Minsta Arbetets Princip

Laboration 6. Ordinära differentialekvationer och glesa system

Egenvärdesproblem för matriser och differentialekvationer

Laboration 1. x = 1±0.01, y = 2±0.05. a) Teoretiskt med hjälp av felfortplantningsformeln (Taylor-utveckling).

Träff 1 Skissa & Extrudera

Linjära ekvationssystem

Manual för ett litet FEM-program i Matlab

Hjälp för Timmerweb Mobil 3

Sidor i boken f(x) = a x 2 +b x+c

Vrida detalj samt flytta nollpunkt 1

Numerisk Analys, MMG410. Lecture 13. 1/58

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A. 1. En svängningsrörelse beskrivs av

6. Temperaturen u(x) i positionen x av en stav uppfyller värmeledningsekvationen. u (x) + u(x) = f(x), 0 x 2, u(0) = 0 u(2) = 1,

har ekvation (2, 3, 4) (x 1, y 1, z 1) = 0, eller 2x + 3y + 4z = 9. b) Vi söker P 1 = F (1, 1, 1) + F (1, 1, 1) (x 1, y 1, z 1) = 2x + 3y + 4z.

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Laboration 1. 1 Matlab-repetition. 2 Störningsräkning 1. 3 Störningsräkning 2

Linjär algebra med tillämpningar, lab 1

Gamla tentemensuppgifter

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Institutionen för matematik KTH. Tentamensskrivning, , kl B1202/2 Diff och Trans 2 del 2, för F och T.

BANVERKTYGET. Verktygen

Lösningar till tentamen i Transformmetoder okt 2007

Omtentamen i DV & TDV

Introduktion till MATLAB

Matematik 2 Digitala övningar med TI-82 Stats, TI-84 Plus och TI-Nspire CAS

Övningsexempel och labuppgifter, Lab 5-2D1242

Del I. Modul 1. Betrakta differentialekvationen

Bemästra verktyget TriBall

Matrismetod för analys av stångbärverk

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A. t 2

Transkript:

J.Oppelstrup p 1 (5) Numerisk lösning av PDE: Comsol Multiphysics I denna lab ska du bekanta dig med programmet Comsol Multiphysics för numerisk lösning av PDE med finita element. Programmet har många faciliteter och vi kommer bara att använda en liten del. Hjälp I menyraden överst finns längst till höger en hjälp-knapp? som ger tillgång till all dokumentation (om man installerat alla filer). Lämpligt att starta med Quick Start, men den är ganska omfattande, och GUI-funktionerna är förhoppningsvis ganska intuitiva. Exempel 1, Poissons ekvation på en ellips. Starta comsol. I den första skärmbilden ModelNavigator väljer vi 2D och ApplicationModes>ComsolMultiphysic s>pdemodes>classicalpdes>poissonäs Equation. Här syns också att elementtypen är Lagrange P2-trianglar, dvs., lösningen approximeras med styckevis andragradspolynom, ett över varje triangel. Det går att ändra på sedan. Nästa skärmbild visar arbetsytan och man arbetar oftast från vänster till höger i menyraden: 1. Skapa geometri (Draw) 2. Definiera PDEn (Physics) 3. Sätt randvillkor (Physics) 4. Gör elementnät (Mesh) 5. Lös (Solve) 6. Plotta (Postprocessing) 7. Spara modellen (File) Options ger faciliteter som att definiera konstanter och uttryck. Praktiskt att ha namn på värdena på modellparametrar som värmeledningstal, specifikt värme, etc. Geometri Man bygger geometrin i ett rit-program från elementar-kroppar, i 2D rektanglar och ellipser, eller ytor som begränsas av Bezierkurvor. Delkropparna sätts ihop med mängdoperationer. Vi tar en ellips, centrum i origo och halvaxlar 1 och 0.2. Observera att objekten snäpps mot rutnätet, ändra rutnätet under Options>GridSettings om

J.Oppelstrup p 2 (5) det behövs. Om objektet som här består av en enda delkropp kan vi direkt gå vidare. Definiera PDE Physics>SubdomainSettings (det finns boundary också, strax ) Här står PDEn: - div (c gradu) = f och vi ska definiera koefficienten c och högerledet f. Man kan ge funktioner av x,y, u, ux, uy och (om tidsberoende) t. Som synes finns bara en subdomän, ellipsen. Välj den och acceptera c = f = 1 genom OK. Randvillkor Physics>BoundarySettings Varje ellips ger fyra ränder. Vi väljer alla med ctrl-a; Det går att peka på dem också på arbetsytan. Default-randvillkoret är uppenbarligen Dirichlet: h u = r med h = 1 och r = 0 och vi byter till r = sin(10x) för att få lite variation, OK. Elementnät Ikonen triangel ger ett nät. Det ser bra ut, OK. Man kan noga styra elementgenereringen med parametrar som sätts under Mesh>MeshParameters. Lösning Man kan lösa de genererade ekvationerna med ikonen =. Vi går först in under Solve>SolverParameters och ser vilka möjligheter som bjuds. Med vårt val av c, f och randvillkor är problemet linjärt, så förvalet stationary linear är bra, OK. Detaljer som kan vara nog så viktiga för stora problem är t ex val av numerisk lösare för de linjära ekvationssystemen kan styras här. Visserligen står det Unsymmetric om matrisen (och den är symmetrisk) men vi accepterar det, OK, och löser med =.

J.Oppelstrup p 3 (5) Efter 0.1 sekunder har systemet med 613 obekanta ställts upp och lösts och lösningen målats som färgade iso-ytor på arbetsytan, och log-raden säger Number of degrees of freedom solved for: 613 Solution time: 0.093 s Spara modellen Som.mph-fil med all information, ett binär-format som bara Multiphysics förstår, eller som.m-fil som är text-fil och förstås av matlab och matlab-klonen Comsol Script. Där saknas dock detaljer i nätgenereringen; nät och lösningar sparas på separat binärfil (som bara Multiphysics förstår). Båda filformaten öppnar man i Multiphysics under File med Open. Man kan också (överkurs) starta Comsol Script och köra comsol-modeller sparade som m-filer, och exportera resultat från Multiphysics till Script för vidare bearbetning, etc. Konvergensstudie Vi vill se hur lösningen konvergerar och beräknar u i centrum. Välj Postprocessing>DataDisplay>Subdomain där vi ger koordinaterna för centrum och ser Value: 0.020201, Expression: u, Position: (0,0) i log-raden. Förfina nätet reguljärt med fyrtriangelikonen, lös igen, skriv ut u(centrum) igen: Number of degrees of freedom solved for: 2345 Solution time: 0.188 s Value: 0.019069, Expression: u, Position: (0,0) och igen, och igen,... Prova upp till ca en miljon frihetsgrader, sedan tar minnet slut. Konvergens: u(0,0) diff. 1201 69-1132 231 162 234 3 231-3 Konvergensordningen ska för reguljära lösningar bli 2 i energi-norm och 3 i maxnorm. Här tycks det i alla fall gå fort, tills avrundningsfelen stör bilden. I allmänhet kan vi inte vänta oss samma mycket regelbundna konvergens som man ser med t ex trapetsregeln för kvadratur på snälla funktioner, eftersom elementnätet är så oregelbundet. Inte heller blir det alltid precis samma nät vid två likadana körningar! I nätgenereringsprocessen ingår val som styrs av (pseudo-)slumptal. Prova nu med linjära ansatsfunktioner istället. Lagrange P1 element väljs under Physics>SubdomainSettings>Element Experimentet upprepas: Långsammare konvergens, ordning runt 2.

J.Oppelstrup p 4 (5) #dof tid u(0.0) diff. 613 0.094 0.019103 2345 0.156 0.019115 12 9169 0.547 0.019205 90 36257 2.172 0.019224 19 144193 11.204 0.019230 6 Exempel 2 Instationär värmeledning Starta ny modell genom att välja File>New,välj PDE: ApplicationModes>ComsolMultiphysics>PDEModes>ClassicalPDEs>Heat Equation. Geometri Samma som ovan: en ellips. Definiera PDE Physics>SubdomainSettings Välj den enda domänen, sätt f = 0 och acceptera c = 1. Välj u = 1 som begynnelsevillkor under fliken init, därefter OK. Randvillkor Physics>BoundarySettings Vi väljer alla med ctrl-a; default-randvillkoret är Dirichlet: Sätt r = sin(10x)sin(10t), acceptera h = 1, OK. Elementnät Triangel-ikonen ger ett nät. Förfina reguljärt en gång med fyrtriangelikonen, OK. Lösning Se under Solver Parameters: Spar lösningen för t = 0:0.1:1, OK, feltoleranser 0.001 (absolut) och 0.01 (relativt), varför inte. Lös med =. Plottning Plot Parameters: Välj att visa u som färgfält (surface, default) och som z-data (under fliken height data, klicka i checkbox), apply. Eftersom randvillkoren är periodiska med period 2π/10 svänger också lösningen in mot en periodisk lösning. Nu räcker inte 10 snapshots till för snygg animering, så på Animation-fliken väljs interpolated, t ex 0:0.025:1 i stället för förvalet 0:0.1:1. Parametervariation Byt till c = 0.1, kör igen. Hur lösningen ändras när c väljs liten kan man se genom att beräkna periodiska tvungna svängningen: u = e iωt U(x,y), ω = 10, ger Helmholtz ekvation, " i# c U = $U U = sin(10x) på randen. där alltså lösningen kommer att variera över en längdskala L = c. Om L << lilla " halvaxeln kommer lösningen längre än L från randen att bli liten (0). Man behöver

J.Oppelstrup p 5 (5) alltså också elementstorlek << L för att lösa upp lösningens variation. Du kan förstås också hastigt lösa Helmholtz-problemet med Multiphysics som förstår komplexa tal, men poängen är att utifrån parametervärdena dra slutsatser om hur lösningen ska se ut.