290 likes | 433 Views
INF2340 – Våren 2004 Oversikt over innhold. Fysisk problem Ex: Svingende streng Vannbølger Varme i jordskorpen. Matematisk modell Ex: ODE Bølgeligning Varmeligning. Simulatorkode Proseduralt (FORTRAN / C) Objekt-orientert (C++). Numerisk metode Endelig differansemetode
E N D
Fysisk problem • Ex: • Svingende streng • Vannbølger • Varme i jordskorpen • Matematisk modell • Ex: • ODE • Bølgeligning • Varmeligning • Simulatorkode • Proseduralt (FORTRAN / C) • Objekt-orientert (C++) • Numerisk metode • Endelig differansemetode • Gauss eliminasjon • Suksessiv substitusjon Simulering i IN229 INF2340/ V04 / Dag 1
Del 1: MyVector Min første vektorklasse (= “Hello World”) • Introduksjon til C++ • Eksempel på OO-design for simulering • Effektivitetshensyn • Arv • Templates INF2340/ V04 / Dag 1
Del 2: Endelige differanser Rask innføring i endelige differanser: • f’(x) ( f(x+h) - f(x) ) / h , osv…. • konvergens • orden INF2340/ V04 / Dag 1
Del 3: ODESolver • Litt om ordinære differensialligninger (ODE) • Noen numeriske metoder • Forlengs og baklengs Euler, Runge-Kutta • Design av “bibliotek” av ODE-løsere • Implementasjon • Sentrale prinsipper for simulator software INF2340/ V04 / Dag 1
Del 4: Bølgeligning • Fra fysisk problem til simulatorkode • Svingende streng (strikk) • Endelig differansemetode • Implementasjon • Kjapt om numerisk stabilitet • Reell anvendelse: • Bølger på dypt vann INF2340/ V04 / Dag 1
Del 5: Varmeligningen • Fra fysisk problem til simulatorkode: • Varmeledning i jordskorpen • Endelig differansemetode • Litt numerisk lineæralgebra • Kjapt om ikkelineære ligninger INF2340/ V04 / Dag 1
Del 6: Diverse • Mer om matematiske modeller (PDEer) • Mer om differansemetoder • Abstraksjoner i simulatorkoder • Mer om objektorientert programvare INF2340/ V04 / Dag 1
"Rendering Pipeline" "Visualization Pipeline" Numerisk datasett Grafiske primitiver 1.23E-08 2.59E-10 3.04E-08 3.87E-09 ... 7.33E-06 1.56E-08 4.49E-08 5.28E-07 ... Bilde Fenomen/prosess Visualisering i IN229 Mat. modell Måling Simulering IN229 - Simuleringsdelen IN229 - Visualiseringsdelen INF2340/ V04 / Dag 1
"Visualization Pipeline" Numerisk datasett Grafiske primitiver 1.23E-08 2.59E-10 3.04E-08 3.87E-09 ... 7.33E-06 1.56E-08 4.49E-08 5.28E-07 ... Bilde Del 1: Introduksjon til VTK • Objektorientert C++ klassebibliotek for visualisering "Rendering Pipeline" INF2340/ V04 / Dag 1
#include <vtk.h> main() { vtkRenderer* rdr = vtkRenderer::New(); vtkRenderWindow* rdrWin = vtkRenderWindow::New(); rdrWin->AddRenderer(rdr); vtkCubeSource* sCube = vtkCubeSource::New(); vtkPolyDataMapper* mCube = vtkPolyDataMapper::New(); vtkActor* aCube = vtkActor::New(); mCube->SetInput(sCube->GetOutput()); aCube->SetMapper(mCube); rdr->AddActor(aCube); rdrWin->Render(); } vtkRenderWindow vtkRenderer vtkActor vtkPolyDataMapper vtkCubeSource INF2340/ V04 / Dag 1
"Visualization Pipeline" "Rendering Pipeline" Numerisk datasett Grafiske primitiver 1.23E-08 2.59E-10 3.04E-08 3.87E-09 ... 7.33E-06 1.56E-08 4.49E-08 5.28E-07 ... Bilde Del 2: Grafisk databehandling • Hvordan lage bilder på datamaskin INF2340/ V04 / Dag 1
"Visualization Pipeline" "Rendering Pipeline" Numerisk datasett Grafiske primitiver 1.23E-08 2.59E-10 3.04E-08 3.87E-09 ... 7.33E-06 1.56E-08 4.49E-08 5.28E-07 ... Bilde Del 3: "Visualization Pipeline" • Hvordan transformere datasett til grafiske primitiver og bilder • Generell arkitektur INF2340/ V04 / Dag 1
source filter mapper source filter filter mapper 1.23E-08 2.59E-10 3.04E-08 3.87E-09 ... 7.33E-06 1.56E-08 4.49E-08 5.28E-07 ... source mapper filter source filter filter mapper source osv ... INF2340/ V04 / Dag 1
"Visualization Pipeline" "Rendering Pipeline" Numerisk datasett Grafiske primitiver 1.23E-08 2.59E-10 3.04E-08 3.87E-09 ... 7.33E-06 1.56E-08 4.49E-08 5.28E-07 ... Bilde Del 4: Datarepresentasjon Måling • Hvordan tilrettelegge datasett for visualisering Simulering INF2340/ V04 / Dag 1
Typisk problemstilling punkt med posisjon og verdi x1 y1 z1 v1 x2 y2 z2 v2 ... v1 v2 ... filformat: posisjonen er implisitt! INF2340/ V04 / Dag 1
"Visualization Pipeline" "Rendering Pipeline" Numerisk datasett Grafiske primitiver 1.23E-08 2.59E-10 3.04E-08 3.87E-09 ... 7.33E-06 1.56E-08 4.49E-08 5.28E-07 ... Bilde Del 5: Visualisering av skalarfelt • Datasettet representerer skalar-verdier • Eksempel: Temperatur i et værelse p INF2340/ V04 / Dag 1
Elektrontetthet i gullhydrid (AuH) INF2340/ V04 / Dag 1
"Visualization Pipeline" "Rendering Pipeline" Numerisk datasett Grafiske primitiver 1.23E-08 2.59E-10 3.04E-08 3.87E-09 ... 7.33E-06 1.56E-08 4.49E-08 5.28E-07 ... Bilde Del 6: Visualisering av vektorfelt • Datasettet representerer vektor-verdier • Eksempel: Strømning av luft i et værelse p INF2340/ V04 / Dag 1
Luftstrømning i værelse INF2340/ V04 / Dag 1
Aaaaahhh! Boblestrømning i Guinness INF2340/ V04 / Dag 1
Luftstrømning (og -trykk) rundt flyvinge INF2340/ V04 / Dag 1
"Visualization Pipeline" "Rendering Pipeline" Numerisk datasett Grafiske primitiver 1.23E-08 2.59E-10 3.04E-08 3.87E-09 ... 7.33E-06 1.56E-08 4.49E-08 5.28E-07 ... Bilde Del 7: Direkte volumavbilding • En svært effektfull (men ressurskrevende!) teknikk for visualisering av skalar-verdier i et volum INF2340/ V04 / Dag 1
Elektrontetthet i gullhydrid (AuH) INF2340/ V04 / Dag 1
Elektrontetthet i gullhydrid (AuH) H-atomet Au-atomet INF2340/ V04 / Dag 1
"Visualization Pipeline" "Rendering Pipeline" Numerisk datasett Grafiske primitiver 1.23E-08 2.59E-10 3.04E-08 3.87E-09 ... 7.33E-06 1.56E-08 4.49E-08 5.28E-07 ... Bilde Del 8: Diverse • Samtidig visualisering av flere felt • Animasjon (tidsserier, sanntids-simulering) INF2340/ V04 / Dag 1