Kursplan för Beräkningsmetoder för kontinuumfysik

Kursplan fastställd 2021-02-08 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnComputational continuum physics
  • KurskodTIF330
  • Omfattning7,5 Högskolepoäng
  • ÄgareMPPHS
  • UtbildningsnivåAvancerad nivå
  • HuvudområdeTeknisk fysik
  • InstitutionFYSIK
  • BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 85129
  • Blockschema
  • Sökbar för utbytesstudenterNej

Poängfördelning

0119 Projekt 7,5 hp
Betygsskala: TH
7,5 hp

I program

Examinator

Gå till kurshemsidan (Öppnas i ny flik)

Behörighet

Grundläggande behörighet för avancerad nivå
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Särskild behörighet

Engelska 6
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Kursspecifika förkunskaper

Grundläggande fysik och matematik, programmering och numerisk analys. Programmering på den nivå som nås i kurserna Bayesiansk dataanalys och maskininlärning (Python) och FKA121 Beräkningsfysik (C), och numerisk analys på nivån i FKA121 Beräkningsfysik. Bakgrundskunskaper inom grundläggande vätskedynamik och/eller elektromagnetism är en fördel.

Syfte

Syftet med kursen är att ge en översikt över beräkningsmetoder för att beskriva egenskaper och dynamik för kontinuerliga system, exempelvis vätskor och gaser, elektromagnetiska fält och plasmor. I kursen kommer också metoder för hur dessa system kan behandlas att exemplifieras, något som är av stor vikt för ett brett spektrum av tillämpningar. Kursen kommer även att ge en grund för avancerade metoder inom beräkningsfysik, med tillämpningar på ett stort antal problem inom grundläggande och tillämpad forskning och utveckling. I kursen tränas att använda Python, C och delar av C++ för att lösa ovan nämnda problem.

Lärandemål (efter fullgjord kurs ska studenten kunna)

· Diskretisera fysikaliska ekvationer med avseende på de ingående variablerna
· Förklara grundläggande tidsintegrationsmetoder
· Förklara hur man implementerar initial- och randvillkor
· Förklara hur man löser stationära problem, exempelvis Poisson-ekvationen
· Förklara hur man löser sådana ekvationer på ett tillförlitligt sätt
· Förklara hur man behandlar multi-fysikproblem
· Diskutera vanliga beräkningsmetoder och -verktyg för kontinuumsystem
· Använda metoder som exempelvis finite-difference time-domain, finita element, planvågsexpansion, momentmetoden
· Använda metoder såsom finite-volume-, spektral- och pseudo-spektralmetoden
· Använda Courant-Friedrichs-Lewy-villkor, explicit och implicit integrering, operatorsplitting, geometrisk integration, stabilitetsbevarande integrationsmetoder
· Identifiera och åtgärda numeriska effekter
· Identifiera och förklara bevarandeegenskaper, såsom partikelantal och -massa, energi, fasrumsbevarande, positivitetsbevarande metoder samt veta hur man testar bevarandeegenskaper
· Identifiera och utvärdera klassiska testproblem, kontrollera konvergensegenskaper, method of manufactured solutions
· Skriva en teknisk rapport där beräkningsresultat presenteras och förkla-ras
· Kommunicera resultat och slutsatser på ett klart och tydligt sätt.

Innehåll

· Finita differens-tekniken och relaterade tekniker.
· Spektrala metoder.
· Exempel på kontinuumsystem. 
· Övning i att använda Python, C och delar av  C++ som programmerings-verktyg.

Organisation

Grundläggande teori och metoder täcks av en serie föreläsningar. Studenterna tränas i att tillämpa teori och metoder via övnings- och inlämningsuppgifter. En viktig del som är genomgående i kursen är praktiska övningar av beräkningsmetoder via en given uppsättning problem inom projekt. Projekten redovisas i en skriven rapport. Projekten genomförs normalt sett i grupper om två.

Litteratur

Den huvudsakliga litteraturen i kursen är föreläsningsanteckningar. Vidare re-kommenderad litteratur är:  

Programmering::

  • Introduction to Numerical Programming, A Practical Guide for Scientists and Engineers Using Python and C/C++, Titus Adrian Beu
  • A Primer on Scientific Programming with Python by Langtangen, Hans Petter
  • The C Programming Language, by Brian W. Kernighan and Dennis M. Ritchie
  • C++ Primer by Stanley B. Lippman  (Author), Josée Lajoie  (Author), Barbara E. Moo

Finita differens metoder:

  • Computational physics, Richard Fitzpatrick
  • Computational Physics, Mark Newman

Spektrala metoder:

  • Spectral methods and their applications, Guo Ben-Yu
  • Chebyshev and Fourier Spectral Methods, John P. Boyd

Avancerade metoder för kontinuumsystem:

  • Computational physics, J. M. Thijssen
  • Plasma Physics via computer simulation, C. K. Birdsall, A. B. Langdon
  • Computational physics, Richard Fitzpatrick

Examination inklusive obligatoriska moment

Kursen innehåller programmeringsuppgifter, beräkningsuppgifter samt teoriuppgifter via de projekt som arbetas med under hela kursen. Examination sker via rapporter som lämnas för bedömning under kursens gång. Alla delar av rapporterna betygsätts för att ge ett slutbetyg.

Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om pedagogiskt stöd på grund av funktionsnedsättning.