Autor
|
Thema: InterFoam Simulation von Blasen (1104 / mal gelesen)
|
mars001 Mitglied
Beiträge: 17 Registriert: 11.04.2018 Windows 7 Professional SP1 Intel Xeon CPU E5-1650 3,5GHz 32GB Ram Nvidia Quadro M4000 Catia V5 R26
|
erstellt am: 02. Mai. 2019 20:56 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich beschäftige mich derzeit mit der Simulation von Blasen mit Hilfe des "interFoam" Solvers. Mir ist es nun nach anfänglichen Schwierigkeiten gelungen, dass der Rechenfall zumindest fehlerfrei erstmal durchläuft. Ich tue mich allerdings bei der Festlegung der "boundary Conditions" schwer. Simulationsbeschreibung Wie man in der Abbildung entnehmen kann, soll durch das Inlet ein Luft-Gemisch über ein Volumenstrom eingeführt werden, dass zur Blasenbildung führt. Somit entsteht gegenüber der Förderflüssigkeit (Wasser) ein spezifisch leichteres Luftflüssigkeitsgemisch. Das leichtere Luftflüssigkeitsgemisch steigt im Rohr zusammen mit der Luft von selbst nach oben. Ziel ist es, ein Wassertransport mit Hilfe der Blasenbildung in das obere Becken zu realisieren (Prinzip Mammutpumpe). Randbedingungen: laminare Strömung, geordneter Blasenaufstieg, Umgebung: Atmosphärische Bedingung Nachfolgend die derzeit gesetzten boundary conditions. Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; object alpha.water; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // //#include $WM_PROJECT_DIR/etc/caseDicts/setConstraintTypes // parallel --> https://www.cfd-online.com/Forums/openfoam-solving/172721-running-rhocentralfoam-parallel-cannot-find-patchfield-entry-procboundary.html
dimensions [0 0 0 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type inletOutlet; value uniform 0; inletValue uniform 0; } atmosphaere_Speicher { type inletOutlet; inletValue uniform 0; value uniform 0; } atmosphaere_Becken { type inletOutlet; inletValue uniform 0; value uniform 0; } outlet { type zeroGradient; } Wasserspeicher { type zeroGradient; }
Becken { type zeroGradient; } XylemLeitung { type zeroGradient; } } // ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; object p_rgh; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [1 -1 -2 0 0 0 0];
internalField uniform 0; boundaryField { inlet { type fixedValue; value uniform 0; } atmosphaere_Speicher { type prghPressure; //type fixedValue; p $internalField; value uniform 0; } atmosphaere_Becken { type zeroGradient; } Wasserspeicher { type zeroGradient; }
Becken { type zeroGradient; } XylemLeitung { type zeroGradient; } outlet { type zeroGradient; } } // ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / 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.1); boundaryField { inlet { type flowRateInletVelocity; //fixedValue pressureInletOutletVelocity volumetricFlowRate 0.01; //m^3 pro s //alpha alpha.water; value uniform (0 0 0.1); } outlet { type fixedValue; value uniform (0 0 0); } atmosphaere_Speicher { type pressureInletOutletVelocity; value uniform (0 0 0); } atmosphaere_Becken { type fixedValue; value uniform (0 0 0); } Becken { type fixedValue; value uniform (0 0 0); }
Wasserspeicher { type fixedValue; value uniform (0 0 0); } XylemLeitung { type fixedValue; value uniform (0 0 0); } } // ************************************************************************* //
Ich hoffe die kurze Beschreibung hat das Problem verdeutlicht. Vorab erstmal vielen Dank für die Unterstützung Viele Grüße Mars
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 13. Mai. 2019 09:57 <-- editieren / zitieren --> Unities abgeben: Nur für mars001
|
mars001 Mitglied
Beiträge: 17 Registriert: 11.04.2018 Windows 7 Professional SP1 Intel Xeon CPU E5-1650 3,5GHz 32GB Ram Nvidia Quadro M4000 Catia V5 R26
|
erstellt am: 13. Mai. 2019 22:07 <-- editieren / zitieren --> Unities abgeben:
Servus Tobi, in erster Linie bin ich mir nicht sicher, ob ich die Randbedingungen richtig gesetzt habe. Habe diese nochmals abgeändert, bin aber der Meinung, dass diese immer noch fehlerhaft sind (habe die aktuellen unten angefügt). Die Abbildung im Anhang zeigt das Ergebnis der Simulation bei 0,5 Sekunden. Sowohl bei einem groben als auch bei einem feineren Netz bricht die Simulation ab. Bei einem groben Netz bricht die Rechnung ab, da das deltaT enorm klein wird (^-110). Meine Idee war zunächst, dass interFoam Probleme beim lösen der Gleichung hat, wenn das Netz zu grob ist. Deshalb habe ich versucht eine Rechnung mit einem etwas feineren Netz durchzuführen. Allerdings erscheint dann nachfolgende Fehlermeldung (siehe nachfolgende log-File Ausgabe). Habe in verschiedenen Foren gelesen, dass dieser Fehler auftritt wenn die Randbedingungen fehlerhaft/schlecht sind.
Code:
Pstream initialized with: floatTransfer : 0 nProcsSimpleSum : 0 commsType : nonBlocking polling iterations : 0 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster allowSystemOperations : Allowing user-supplied system call operations// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 PIMPLE: Operating solver in PISO mode
Reading field p_rgh Reading field U Reading/calculating face flux field phi Reading transportProperties Selecting incompressible transport model Newtonian Selecting incompressible transport model Newtonian Selecting turbulence model type laminar Reading g Reading hRef Calculating field g.h No MRF models present No finite volume options present DICPCG: Solving for pcorr, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 0, global = 0, cumulative = 0 Courant Number mean: 0 max: 0 Starting time loop Courant Number mean: 0 max: 0 Interface Courant Number mean: 0 max: 0 deltaT = 0.001 Time = 0.001 PIMPLE: iteration 1 MULES: Solving for alpha.water Phase-1 volume fraction = 0 Min(alpha.water) = 0 Max(alpha.water) = 0 MULES: Solving for alpha.water Phase-1 volume fraction = 0 Min(alpha.water) = 0 Max(alpha.water) = 0 [7] #0 Foam::error: rintStack(Foam::Ostream&)[8] #0 Foam::error: rintStack(Foam::Ostream&)[9] #0 Foam::error: rintStack(Foam::Ostream&)[10] #0 Foam::error: rintStack(Foam::Ostream&)[11] #0 Foam::error: rintStack(Foam::Ostream&)[0] #0 Foam::error: rintStack(Foam::Ostream&)[1] #0 Foam::error: rintStack(Foam::Ostream&)[2] #0 Foam::error: rintStack(Foam::Ostream&)[3] #0 Foam::error: rintStack(Foam::Ostream&)[4] #0 Foam::error: rintStack(Foam::Ostream&)[5] #0 Foam::error: rintStack(Foam::Ostream&)[6] #0 Foam::error: rintStack(Foam::Ostream&) at ??:? at ??:? [11] #1 Foam::sigFpe::sigHandler(int)[3] #1 Foam::sigFpe::sigHandler(int) at ??:? [6] #1 Foam::sigFpe::sigHandler(int) at ??:? at ??:? at ??:? [10] #1 Foam::sigFpe::sigHandler(int)[5] #1 Foam::sigFpe::sigHandler(int)[1] #1 Foam::sigFpe::sigHandler(int) at ??:? at ??:? [8] #1 Foam::sigFpe::sigHandler(int)[9] #1 Foam::sigFpe::sigHandler(int) at ??:? [0] #1 Foam::sigFpe::sigHandler(int) at ??:? [7] #1 Foam::sigFpe::sigHandler(int) at ??:? [4] #1 Foam::sigFpe::sigHandler(int) at ??:? [2] #1 Foam::sigFpe::sigHandler(int) at ??:? [9] #2 ? at ??:? [6] #2 ? at ??:? [11] #2 ? at ??:? [5] #2 ? at ??:? [3] #2 ? at ??:? [0] #2 ? at ??:? [10] #2 ? at ??:? [8] #2 ? at ??:? [1] #2 ? at ??:? [7] #2 ? at ??:? [2] #2 ? at ??:? [4] #2 ? in "/lib64/libc.so.6" [9] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs() in "/lib64/libc.so.6" in "/lib64/libc.so.6" [6] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs()[5] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs() in "/lib64/libc.so.6" [11] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs() in "/lib64/libc.so.6" in "/lib64/libc.so.6" [3] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs() in "/lib64/libc.so.6" in "/lib64/libc.so.6" [10] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs()[0] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs()[8] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs() in "/lib64/libc.so.6" [7] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs() in "/lib64/libc.so.6" [4] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs() in "/lib64/libc.so.6" [2] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs() in "/lib64/libc.so.6" [1] #3 Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs() at ??:? [8] #4 at ??:? [3] #4 at ??:? [6] #4 at ??:? [10] #4 at ??:? [9] #4 at ??:? [5] #4 at ??:? [11] #4 at ??:? [0] #4 at ??:? [7] #4 at ??:? [4] #4 at ??:? [2] #4 Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs()Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs()Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs()Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs()Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs() at ??:? [1] #4 Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs()Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs()Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs()Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs()Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs()Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs() at ??:? [6] #5 Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::updateCoeffs() at ??:? [10] #5 at ??:? [8] #5 at ??:? [3] #5 at ??:? [5] #5 at ??:? [9] #5 at ??:? [11] #5 at ??:? [0] #5 at ??:? [2] #5 at ??:? [7] #5 Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&)Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&) at ??:? [4] #5 Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&)Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&)Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&)Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&)Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&) at ??:? [1] #5 Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&)Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&) at ??:? [5] #6 Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&)Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&) at ??:? [10] #6 at ??:? [8] #6 at ??:? [0] #6 at ??:? [6] #6 Foam::fvMatrix<Foam::Vector<double> >::fvMatrix(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::DimensionSet const&) at ??:? [3] #6 at ??:? [9] #6 at ??:? [11] #6 ?? at ??:? [7] #6 at ??:? [2] #6 ?? at ??:? [4] #6 ?? at ??:? [1] #6 ?? at ??:? [5] #7 ? at ??:? [8] #7 at ??:? [10] #7 at ??:? [0] #7 ?? at ??:? [9] #7 at ??:? [6] #7 ? at ??:? [11] #7 at ??:? [3] #7 ???? at ??:? [2] #7 ? at ??:? [4] #7 at ??:? [1] #7 ? at ??:? [7] #7 ? at ??:? [5] #8 __libc_start_main? at ??:? [8] #8 __libc_start_main? at ??:? [0] #8 __libc_start_main at ??:? [10] #8 __libc_start_main? at ??:? [9] #8 __libc_start_main?? at ??:? [6] #8 __libc_start_main at ??:? [11] #8 __libc_start_main in "/lib64/libc.so.6" [5] #9 at ??:? [3] #8 __libc_start_main in "/lib64/libc.so.6" [0] #9 at ??:? [2] #8 in "/lib64/libc.so.6" [8] #9 __libc_start_main at ??:? [4] #8 __libc_start_main in "/lib64/libc.so.6" [10] #9 at ??:? [1] #8 __libc_start_main in "/lib64/libc.so.6" [9] #9 at ??:? [7] #8 __libc_start_main in "/lib64/libc.so.6" [6] #9 in "/lib64/libc.so.6" [11] #9 ??? in "/lib64/libc.so.6" [3] #9 in "/lib64/libc.so.6" [2] #9 ?? in "/lib64/libc.so.6" [4] #9 in "/lib64/libc.so.6" [1] #9 ? in "/lib64/libc.so.6" [7] #9 ? at ??:? --------------------------------------------------------------------------
Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; object alpha.water; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 0 0 0 0 0 0];
internalField uniform 0; boundaryField { inlet { type fixedValue; value $internalField; } Wasserspeicher { type zeroGradient; } atmosphaere_Speicher { type inletOutlet; inletValue $internalField; value $internalField; } XylemLeitung { type zeroGradient; } //////////////////// atmosphaere_Becken { type inletOutlet; inletValue $internalField; value $internalField; } Becken { type zeroGradient; } } // ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; object p_rgh; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [1 -1 -2 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type prghPressure; rho rho; p uniform 0; value uniform 0; // optional initial value } outlet { type totalPressure; p0 uniform 0; U U; phi phi; rho rho; psi none; gamma 1; value $internalField; } atmosphaere_Speicher { type totalPressure; p0 uniform 0; U U; phi phi; rho rho; psi none; gamma 1; value $internalField; } Wasserspeicher { type fixedFluxPressure; value $internalField; } XylemLeitung { type fixedFluxPressure; value $internalField; }
//////////////////////////////// atmosphaere_Becken { type totalPressure; p0 uniform 0; U U; phi phi; rho rho; psi none; gamma 1; value $internalField; } Becken { type fixedFluxPressure; value $internalField; } } // ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / 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 { Wasserspeicher { type fixedValue; value uniform (0 0 0); } XylemLeitung { type fixedValue; value uniform (0 0 0); } inlet { type flowRateInletVelocity; //fixedValue pressureInletOutletVelocity volumetricFlowRate 0.001; //0.01 m^3 pro s 0.001 alpha alpha.water; value uniform (0 0 0); } outlet //atmosphere { type pressureInletOutletVelocity; value uniform (0 0 0); } atmosphaere_Speicher { type pressureInletOutletVelocity; value uniform (0 0 0); } ////////////////////
atmosphaere_Becken { type pressureInletOutletVelocity; value uniform (0 0 0); } Becken { type fixedValue; value uniform (0 0 0); } }
// ************************************************************************* //
Ich hoffe, dass dieser Beitrag mein Problem etwas besser verdeutlicht. Viele Grüße und besten Dank für deine/eure Unterstützung Mars
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| |
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 15. Mai. 2019 09:15 <-- editieren / zitieren --> Unities abgeben: Nur für mars001
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|