| | | Materialien für den 3D-Druck im Hochtemperaturbereich, eine Pressemitteilung
|
Autor
|
Thema: Wärmetauscher mit Druckeinlass (1046 / mal gelesen)
|
RevolutionZero Mitglied
Beiträge: 29 Registriert: 11.01.2021 OpenFoam V8 OpenFoam 2106 (Ubuntu 20.04.3)
|
erstellt am: 29. Nov. 2021 07:46 <-- editieren / zitieren --> Unities abgeben:
Hallo, im Grunde möchte ich eine Hälfte eines Wärmetauschers simulieren, wobei ein konstanter Wärmestrom von außen über die Angabe des Gradienten aufgebracht werden soll. Am Inlet (unten) soll die Luft mit 4.1 bar und 313.15 K eintreten und das System über die Outlets (seitlich) bei Umgebungsdruck wieder verlassen. Innerhalb des Systems können Geschwindigkeiten um die Schallgeschwindigkeit erreicht werden (Werte aus Vergleichssimulationen mit Ansys Fluent). Die Berechnung soll dabei stationär, turbulent (k-epsilon-Modell) und kompressibel erfolgen und soll mit dem Solver chtMultiRegionSimpleFoam durchgeführt werden. Nun zu meinem Problem: Bei meinen gewählten Randbedingungen stellt sich nicht das zu erwartende Strömungsprofil ein bzw. die Luftgeschwindigkeit ändert sich kaum. Hat vielleicht jemand eine Idee, an was das liegen könnte? Den kompletten Case habe ich angehängt. Meine Randbedingungen lauten wie folgt: alphat-File des Fluids:
Code: dimensions [1 -1 -1 0 0 0 0 ];internalField uniform 0; boundaryField { inlet { type calculated; value uniform 0; } outlet { type calculated; value uniform 0; } sym_fluid { type symmetry; } fluid_to_solid { type compressible::alphatWallFunction; Prt 0.85; value uniform 0; } }
epsilon-File des Fluids:
Code:
dimensions [ 0 2 -3 0 0 0 0 ];internalField uniform 0.01; boundaryField { inlet { type turbulentMixingLengthDissipationRateInlet; mixingLength 0.005; value uniform 0.01; } outlet { type inletOutlet; inletValue uniform 0.01; value uniform 0.01; } sym_fluid { type symmetry; } fluid_to_solid { type epsilonWallFunction; value uniform 0.01; } }
k-File des Fluids:
Code:
dimensions [ 0 2 -2 0 0 0 0 ];internalField uniform 0.01; boundaryField { inlet { type turbulentIntensityKineticEnergyInlet; intensity 0.05; value uniform 0.01; } outlet { type inletOutlet; inletValue uniform 0.01; value uniform 0.01; } sym_fluid { type symmetry; } fluid_to_solid { type kqRWallFunction; value uniform 0.1; } }
nut-File des Fluids:
Code:
dimensions [ 0 2 -1 0 0 0 0 ];internalField uniform 0.01; boundaryField { inlet { type calculated; value uniform 0; } outlet { type calculated; value uniform 0; } sym_fluid { type symmetry; } fluid_to_solid { type nutkWallFunction; value uniform 0.01; } }
p-File des Fluids:
Code:
dimensions [ 1 -1 -2 0 0 0 0 ];internalField uniform 101325; boundaryField { inlet { type totalPressure; psi psi; gamma 1.4; p0 uniform 101325; value uniform 410000; } outlet { type fixedValue; value uniform 101325; } sym_fluid { type symmetry; } fluid_to_solid { type zeroGradient; } }
p_rgh-File des Fluids:
Code:
dimensions [ 1 -1 -2 0 0 0 0 ];internalField uniform 101325; boundaryField { inlet { type fixedFluxPressure; } outlet { type fixedValue; value $internalField; } sym_fluid { type symmetry; } fluid_to_solid { type fixedFluxPressure; } }
T-File des Fluids:
Code:
dimensions [ 0 0 0 1 0 0 0 ];internalField uniform 313.15; boundaryField { inlet { type fixedValue; value uniform 313.15; } outlet { type zeroGradient; } sym_fluid { type symmetry; } fluid_to_solid { type compressible::turbulentTemperatureCoupledBaffleMixed; value uniform 313.15; Tnbr T; kappaMethod fluidThermo; } }
U-File des Fluids:
Code:
dimensions [ 0 1 -1 0 0 0 0 ];internalField uniform ( 0 0 0 ); boundaryField { inlet { type pressureInletVelocity; value uniform (0 0 0); } outlet { type pressureInletOutletVelocity; value uniform (0 0 0); } sym_fluid { type symmetry; } fluid_to_solid { type noSlip; } }
p-File des Solids:
Code:
dimensions [1 -1 -2 0 0 0 0];internalField uniform 101325; boundaryField { wall { type calculated; value uniform 101325; } sym_solid { type symmetry; } solid_to_fluid { type calculated; value uniform 101325; } }
T-File des Solids:
Code:
dimensions [ 0 0 0 1 0 0 0 ];internalField uniform 313.15; boundaryField { wall { type fixedGradient; gradient uniform 2000; } sym_solid { type symmetry; } solid_to_fluid { type compressible::turbulentTemperatureCoupledBaffleMixed; value uniform 313.15; Tnbr T; kappaMethod solidThermo; } }
Vielen Dank schon mal für die Hilfe. Ich hoffe es kann jemand weiterhelfen. Schönen Gruß. [Diese Nachricht wurde von RevolutionZero am 29. Nov. 2021 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 29. Nov. 2021 15:35 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Hey, das p Feld ist belanglos und die Randbedingungen darin sollten alle auf calculated stehen. Wir rechnen mit p_rgh. Damit ist wohl klar wieso nichts passiert:
- p_rgh braucht den Druckgradient
- Fixiere Inlet
- Fixiere Outlet
- U mit pressureInletVelocity
- p_rgh wird am Inlet prghTotalPressure sein bzw. prghTotalHydrostaticPressure in Kombination mit der hydrostaticPressure FO für die Initialisierung von ph_rgh
- p_rgh wird am Outlet identisch zum Inlet sein (fixedValue ist ungeschickt weil das kein Fixed value ist aufgrund von rho*g*h). Ggf. gibts ja ein fixedHydrostaticPressure (musst nachschauen)
Ansonsten: Felder wie, alphat, nut, k, epsilon, ... sind irrlevant hier, genauso wenig wie die Solids ------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RevolutionZero Mitglied
Beiträge: 29 Registriert: 11.01.2021 OpenFoam V8 OpenFoam 2106 (Ubuntu 20.04.3)
|
erstellt am: 29. Nov. 2021 21:05 <-- editieren / zitieren --> Unities abgeben:
Hey Tobi, achso ok, wenn das p Feld belanglos ist, erklärt sich natürlich, warum nichts passiert. Danke für die Erklärungen! Ich hab nun die Randbedingungen wie folgt abgeändert, allerdings finde ich keine fixedHydrostaticPressure-Randbedingung, sondern nur eine prghPressure-Randbedingung. p-File:
Code:
dimensions [ 1 -1 -2 0 0 0 0 ];internalField uniform 101325; boundaryField { inlet { type calculated; value $internalField; } outlet { type calculated; value $internalField; } sym_fluid { type symmetry; } fluid_to_solid { type calculated; value $internalField; } }
p_rgh-File:
Code:
dimensions [ 1 -1 -2 0 0 0 0 ];internalField uniform 101325; boundaryField { inlet { type prghTotalPressure; p0 uniform 410000; } outlet { type prghPressure; p uniform 101325; } sym_fluid { type symmetry; } fluid_to_solid { type zeroGradient; } }
U-File:
Code:
dimensions [ 0 1 -1 0 0 0 0 ];internalField uniform ( 0 0 0 ); boundaryField { inlet { type pressureInletVelocity; value uniform (0 0 0); } outlet { type pressureInletOutletVelocity; value uniform (0 0 0); } sym_fluid { type symmetry; } fluid_to_solid { type noSlip; } }
Ich hab dann mal versucht mit diesen Randbedingungen die Simulation zu starten, allerdings bricht die Simulation nach wenigen Schritten ab, da die Temperatur einen sehr hohen, negativen Wert annimmt. Liegt das an der prghPressure-Randbedingung oder hab ich noch irgendwo einen Denkfehler? Schon mal vielen Dank für die Hilfe! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 30. Nov. 2021 19:23 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Hey, ich meinte ja das es gegebenenfalls eine fixedHydrostaticPressure BC gibt, nicht das diese tatsächlich existiert. In Foam v9 gibts folgende: Code:
prghEntrainmentPressure prghPressure prghTotalHydrostaticPressure prghTotalPressure prghUniformDensityHydrostaticPressure
Und ja, ist eigentlich klar wieso Dein Case crashed. Du versuchst mit Steady-State eine Lösung zu bekommen bei der 3 bar Überdruck von nem Patch kommt. Das crashed definitiv. Ramp den Druck von am Inlet nach oben. Außerdem weiß ich nicht ob Du überhaupt das hinbekommst, wenn Du sagst das Du Ma > 1 bist, müsstest ja fast ne andere Druck-Korrektur-Gleichung reinbauen; nur eine Vermutung. Zudem könntest mal mit potentialFoam versuchen zu initialisieren und Dein p_rgh Feld (internalField) nicht auf 1 bar lassen sondern ggf. in die Mitte setzen. Tobi
------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RevolutionZero Mitglied
Beiträge: 29 Registriert: 11.01.2021 OpenFoam V8 OpenFoam 2106 (Ubuntu 20.04.3)
|
erstellt am: 01. Dez. 2021 08:06 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Hey Tobi, erstmal danke für die Anmerkungen. In v2106 hab ich nur folgende BC: prghPressure, prghTotalPressure, prghTotalHydrostaticPressure und prghPermeableAlphaTotalPressure. Wenn ich das richtig verstanden habe, wird mit potentialFoam das Geschwindigkeitsfeld initialisiert und dieses kann als Anfangsbedingung für chtMultiRegionSimpleFoam verwendet werden, oder? Ich hab jetzt mal versucht mit potentialFoam zu initialisieren und hab mein p_rgh-Feld auf 2,5 bar gesetzt, allerdings startet potentialFoam nicht. Hab folgende Änderungen durchgeführt: fvSolution-File:
Code: solvers { rho { solver PCG; preconditioner DIC; tolerance 1e-7; relTol 0; } p_rgh { solver GAMG; tolerance 1e-7; relTol 0.01; smoother GaussSeidel; } "(U|h|k|epsilon|G|Ii)" { solver PBiCGStab; preconditioner DILU; tolerance 1e-7; relTol 0.1; } G { $p_rgh; tolerance 1e-05; relTol 0.1; } Phi { $p_rgh; } } SIMPLE { momentumPredictor yes; nNonOrthogonalCorrectors 0; pRefCell 0; pRefValue 100000; rhoMin 0.2; rhoMax 2; } potentialFlow { nNonOrthogonalCorrectors 10; } relaxationFactors { fields { rho 1.0; p_rgh 0.7; } equations { U 0.3; h 0.7; "(k|epsilon|omega)" 0.7; G 0.7; "ILambda.*" 0.7; qr 0.7; } }
fvSchemes-File:
Code: ddtSchemes { default steadyState; }gradSchemes { default Gauss linear; } divSchemes { default none; div(phi,U) bounded Gauss upwind; energy bounded Gauss upwind; div(phi,K) $energy; div(phi,h) $energy; turbulence bounded Gauss upwind; div(phi,k) $turbulence; div(phi,epsilon) $turbulence; div(phi,R) $turbulence; div(R) Gauss linear; div(Ji,Ii_h) Gauss linearUpwind grad(U); div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear uncorrected; } interpolationSchemes { default linear; } snGradSchemes { default uncorrected; }
Müssen hier noch weitere Änderungen durchgeführt werden, damit potentialFoam startet oder wo könnte hier die Ursache liegen? Des Weiteren hab ich auch mal den prghTotalPressure am inlet auf 1,2 bar gesetzt, dann ist zwar der Wert der Temperatur nicht so groß, aber trotzdem negativ und die Rechnung bricht ab. Dann liegt hier wahrscheinlich ein Fehler mit den Randbedingungen vor, oder? Mit freundlichen Grüßen Basti
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 01. Dez. 2021 16:47 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Hi Basti, --> VelocityDaming --> limitTemperature
Als fvOption reinnehmen. potentialFoam wirdn icht funktionieren, wenn Du keine U-Randbedingung hast, die einen Massenstrom definiert. potentialFoam kann nicht mit Druck-Deltas rechnen. Um das aber zu gewährleisten kannst Du für potentialFoam andere Randbedingungen verwenden. Du weißt ja sicherlich welcher Massenstrom strömt (oder Volumenstrom). Druckrandbedingungen und Geschwindigkeitsrandbedingungen für In- und Outlet anpassen -> potentialFoam --> Randbedingungen Re-Ab-Ändern und dann mit cht lösen. ------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RevolutionZero Mitglied
Beiträge: 29 Registriert: 11.01.2021 OpenFoam V8 OpenFoam 2106 (Ubuntu 20.04.3)
|
erstellt am: 02. Dez. 2021 13:06 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Hallo Tobi, ich hab jetzt die fvOptions unter system/fluid und system/solid mit aufgenommen. Schon mal danke für den Tipp. Für den Volumenstrom hab ich nur eine grobe Schätzung von 0.02 m³/s. Hab dann meine Randbedingungen wie folgt abgeändert und damit dann potentialFoam laufen lassen: U-File:
Code: dimensions [ 0 1 -1 0 0 0 0 ];internalField uniform ( 0 0 0 ); boundaryField { inlet { type flowRateInletVelocity; volumetricFlowRate 0.02; value uniform (0 0 0); rho rho; } outlet { type zeroGradient; } sym_fluid { type symmetry; } fluid_to_solid { type noSlip; } }
p_rgh-File:
Code: dimensions [ 1 -1 -2 0 0 0 0 ];internalField uniform 101325; boundaryField { inlet { type zeroGradient; } outlet { type prghPressure; p uniform 101325; } sym_fluid { type symmetry; } fluid_to_solid { type zeroGradient; } }
Als Ergebnis erhalte ich dann im U-File die folgende List:
Code: dimensions [0 1 -1 0 0 0 0];internalField uniform (0 0 0); boundaryField { inlet { type flowRateInletVelocity; volumetricFlowRate constant 0.02; value nonuniform List<vector> 728 ( (-1.5739771e-13 5.8077169e-14 626.28937) [...] (1.6283524e-20 9.5872947e-14 626.28937) ) ; } outlet { type zeroGradient; } sym_fluid { type symmetry; } fluid_to_solid { type noSlip; } }
Ausgabe im Terminal beim Ausführen von potentialFoam:
Code: Create timeCreate mesh for time = 0 potentialFlow: Operating solver in PISO mode
Reading velocity field U Constructing pressure field p Constructing velocity potential field Phi No MRF models present Calculating potential flow GAMG: Solving for Phi, Initial residual = 0, Final residual = 0, No Iterations 0 GAMG: Solving for Phi, Initial residual = 0, Final residual = 0, No Iterations 0 GAMG: Solving for Phi, Initial residual = 0, Final residual = 0, No Iterations 0 GAMG: Solving for Phi, Initial residual = 0, Final residual = 0, No Iterations 0 GAMG: Solving for Phi, Initial residual = 0, Final residual = 0, No Iterations 0 GAMG: Solving for Phi, Initial residual = 0, Final residual = 0, No Iterations 0 GAMG: Solving for Phi, Initial residual = 0, Final residual = 0, No Iterations 0 GAMG: Solving for Phi, Initial residual = 0, Final residual = 0, No Iterations 0 GAMG: Solving for Phi, Initial residual = 0, Final residual = 0, No Iterations 0 GAMG: Solving for Phi, Initial residual = 0, Final residual = 0, No Iterations 0 GAMG: Solving for Phi, Initial residual = 0, Final residual = 0, No Iterations 0 Continuity error = 0 Interpolated velocity error = 0 ExecutionTime = 4.04 s ClockTime = 4 s
End
Nun hätte ich die Frage, wie ich die Ergebnisse bzw. die Liste nun wiederum in chtMultiRegionSimpleFoam integriere. Denn um potentialFoam ausführen zu können, musste ich aus dem MultiRegion-Case wieder einen SingleRegion-Case machen. Oder gibt es eine Möglichkeit die beiden Solver in einem Case ausführen zu lassen? Danke für deine Hilfe. Mit freundlichen Grüßen Basti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 02. Dez. 2021 21:40 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Du musst PotentialFoam mit Code:
potentialFOAM -initializeUBCs
starten. Der Solver kann nicht mit flowRateInletVelocity, die muss erst in eine Geschwindigkeit umgewandelt werden. Outlet -> fixedValue. Die Ausgabe von potentialFoam sagt übrigens --> nichts gemacht. Du nimmst dann einfach das phi und U Feld und kopierst es in den 0/fluid/ Ordner. ------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RevolutionZero Mitglied
Beiträge: 29 Registriert: 11.01.2021 OpenFoam V8 OpenFoam 2106 (Ubuntu 20.04.3)
|
erstellt am: 03. Dez. 2021 11:46 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Hallo Tobi, danke für die Tipps und die Erklärung. Zitat: Der Solver kann nicht mit flowRateInletVelocity, die muss erst in eine Geschwindigkeit umgewandelt werden. Outlet -> fixedValue.
Am Inlet fixedValue vorgeben oder? Hab jetzt mal mit einer Inlet-Geschwindigkeit von 400 m/s initialisiert, da ist potentialFoam auch ohne Probleme durchgelaufen. Hab dann noch -writephi ergänz, damit auch das phi-File erzeugt wird. Anschließend hab ich das phi-File in 0/fluid kopiert und das U-Feld hab ich ins U-File eingefügt. Wenn ich allerdings chtMultiRegionSimpleFoam starte erhalte ich die folgende Fehlermeldung: Code: --> FOAM FATAL ERROR: (openfoam-2106) [U[0 1 -2 0 0 0 0] ] + [(rho*MRFZoneList:acceleration)[1 -2 -2 0 0 0 0] ] From void Foam::checkMethod(const Foam::fvMatrix<Type>&, const Foam::DimensionedField<Type, Foam::volMesh>&, const char*) [with Type = Foam::Vector<double>] in file /usr/src/packages/BUILD/src/finiteVolume/lnInclude/fvMatrix.C at line 1351. FOAM aborting #0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::error::exitOrAbort(int, bool) at ??:? #2 void Foam::checkMethod<Foam::Vector<double> >(Foam::fvMatrix<Foam::Vector<double> > const&, Foam::DimensionedField<Foam::Vector<double>, Foam::volMesh> const&, char const*) in /usr/lib/openfoam/openfoam2106/platforms/linux64GccDPInt32Opt/bin/chtMultiRegionSimpleFoam #3 ? in /usr/lib/openfoam/openfoam2106/platforms/linux64GccDPInt32Opt/bin/chtMultiRegionSimpleFoam #4 ? in /usr/lib/openfoam/openfoam2106/platforms/linux64GccDPInt32Opt/bin/chtMultiRegionSimpleFoam #5 __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6 #6 ? in /usr/lib/openfoam/openfoam2106/platforms/linux64GccDPInt32Opt/bin/chtMultiRegionSimpleFoam Abgebrochen (Speicherabzug geschrieben)
Wenn ich nur das U-Feld im U-File einfüge läuft die Simulation ein paar Schritte weiter als zuvor, bricht dann allerdings auch mit der folgenden Fehlermeldung ab: Code: Time = 12 Solving for fluid region fluid velocityDampingConstraint velocityDamping damped 1089887 (100%) of cells DILUPBiCGStab: Solving for Ux, Initial residual = 0.089056866, Final residual = 3.7153106e-14, No Iterations 1 DILUPBiCGStab: Solving for Uy, Initial residual = 0.62739685, Final residual = 4.7145996e-13, No Iterations 1 DILUPBiCGStab: Solving for Uz, Initial residual = 0.25540347, Final residual = 8.3735338e-15, No Iterations 1 DILUPBiCGStab: Solving for h, Initial residual = 0.99999486, Final residual = 0.0059863807, No Iterations 1 limitTemperature limitT Lower limited 186599 (17.120949%) of cells limitTemperature limitT Upper limited 903287 (82.878959%) of cells limitTemperature limitT Unlimited Tmax 10000 Unlimited Tmin 273.15 Min/max T:273.15 10000 GAMG: Solving for p_rgh, Initial residual = 1, Final residual = 0.071617503, No Iterations 1000 time step continuity errors : sum local = 5.5346314e+40, global = 1.1560664e+40, cumulative = 1.2470269e+40 Min/max rho:0.2 2 #0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::sigFpe::sigHandler(int) at ??:? #2 ? in /lib/x86_64-linux-gnu/libpthread.so.0 #3 Foam::scalarProduct<double, double>::type Foam::sumProd<double>(Foam::UList<double> const&, Foam::UList<double> const&) at ??:? #4 Foam::PBiCGStab::scalarSolve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? #5 Foam::PBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? #6 Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) at ??:? #7 Foam::fvMatrix<double>::solveSegregatedOrCoupled(Foam::dictionary const&) at ??:? #8 Foam::fvMesh::solve(Foam::fvMatrix<double>&, Foam::dictionary const&) const at ??:? #9 Foam::SolverPerformance<double> Foam::solve<double>(Foam::tmp<Foam::fvMatrix<double> > const&) at ??:? #10 Foam::RASModels::kEpsilon<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??:? #11 ? in /usr/lib/openfoam/openfoam2106/platforms/linux64GccDPInt32Opt/bin/chtMultiRegionSimpleFoam #12 __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6 #13 ? in /usr/lib/openfoam/openfoam2106/platforms/linux64GccDPInt32Opt/bin/chtMultiRegionSimpleFoam Gleitkomma-Ausnahme (Speicherabzug geschrieben)
Muss ich noch irgendwas ergänzen, damit das mit dem phi-File funktioniert oder hab ich irgendwo anders einen Fehler gemacht? Gruß Basti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 03. Dez. 2021 13:18 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
... Die MassFlowRate musst Du nicht umändern aber so gehts aus. PotentialFoam hat keine Dichte -> somit ist das Flux Feld phi = phi / rho chtSolver enthalten die Dichte -> somit ist das Flux Feld phi = phi Die Einheiten passen in Deinem Fall also nicht. Du kannst jetzt das phi Feld von potentialFoam öffnen und die Dimensions anpassen aber ist nicht notwendig wenn Du U verwendest. Aber wie die Ausgabe zeigt, sind alle deine Geschwindigkeiten viel zu Groß. 100% Damping. Heißt: Du hast ein Problem im Set-Up, zu wenig Unterrelaxiert oder sonst was. Falsche Schemen, falsches Netz, unphysikalische Randbedingungen, falscher Löser, falsche Herangehensweise, falsche Druck-Gleichung, ... etc. Tobi
------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RevolutionZero Mitglied
Beiträge: 29 Registriert: 11.01.2021 OpenFoam V8 OpenFoam 2106 (Ubuntu 20.04.3)
|
erstellt am: 03. Dez. 2021 14:09 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
|
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 03. Dez. 2021 17:47 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
|
RevolutionZero Mitglied
Beiträge: 29 Registriert: 11.01.2021 OpenFoam V8 OpenFoam 2106 (Ubuntu 20.04.3)
|
erstellt am: 03. Dez. 2021 19:26 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
|
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 07. Dez. 2021 14:09 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Habs mir mal angeschaut aber bin innerhalb 1 h auch nicht weit gekommen. Lass mal die Layer weg, das Netz ist nämlich sehr schlecht an diversen Stellen. Dann betrachte nur deine Fluid-Region. PotentialFoam hilft hier. Dimensionen sind rihctig, oder? Gehe immernoch davon aus, das Du ne andere Druckgleichung brauchst. ------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RevolutionZero Mitglied
Beiträge: 29 Registriert: 11.01.2021 OpenFoam V8 OpenFoam 2106 (Ubuntu 20.04.3)
|
erstellt am: 08. Dez. 2021 09:22 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Danke, dass du dir den Case mal angeschaut hast. Denn werde ich jetzt erstmal die Fluid-Region genauer betrachten. Zitat: Dimensionen sind rihctig, oder?
Ja die Dimensionen sollten so passen.
Zitat: Gehe immernoch davon aus, das Du ne andere Druckgleichung brauchst.
Welche Möglichkeiten gibt es hierfür bzw. wie kann das implementiert werden? Hab jetzt mal die Foren bezüglich Druckgleichung und Druckkorrektur durchgeschaut, habe allerdings nichts Passendes gefunden. Gibt es hierzu irgendwelche Literatur, wo ich nachlesen kann? Danke für deine Hilfe. Gruß Basti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RevolutionZero Mitglied
Beiträge: 29 Registriert: 11.01.2021 OpenFoam V8 OpenFoam 2106 (Ubuntu 20.04.3)
|
erstellt am: 09. Dez. 2021 07:50 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Ich hab den Case nun mal auch in OpenFoam V8 (V2106 hab ich hauptsächlich für die Vernetzung komplexerer Geometrien verwendet) aufgebaut und bin nochmal Schritt für Schritt vorgegangen und hab mir explizit das Fluid angeschaut: 1. Simulation: Ohne Layers, konstanter Volumenstrom am Inlet anstatt Überdruck und Wasser anstatt Luft 2. Simulation: Ohne Layers, Druckdelta von 1 bar anstatt von 3bar und Wasser anstatt Luft 3. Simulation: Ohne Layers, Druckdelta von 3 bar und Wasser anstatt Luft 4. Simulation: Ohne Layers, Druckdelta von 3 bar und Luft Die ersten drei Simulationen sind ohne Probleme durchgelaufen und die initial residuals nehmen auch alle einen Wert von 1^-5 nach einer gewissen Zeit an. Selbstverständlich muss noch einiges am Netz geändert werden, damit dabei brauchbare Ergebnisse herauskommen, aber die Simulation ist durchgelaufen. Bei der vierten Simulation, also beim Wechsel von Wasser zu Luft und von inkompressibel auf kompressibel, bricht die Simulation allerdings wieder mit folgenden Fehler ab: Code: #0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::sigFpe::sigHandler(int) at ??:? #2 ? in "/lib/x86_64-linux-gnu/libc.so.6" #3 Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) at ??:? #4 Foam::operator/(Foam::tmp<Foam::Field<double> > const&, Foam::UList<double> const&) at ??:? #5 Foam::CompressibleMomentumTransportModel<Foam::fluidThermo>::nu(int) const at ??:? #6 Foam::nutkWallFunctionFvPatchScalarField::nut() const at ??:? #7 Foam::nutWallFunctionFvPatchScalarField::updateCoeffs() at ??:? #8 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::Boundary::evaluate() in "/opt/openfoam8/platforms/linux64GccDPInt32Opt/bin/chtMultiRegionFoam" #9 Foam::RASModels::kEpsilon<Foam::CompressibleMomentumTransportModel<Foam::fluidThermo> >::correctNut() at ??:? #10 ? in "/opt/openfoam8/platforms/linux64GccDPInt32Opt/bin/chtMultiRegionFoam" #11 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" #12 ? in "/opt/openfoam8/platforms/linux64GccDPInt32Opt/bin/chtMultiRegionFoam" Gleitkomma-Ausnahme (Speicherabzug geschrieben)
Für die thermophysicalProperties von Wasser hab ich folgende Werte genommen:
Code: // Water thermoType { type heRhoThermo; mixture pureMixture; transport const; thermo hConst; equationOfState rhoConst; specie specie; energy sensibleEnthalpy; }mixture { specie { molWeight 18; } equationOfState { rho 1000; } thermodynamics { Cp 4181; Hf 0; } transport { mu 959e-6; Pr 6.62; } }
Für die thermophysicalProperties von Luft hab ich folgende Werte genommen:
Code: // Air thermoType { type heRhoThermo; mixture pureMixture; transport const; thermo hConst; equationOfState perfectGas; specie specie; energy sensibleEnthalpy; }mixture { specie { molWeight 28.9; } thermodynamics { Cp 1000; Hf 0; } transport { mu 1.8e-05; Pr 0.7; } }
Das wird wahrscheinlich die Vermutung mit einer anderen Druckgleichung unterstützen, oder? Gruß Basti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 09. Dez. 2021 22:44 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Nein. Die Druckgleichung änderst Du ja nirgends. Zumal Du ein Problem mit dem Turbulenzmodell und der Wandfunktion hast. Rechne halt rhoConst bei Luft erstmal an und wechsel dann zu incompressiblePerfectGas und dann zu perfectGas. Aber wie gesagt, wenn Du Irgndwo bei Ma ~ 1 bist, dann solltest Du mal rhoPimpleFoam versuchen. Du kannst auch die "world-coupling" Sache von ESI verwenden: Bspw. rhoPimpleFoam coupling mit solidFoam = gleich zu chtMulti, nur das zwei Solver gekoppelt werden. Dann kannst auch die transonic verwenden und die andere Druck-Korrektur nehmen. ------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RevolutionZero Mitglied
Beiträge: 29 Registriert: 11.01.2021 OpenFoam V8 OpenFoam 2106 (Ubuntu 20.04.3)
|
erstellt am: 09. Dez. 2021 23:50 <-- editieren / zitieren --> Unities abgeben: Nur für RevolutionZero
Mit rhoConst hab ich es heute mal probiert, da bricht die Simulation auch sofort ab. Dann werde ich es morgen mal mit rhoPimpleFoam versuchen und ansonsten rhoPimpleFoam mit solidFoam. Vielen Dank für die Tipps. Gruß Basti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|