+ All Categories
Home > Documents > Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web...

Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web...

Date post: 30-Mar-2018
Category:
Upload: doantram
View: 220 times
Download: 7 times
Share this document with a friend
29
Přednáška cvičení 1.10.2002 Co Vás chci naučit: Analýzu systémů 1 Univerzální programy Vlastní program řešení teplotního pole. Metoda sítí. Program v Power Fortranu (terminal server). Porovnání C, Fortran Diskrétní systémy, bilance (PRO II, ASPEN, …) Charakteristika: Aparát je chápán jako BLACK BOX: - integrální bilance (uzlů – aparátů) - algebraické rov.(stacionární), Kontinuální systémy – proudění, vícefázové systémy, teplo, pružnost, ,.., Charakteristika: Analýza procesů, které se odehrávají v aparátech WHITE BOX - diferenciální bilance - parciální diferenciální rovnice (CFD transportní děje), Komerční programy pružnost pevnost, teplotní pole COSMOS/M, ANSYS, ABAQUS, ADINA, NASTRAN… CFD (Com.Fluid Dynam.) FLUENT, CFX Freeware SSIIM (3D water and sediment flow) LCA codes for astrophysical simulation and visualization PHOENICS/CHAM shareware (multi-phase flow, N-S, combustion) NASA LeRC (LPDF2D) Collection of CFD codes for ship design Software for 3-D Fluid Interfaces (TVD/AC) GASDYN (Euler, PVM) ASME software collection Hanley Innovations PHASES Engineering Solutions DIFFPACK vlastní programy FEMINA Speciální programy a Postprocessing Komerční programy Excel, GNUplot Vlastní programy: havarie Mitas TUPLEX fouling Temelín chlazení Spirálový filtr Vakuové chlazení Kalcinační pec Kolimované detektory Mikrovlnný ohřev Problém odhadu, kterou kategorii použít – zda zvolit komerční program nebo psát svůj vlastní Příklad: Zpracování potravin za vysokého tlaku, počáteční řešení programem COSMOS –
Transcript
Page 1: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

Přednáška cvičení 1.10.2002

Co Vás chci naučit:

Analýzu systémů

1

Univerzální programy

Vlastní program řešení teplotního pole. Metoda sítí. Program v Power Fortranu (terminal server). Porovnání C, Fortran

Diskrétní systémy, bilance (PRO II, ASPEN, …) Charakteristika: Aparát je chápán jako BLACK BOX: - integrální bilance (uzlů – aparátů)- algebraické rov.(stacionární), obyč.dif.rov. (nestacionární)- řešení Newtonovou metodou nebo metodami Runge Kutta

Kontinuální systémy – proudění, vícefázové systémy, teplo, pružnost, ,..,Charakteristika: Analýza procesů, které se odehrávají v aparátech WHITE BOX- diferenciální bilance - parciální diferenciální rovnice (CFD transportní děje), variační principy (pružnost)- řešení metodu sítí, kontrolních objemů, konečných prvků, hraničních prvků,

spektrální metody

Komerční programypružnost pevnost, teplotní poleCOSMOS/M, ANSYS, ABAQUS, ADINA, NASTRAN…CFD (Com.Fluid Dynam.)FLUENT, CFX

Freeware SSIIM (3D water and sediment flow) LCA codes for astrophysical simulation and visualization PHOENICS/CHAM shareware (multi-phase flow, N-S, combustion) NASA LeRC (LPDF2D) Collection of CFD codes for ship design Software for 3-D Fluid Interfaces (TVD/AC) GASDYN (Euler, PVM) ASME software collection Hanley Innovations PHASES Engineering Solutions DIFFPACK

vlastní programyFEMINA

Speciální programy a Postprocessing

Komerční programyExcel, GNUplot

Vlastní programy: havarie MitasTUPLEX foulingTemelín chlazeníSpirálový filtrVakuové chlazeníKalcinační pecKolimované detektoryMikrovlnný ohřevTok tixotropní kapaliny

Problém odhadu, kterou kategorii použít – zda zvolit komerční program nebo psát svůj vlastní

Příklad: Zpracování potravin za vysokého tlaku, počáteční řešení programem COSMOS – problémy při zadávání konstitutivní rovnice vody za vysokého tlaku

Page 2: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

www. icemcfd. com /cfd/CFD_codes.html

ACRi ARSoftware (TEP: a combustion analysis tool for windows) COSMIC NASA Fluent Inc. (FLUENT v5, FIDAP, POLYFLOW, GAMBIT, TGrid, Icepak, Airpak, MixSim) Flowtech Int. AB (SHIPFLOW: analysis of flow around ships) Fluid Dynamics International, Inc. (FIDAP) AEA Technology (CFX: 3D fluid flow/heat transfer code) ICEM CFD (ICEM CFD, Icepak) KIVA (reactive flows) CFD Research Corporation (ACE: reactive flows) Computational Dynamics Ltd. (STAR-CD) Analytical Methods, Inc. (VSAERO, USAERO, OMNI3D) AeroSoft, Inc. (GASP and GUST) Ithaca Combustion Enterprises (PDF2DS) Flow Science, Inc. (FLOW3D) ALGOR, Inc. (ALGOR) Engineering Mechanics Research Corp. (NISA) Reaction Engineering International (BANFF/GLACIER) Combustion Dynamics Ltd. (SuperSTATE) AVL List Gmbh. (FIRE) IBM Corp. catalogue (30 positions) Sun Microsystems catalogue (70 positions) Cray Research catalogue (100 positions) Silicon Graphics, Inc. catalogue (75 positions) Pointwise, Inc. (Gridgen - structured grids) Simulog (N3S Finite Element code, MUSCL) Directory of CFD codes on IBM supercomputer environment ANSYS, Inc. (FLOTRAN) Flomercis Inc. (FLOTHERM) Computational Mechanics Corporation Computational Mechanics Company, Inc. (COMCO) KASIMIR (shock tube simulation program) Livermore Software Technology Corporation (LS-DYNA3D) Advanced Combustion Eng. Research Center (PCGC, FBED) NUMECA International s.a. (FINE, FINE/Turbo, FINE/Aero, IGG, IGG/Autogrid) Computational Engineering International., Inc. (EnSight, ...) Blocon Software Agency (HEAT2, HEAT3) Adaptive Research Corp. (CFD2000) Unicom Technology Systems (VORSTAB-PC) Incinerator Consultants Incorporated (ICI) PHOENICS/CHAM (multi-phase flow, N-S, combustion) Innovative Aerodynamic Technologies (LAMDA) XYZ Scientific Applications, Inc. (TrueGrid) South Bay Simulations, Inc. (SPLASH) PHASES Engineering Solutions Amtec Engineering, Inc. (INCA, Tecplot) Engineering Sciences, Inc. (UNIC) Catalpa Research, Inc. (TIGER) Swansea NS codes (LAM2D, TURB) Engineering Systems International S.A. (PAM-FLOW, PAM-FLUID) Daat Research Corp. (COOLIT) Flomerics Inc. (FLOVENT) Innovative Research, Inc. Centric Engineering Systems, Inc. (SPECTRUM) Blue Ridge Numerics, Inc. WinPipeD Exa Corporation (PowerFLOW) Polyflow s.a. Flow Pro

Computational Aerodynamics Systems Co. Tahoe Design Software ADINA-F YFLOW PSW Advanced Visual Systems Flo++ KSNIS Flowcode Concert SMARTFIRE VISCOUS Polydynamics Cullimore and Ring Technologies, Inc. (SINDA/FLUINT, SINAPS) Linflow (ANKER - ZEMER ENGINEERING) PFDReaction Airfoil Analysis Institute of Computational Continuum Mechanics GmbH CFD++ RADIOSS-CFD VECTIS MAYA Simulation Compass Arena Flow

Příklad informací o KIWAKIVA (modeling of reactive flows) for more information search OSTI WAIS gate with keyword KIVAArticle: 576 of sci.physics.computational.fluid-dynamics From Robin B. Lake / [email protected]: 10 Jul 1994 14:52:30 GMT

In article <[email protected]> [email protected] (John Hinkey) writes:>>Does anyone know of any CFD codes capable of >modeling a two-phase detonation, i.e. a >gaseous oxidizer with a solid or liquid fuel>suspended in it?>There is a code "KIVA" that BP uses for such explosive environments asinternal combustion engine cylinders. In that it can handle chemicaltransformations, it may be suitable.

In that BP has reorganized and eliminated its US Research, I can't giveyou the name of any competent staff at their Sunbury-on-Thames ResearchCentre in the UK. You might try to contact Dr. Wendell Mills, EngineeringComputing Inc., who occupies space at BP's former Warrensville ResearchCenter in Cleveland. Call the central BP number in Cleveland. Can't helpmuch, as they've changed the phone numbers recently (and probably thelocks, too!).

Rob LakeEnvironmental Modeling [email protected]

See also KIVA page provided by Fluid Dynamics Group (T-3) at LANL.

2

Page 3: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

Vedení tepla – relativně snadno řešitelný problém.

Fourierova Kirchhoffova rovnice (u,v složky rychlosti)

q=0 kartézský, q=1 cylindrický souřadný systém

Speciální případ kartézský souřadný systém, bez proudění a konstantní vlastnosti

Stacionární případ a bez vnitřního zdroje tepla – Laplaceova rovnice

Diskretizace náhrada derivací diferencemi

Diferenční náhrada Laplaceovy rovnice je tedy

a speciální případ pro hx=hy=h .

Okrajové podmínky 1.druhu (Dirichlet)

3

ii-1 i+1

h

Přednáška 7.10.02

Page 4: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

2.druhu (Neaumann)

3.druhu (Newton)

Konec přednášky 2.10.2002

Nahrazení první derivace symetrickou diferencí. Zavedení fiktivního bodu mimo hranici oblasti

Eliminace fiktivní hodnoty z Laplaceovy rovnice

Speciální případ – osa symetrie A=0 – nulový tepelný tok ( )

a speciální případ pro hx=hy=h

Přibližně ( )

4

ii-1 i+1

h

Page 5: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

Příklad programu

Elektrolyzér

Rozložení elektrického potenciálu Laplaceova rovnice

Elektrody U=constStěna (isolant) nulová normálová derivace potenciálu.

Hustota výkonu

Postup zpracování v režimu Terminal Server (Citrix)1. stáhnout FEMINA.ZIP2. rozbalit do adresáře femina3. překopírovat MINIPF.LIB F.BAT FC.BAT FPSVARS.BAT

Program překládaný příkazem F THERM.FORfl32 /MW /4Yb %1 /link minipf.lib

Základy fortranu

Příkladinteger preal a(10)write(*,*)’ Nazdar Rudolfe, zadej pocet bodu’read(*,*)pdo i=1,p

write(*,*)’ zadej ‘,i,’ –tou hodnotu vektoru’ read(*,*)a(i) enddo end

Jména proměnných, procedur, funkcí musí začínat písmenem (nebo $)Typy proměnných Fortran REAL INTEGER COMPLEX LOGICAL CHARACTERdeklarace REAL I,VEC(10),A(10,20) (indexy od 1) implicitní typy první písmeno I,J,K,L,M,N integer

5

1.fáze – rozložení elektrického potenciálu

2.fáze – teplotní pole

U=1U=0

0yU

0yU

Page 6: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

COMMON /jméno bloku/ seznam proměnných

Příklad: FEMINA PARAMETER (MAXAUX=70)

COMMON /FEM/IAUX(MAXAUX),NPT,NCR,NSF,…

Příklad přenosu hodnot mezi moduly

common /fem/…,npt,……… npt=2 npt=2 call proc call procp(npt) write(*,*)npt write(*,*)npt end end

subroutine proc subroutine procp(np) common /fem/…,np,… np=np+1 np=np+1 end end

Přiřazovací příkaz (každý příkaz na nové řádce), C příkazy jsou oddělovány ;proměnná op=výraz je ekvivalentní s výrazem proměnná=proměnná op (výraz) s=s+1 (C s++, nebo s+=1)res=res+abs(a-b) (C res+=abs(a-b))a(i,j)=sin(x) (C a[i][j]=sin(x))operátory +-*/ ** ( ) (C nemá umocňování, operátor % modulo)

Inkrementace / dekrementace v C++proměnná - hodnota proměnné je nejprve zvětšena o jedničku a teprve potom je tato nová hodnota vrácena jako hodnota aritmetického výrazu proměnná++ - nejprve je vrácena původní hodnota aritmetického výrazu a teprve potom je hodnota proměnné zvětšena o jedničku.

Podmínky a cyklydo while(podmínka) while(podmínka)… {…}end do ;

do i=1,n for(i=1;i<=n,i++)… {…}end do ;

if(podmínka)then if(podmínka)… {…};else else… {…};endif

Podmínkarelační operátory .LT. .GT. .LE. .GE. .EQ. .NE.logické operátory .AND. .OR. .NOT.(v jazyce C && || == <>)

Ternární logické výrazy v C

6

Vazba skutečné a formální parametry

Sdílení operační paměti

Page 7: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

Chceme-li vyhodnotit výraz v závislosti na nějaké logické podmínce, použijeme tzv. podmíněný výraz, který v C se zapisuje pomocí tzv. ternárního operátoru ? : Chceme-li např. vypočítat hodnotu sin(x) / x pro x různé od nuly a hodnotu 1 pro x = 0 , píšeme x ? sin(x)/x : 1Chceme-li realizovat výpočet maxima ze dvou zadaných hodnot, můžeme psát (a > b) ? a : b

Příkazy vstupu a výstupuread(unit,format)a,b,… scanfwrite(unit,format)a,b,… printfZnak '\n' je interpretován jako přechod na novou řádku. Kombinace %d, %f jsou konverze určené pro výstup hodnot typu int a double. (obecně %[příznaky][šířka][.přesnost][modifikátor]konverze)

Operace se souboryFILE *soubor; ...soubor=fopen("DATA.TXT","r"); ...fclose(soubor); ...

7

Page 8: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

ELEKROLYZER ANSI C#include <stdio.h>#include <math.h> #define MAX 101main(){int m,me,i,j,iter; double u[MAX][MAX],e,w,n,s,res,ua; printf("\n\nDimension M:"); scanf("%d",&m); me=m/2; printf("\nElectrode at %i M=%i",me,m); for(i=1;i<=m;i++) for(j=1;j<=m;j++) { if(i=me&&j<=me) u[i][j]=1.; else u[i][j]=0.; }; iter=0; res=1.; while(iter<50000&&res>1e-6) {res=0.;iter++; for(i=2;i<=m;i++) {for(j=1;j<=m;j++) if(i!=me||j>me) {e=u[i!=m?i+1:i-1][j]; w=u[i!=1?i-1:i+1][j]; n=u[i][j!=m?j+1:j-1]; s=u[i][j!=1?j-1:j+1]; ua=(e+w+n+s)/4; res+=abs(u[i][j]-ua); u[i][j]=ua; }; }; res/=(m*m); } printf("\n\nRes =%f iter=%i \n",res,iter);} 560 znakůANSI FORTRAN parameter (MAX=101) dimension u(max,max) real n read(*,*)m me=m/2

do i=1,m do j=1,m if(i.ne.me.or.j.gt.me)then u(i,j)=0 else u(i,j)=1 endif enddo enddo res=1 iter=0do while(res.gt.1e-6.and.iter.le.100000) res=0 do i=2,m do j=1,m if(i.eq.m)then e=u(i-1,j) else e=u(i+1,j) endif if(j.eq.1)then s=u(i,j+1) else s=u(i,j-1) endif if(j.eq.m)then n=u(i,j-1) else n=u(i,j+1) endif w=u(i-1,j) if(i.ne.me.or.j.gt.me)then ua=(w+e+n+s)/4 res=res+abs(ua-u(i,j)) u(i,j)=ua endif enddo enddo res=res/(m*m) iter=iter+1 enddo write(*,*)'Iter=',iter,' res=',res end

492 znaků

8

Page 9: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

9

SGI-ORIGIN (sobota-malé zatížení)

0

10

20

30

40

50

60

70

80

90

50 60 70 80 90 100N

t [s]

C-SGIFortran-SGIFortran-GIN

Page 10: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

Řešení programem FEMINAC* Opening elec date:07.10.02 at 10:29PT 1,0,0;PT 2,1,0;PT 3,1,1;PT 4,0,1;PT 5,.5,0;PT 6,.5,.5;SF4PT 1,1,2,3,4;CR2PT 5,5,6;MSF 1,50,50,1,1,4;NFCR 5,1,-1,1,1,1;NFCR 4,1,-1,0,0,0;EGROUP 1,0,0,0;THERMA 0,1,1;

Počet Gaussovych bodů 1x1 síť 50x50 čtyřúhelníkové prvky. Počet Gaussových uzlů 2x2

Q=elementy, 3x3 Gaussovy body. Triangles 1 Gaussův uzel

10

1

6

5

4 3

2

CR 5CR 4

Q 1 Q 2

Q 3 T 1

Page 11: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

11

Trojúhelníková sit pouze 10 x 10tj. 200 elementu, s jedním Gaussovým uzlem.

Čtyřúhelníková sit pouze 10 x 10tj. 200 elementu, s jedním Gaussovým uzlem.

Čtyřúhelníková sit pouze 10 x 10tj. 200 elementu, s 2 x 2 Gaussovými uzly.

Q 1 Q 2

T 1

Page 12: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

THERM0.FORc stacionarni teplotni pole. Okrajove podminky Dirichlet. Bez vystupu. use msflib dimension vektor(10000) write(*,*)' Nazdar Rudolfe, zadej H,NX,NY' read(*,*)h,nx,ny write(*,*)' Nx=',nx,' Ny=',ny,' H=',h call therm(vektor,nx,ny,h) end

subroutine therm(a,nx,ny,h) dimension a(nx,ny) a=0. hx=h/(nx-1) hy=h/(ny-1) do i=1,nxc Okrajova podminka Dirichletova pro Y=H x=(i-1)*hx a(i,ny)=100*sin(x) enddo do iter=1,100c Fixni pocet iteraci do i=2,nx-1 do j=2,ny-1 a(i,j)= / ((a(i-1,j)+a(i+1,j))/hx**2+(a(i,j-1)+a(i,j+1))/hy**2)/ / (2./hx**2+2./hy**2) enddo enddo write(*,*)' Iteration=',iter enddo end

Některé užitečné procedury z knihovny MINIPF.LIB

SUBROUTINE GMFSTW(INDS,ITYPE,IWINS,IFONT,IHEIGH,LABELX,LABELY, / CXMI,CXMA,CYMI,CYMA,XMI,XMA,YMI,YMA) C NASTAVENI SOUR. SYSTEMU : C INDS = 1,2,3,4,5,6 C ITYPE= 0 slouzi k vykreslovani vrstevnic (vymezuje se prostor pro zobrazeni skaly vrstevnic), nezaokrouhluji se rozsahy os. C = 1 aritmeticke osy se zaokrouhlovanim zadaneho rozsahu. C = 2 log-log, lisi se jen jinym pomerem velikosti vnitrniho a vnejsiho okna. C IWIN = 1,2,...40 child window C IFONT= 1,2,3,4,5 font (Courier, Arial, Times, Sans Serif, Small) C IHEIGH vyska fontu (v pixelech) C LABELX,LABELY *16 popisy os

SUBROUTINE GMFAXE(IND,ITYPC,ICOLI4)C TRANSFORMACE A OSY ITYP=0,4 LOG - LOG C ITYP=1,5 LOG - ARITM C ITYP=2,6 ARITM - LOG C ITYP=3,7 ARITM -ARITM C ITYPC>=10 VYBARVENI OKRAJE BARVOU ITYPC/10.

SUBROUTINE GMFRCTR(IND,LABEL,NLAB,VAL,M,N, / B1MI,B1MA,B2MI,B2MA,VMIN,VMAX,IVMIN,IVMAX,ICOL) C CONTOURS RECTANGULARS NET. Spojite spektrum barev, ale navic se barvou ICOL kresli i cary - vrstevnice. C IND - INDEX OKNA, LABEL (TEXT NLAB ZNAKU) C VAL(M,N) - FUNKCNI HODNOTY V OBDELNIKOVE MATICI C B1MI,... - OBDELNIK (X,Y), OHRANICENY BARVOU ICOL C VMIN,VMAX- ROZSAH VAL, IVMIN,IVMAX ODPOVIDAJICI KODY BAREV (0-2850) C ICOL - BARVA VRSTEVNIC A RAMECKU SUBROUTINE GMFPLD(XMI,DX,N,Y,ICOLR4)C Průběh EKVIDISTANTNI FUNKCE C XMI POCATECNI HODNOTA ARGUMENTU, DX PRIRUSTEK, N POCET BODU C Y(N) VEKTOR HODNOT, ICOLR4-BARVA CARY SUBROUTINE GMFPLF(N,X,Y,ICOL,IFIL)C FILL CURVE (N, X(N),Y(N), ICOL) BY COLOUR IFIL C CUBIC SPLINES - STRAIGHT LINE CLOSE THE CURVE

SUBROUTINE GMFPL(N,X,Y,ICOLR4)

12

T=100 sin x

T=0

Page 13: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

C POLYLINE X(N),Y(N) barvou ICOLR4. THERM1.FORc Nadrelaxacni faktor a testovani residua. Grafika vrstevnice. use msflib dimension vektor(10000) write(*,*)' Nazdar Rudolfe, zadej H,NX,NY,omega'c omega je nadrelaxacni faktor read(*,*)h,nx,ny,omega write(*,*)' Nx=',nx,' Ny=',ny,' H=',h call therm(vektor,nx,ny,h,omega) end

subroutine therm(a,nx,ny,h,omega) dimension a(nx,ny)c label pouzijeme pro hlavicku obrazku character*11 label a=0. hx=h/(nx-1) hy=h/(ny-1) do i=1,nx x=(i-1)*hx a(i,ny)=100*sin(x) enddo do iter=1,1000

res=0 do i=2,nx-1 do j=2,ny-1 aux= / ((a(i-1,j)+a(i+1,j))/hx**2+(a(i,j-1)+a(i,j+1))/hy**2)/ /

(2./hx**2+2./hy**2) res=res+abs(a(i,j)-aux)

a(i,j)=(1-omega)*a(i,j)+omega*aux enddo enddo res=res/(nx*ny) write(*,*)' iter=',iter,' resid=',res if(res.le.1e-4)exit enddoc grafika call wopen(10,'teploty',30,90,10,20,480,320) call gmfstw(1,0,10,3,14,'x','y',0.,1.,0.,1.,0.,h,0.,h) call gmfaxe(1,7,15) write(label,'('' Niter='',i4)')iter call gmfrctr(1,label,11,a,nx,ny,0.,h,0.,h,0.,100.,0,800,0) end

THERM2.FORc doplneni okrajove podminky 3.druhu a kresleni grafu T(y). Vysledky do souboru. use msflib dimension vektor(10000) write(*,*)' Nazdar Rudolfe, zadej H,NX,NY,omega,alfa,te' read(*,*)h,nx,ny,omega,alfa,te write(*,*)' Nx=',nx,' Ny=',ny,' H=',h call therm(vektor,nx,ny,h,omega,alfa,te) end

subroutine therm(a,nx,ny,h,omega,alfa,te) dimension a(nx,ny),gy(100) character*36 label a=0. hx=h/(nx-1) hy=h/(ny-1) do i=1,nx x=(i-1)*hx a(i,ny)=100*sin(x) enddo do iter=1,1000

res=0 do j=2,ny-1 do i=2,nx if(i.eq.nx)then

13

Page 14: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

c okrajova podminka tretiho druhu aux=(alfa*te+a(i-1,j)/hx+hx*(a(i,j-1)+a(i,j+1))/hy**2)/ / (alfa+1/hx+hx/hy**2) elsec vnitrni body oblasti aux= / ((a(i-1,j)+a(i+1,j))/hx**2+(a(i,j-1)+a(i,j+1))/hy**2)/

/ (2./hx**2+2./hy**2) endif

res=res+abs(a(i,j)-aux)c superrelaxacni metoda a(i,j)=(1-omega)*a(i,j)+omega*aux

enddo enddo

res=res/(nx*ny) write(*,*)' iter=',iter,' resid=',res if(res.le.1e-4)exit

enddocall wopen(10,'teploty',30,90,0,20,480,320)call gmfstw(1,0,10,3,14,'x','y',0.,1.,0.,1.,0.,h,0.,h)call gmfaxe(1,7,15)write(label,'('' Niter='',i4,'' alfa='',e10.3,'' Te='',f5.0)')

/iter,alfa,tecall gmfrctr(1,label,36,a,nx,ny,0.,h,0.,h,0.,100.,0,800,0)call wopen(20,'teploty',30,90,1,21,480,320)

tmax=0 do i=1,ny tmax=amax1(tmax,a(nx,i)) gy(i)=a(nx,i) enddo

call gmfstw(2,1,20,3,14,'y','T',0.,1.,0.,1.,0.,h,0.,tmax)call gmfaxe(2,3,15)call gmfpld(0.,hy,ny,gy,12)

c ulozeni vysledku do souboru open(1,file='therm2.out') do i=1,nx write(1,'(i3,100e10.3)')i,(a(i,j),j=1,ny) enddo end

Úkol pro studenty:Nalézt optimální nadrelaxační faktor. Doplnit procedurou pro hledání minima.

14

Page 15: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

Nestacionární problém vedení tepla

Fourierova Kirchhoffova rovnice

Diskretizace

Odhad velikosti časového krokuUvažujme případ s nulovým zdrojovým členem a s nulovými teplotami v čase t s výjimkou jediné Tij=1.

Pro by nová teplota byla nulová (a teploty na všech dalších hladinách také nulové).

Pro větší hodnoty t by se objevily oscilace.

Program pro nestacionární vedení tepla – explicitní methoda

15

tento člen by měl být vyčíslen na časové hladině t+t plně implicitní metoda. Stabilní, ale časově náročné.

tento člen je na časové hladině t. Explicitní metoda. Podmíněně stabilní, musí být malý časový krok.

Page 16: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

H=1 Nx=Ny=21 a=1e-6 dt=600 ze stabilitního kriteria dt=625c Nestacionarni vedeni tepla use msflib dimension vold(10000),vnew(10000) write(*,*)' Nazdar Rudolfe, zadej H,NX,NY,Ntime,dt' read(*,*)h,nx,ny,nt,dt write(*,*)' Nx=',nx,' Ny=',ny,' H=',h call therm(vold,vnew,nx,ny,h,nt,dt) end

subroutine therm(aold,anew,nx,ny,h,nt,dt)c assuming dimension aold(nx,ny),anew(nx,ny) character*36 labelc teplotni vodivost konstantni a=1e-6 a=1e-6c nulova pocatecni podminka aold=0 hx=h/(nx-1) hy=h/(ny-1) do i=1,nx x=(i-1)*hx aold(i,ny)=100*sin(x) anew(i,ny)=aold(i,ny) enddo call wopen(10,'teploty',30,90,0,20,480,320) call gmfstw(1,0,10,3,14,'x','y',0.,1.,0.,1.,0.,h,0.,h) call gmfaxe(1,7,15) do it=1,nt do j=2,ny-1 do i=2,nx-1c vnitrni body oblasti- explicitni metoda aux=aold(i,j)*(1/dt-2*a*(1/hx**2+1/hy**2))+ / a*((aold(i-1,j)+aold(i+1,j))/hx**2+ / (aold(i,j-1)+aold(i,j+1))/hy**2) anew(i,j)=aux*dt if(abs(anew(i,j)).gt.200.)stop

enddoenddo

if(mod(it,nt/10).eq.0)then write(label,'('' Nt='',i4,'' dt='',e10.3)')it,dt call gmfrctr(1,label,22,anew,nx,ny,0.,h,0.,h,0.,100.,0,800,0) endif do j=2,ny-1 do i=2,nx-1 aold(i,j)=anew(i,j)

enddoenddo

enddo endÚkol pro studenty: Naprogramovat plně implicitní metodu

16

Page 17: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

ADI Implicitní metoda střídavých směrů

x-implicitní

y-implicitní

Diskretizacex-implicitní

y-implicitní

Kdybychom hledali jen stacionární řešení byla by optimální volba časového kroku

,

Pro hrubý odhad relativní velikosti časových půlkroků lze využít informaci o rychlosti šíření teplotní poruchy odpovídající konduktivnímu přenosu tepla

čemuž odpovídá poměr časových půlkroků

17

Page 18: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

c Nestacionarni vedeni tepla ADI use msflib dimension vold(10000),vnew(10000) write(*,*)' Nazdar Rudolfe, zadej H,NX,NY,Ntime,dt' read(*,*)h,nx,ny,nt,dt write(*,*)' Nx=',nx,' Ny=',ny,' H=',h call therm(vold,vnew,nx,ny,h,nt,dt) end

subroutine therm(aold,anew,nx,ny,h,nt,dt)c assuming dimension aold(nx,ny),anew(nx,ny) dimension aa(100),bb(100),cc(100),dd(100),uu(100) character*36 labelc teplotni vodivost konstantni a=1e-6 a=1e-6c nulova pocatecni podminka anew=0c polovicni casovy krok x,y dtx=dt/2 dty=dt/2 hx=h/(nx-1) hy=h/(ny-1) do i=1,nx x=(i-1)*hx anew(i,ny)=100*sin(x) enddo aold=anew call wopen(10,'teploty',30,90,0,20,480,320) call gmfstw(1,0,10,3,14,'x','y',0.,1.,0.,1.,0.,h,0.,h) call gmfaxe(1,7,15) do it=1,nt atxx=a*dtx/hx**2 atxy=a*dtx/hy**2 atyy=a*dty/hy**2 atyx=a*dty/hx**2c x-implicitni do j=2,ny-1 aa(1)=0 bb(1)=1 cc(1)=0 aa(nx)=0

bb(nx)=1 cc(nx)=0 dd(1)=anew(1,j) dd(nx)=anew(nx,j) do i=2,nx-1 aa(i)=-atxx bb(i)=1+2*atxx cc(i)=-atxx

dd(i)=anew(i,j)+atxy*(anew(i,j+1)-2*anew(i,j)+anew(i,j-1)) enddo call tridag(aa,bb,cc,dd,uu,nx) do i=2,nx-1 aold(i,j)=uu(i) enddo enddoc y-implicitni do i=2,nx-1 aa(1)=0 bb(1)=1 cc(1)=0 aa(ny)=0 bb(ny)=1 cc(ny)=0 dd(1)=anew(i,1) dd(ny)=anew(i,ny) do j=2,ny-1 aa(j)=-atyy bb(j)=1+2*atyy cc(j)=-atyy

dd(j)=aold(i,j)+atyx*(aold(i+1,j)-2*aold(i,j)+aold(i-1,j)) enddo call tridag(aa,bb,cc,dd,uu,ny) do j=2,ny-1 anew(i,j)=uu(j) enddo

enddo if(mod(it,nt/10).eq.0)then write(label,'('' Nt='',i4,'' dt='',e10.3)')it,dt call gmfrctr(1,label,22,anew,nx,ny,0.,h,0.,h,0.,100.,0,800,0) endif enddo end

18

Page 19: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

Řešení programem FEMINA

C* Opening test date:16.10.02 at 10:05PT 1,0,0;PT 2,1,0;PT 3,1,1;PT 4,0,1;SF4PT 1,1,2,3,4;EGROUP 1,0,3,0;MPROP 1,.600E+00,0,4200,0,998,0,.400E-01,0,.210E+12,0,.280E+00,0,.100E-02,0,0,0,0,0,0,0,0,0RCONST 1,1,0,0,0,0,0,0,0,0,0;MSF 1,20,20,1,1,4;FUNDEF -2,100*SIN(XX);NFCR 1,1,-1,0,0,0;NFCR 2,1,-1,0,0,0;NFCR 4,1,-1,0,0,0;NFCR 3,1,-2,1,1,1;INITIA 1,0;THERMA 0,1,1;EGROUP 1,1,3,0;INITIA 1,0;THERMA 0,100,1000;

Stacionární teplotní pole 20 x 20 Q3

Nestacionární teplotní pole 20 x 20 Q3 dt=1000 Nt=100

19

Page 20: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

Okrajová podmínka 3.druhu je asi nejkomplikovanější

C* Opening test date:16.10.02 at 13:28PT 1,0,0;PT 2,1,0;PT 3,1,1;PT 4,0,1;SF4PT 1,1,2,3,4;EGROUP 1,0,3,0;MPROP 1,.600E+00,0,4200,0,998,0,.400E-01,0,.210E+12,0,.280E+00,0,.100E-02,0,0,0,0,0,0,0,0,0

RCONST 1,1,0,0,0,20,0,0,0,0,0;MSF 1,20,20,1,1,4;FUNDEF -2,100*SIN(XX);NFCR 1,1,-1,0,0,0;NFCR 4,1,-1,0,0,0;NFCR 3,1,-2,1,1,1;

NFCR 2,1,21,200,200,200;THERMA 0,1,0;

GCR 2,temp vykreslení průběhu teplot podél křivky číslo 2

20

Page 21: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

Konvektivní přenos tepla

Povšimněte si analogie s rovnicí

můžeme použít implicitní nebo explicitní metodu řešení (souřadnice z hraje roli evoluční proměnné – času – vývoj teplotního profilu).

Stabilitní analýza

, speciálně pro 1D problém

Metoda kontrolních objemůUvažujme jen jednorozměrný problémDivergentní formulace

Pro nestlačitelnou kapalinu je tato rovnice totožná s konzervativní formulací

Pro konstantní u,a

Centrální formule

Stabilita

TW=0, TE=1 TP bude kladné jen pro Peh<2.

Protiproudá formule (upwind) 1.řád přesnosti

21

z

x

y

EWW W P

ew

Page 22: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

pro u>0

, a TP bude vždy kladné.

Protiproudá formule (upwind) 2.řád přesnostiLineární extrapolace

Protiproudá formule QUICKkvadratický polynom

stabilita

Řád přesnostiTaylorův rozvoj řešení kolem bodu P

Dosazení do centrální formule

splňují všechny

kvadratické polynomy

Dosazení do upwind prvního řádu

22

Falešná difuze

Page 23: Přednáška cvičení 1 - cvut.czusers.fs.cvut.cz/rudolf.zitny/zitny/naz/NAZ02-1.doc · Web viewPříklad informací o KIWA KIVA (modeling of reactive flows) for more information

Dosazení do upwind 2.řádu

Nabízí se možnost kombinovat predikci centrální formule a upwindu – kompenzace třetích derivací rozvoje.

Dosazení do formule QUICK

Doporučení

QUICK pro rovnice hybnostihybridní schemata pro k,,c.

23


Recommended