| |
| Blechfertigung: Leitfaden zur Materialauswahl, ein Fachartikel
|
Autor
|
Thema: Numerische Instabilität durch unterschiedliche Temperaturen (3204 mal gelesen)
|
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 18. Jun. 2013 13:50 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich sitze an einem eigentlich recht trivialen Problem. Ich möchte im ersten Schritt Luft mit 1,5 m/s durch einen Quader strömen lassen. Die Luft im Quader soll 1373 K und die einströmende Luft 1573 K haben. Ich verwende den buoyantSimpleFoam mit kEpsilon für das Problem. Wenn ich die einströmende Luft auch auf 1373 K setze konvergiert die Simulation wunderbar, bei 1573 K kommt es im Modell jedoch immer irgendwo zu numerischen Instabilitäten, wodurch die Temperatur lokal stark ansteigt, bzw. sinkt. Ich gehe mal davon aus, dass ich irgendwelche Randbedingungen falsch definiert habe. Also die Luft strömt durch die Fläche "back" ein und aus "outlet" wieder raus. Hier mal meine Randbedingungen: Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.2.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object epsilon; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -3 0 0 0 0]; internalField uniform 1.505e-4; boundaryField { baseleft { type compressible::epsilonWallFunction; value uniform 1.505e-4; } baseright { type compressible::epsilonWallFunction; value uniform 1.505e-4; } sides { type compressible::epsilonWallFunction; value uniform 1.505e-4; } back { type fixedValue; value uniform 1.505e-4; } outlet { type zeroGradient; } }
Code: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object k; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [0 2 -2 0 0 0 0]; internalField uniform 2.383e-3; boundaryField { baseleft { type compressible::kqRWallFunction; value uniform 2.383e-3; } baseright { type compressible::kqRWallFunction; value uniform 2.383e-3; } sides { type compressible::kqRWallFunction; value uniform 2.383e-3; } back { type fixedValue; value uniform 2.383e-3; } outlet { type zeroGradient; } }
Code: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [ 1 -1 -2 0 0 0 0 ]; internalField uniform 101325; boundaryField { baseleft { type zeroGradient; } baseright { type zeroGradient; } sides { type zeroGradient; } back { type zeroGradient; } outlet { type fixedValue; value uniform 101325; } }
Code: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object p_rgh; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [ 1 -1 -2 0 0 0 0 ]; internalField uniform 101325; boundaryField { baseleft { type zeroGradient; } baseright { type zeroGradient; } sides { type zeroGradient; } back { type zeroGradient; } outlet { type fixedValue; value uniform 101325; } }
Code: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object T; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [0 0 0 1 0 0 0]; internalField uniform 1373; boundaryField { ".*" { type fixedValue; value uniform 1373; } back { type fixedValue; value uniform 1373; } outlet { type zeroGradient; } }
Code: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volVectorField; location "0"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { ".*" { type fixedValue; value uniform (0 0 0); } back { type fixedValue; value uniform (0 0 -1.5); } outlet { type zeroGradient; } }
Weiß jemand Rat? Vielen vielen Dank im Voraus!! [Diese Nachricht wurde von Matze7 am 18. Jun. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 18. Jun. 2013 18:55 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
|
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 19. Jun. 2013 10:06 <-- editieren / zitieren --> Unities abgeben:
Hi, also ich hab die Simulation mit einigen Einstellungen getestet, keine hat funktioniert. Hier VARIANTE 1: Code:
*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.2.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; } divSchemes { default none; div(phi,U) bounded Gauss upwind; div(phi,h) bounded Gauss upwind; div(phi,e) bounded Gauss upwind; div(phi,T) bounded Gauss linear; div(phi,k) bounded Gauss upwind; div(phi,epsilon) bounded Gauss upwind; div(phi,R) bounded Gauss upwind; div(phi,K) bounded Gauss linear; div(phi,Ekp) bounded Gauss linear; div(R) bounded Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p_rgh; }
Code:
solvers { p_rgh { solver ICCG; preconditioner FDIC; tolerance 1e-6; relTol 0; } p_rghFinal { $p_rgh; tolerance 1e-7; relTol 0; } "(U|h|T|e|k|epsilon|R)" { solver PBiCG; preconditioner DILU; tolerance 1e-05; relTol 0.1; } "(U|h|T|e|k|epsilon|R)Final" { solver PBiCG; preconditioner DILU; tolerance 1e-06; relTol 0; } G { $p_rgh; tolerance 1e-05; relTol 0.1; } Ii { solver GAMG; tolerance 1e-4; relTol 0; smoother DILU; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } } SIMPLE { nNonOrthogonalCorrectors 1; pRefCell 1; pRefValue 1;
residualControl { p_rgh 1e-4; U 1e-5; h 1e-5; G 1e-3; // possibly check turbulence fields "(k|epsilon|epsilon)" 1e-4; } } relaxationFactors { fields { p_rgh 0.4; } equations { U 0.7; k 0.7; h 0.8; R 0.7; "(k|epsilon|R)" 0.7; G 0.7; } } }
und VARIANTE 2: Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.2.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; } divSchemes { default none; div(phi,U) bounded Gauss upwind; div(phi,h) bounded Gauss upwind; div(phi,K) bounded Gauss upwind; div(phi,k) bounded Gauss upwind; div(phi,epsilon) bounded Gauss upwind; div((muEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear uncorrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p_rgh; }
Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.2.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //solvers { p_rgh { solver PCG; preconditioner DIC; tolerance 1e-8; relTol 0.01; } "(U|h|e|k|epsilon|R)" { solver PBiCG; preconditioner DILU; tolerance 1e-6; relTol 0.1; } } SIMPLE { nNonOrthogonalCorrectors 1; pRefCell 1; pRefValue 1; residualControl { p_rgh 1e-3; U 1e-3; h 1e-4; e 1e-3; // possibly check turbulence fields "(k|epsilon|omega)" 1e-3; } } relaxationFactors { fields { rho 1.0; p_rgh 0.7; } equations { U 0.3; "(h|e)" 0.3; "(k|epsilon|R)" 0.5; } }
an allen Werten habe ich da auch schon rumgespielt, aber bis jetzt ohne Erfolg... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 19. Jun. 2013 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Hi, verwende mal ein Limiterverfahren bei deiner Enthalpy (oder auch bei allen): Code:
div(phi,h) bounded Gauss limitedLinear 1;
Wenn du für Vektorfelder ein Limiterverfahren willst lautet dies:
Code:
div(phi,U) Gauss limitedLinearV 1;
danach setzt du mal die Relax wie folgt:
Code:
relaxationFactors { fields { rho 0.3; p_rgh 0.2; } equations { U 0.2; "(h|e)" 0.2; "(k|epsilon|R)" 0.2; } }
Was sagt checkMesh? Wie sieht dein Netz aus; Tets/Hexaederzellen? Wie viele Zellen!? ------------------ Grüße Tobias Holzmann
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 19. Jun. 2013 13:31 <-- editieren / zitieren --> Unities abgeben:
Hey, leider auch mit den limitedLinear und den relaxationFactors, läuft die Temperatur nach einigen Iterationsschritten irgendwohin, wo sie net hinsoll. Das Modell ist einfach mit Hexaedern und blockMesh vernetzt und hat im moment 1,6 Mio. Zellen, aber auch 300.000 oder 6 Mio. Zellen liefern das gleiche Ergebnis. Ich hab aber auch schon versucht den Einlass mit sHM stark zu verfeinern, das hat aber auch nix gebracht. Auch ein Umstieg aus das kOmegaSST-Modell war erfolglos. Wenn ich heute abend daheim bin, lade ich den Simulationsordner hier mal hoch, vllt. hilft das weiter. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 19. Jun. 2013 17:27 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
|
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 19. Jun. 2013 22:04 <-- editieren / zitieren --> Unities abgeben:
|
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 19. Jun. 2013 22:41 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Hi, gleich mal vorab Code:
".*" { type fixedValue; value uniform 1373; }
Das in die erste Zeile zu schreiben heißt: OpenFOAM wird alle Patches mit dieser RB beaufschlagen (soweit ich weiß). Somit gibst du vor allem beim Feld T und U keine brauchbaren RB vor. Wenn du das so machen willst, dann immer zum Schluss anhängen. Code:
FoamFile { version 2.0; format ascii; class volVectorField; location "0"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { back { type fixedValue; value uniform (0 0 -1.5); } outlet { type zeroGradient; } ".*" { type fixedValue; value uniform (0 0 0); } }
Damit dürfte sich alles geklärt haben. Viel Spaß Dein Case läuft damit durch. ------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 20. Jun. 2013 00:10 <-- editieren / zitieren --> Unities abgeben:
Ah okay, ich hab jetzt das ".*" komplett raus und alle RB einzeln definiert. Dann wieder die Simulation angeschmissen, aber immer noch das gleiche Problem. Die Temperaturen gehen nach einigen Iterationsschritten wieder in utopische Höhen und die Strömungsgeschwindigkeiten auch. Ich hab mal ein Screenshot von der outlet-Seite gemacht. Für mich einfach nicht plausibel, wie aus 1,5 m/s mehr als 263 m/s werden. Also ich verwende OF 2.2.0, das verwendest du doch auch, oder? Dann lass ich die Simulation parallel auf 4-6 Kernen laufen. Irgendwas scheint auf meinem Rechner anders zu laufen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 20. Jun. 2013 08:01 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Hi, ich habs gestern bis 500 Iterationen laufen lassen. War alles in Ordnung. Ich lad dir den Case heute Abend hoch. PS: Poste mal U und T, gegebenenfalls kann ich dir dann gleich helfen ------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 20. Jun. 2013 09:03 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen, hast du dir auch das Ergebnis angeschaut? Ist das plausibel? Bei mir läuft die Simulation nämlich auch durch und bricht nicht ab, aber Sinn machen die Ergebnisse irgendwie halt net. Hier mal meine T und U-files: Code: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object T; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [0 0 0 1 0 0 0]; internalField uniform 1373; boundaryField { baseleft { type fixedValue; value uniform 1373; } baseright { type fixedValue; value uniform 1373; } sides { type fixedValue; value uniform 1373; } back { type fixedValue; value uniform 1573; } outlet { type zeroGradient; } }
Code: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volVectorField; location "0"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { baseleft { type fixedValue; value uniform (0 0 0); } baseright { type fixedValue; value uniform (0 0 0); } sides { type fixedValue; value uniform (0 0 0); } back { type fixedValue; value uniform (0 0 -1.5); } outlet { type zeroGradient; } }
Danke! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 20. Jun. 2013 12:04 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Hi, also ich hab nur kurz den Residuenverlauf angeschaut und der war i.O. deswegen hab ich auch nicht mehr weiter nachgeschaut (hab ja auch etliches anderes zu tun ) Ich schau einfach mal heut Abend nochmals drüber. Was ich auch gemacht habe war folgendes:
Code:
FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object T; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 0 0 1 0 0 0];internalField uniform 1373; boundaryField { baseleft { type zeroGradient; value uniform 1373; } baseright { type zeroGradient; value uniform 1373; } sides { type zeroGradient; value uniform 1373; } back { type fixedValue; value uniform 1573; } outlet { type zeroGradient; } }
Prinzipiell dürfte da nichts falsch laufen. Aber wie gesagt - ich bin nur kurz drübergeflogen Wird mir das dann heut Abend nochmals genauer anschauen und versuchen dein Problem ausfindig zu machen. Seh ich ja dann sofort, ob bei mir irgend etwas Probleme bereitet oder nicht. ------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 20. Jun. 2013 13:08 <-- editieren / zitieren --> Unities abgeben:
Hi Tobias, ja das war das interessante, die Residuen haben auch immer gut gepasst. Aber mit dem type zeroGradient; value uniform 1373; passt jetzt alles wunderbar Ich fass es noch gar net, nur "zeroGradient" hat nämlich auch keine Ergebnisse rausgebracht. Ich wusste gar net, dass es eine solche Kombination gibt. Also mit der RB geb ich OF nen fixen Wert an und sag OF gleichzeitig, dass die Gradient in Normalenrichtung Null ist, oder ist mehr dahinter? Aber schonmal vielen vielen Dank für deine Hilfe!!! Auf diese RB wär ich nie gekommen!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 20. Jun. 2013 17:15 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Hi, also allgemein verwende ich normalerweise: Code:
type zeroGradient;
Beim Aufruf dieser Funktion wird (soweit ich mich entsinnen kann) gecheckt ob ein "value" Wert vorgegeben wird. Dieser wird dann für die Initialisierung verwendet. Bei der Rechnung wird dieser natürlich immer ersetzt; ansonsten müsstest du ein fixedValue machen. Das ist allgemein bei RB der Fall. Oft wird geprüft, ob der User einen Wert für "value" gesetzt hat oder nicht. Wenn nicht, wird eben die Initialisierung woanders her genommen. Was genau OF hernimmt müsste man mal in der RB nachschaun, bzw. schauen wie OF die Faces dann initialisiert. Bei einer RB hatte ich damals nichts vorgegeben (ich glaube es war wallHeatTransfer) ... der Solver startete und die Initialisierung war ohne Probleme durchgelaufen, doch beim ersten Iterationsschritt gab er mir einen Fehler aus: Floating Point exeption.... ... Bis ich erst darauf gekommen war, dass es an dieser RB lag, dauerte etwas. Weiß nicht was OF da gemacht hat. Aber seit dem versuch ich eigentlich immer eine Initialisierung vorzugeben. Ich schaus mir jetzt dann an. Grüße Tobi
------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 20. Jun. 2013 18:29 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Hey. Wie sollen den die Wände sein? FixedValue oder ein zeroGradient? Dein Problem ist: Rückströmung. Deswegen erhältst du so große Geschwindigkeiten und Probleme! Hier ggf. mal andere RB für Druck und U am Outlet setzen. ------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 20. Jun. 2013 23:14 <-- editieren / zitieren --> Unities abgeben:
Hey, die Wände sollen die gleiche Temperatur wie die Strömung haben und das passt mit den RB jetzt. Wie gesagt, nach dem Setzen des "value" für die zeroGradient-Bedingungen im T-File läuft jetzt alles, so wie ich mir das vorstelle! Am outlet den nen fixen Wert für p und die zeroGradient Bedingung für U passt ja auch, oder gibts da ne bessere Möglichkeit? Ein riesen Dank nochmal für deine Hilfe, ich hab vorher ne ganze Woche an dem Problem gesessen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 20. Jun. 2013 23:49 <-- editieren / zitieren --> Unities abgeben:
|
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 21. Jun. 2013 00:45 <-- editieren / zitieren --> Unities abgeben:
So nachdem ich alle möglichen RB-Kombinationen für p und U am outlet durchgespielt habe, hab ich das Problem nur in den Griff bekommen, in dem ich im U-File das internalField die Eintrittsgeschwindigkeit (0 0 -1.5) aufgeprägt hab. Gibt es sonst noch ne Möglichkeit die Rückströmung zu verhindern? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 21. Jun. 2013 08:25 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Hallo, mit der RB [inletOutlet] kannst du Rückströmungen vermeiden. Kann aber auch zu einem "sinnfreien" Strömungsbild führen. Die Initialisierung des Geschwindigkeitsprofils mit 1,5 m/s ist doch nicht verkehrt. Damit konvergiert die Simulation noch schneller. Andere Möglichkeit ist dein Outlet zu verlängern bzw. deinen Kanal! ------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 21. Jun. 2013 12:27 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Weiß nicht ob das in deinem Fall sinnvoll ist aber wenn man am Outlet eine Umgebung simuliert, kann man auch mit "totalPressure" im p_rgh File arbeiten und bei U mit pressureInletOutletVelocity. Grüße Tobi ------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 27. Jun. 2013 16:02 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Zitat: Original erstellt von Matze7: So nachdem ich alle möglichen RB-Kombinationen für p und U am outlet durchgespielt habe, hab ich das Problem nur in den Griff bekommen, in dem ich im U-File das internalField die Eintrittsgeschwindigkeit (0 0 -1.5) aufgeprägt hab.Gibt es sonst noch ne Möglichkeit die Rückströmung zu verhindern?
Ergänzung: Soweit ich mir noch im Bilde bin, rechnest du mit dem buoyantSimpleFoam; SIMPLE ist das Stichwort. Alle Zeitableitungen = 0. Entsprechend ist die Vorkonditionierung deines Strömungsfeldes doch durchaus ein guter Weg. Zudem verringert sich deine Rechenzeit und die Lösung konvergiert schneller. ------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 28. Jun. 2013 10:02 <-- editieren / zitieren --> Unities abgeben:
Hi Tobias, ich hab jetzt auch mal die Variante mit der Umgebung mittels totalPressure ausprobiert. Das funktioniert super und die Lösung konvergiert jetzt deutlich schneller Ich hab die Werte für die totalPressure-RB aus dem Dambreak-Tutorial kopiert:
Code:
type totalPressure; p0 uniform 101325; U U; phi phi; rho rho; psi none; gamma 1; value uniform 101325;
Ich hab auch schon nach der RB gesucht um zu finden, was man an diesen Werten so alles einstellen kann. Habe aber leider nichts darüber gefunden. Aber so funktioniert es ja erstmal! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 28. Jun. 2013 10:58 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Hi, also die Einstellung ist soweit okay. Details findest du im Programmiercode. Je nachdem was du verwendest, werden andere Gleichungen gelöst. p0 ist der Referenzdruck phi phi, U U, rho rho ist glaub ich klar. Einfach ne Zuweisung. psi none -> keine Kompressibilität gamma 1 -> weiß ich grad nicht mehr aber das ist ne Formel die dann berechnet wird - das Ergebnis = 1 Ist irgendein Verhältnis. value - einfache Initialisierung.
------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 28. Jun. 2013 14:48 <-- editieren / zitieren --> Unities abgeben:
|
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 19. Jul. 2013 13:52 <-- editieren / zitieren --> Unities abgeben:
Hi, mein Problem scheint immer noch nicht gelöst zu sein. Die Strömung ohne Objekte im Simulationsmodell funktioniert einwandfrei mit den oben genannten Einstellungen. Wenn ich jetzt aber Objekte in das Strömungsmodell einfüge, erhalte ich mal wieder Rückströmungen am Austritt. Wie kann denn das jetzt schon wieder sein? Die Objekte werden von der Strömung umströmt und enden auch vor dem Auslass. Die Initialisierung der Strömungsgeschwindigkeit des gesamten Simulationsgebietes habe ich rausgenommen, da es ansonsten durch die Strömung zwischen den Objekten zu Abbrüchen der Rechnung kommt. Ich hab schon wieder alles mögliche ausprobiert, mit den immer gleichen Resultaten. Also so langsam verzweifel ich wirklich an diesem Zeug. Weiß jemand, was sich jetzt durch die Objekte so geändert haben kann und wie ich das abstelle? Grüße [Diese Nachricht wurde von Matze7 am 19. Jul. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 19. Jul. 2013 20:22 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
|
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 29. Jul. 2013 09:33 <-- editieren / zitieren --> Unities abgeben:
Hallo, so ich bin in letzter Zeit nicht mehr dazu gekommen was hochzuladen, da mein Server das gerne verhindert. Problem hab ich aber durch ein anderes Netz gelöst. War wohl an den zwei Stellen nicht optimal. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mbay101 Mitglied Student
Beiträge: 31 Registriert: 28.06.2013
|
erstellt am: 01. Aug. 2013 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Hallo alle zusammen, ich entschuldige mich falls ich mich hier eindringe. Ich habe aber ein sehr ähnliches Problem und ich würde gerne nach einem Tipp fragen. Ich habe geschafft die Wärmeleitung zwischen 2 Solid Region zu simulieren. Jetzt wollte ich nun Luft dazu einfügen und die Konvektion simulieren. Leider nach zwei Rechnschritte kommt die Fehlermeldung 'Maximum number of Iterations exceeded'. Ich habe hier gesehen, dass durch die Relaxations eine Verbesserung durchgeübt kann. Das war auch der Fall bei mir. Ich konnte nach Änderung der RelaxationFactors bis 3 Rechneschritte rechnen. Ich habe aber immer gemerkt, dass die Temperatur in der Luft sehr stark schwingt (Min/max T: -3613.09 101141), wobei ich nur in 360 bis 290K arbeite. Das Netz habe ich schon überprüft. checkMesh deutet auf gar keinen Fehler. Also es muss an meinen BC. Die habe ich nach dem Tutorial chtMultiRegionSimpleFoam eingelegt. Anbei sind die File in 0/AIR. Ich hoffe, dass jemand Zeit dafür nimmt, mir hier zu helfen. zu meinem Case: - Es findet keine Strömung statt (Freie Konvektion) - KK und WLP sind die zwei Bauteile (WLP: Wärmequelle) Ich bedanke mich im voraus. Mark [Diese Nachricht wurde von mbay101 am 01. Aug. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 05. Aug. 2013 23:31 <-- editieren / zitieren --> Unities abgeben:
Hey, poste doch mal bitte deine fvSchemes (als Code, nicht als Bild ) Solches Verhalten kommt oft durch die Verwendung von linearen Interpolationen, die Aufwind Interpolation bringt zwar zusätzliche Diffusion mit rein, läuft aber deutlich stabiler. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mbay101 Mitglied Student
Beiträge: 31 Registriert: 28.06.2013
|
erstellt am: 06. Aug. 2013 09:45 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Hallo Matze7, danke für die Rückmeldung. Code: _____________________________________________________ ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; } divSchemes { defaut none; div(phi,U) bounded Gauss upwind; div(phi,K) bounded Gauss upwind; div(phi,h) bounded Gauss upwind; div(phi,k) bounded Gauss upwind; div(phi,K) bounded Gauss upwind; div(phi,epsilon) bounded Gauss upwind; div(phi,R) bounded Gauss upwind; div(R) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default none; laplacian(muEff,U) Gauss linear uncorrected; laplacian(Dp,p_rgh) Gauss linear uncorrected; laplacian(alphaEff,h) Gauss linear uncorrected; laplacian(DkEff,k) Gauss linear uncorrected; laplacian(DepsilonEff,epsilon) Gauss linear uncorrected; laplacian(DREff,R) Gauss linear uncorrected; } interpolationSchemes { default linear; } snGradSchemes { default uncorrected; } fluxRequired { default no; p_rgh; _________________________________________________ fvSchemes für Fluid- sowie Solidbereich habe ich aus dem Tutorial chtMultiRegionSimpleFoam übernommen. Ich werde mal versuchen mit andere divSchemes zu arbeiten. kannst du mir sagen aus deine Erfahrung welche divSchemen werden hier das Problem beheben? Vielen Danke im voraus . Grüß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matze7 Mitglied
Beiträge: 16 Registriert: 12.04.2013
|
erstellt am: 06. Aug. 2013 10:13 <-- editieren / zitieren --> Unities abgeben:
Die numerischen Schemen schauen auf den ersten Blick eigentlich nicht verkehrt aus. Aber bei k und epsilon hast du alles als Wände definiert, wie schauts mit Auslass, etc. aus!? ".*" zu verwenden ist gefährlich, musste ich auch schon lernen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mbay101 Mitglied Student
Beiträge: 31 Registriert: 28.06.2013
|
erstellt am: 06. Aug. 2013 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für Matze7
Hallo, Es ist mir bekannt, dass man durch den Einsatz von ".*" viel vekehrt machen kann . Ich habe also mir Zeit genommen und alle boundary ein nacheinander zu schreiben. Das hat aber die Fehler nicht behoben. Mein case ist recht einfach (eigentlich). Ich habe nur ein Inlet, wo eine Temperatur von z.B. 360K eintreten und die wird mein gesamtes System beeinflussen (Wärmeleitung, Konvektion und Strahlung). Diese Temperatur wird als fixedValue in 0/Bauteil/T Datei deklariert. Ich habe freie Konvektion Also kein Inlet oder Outlet der Strömung. Ich vernetze mit Salome und verbinde ich die verschiedene Region durch type mappedWall in constant Ordne. Und Hier liegt eigentlich der einziger Unterschied zu Tutorial. Ich benutze Salome und mappedWall, in Tutorial wird aber mit blockMesh gearbeitet. Kann es sein dass mappedWall nicht funktioniert, wenn die mapped Flächen nicht gleich Groß sind?? Danke für die schnelle Rückmeldung Gruß [Diese Nachricht wurde von mbay101 am 07. Aug. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |