| | | MDG Engineering Nutzt Xometry, Um Medizinische Geräte Zu Bauen Und Das Globale Wachstum Voranzutreiben, ein Anwenderbericht
|
Autor
|
Thema: interFoam mit Rohrdurchfluss alpha water wird sehr groß und bricht ab (2258 / mal gelesen)
|
silencebreak Mitglied
Beiträge: 12 Registriert: 22.05.2017 OpenFoam version 2.4.0 CentOS 6.9
|
erstellt am: 31. Mai. 2017 15:14 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, Also ich hatte bereits zu meiner Geometrie schon einen Beitrag erstellt, aber das Problem bezieht sich nun auf etwas völlig anderes, deswegen habe ich einfach einen neues Thema aufgemacht. Hoffe das ist in Ordnung. Also das folgende Problem ist, dass bei der Berechnung mit interFoam ein "Floating point exception" auftritt. Zuvor ist das min alpha.water sehr klein (negativ) und das max alpha.water sehr groß geworden:
Code: PIMPLE: iteration 5 smoothSolver: Solving for alpha.water, Initial residual = 1.94935e-05, Final residual = 7.87551e-09, No Iterations 8 Phase-1 volume fraction = -2.47759e+25 Min(alpha.water) = -1.37309e+31 Max(alpha.water) = 3.74463e+30 MULES: Correcting alpha.water MULES: Correcting alpha.water Phase-1 volume fraction = -5.8282e+87 Min(alpha.water) = -5.29417e+108 Max(alpha.water) = 4.00537e+108 DILUPBiCG: Solving for Ux, Initial residual = 3.52345e-05, Final residual = 3.31758e-07, No Iterations 1 DILUPBiCG: Solving for Uy, Initial residual = 1.23229e-05, Final residual = 1.15754e-07, No Iterations 1 DILUPBiCG: Solving for Uz, Initial residual = 0.0024537, Final residual = 8.06753e-07, No Iterations 2 DICPCG: Solving for p_rgh, Initial residual = 1, Final residual = 0.0117686, No Iterations 2 DICPCG: Solving for p_rgh, Initial residual = 1.48064e-32, Final residual = 1.48064e-32, No Iterations 0 time step continuity errors : sum local = 1.37465e+73, global = -1.23629e+57, cumulative = -1.23629e+57 DICPCG: Solving for p_rgh, Initial residual = 1.11437e-32, Final residual = 1.11437e-32, No Iterations 0 DICPCG: Solving for p_rgh, Initial residual = 2.69491e-29, Final residual = 2.69491e-29, No Iterations 0 time step continuity errors : sum local = 3.32435e+76, global = 4.8102e+58, cumulative = 4.68657e+58 PIMPLE: iteration 6 smoothSolver: Solving for alpha.water, Initial residual = 1.57827e-71, Final residual = 1.57827e-71, No Iterations 0 Phase-1 volume fraction = -5.8282e+87 Min(alpha.water) = -5.29417e+108 Max(alpha.water) = 4.00537e+108 [0] #0 Foam::error: rintStack(Foam::Ostream&) at ??:? [0] #1 Foam::sigFpe::sigHandler(int) at ??:? [0] #2 ? in "/lib64/libc.so.6" [0] #3 Foam::PhiScheme<double, Foam::interfaceCompressionLimiter>::limiter(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) const at ??:? [0] #4 Foam::limitedSurfaceInterpolationScheme<double>::weights(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) const at ??:? [0] #5 Foam::surfaceInterpolationScheme<double>::interpolate(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) const at ??:? [0] #6 Foam::fv::gaussConvectionScheme<double>::interpolate(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) const at ??:? [0] #7 Foam::fv::gaussConvectionScheme<double>::flux(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) const at ??:? [0] #8 ? at ??:? [0] #9 ? at ??:? [0] #10 __libc_start_main in "/lib64/libc.so.6" [0] #11 ? at ??:? [intze:00607] *** Process received signal *** [intze:00607] Signal: Floating point exception (8) [intze:00607] Signal code: (-6) [intze:00607] Failing at address: 0x7b60000025f [intze:00607] [ 0] /lib64/libc.so.6[0x3e80032510] [intze:00607] [ 1] /lib64/libc.so.6(gsignal+0x35)[0x3e80032495] [intze:00607] [ 2] /lib64/libc.so.6[0x3e80032510] [intze:00607] [ 3] /opt/OpenFOAM/OpenFOAM-2.4.0/platforms/linux64GccDPOpt/lib/libinterfaceProperties.so(_ZNK4Foam9PhiSchemeIdNS_27interfaceCompressionLimiterEE7limiterERKNS_14GeometricFieldIdNS_12fvPatchFieldENS_7volMeshEEE+0x544)[0x7f1acb22ff54] [intze:00607] [ 4] interFoam(_ZNK4Foam33limitedSurfaceInterpolationSchemeIdE7weightsERKNS_14GeometricFieldIdNS_12fvPatchFieldENS_7volMeshEEE+0x1f)[0x47180f] [intze:00607] [ 5] interFoam(_ZNK4Foam26surfaceInterpolationSchemeIdE11interpolateERKNS_14GeometricFieldIdNS_12fvPatchFieldENS_7volMeshEEE+0x36)[0x4941e6] [intze:00607] [ 6] interFoam(_ZNK4Foam2fv21gaussConvectionSchemeIdE11interpolateERKNS_14GeometricFieldIdNS_13fvsPatchFieldENS_11surfaceMeshEEERKNS3_IdNS_12fvPatchFieldENS_7volMeshEEE+0x29)[0x43ab19] [intze:00607] [ 7] interFoam(_ZNK4Foam2fv21gaussConvectionSchemeIdE4fluxERKNS_14GeometricFieldIdNS_13fvsPatchFieldENS_11surfaceMeshEEERKNS3_IdNS_12fvPatchFieldENS_7volMeshEEE+0x1a)[0x4917aa] [intze:00607] [ 8] interFoam[0x466ff4] [intze:00607] [ 9] interFoam[0x4311a6] [intze:00607] [10] /lib64/libc.so.6(__libc_start_main+0xfd)[0x3e8001ed1d] [intze:00607] [11] interFoam[0x43452d] [intze:00607] *** End of error message *** -------------------------------------------------------------------------- mpirun noticed that process rank 0 with PID 607 on node intze exited on signal 8 (Floating point exception). --------------------------------------------------------------------------
Code: PIMPLE: iteration 39 smoothSolver: Solving for alpha.water, Initial residual = 0.999984, Final residual = 9.97978e-09, No Iterations 614 Phase-1 volume fraction = 0.829065 Min(alpha.water) = -32.2618 Max(alpha.water) = 111192 MULES: Correcting alpha.water MULES: Correcting alpha.water Phase-1 volume fraction = 2240.35 Min(alpha.water) = -1.11785e+14 Max(alpha.water) = 1.76653e+14 DICPCG: Solving for p_rgh, Initial residual = 0.483445, Final residual = 0.0186748, No Iterations 4 DICPCG: Solving for p_rgh, Initial residual = 5.17562e-06, Final residual = 8.88668e-08, No Iterations 3 time step continuity errors : sum local = 2418.41, global = 0.732933, cumulative = 5.79231 DICPCG: Solving for p_rgh, Initial residual = 2.19966e-06, Final residual = 1.03255e-07, No Iterations 2 DICPCG: Solving for p_rgh, Initial residual = 1.74413e-06, Final residual = 9.61539e-08, No Iterations 3 time step continuity errors : sum local = 1027.08, global = 0.600325, cumulative = 6.39264 PIMPLE: iteration 40 smoothSolver: Solving for alpha.water, Initial residual = 0.999942, Final residual = 1.10283e-05, No Iterations 1000 Phase-1 volume fraction = -3.33138e+10 Min(alpha.water) = -3.37856e+15 Max(alpha.water) = 12.8881 MULES: Correcting alpha.water MULES: Correcting alpha.water Phase-1 volume fraction = 2.79588e+36 Min(alpha.water) = -2.11044e+57 Max(alpha.water) = 4.94517e+56 [0] #0 Foam::error: rintStack(Foam::Ostream&) at ??:? [0] #1 Foam::sigFpe::sigHandler(int) at ??:? [0] #2 ? in "/lib64/libc.so.6" [0] #3 Foam::DICPreconditioner::calcReciprocalD(Foam::Field<double>&, Foam::lduMatrix const&) at ??:? [0] #4 Foam::DICPreconditioner::DICPreconditioner(Foam::lduMatrix::solver const&, Foam::Dictionary const&) at ??:? [0] #5 Foam::lduMatrix: reconditioner::addsymMatrixConstructorToTable<Foam::DICPreconditioner>::New(Foam::lduMatrix::solver const&, Foam::Dictionary const&) at ??:? [0] #6 Foam::lduMatrix: reconditioner::New(Foam::lduMatrix::solver const&, Foam::Dictionary const&) at ??:? [0] #7 Foam::PCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [0] #8 Foam::fvMatrix<double>::solveSegregated(Foam::Dictionary const&) at ??:? [0] #9 Foam::fvMatrix<double>::solve(Foam::Dictionary const&) at ??:? [0] #10 ? at ??:? [0] #11 __libc_start_main in "/lib64/libc.so.6" [0] #12 ? at ??:? [intze:12121] *** Process received signal *** [intze:12121] Signal: Floating point exception (8) [intze:12121] Signal code: (-6) [intze:12121] Failing at address: 0x7b600002f59 [intze:12121] [ 0] /lib64/libc.so.6[0x3e80032510] [intze:12121] [ 1] /lib64/libc.so.6(gsignal+0x35)[0x3e80032495] [intze:12121] [ 2] /lib64/libc.so.6[0x3e80032510] [intze:12121] [ 3] /opt/OpenFOAM/OpenFOAM-2.4.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam17DICPreconditioner15calcReciprocalDERNS_5FieldIdEERKNS_9lduMatrixE+0x130)[0x7f6f9b438800] [intze:12121] [ 4] /opt/OpenFOAM/OpenFOAM-2.4.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam17DICPreconditionerC1ERKNS_9lduMatrix6solverERKNS_10dictionaryE+0xb0)[0x7f6f9b438910] [intze:12121] [ 5] /opt/OpenFOAM/OpenFOAM-2.4.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam9lduMatrix14preconditioner30addsymMatrixConstructorToTableINS_17DICPreconditionerEE3NewERKNS0_6solverERKNS_10dictionaryE+0x2e)[0x7f6f9b438bce] [intze:12121] [ 6] /opt/OpenFOAM/OpenFOAM-2.4.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam9lduMatrix14preconditioner3NewERKNS0_6solverERKNS_10dictionaryE+0x2f3)[0x7f6f9b42a0c3] [intze:12121] [ 7] /opt/OpenFOAM/OpenFOAM-2.4.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZNK4Foam3PCG5solveERNS_5FieldIdEERKS2_h+0x441)[0x7f6f9b42cfd1] [intze:12121] [ 8] /opt/OpenFOAM/OpenFOAM-2.4.0/platforms/linux64GccDPOpt/lib/libfiniteVolume.so(_ZN4Foam8fvMatrixIdE15solveSegregatedERKNS_10dictionaryE+0x132)[0x7f6f9d19fab2] [intze:12121] [ 9] interFoam(_ZN4Foam8fvMatrixIdE5solveERKNS_10dictionaryE+0x108)[0x47a058] [intze:12121] [10] interFoam[0x43002a] [intze:12121] [11] /lib64/libc.so.6(__libc_start_main+0xfd)[0x3e8001ed1d] [intze:12121] [12] interFoam[0x43452d] [intze:12121] *** End of error message *** -------------------------------------------------------------------------- mpirun noticed that process rank 0 with PID 12121 on node intze exited on signal 8 (Floating point exception). --------------------------------------------------------------------------
Ich habe meinen Fehler in den Boundary Conditions vermutet und bereits sehr viel damit herumgespielt aber leider nicht meinen Fehler entdeckt. Ich habe gelesen, dass dies auch mit dem Solver zusammenhängen könnte, aber bei PBiCG (1. Code) und beim smoothSolver (2. Code) entsteht jedes Mal der gleiche Fehler. Mein CheckMesh sieht wie folgt aus:
Code: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create timeCreate polyMesh for time = 0 Time = 0 Mesh stats points: 421021 faces: 1146505 internal faces: 1072094 cells: 365245 faces per cell: 6.07428 boundary patches: 5 point zones: 0 face zones: 0 cell zones: 0 Overall number of cells of each type: hexahedra: 300737 prisms: 37101 wedges: 0 pyramids: 0 tet wedges: 465 tetrahedra: 2 polyhedra: 26940 Breakdown of polyhedra by number of faces: faces number of cells 4 1585 5 897 6 2535 7 6013 8 4363 9 5600 10 41 11 5 12 5288 13 3 14 5 15 498 16 26 18 81 Checking topology... Boundary definition OK. Cell to face addressing OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. Number of regions: 1 (OK). Checking patch topology for multiply connected surfaces... Patch Faces Points Surface topology defaultFaces 0 0 ok (empty) Diffusor 2639 2900 ok (non-closed singly connected) inlet 1028 1117 ok (non-closed singly connected) outlet 212 222 ok (non-closed singly connected) pipeWall 70532 74173 ok (non-closed singly connected) Checking geometry... Overall domain bounding box (-0.005 -0.117165 -0.0024999) (0.005 0.1 0.67141) Mesh (non-empty, non-wedge) directions (1 1 1) Mesh (non-empty) directions (1 1 1) Boundary openness (9.26333e-17 5.3906e-16 -3.47714e-17) OK. Max cell openness = 4.05683e-16 OK. Max aspect ratio = 13.9809 OK. Minimum face area = 6.14697e-09. Maximum face area = 9.43785e-07. Face area magnitudes OK. Min volume = 7.65589e-13. Max volume = 5.62744e-10. Total volume = 1.80216e-05. Cell volumes OK. Mesh non-orthogonality Max: 67.8846 average: 10.0051 Non-orthogonality check OK. Face pyramids OK. Max skewness = 2.65368 OK. Coupled point location match (average 0) OK. Mesh OK. End
Ich bin mir also nicht sicher, ob ich boundary conditions oder meinen PIMPLE falsch definiert haben könnte. Hat einer eine Idee wo genau mein Fehler liegt? Wenn ich noch eine Datei vergessen haben sollte hochzuladen kann ich das gerne noch machen. Viele Grüße Oli [Diese Nachricht wurde von silencebreak am 31. Mai. 2017 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: 31. Mai. 2017 15:18 <-- editieren / zitieren --> Unities abgeben: Nur für silencebreak
|
cfdtobi Mitglied Student
Beiträge: 67 Registriert: 16.07.2015
|
erstellt am: 31. Mai. 2017 15:45 <-- editieren / zitieren --> Unities abgeben: Nur für silencebreak
Mit den boundaryConditions wird das mMn. nicht funktionieren. Du hast für U: inlet: inletoutlet also ein fixedValue in das Strömungsfeld outlet: outletinlet also ein fixedValue aus dem Strömungsfeld und für p: ebenfalls 2mal fixedValue für inlet und outlet. Kommst du mit den Standard-Randbedingungen nicht klar? Habe deinen case nicht im Kopf und aber das war doch eine Rohrströmung aus einem Becken?
Wieso dann nicht U: fixedValue am inlet und zeroGradient am outlet? p: fixedValue am outlet und zeroGradient am inlet? bzw. gedreht? Habe so eine Kanalströmung vor einiger Zeit gerechnet - damals aber rein Schwerkraftgetrieben. Hatte nur fixedValues für mein Druckfeld (Einlass/Auslass) und zeroGradient für U. (kann auf den Abend nen youtube - Link einstellen,)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
silencebreak Mitglied
Beiträge: 12 Registriert: 22.05.2017 OpenFoam version 2.4.0 CentOS 6.9
|
erstellt am: 31. Mai. 2017 16:20 <-- editieren / zitieren --> Unities abgeben:
|
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 31. Mai. 2017 21:14 <-- editieren / zitieren --> Unities abgeben: Nur für silencebreak
|
cfdtobi Mitglied Student
Beiträge: 67 Registriert: 16.07.2015
|
erstellt am: 01. Jun. 2017 08:29 <-- editieren / zitieren --> Unities abgeben: Nur für silencebreak
Habe das Ganze gestern mal angerechnet. Mit den Standard BC kommt man da schon klar. Geschwindigkeitsvektor zeigt in die falsche Richtung! Inlet - Normale zeigt in Y-Richtung U ist in positive X-Richtung am Inlet definiert. deine pimpleEinstellungen sind völlig übertrieben.. 100 outerCorrectors etc. Habe ich wieder auf "Tutorial-Standard" zurückgesetzt... Ergebnis siehe Anhang... Ach und was mir eben erst auffällt: der atmosphere-patch wird nicht vernetzt? So gewollt?
[Diese Nachricht wurde von cfdtobi am 01. Jun. 2017 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: 01. Jun. 2017 17:12 <-- editieren / zitieren --> Unities abgeben: Nur für silencebreak
|
cfdtobi Mitglied Student
Beiträge: 67 Registriert: 16.07.2015
|
erstellt am: 02. Jun. 2017 09:41 <-- editieren / zitieren --> Unities abgeben: Nur für silencebreak
Sorry, da war ich zu voreilig... Habe beim Kopieren der Geometriedateien in meinen dummy-case laminar gerechnet. Und da hatte ich nOuterCorrectors 3 als Standard. Daher die Aussage... Ich mach ich die Tage nochmal dran... 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: 02. Jun. 2017 11:51 <-- editieren / zitieren --> Unities abgeben: Nur für silencebreak
|
silencebreak Mitglied
Beiträge: 12 Registriert: 22.05.2017 OpenFoam version 2.4.0 CentOS 6.9
|
erstellt am: 02. Jun. 2017 18:42 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für die Hinweise. @cfdtobi Ja der Fehler mit dem Anstieg lag wirklich darin, dass ich in meinen Geschwindigkeitsvektor am Inlet in die falsche Achse hin definiert habe. Vielen Dank für den Hinweis. Ja, ich dachte so könnte ich ohne atmosphere patch erstmal bis ich's zum laufen gebracht habe Rechenzeit einsparen und am Ende nurnoch mein Netz mit dem weiteren Patch ergänzen. @Shor-ty Ja genau danke, hatte das nach deinem Buch mit der Definition von PIMPLE gemacht Also habe jetzt weitestgehend meine BCs standardmäßig definiert. Aktuell arbeite ich noch daran, dass der selbst nach 100 Interationen noch nicht konvergiert im PIMPLE... 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. Jun. 2017 19:52 <-- editieren / zitieren --> Unities abgeben: Nur für silencebreak
Sollten Randbedingungen nicht physikalisch sein, oder das Netz Probleme machen, kann es durchaus sein, dass diverse Terme nicht auf das Niveau konvergieren wie man es möchte. Das ist natürlich dann auch Problem abhängig. Oft wird der Druck wenn er um 3 Größenordnungen runter gegangen ist, als konvergiert bezeichnet. Du kannst auch einfach mal mit 2-3 rechnen. Die Frage ist eben immer die Genauigkeit. Das musst du dann selber entscheiden. ------------------ Viele Grüße, Tobias Holzmann OpenFOAM Tutorials | Publikationen | Für Anfänger wiki.openfoam.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cfdtobi Mitglied Student
Beiträge: 67 Registriert: 16.07.2015
|
erstellt am: 06. Jun. 2017 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für silencebreak
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|