Nahajate se tukaj

Razvoj vrtinčenja - von Karmanova nestabilnost

Primer prikazuje nastanek vrtinčenja ot von Karmanove nestabilsnoti. Geometrija je cev z krožno oviro. Primer obravnavamo dvodimenzionalno.

  1. Odpremo terminalsko okno in zaženemo:
    $ single
    Job XXXX is submitted to default queue - interactive.
    Waiting for dispatch ...
    Starting on cnXX
    $ module load elmergui
      Loading qwt/6.0.2
      Loading vtk/5.10.1
      Loading ftgl/2.1.3-rc5
      Loading qt/4.8.4
      Loading paraview/3.98
      Loading opencascade/6.5.5
      Loading openmpi/1.8.1
      Loading elmer/7.0
      Loading elmergui/7.0
    $ ElmerGUI
  2. V meniju programa ElmerGUI izberemo:
    File -> Open
    circle_in_channel.in2d
  3. Povečamo gostoto mreže
    Mesh->Configure
       nglib / Max H: 0.02
    Mesh
       Remesh

    Ko imamo mrežo, začnemo z definicijo modela, 
  4. Pripravimo ploskve za določitev robnih pogojev. 
    Kot robni pogoj želimo nastaviti temperaturo na notranjem robu širšega dela valjastih odprtin. To površino definira šest ploskev, zato moramo izbrati na sliki rdeče prikazane površine (sestavljene so iz šestih ploskev).

    Prvo ploskev izberemo z dvojnim klikom nanjo, za izbor naslednjih pa moramo držati tipko CTRL in hkrati izvesti dvojni klik na izbrani ploskvi. Če izberemo napačno ploskev ponovimo dvojni klik na tej ploskvi (ob hkratnem držanji tipke CTRL). Tipka CTRL omogoča dodajanje ali odvzemanje predhodno izbranih ploskev k izboru. Če objekta ni pravilo orientiran, ga med izborom lahko tudi rotiramo, kot je opisano zgoraj.
    Ko izberemo vse ploskve robnih pogojev nadaljujemo z:
    Mesh -> Unify Surface
  5. Podati moramo še podatke modela. Pri tem po vrsti (od vrha proti dnu) sledimo navedbam v padajočem meniju ‘Model’. V nadaljevanju podajamo korake našega priemra:
  6. Definiramo splošne nastavitve:
    Model -> Setup
    Simulation Type = Transient
    Steady state max. Iter =1
    Time Stepping Method = bdf
    BDF Order = 2
    Time Step Intervals = 200
    Time Step Sizes = $ 8/200
    Apply
  7. Definicija enačb:
    Izveremo relevantne enačbe in parametre. V našem primeru uporabimo dva solverja (v Elmerju imenovana Equations). Za tekočino uporabimo solver za pretk tekočine in solver za pretok toplote, za železno cev pa le solver za pretok toplote.
    Ker poznamo mrežo in vemo, da tekočino predstavlja Body 1, cev pa Body 2 bomo tej geomertiji dodelili solverje (Equation) in materialu že ob njihovi definiciji.
    Model -> Equation
    Add
       Name = Navier-Stokes
       Apply to Bodies = 1
       Izberemo jeziček 'Navier Stokes' in definiramo:
          Active = on (tj postavimo kljukico)
          Edit Solver Settings
             Nonlinear system
                Convergence tol. = 1.0e-4
             Linear System
                Convergence tol. = 1.0e-6
       Add
    OK (V redu)
    Definiramo materiala. Za definicijo materilanih lastnosti vode (sobne temperature)  in železa uporabimo knjižnico: :
    
  8. Model -> Material
    Add
       Material library
          Watter – room temperature (izberemo iz menija)
          Apply to bodies = Body 1 (postavimo kljukico)
       Add
    New
       Material library
          Iron generic  (izberemo iz menija)
          Apply to bodies = Body 2 (postavimo kljukico)
       Add
    OK
    OK
  9. Definiramo obtežbo:
    Model -> Body force
    Add
    Izberemo jeziček Heat Equation
    Name = Heating
    Head Source = 0.01
    Apply to bodies = Body 1 (postavimo kljukico)
    Add
    OK (V redu)
  10. Definiramo robne pogoje:
    Model -> Boundary condition
    Add
       Name = HotInFlow
       Heat Equation
         Temperature = 350.0
       Navier-Stokes
         Velocity 1 = 0.0
         Velocity 2 = 0.0
         Velocity 3 = Variable Coordinate; Real MATC "100.0*(1.0e-4-tx(0)^2-tx(1)^2)"
       Add
    New
       Name = Outflow
       NaviewStokes
         Use normal-tangential coordinate system = on
         Velocity 2 = 0.0
         Velocity 3 = 0.0
       Add
    New
       Name = NoSlip
       Navier-Stokes
         NoSlip Wall BC = on
       Add
    New
       Name = Troom
       Heat Equation
          Temperatute = 300.0
       Add
    OK
    OK
    OK
    OK (V redu)
  11. Za pomoč pri določivi vhodne ploskve aktiviramo kompas:
    View -> Compas = on (odkljukamo opcijo v meniju View)

    Vhodna ploskev naj bo tista tatere normala kaže vzporedno z osi.:

  12. Za določitev robnih pogjev s pomočjo grafičnega vmesnika
    Model -> Set boundary properties (izberemo oz odkljukamo opcijo)
  13. Dvokiknemo na površino vhodne linije,  odpre se nam okno za izbiro robnih pogojev. Pod ‘Boundary condition’ izberemo ‘Inlet’.
    Dvokiknemo na površino izhodne linije,  odpre se nam okno za izbiro robnih pogojev. Pod ‘Boundary condition’ izberemo ‘Outlet’.

  14. Generiramo vhodno datoteko za program ‘ElmerSolver’:
    Sif -> Generate
    
    Nastalo datoteko si lahko ogledamo z izbiro iz menija:
    Sif -> Edit

    Datoteko lahko nato uredimo, ali zapustimo z ukazom ‘File->Quit’.

  15. Shranimo projekt (Podatke projekta lahko shranimo v poljubni vazi vnosa):
    File -> Save Project
    Za shranjevanje projekta izberemo poljuben direktorij (npr. poddirektorij 'ProjectFiles').

    Podatke projekta prikličemo z: File -> LoadProject in izberemo dorektorij, kamor smo podatke shranili.

  16. Izračunamo primer:
    Run -> Start solver
    

    .

  17. Za ogled rezultatov poženemo postprocesor:
    Run -> postprocesor
  18. Da si v postprocesorju lahko ogledamo vse rezultate moramo ponovno odpreti datoteko (File-Open). Ob pritisku na gumb All se naložijo izračuni vseh časovnih korakov. Video simulacije si nato lahko ogledamo z pritiskom gumba Loop v meniju Edit – Timestep Control. V nadaljevanju prikazujemo le distribucijo hitrosti pri časovnih korakih 20, 60, 100, 150 in 200.:

    Časovni korak 20.
    .
    Časovni korak 60.
    ,
    Časovni korak 100.

    Časovni korak 150.

    Časovni korak 200.