Projekt-förslag

 

1. Titrering

Simulera titrering! Ett ämne i en (2-dimensionell) behållare reagerar med ett ämne som tillförs droppvis. Detta ger ett system av två ickelinjära PDE. Om vi antar att vi inte har någon konvektion (så att ämnena bara sprids genom diffusion) har vi:

        du_1/dt - div a grad u_1 = - c u_1 u_2,
	du_2/dt - div a grad u_2 = - c u_1 u_2 + f(x,t),
där u_1 är koncentationen av ämnet i behållaren och u_2 är koncentrationen av ämnet som tillförs. Här har vi antagit att ämnena reagerar enligt A + B -> C, men kanske reaktionen du vill simulera snarare är 2A + B -> C eller något annat? Konsultera en kemibok! Beräkna koncentrationerna av ämnena som funktion av rummet och tiden och skapa en tjusig film av din beräkning!

Extrauppgift: För att titrera ordentligt behöver man ju en magnetomrörare! Lägg till konvektion till ditt system, där konvektionsfältet b = b(x,t) ges av ett cirkulärt hastighetsfält från magnetomröraren. Konstruera ett fält b som är divergens-fritt, dvs div b = 0.

2. Pattern formation

Läs artikeln Complex Patterns in a Simple System av John E. Pearson (Science vol. 261 (1993) pp. 189-192) och simulera mönster-formering genom att lösa det föreslagna diffusions-reaktions-systemet av PDE. Försök finna intressanta mönster utifrån olika begynnelse-data.

Extrauppgift: Gör tidsstegningen adaptiv! Om ni använder cG(1) (Crank-Nicolson), basera tidssteget k på

	S k R = TOL,
där S = S(T) är en (okänd) stabilitetsfaktor, som vi sätter till 1, och R är residualen för det system av ODE som ni löser. (PDE-systemet blir ju ett ODE-system när ni har diskretiserat i rummet.)

3. Lorenz (ODE)

Läs kapitlet om Lorenz-systemet i boken och anta The Lorenz challenge, dvs beräkna en korrekt lösning till Lorenz-systemet under ett så långt tidsintervall som möjligt. För en referenslösning, se följande preprint. Lyckas ni komma ända fram till T=25?

Lös även det duala problemet och beräkna stabilitetsfaktorn S = S(T). Hur snabbt växer stabilitetsfaktorn?

Extrauppgift Försök komma längre än till T=25 genom att implementera en högre ordningens metod, t.ex. cG(2). Hur långt kommer ni nu? Tips: ta större tidssteg!

4. Mekaniska system (ODE)

Konstruera ett komplicerat mekaniskt system bestående av massor, fjädrar och dämpare. Systemet kan vara en bro som kränger i vinden, en boll som studsar på en studsmatta, en gubbe som hoppar bungy-jump, eller en kub som studsar på ett hårt golv. Här finns möjlighet att skapa imponerande filmer med 3d-grafik!

Extrauppgift: Gör tidsstegningen adaptiv och jämför effektiviteten med och utan adaptivitet.

5. DOLFIN

Implementera en modul för system av konvektions-diffusions-reaktions-ekvationer i DOLFIN och använd detta för att simulera titreringsproblemet som beskrivits ovan. Obs! Detta kräver kunskaper i C++-programmering! Det är också troligt att ni måste sitta på ett riktigt datorsystem. (Alltså UNIX/Linux)

Extrauppgift: Ingen extra insats behövs för högt betyg, grunduppgiften är tillräcklig.

6. Värmeledning i ett hus

Skriv ett program för värmeledning (obs! assembleringen, lösningen av Poissons randvärdesproblem samt handräkning av mass- styvhet- och randmatriser och data) för husproblemet (see studiövning 1-2) där huskropp och tak bildar två separata delomdråden 1 resp. 2.

Extrauppgift: Genomför uppgiften med en förfining (genom att binda node 6 med noderna 5 och 3, och node 7 med mittpunkter av taksträckor från noderna 3 till 4, resp 4 till 5).

7. Nät-generering

Skriv ett program som förfinar ett givet nät, utifrån en lista över vilka trianglar som skall förfinas. Notera att om man förfinar en triangel, så måste man även förfina triangeln intill för att undvika så kallade hängande noder!

Extrauppgift: Skriv en nätgenerator som av ett givet polygon-område skapar en triangulering! Vilken algoritm ni vill använda är helt upp till er själva. Ni kan säkert själva komma med en hel del innovativa förslag om hur man kan skapa trianguleringen. Kanske kan man utgå från ett regelbundet rutnät och sedan justera på lämpligt sätt på randen? Eller vill ni kanske hellre skapa en Delaunay-triangulering?

8. Kvadratiska element

a) Bestäm basfunktionerna för kvadratiska element karakteriserade av värdena i hörn och mittpunkter på trianglarnas sidor.

b) Beräkna mass- och styvhetsmatriserna för dessa element (både för hand och med MATLAB) för Poisson's ekvation:

        - div (grad u) = f, i (0,1)x(0,1), 
	 u = 0,             på randen.

c) Lös värmeledningsekvationen med kvadratiska element för olika val av f och jämför den beräknade lösningen med den du får fram med vanliga linjära element. (Välj ett högerled för vilket du vet den exakta lösningen och beräkna felen.)

Extrauppgift: Betrakta en triangulering skapad från ett regelbundet kvadratiskt hxh-nät, där varje hxh-kvadrat delas i 2 trianglar längs diagonalen (från övre vänstra till nedre högra hörnet). Tillämpa typ 2 triangulering och tag fram dem finita differans ekvationer som svarar mot varje grid-punkt. Vilka differetialekvationer är konsistent med dessa?

Till er hjälp finns det en liten snabb-kurs i mappning till referenselement.

9. Scattering (spridning)

Betrakta våg ekvationen i 2 dimensioner:

u_{tt}-div(grad u)=f(t,x), i D
sätt
u(x,t)=u(x)exp(i w t)
för att få Helmholtz ekvationen för 2 dimensionella akustisk spridning:
div(grad u)+w^2 u=-exp(-i w t)f(t,x),
Lös detta problem med olika f (t.ex. f=exp(i w t), svarande mot periodisk källa med frekvens w) och lämpliga rand data på en begränsade område D. Använd BE och CN för tidsdiskretisering och cG(1) för rumsdiskretisering och skriv en finite rummet kod, kör och analysera resultaten.

Extrauppgift: Låt f=0, betrakta en spridare med randen L, och låt nu D vara obegränsade utanför spridaren. Lös detta problem med Dirichlet rand data på L och homogen Dirichlet rand data på randen av ett trunkerade begränsade område som approximerar D.

10. Fermi ekvation

Betrakta Fermi ekvationen

u_x+z u_y=k u_{zz},
där k är liten x , y och z är variabler i symmetriska begränsade intervaller på respektive koordinat-axlar. Därför är område kuben Q=[-x_0, x_0]x[-y_0, y_0]x[-z_0,z_0]. Låt n vara utåtriktade normalen. Ekvationen kan tolkas som konvektion-dominerande konvektion-diffusion ekvation:
b.grad u=k u_{zz},   b=(1,z,0).
Associera problemet med rand data:
(rv1)  u_z=0, för z=z_0 och z=-z_0,
(rv2)  u=0,   för n.b<0.
(rv3)  u(0, y,z)=f(x,y)
Bestäm en exakt läsning då k är konstant. Betrakta "x" som "tiden". Diskretisera ekvationen med BE och CN i x samt med cG(1) i (y,z). Skriv motsvarande koderna i MatLab och implementera. Var är de tillämpningsområden för den här typen av ekvationer om f blir produkt av Dirac delta funktioner?

Extrauppgift: Härled a priori och a posteriori fel uppskattingar, i lämpliga norm, för allmänna finit element metod för Fermi ekvationen. Om f blir delta funktion så är problement lämplig för en adaptiv algorithm. Beskriv denna algorithm.


Mohammad Asadzadeh
Last modified: 2002-09-04