\documentclass[12pt, a4paper, article, oneside, oldfontcommands, norsk]{memoir} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage[scaled]{beramono} \usepackage[final]{microtype} \usepackage{amssymb} \usepackage{mathtools} \usepackage{amsthm} \usepackage{thmtools} \usepackage{babel} \usepackage{csquotes} \usepackage{listings} \usepackage{bm} \lstset{basicstyle = \ttfamily} \usepackage{textcomp} \usepackage{siunitx} \usepackage{xcolor} \usepackage{graphicx} \usepackage[colorlinks, allcolors = uiolink]{hyperref} \renewcommand*{\chaptitlefont}{\Large\bfseries\sffamily\raggedright} \setsecheadstyle{\large\bfseries\sffamily\raggedright} \setsubsecheadstyle{\large\bfseries\sffamily\raggedright} \setsubsubsecheadstyle{\normalsize\bfseries\sffamily\raggedright} \setparaheadstyle{\normalsize\bfseries\sffamily\raggedright} \setsubparaheadstyle{\normalsize\bfseries\sffamily\raggedright} \setbeforesubsubsecskip{2ex} \setaftersubsubsecskip{1ex} \pretolerance = 2000 \tolerance = 6000 \hbadness = 6000 \renewcommand{\sfdefault}{phv} \definecolor{uiolink}{HTML}{0B5A9D} \declaretheorem[style = definition]{oppgave} \begin{document} \begin{titlingpage} \vspace*{-8em} \setlength{\parskip}{1.5ex plus 0.5ex minus 0.2ex} \setlength{\parindent}{0pt} \begin{flushright} \small\today \end{flushright} \begin{center} \vspace{2em} { \bfseries\sffamily\huge MEK1100 %% Alternativt: %% EMNEXXXX \textthreequartersemdash\ NAVN P{\AA} EMNE } \vskip0.2ex \Large Obligatorisk oppgave 2 av 2 \\ \vspace{1ex} \end{center} \subsubsection*{Innleveringsfrist} Torsdag 11. mai \the\year, klokken 14:30 i Canvas (\href{https://canvas.uio.no}{\underline{canvas.uio.no}}). \subsubsection*{Instruksjoner} Merk at man har \textbf{ett forsøk} på å få oppgaven godkjent. Dette betyr at det ikke lenger gis andregangsforsøk. Du velger selv om du skriver besvarelsen for h{\aa}nd og scanner besvarelsen eller om du skriver l{\o}sningen direkte inn p{\aa} datamaskin (for eksempel ved bruk av \LaTeX). Besvarelsen skal leveres som {\'e}n PDF-fil. Scannede ark m{\aa} v{\ae}re godt lesbare. Besvarelsen skal inneholde navn, emne og oblignummer. Det forventes at man har en klar og ryddig besvarelse med tydelige begrunnelser. Husk {\aa} inkludere alle relevante plott og figurer. Samarbeid og alle slags hjelpemidler er tillatt, men den innleverte besvarelsen skal v{\ae}re skrevet av deg og reflektere din forst{\aa}else av stoffet. Er vi i tvil om du virkelig har forst{\aa}tt det du har levert inn, kan vi be deg om en muntlig redegj{\o}relse. I oppgaver der du blir bedt om {\aa} programmere m{\aa} du legge ved programkoden og levere den sammen med resten av besvarelsen. Det er viktig at programkoden du leverer inneholder et kj{\o}reeksempel, slik at det er lett {\aa} se hvilket resultat programmet gir. \subsubsection*{S{\o}knad om utsettelse av innleveringsfrist} Hvis du blir syk eller av andre grunner trenger {\aa} s{\o}ke om utsettelse av innleverings\-fristen, m{\aa} du ta kontakt med studieadministrasjonen ved Matematisk institutt (e-post: \href{mailto:studieinfo@math.uio.no}{studieinfo@math.uio.no}) senest samme dag som innleveringsfristen. For {\aa} f{\aa} adgang til avsluttende eksamen i dette emnet, m{\aa} man best{\aa} alle obliga\-toriske oppgaver i ett og samme semester. \subsubsection*{For fullstendige retningslinjer for innlevering av obligatoriske oppgaver, se her:} \begin{center} \href{http://www.uio.no/studier/admin/obligatoriske-aktiviteter/mn-math-oblig.html} {\underline{www.uio.no/studier/admin/obligatoriske-aktiviteter/mn-math-oblig.html}} \vspace{1ex} \vfill LYKKE TIL! \end{center} \end{titlingpage} \noindent Hver deloppgave gir maksimalt 10 poeng. I alt kan du oppnå 70 poeng. Vi krever minimum 70 \% eller 49 poeng for å få obligen godkjent. %% Korrekt typesetting av prosent: \SI{60}{\percent} \bigskip I denne oppgaven skal vi anvende det vi har lært i emnet for å analysere et datasett målt i Hydrodynamisk laboratorium ved Matematisk institutt. Eksperimentet ble gjort i et rør. Røret har sirkulært tverrsnitt med radius 5 cm. Målingene ble gjort med “Particle Imaging Velocimetry” (PIV). Dette er en teknikk som gjør oss i stand til å måle hastighetsfeltet. Vi måler kun hastighetskomponentene $u$ i $x$-retning og $v$ i $y$-retning. Det fulle hastighetsfeltet er $\bm{v} = u\bm{i} + v\bm{j} + w\bm{k}$. Vi måler altså ikke hastighetskomponenten $w$ i $z$-retning. \section*{a)} Last ned fila \href{www.uio.no/studier/emner/matnat/math/MEK1100/v19/undervisningsmateriale/data.mat}{data.mat} og les den inn Matlab/Octave/Python. (Hvordan dette kan gjøres er forklart i Appendiks \hyperlink{A}{A}). Fila inneholder fire matriser $X$, $Y$, $U$, $V$ og to vektorer $XIT$, $YIT$. Matrisene $X$ og $Y$ inneholder $x$- og $y$-koordinatene i $xy$-planet. Matrisene $U$ og $V$ inneholder $u$- og $v$-komponentene til hastighetsfeltet. Vektorene $XIT$ og $YIT$ inneholder posisjonen til skilleflaten mellom gass og væske i $xy$-planet. \textcircled{} \hspace{2mm} Sjekk at hver matrise har 194 punkter i $x$-retning og 201 punkter i $y$-retning, tilsammen 38994 punkter i $xy$-planet. \textcircled{} \hspace{2mm} Sjekk at de to vektorene har 194 punkter i $x$-retning. (Hvordan man sjekker dette er forklart i Appendiks \hyperlink{B}{B} ). \textcircled{} \hspace{2mm} Sjekk at griddet i $xy$-planet er regulært med intervall 0.5 mm i begge retninger. \textcircled{} \hspace{2mm} Sjekk at $y$-koordinatene spenner ut hele diameteren til røret. \section*{b)} %\justify Vi skal nå se på strukturen i både gassfasen og væskefasen. Siden lufta har mye større fart enn vannet er det vanskelig å se strukturen i bare ett plott. \textcircled{} \hspace{2mm} Lag to konturplott for å illustrere farten $\sqrt{u^2 + v^2}$ for hastighetskomponentene i $xy$-planet og vis fargeskala. \textcircled{} \hspace{2mm} Tegn inn posisjonen til skilleflaten i plottet, dette kan gjøres ved å bruke en serie med * i en farge som skiller seg ut fra konturplottet. \section*{c)} \hspace{6mm} \textcircled{} \hspace{2mm} Lag et vektor pilplott med hastigheten i $xy$-planet u\textbf{i} + v\textbf{j}. Vi ønsker at plottet skal gi nyttig informasjon, og ettersom det opplagt ikke er fornuftig å plotte 38994 piler i samme plott vil det lønne seg å velge kun et utvalg av disse. \medskip I denne oppgaven skal vi betrakte tre mindre områder i hastighetsfeltet. Vi lager derfor tre rektangler definert ved indeksene til hjørnene $(ix,iy)$\footnote{Her er indeksene skrevet som en vanlig matematisk tekst, med $x$ før $y$. Hvordan dette skrives på datamaskin er forklart i Appendiks \hyperlink{B}{B}}\footnote{Disse indeksverdiene gjelder for Matlab/Octave, for Python må de reduseres med én.}: Rektangel 1 (35, 160) og (70, 170)\\ Rektangel 2 (35, 85) og (70, 100)\\ Rektangel 3 (35, 50) og (70, 60) \medskip \textcircled{} \hspace{2mm} Marker rektanglene med linjer i figuren. Bruk forskjellige farger for hver side i rektanglene: rødt nede (side 1), grønt på høyre side (side 2), blått oppe (side 3) og svart på venstre side (side 4). \textcircled{} \hspace{2mm} Sørg for å tegne inn posisjonen til skilleflaten i samme plott (se punkt b). Pass på at to av rektanglene skal ligge i gassfasen og ett av rektanglene ligge i væskefasen. \section*{d)} %\justify \hspace{6mm}\textcircled{} \hspace{2mm} Regn ut divergensen til $u\bm{i} + v\bm{j}$ og forklar hvorfor dette ikke er lik divergensen til $\bm{v}$. \textcircled{} \hspace{2mm} Lag konturplott av divergensen slik at strukturen kommer tydelig fram i både gass- og væskefasen. \textcircled{} \hspace{2mm} Tegn inn skilleflaten (se punkt b) og rektanglene (se punkt c) i samme plott. \textcircled{} \hspace{2mm} Vi kan med god nøyaktighet anta at både gassen og væska er inkompressible fordi strømingen er betydelig langsommere enn lydhastigheten i luft og i vann. Forklar hvilken konsekvens dette har for divergensen til $\bm{v}$ og hva vi i så fall kan si om hastighetskomponenten $w$ som vi ikke har målt. \section*{e)} \hspace{6mm}\textcircled{} \hspace{2mm} Regn ut den komponenten av virvlinga til $\bm{v}$ som står normalt på $xy$-planet. \textcircled{} \hspace{2mm} Lag konturplott av denne virvlingskomponenten. \textcircled{} \hspace{2mm} Tegn inn skilleflaten (se punkt b) og rektanglene (se punkt c) i samme plott. \textcircled{} \hspace{2mm} Plot strømlinjer for både gass- og væskefasen og tegn inn skilleflaten (se punkt b) i samme plott. Beskriv strømningen for både gassfasen og væskefasen. Legg spesielt merke til strømningen ved veggen. \section*{f)} Nå skal vi anvende Stokes eller Greens sats på rektanglene. \textcircled{} \hspace{2mm} Regn ut sirkulasjonen direkte som kurveintegral rundt rektanglene. \textcircled{} \hspace{2mm} Regn ut sirkulasjonen indirekte som flateintegral over rektanglene. \textcircled{} \hspace{2mm} Diskuter om du får samme resultat med kurve- og flateintegral. Husk at hastighetsfeltet er en måling som kan inneholde feil og at du har begrenset oppløsning i griddet. \textcircled{} \hspace{2mm} Diskuter forskjellen mellom de tre rektanglene. For å få en bedre forståelse av sirkulasjonen angir du verdien til kurveintegralene langs hver side av rektanglene. Passer disse resultatene med hva du hadde forventet når du ser på hastighetsfeltet i området? \section*{g)} Nå skal vi anvende Gauss sats på rektanglene. I utgangspunktet skulle man tro det var problematisk å bruke Gauss sats når vi ikke kjenner hastighetskomponenten $w$. Vi kan imidlertid med god tilnærming anta at strømningen i dette eksperimentet er inkompressibel fordi hastighetene vi måler er betydelig mindre enn lydhastigheten. Følgelig kan vi forutsette at $\nabla \cdot \bm{v} = 0$ for det fulle hastighetsfeltet $\bm{v} = u\bm{i} + v\bm{j} + w\bm{k}$. \textcircled{} \hspace{2mm} Regn ut den integrerte fluksen av hastighetsvektoren $u\bm{i} + v\bm{j}$ ut av sidene av rektanglene orientert langs $xy$-planet. Gjør dette direkte som kurveintegral rundt rektanglene. \textcircled{} \hspace{2mm} Diskuter hvilken implikasjon disse svarene har for den integrerte fluksen over rektanglene orientert i $z$-retning. \textcircled{} \hspace{2mm} For å få en bedre forståelse av fluksen skal du angi verdien til kurveintegralene langs hver side av rektanglene. Passer disse resultatene med hva du hadde forventet når du ser på hastighetsfeltet i området? \newpage \noindent {\large\textbf{\hypertarget{A}{A}: Hvordan lese MAT-filer i Matlab, Octave og Python}} Dataene leses inn i Matlab/Octave med kommandoen \verb+load('data.mat')+. Våre variabler er da tilgjenglige som \texttt{x, y, u, v, xit, yit}. \medskip Den enkleste måten å lese inn dataene i Python er: \begin{verbatim} import scipy.io as sio # Dette virker med versjon 7 MAT-filer data = sio.loadmat('data.mat') x = data.get('x') y = data.get('y') u = data.get('u') v = data.get('v') xit = data.get('xit') yit = data.get('yit') \end{verbatim} \medskip Det finnes også andre måter å lese inn dataene i Python, men da gjelder ikke nødvendigvis følgende kommentarer om indeksering. \medskip \noindent {\large\textbf{\hypertarget{B}{B}: Indeksering av matriser }} La oss betrakte den vertikale hastighetskomponenten som er avhengig av horisontal posisjon $x$ og vertikal posisjon $y$. I vanlig matematisk tekst hadde vi skrevet $v(x, y)$ for å angi verdien til $v$ for en gitt posisjon $(x, y)$. Vi ønsker å implementere dette på datamaskinen slik at \texttt{v} er en matrise som inneholder diskrete verdier til $v$ i et rutenett med \texttt{nx} punkter i $x$-retning og \texttt{ny} punkter i $y$-retning. La \texttt{ix} være en indeks som løper over de \texttt{nx} punktene i $x$-retning, og la \texttt{iy} være en indeks som løper over de \texttt{ny} punktene i $y$-retning. For å finne ut hvor stor matrisen \texttt{v} er kan vi bruke Matlab/Octave-kommandoen \texttt{size} eller Python-kommandoen \texttt{shape}. Det viser seg i så fall at Matlab/Octave, og Python med \texttt{scipy.io}-måten, vil gi \texttt{ny}-verdien først, og deretter \texttt{nx}-verdien. For å indeksere matrisen \texttt{v} skriver vi i Matlab/Octave \texttt{v(iy,ix)}, og i Python med \texttt{scipy.io}-måten \texttt{v[iy,ix]}. \bigskip \noindent {\large\textbf{\hypertarget{C}{C}: {Noen funksjoner for Python (P) og MATLAB (M):}}} \href{https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.contourf.html}{\fontfamily{qcr}\selectfont contourf (P)}, \href{https://uk.mathworks.com/help/matlab/ref/contourf.html?s_tid=gn_loc_drop}{contourf (M)} --- tegner konturlinjene og fyller ut med farger mellom konturlinjene \href{https://matplotlib.org/api/colorbar_api.html}{\fontfamily{qcr}\selectfont colorbar (P)}, \href{https://uk.mathworks.com/help/matlab/ref/colorbar.html}{colorbar (M)} - viser hvilke verdier som svarer til hver farge \href{https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.quiver.html}{\fontfamily{qcr}\selectfont quiver (P)}, \href{https://uk.mathworks.com/help/matlab/ref/quiver.html}{quiver (M)} - lager vektor pilplot \href{https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.streamplot.html}{\fontfamily{qcr}\selectfont streamplot (P)}, \href{https://uk.mathworks.com/help/matlab/ref/streamline.html}{streamline (M)} - kan brukes for å tegne strømlinjer til et vektorfelt \end{document} \section*{Fasit} Her er tilnærmet resultatene av integrasjonene for de tre rektanglene, fra øverst til nederst: \newline Sirkulasjon ved direkte utregning som kurveintegral: 2.6955e+03, -6.0977e+04, 9.5210 \newline Flateintegral av virvlingens z-komponent: 2.6216e+03, -6.1483e+04, -12.2143 \newline Plan fluks ut av de fire sidene i rektanglene: 104.8526, -6.4769e+03, -124.5687 \newline Disse tallene er framkommet ved å benytte den aller enkleste integrasjonsmetoden, nemlig at funksjonsverdien i hvert kurveelement med lengde $\Delta x$ eller $\Delta y$, og i hvert flateelement med areal $\Delta x \Delta y$, er konstant lik den verdien vi har i grid-punktet. \newline \Large{Andre integrasjonsmetoder, f.eks. trapes-metoden, vil gi andre svar!} \end{document} \end{document}