Autor
|
Thema: Umströmung (3214 mal gelesen)
|
boundary Mitglied Student
Beiträge: 5 Registriert: 28.07.2014
|
erstellt am: 28. Jul. 2014 14:26 <-- editieren / zitieren --> Unities abgeben:
Guten Tag, ich arbeite zurzeit an einer Studienarbeit mit OpenFoam, meine Aufgabe ist es einen Tragflügel zu umströmen. Habe schon ein paar Tutorials gemacht die alle eigentlich ganz gut geklappt haben. Jetzt wollte ich erstmal einen ganz simplen Würfel durchströmen lassen also noch ohne Flügel allerdings will mein ParaView nicht und bringt mir ständig folgende Meldung:
Code:
--> FOAM FATAL IO ERROR: "ill defined primitiveEntry starting at keyword 'value' on line 41 and ending at line 63"file: /home/simon/OpenFOAM/simon-2.3.0/run/test/0/U at line 63. From function primitiveEntry::readEntry(const dictionary&, Istream&) in file lnInclude/IOerror.C at line 132. FOAM exiting
hab schon alles mögliche probiert um am Ende immer die selbe Meldung zu bekommen. Wäre sehr Dankbar für etwas Hilfe Edit: Hier noch das U File
Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volVectorField; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [0 1 -1 0 0 0 0]; internalField uniform ( 0 0 0); boundaryField { inlet { type fixedValue; value uniform ( 20 0 0); } outlet { type inletOutlet; inletValue uniform ( 0 0 0); value uniform ( 20 0 0) } lowerWall { type fixedValue; value uniform ( 20 0 0) } upperWall } type symmetryPlane; } front { type symmetryPlane; } back { type symmetryPlane; } } // ************************************************************************* //
[Diese Nachricht wurde von boundary am 28. Jul. 2014 editiert.] 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: 28. Jul. 2014 14:30 <-- editieren / zitieren --> Unities abgeben: Nur für boundary
|
Micha6982 Mitglied Akademischer Mitarbeiter
Beiträge: 130 Registriert: 20.01.2014 ubuntu 16.04 Salome 7.7.1 & 7.8.0 OpenFOAM 3.x & 4.x
|
erstellt am: 28. Jul. 2014 18:07 <-- editieren / zitieren --> Unities abgeben: Nur für boundary
Hallo, wie Tobias schon sagte! Zitat: outlet { type inletOutlet; inletValue uniform ( 0 0 0); value uniform ( 20 0 0) !!! } lowerWall { type fixedValue; value uniform ( 20 0 0) !!! }
------------------ Viele Grüße Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
boundary Mitglied Student
Beiträge: 5 Registriert: 28.07.2014
|
erstellt am: 29. Jul. 2014 16:01 <-- editieren / zitieren --> Unities abgeben:
vielen Dank für die schnelle Hilfe. Habe das ganze jetzt ein wenig anders aufgebaut und habe versucht euren Tipp zu befolgen. Allerdings bekomme ich immernoch kein Ergebnis von ParaView.Mein Bauteil besteht aus mehreren Blöcken, ich habe jetzt die Felder durch die Luft strömen soll als Inlet bzw Outlet gekennzeichnet. Die anderen Wände sind alle fixed Walls. Jetzt bekomme ich im Terminal immer fehler Meldungen für Druck und Geschwindigkeit. Hier mein p File: Code:
FoamFile { version 2.0; format ascii; class volScalarField; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { fixedWalls { type zeroGradient; } inlet { type zeroGradient; } outlet { type fixedValue; value uniform 0; } } // ************************************************************************* //
und das U file Code: FoamFile { version 2.0; format ascii; class volVectorField; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { movingWall { type empty; } inlet { type fixedValue; value uniform (1 0 0); } outlet { type inletOutlet; inletValue uniform (0 0 0); } } // ************************************************************************* //
Und das BlockMeshDict Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //convertToMeters 0.1; vertices ( (0 0 0)//0 (4 1.6 0)//1 (4 2 0)//2 (0 2 0)//3 (0 0 0.1)//4 (4 1.6 0.1)//5 (4 2 0.1)//6 (0 2 0.1)//7 (4 1.6 0)//8 (10 0 0)//9 (10 2 0)//10 (4 2 0)//11 (4 1.6 0.1)//12 (10 0 0.1)//13 (10 2 0.1)//14 (4 2 0.1)//15 (0 -1.5 0)//16 (4 -1.5 0)//17 (4 0 0)//18 (0 0 0)//19 (0 -1.5 0.1)//20 (4 -1.5 0.1)//21 (4 0 0.1)//22 (0 0 0.1)//23 ); blocks ( hex (0 1 2 3 4 5 6 7) (20 20 1) simpleGrading (1 1 1) hex (8 9 10 11 12 13 14 15) (20 20 1) simpleGrading (1 1 1) hex (16 17 18 19 20 21 22 23) (20 20 1) simpleGrading (1 1 1) ); edges ( spline 0 1 ( (0 0 0) (0.5 1 0) (1 1.25 0) (1.5 1.5 0) (2 1.6 0) (2.5 1.7 0) (3 1.8 0) (3.5 1.7 0) (4 1.6 0) ) spline 4 5 ( (0 0 0.1) (0.5 1 0.1) (1 1.25 0.1) (1.5 1.5 0.1) (2 1.6 0.1) (2.5 1.7 0.1) (3 1.8 0.1) (3.5 1.7 0.1) (4 1.6 0.1) ) ); boundary ( fixedWalls { type wall; faces ( (1 5 4 0)//1 (3 7 6 2)//1 (0 3 2 1)//1 (4 5 6 7)//1 (9 13 12 8)//2 (11 15 14 10)//2 (8 11 10 9)//2 (12 13 14 15)//2 (17 21 20 16)//3 (19 23 22 18)//3 (16 19 18 17)//3 (20 21 22 23)//3 ); } inlet { type patch; faces ( (0 4 7 3) (8 12 15 11) (16 20 23 19) ); } outlet { type patch; faces ( (2 6 5 1) (10 14 13 9) (18 22 21 17) ); } ); mergePatchPairs ( ); // ************************************************************************* //
und zu guter letzt die Fehlermeldung Code:
--> FOAM FATAL IO ERROR: Cannot find patchField entry for fixedWallsfile: /home/kuegele/OpenFOAM/kuegele-2.3.0/run/test/0/U.boundaryField from line 25 to line 38. From function GeometricField<Type, PatchField, GeoMesh>::GeometricBoundaryField::readField(const DimensionedField<Type, GeoMesh>&, const dictionary&) in file /home/kuegele/OpenFOAM/OpenFOAM-2.3.0/src/OpenFOAM/lnInclude/GeometricBoundaryField.C at line 209. FOAM exiting
ich verwende OpenFoam 2.3.0 ich kann die Textdatein leider nicht auf normalen weg hochladen weil unser Rechner da nicht mitspielt (kann leider nicht von Zuhause arbeiten). vielen Dank im voraus ! [Diese Nachricht wurde von boundary am 29. Jul. 2014 editiert.] 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: 29. Jul. 2014 16:11 <-- editieren / zitieren --> Unities abgeben: Nur für boundary
Hallo, ich war mal so frei und hab deine Dateien in die CODE - Tags gesetzt. Was sagt die Ausgabe von checkMesh? Setzt deinen ganzes blockMeshDict doch bitte mal hier rein. Ich nehme an du verwendest OpenFOAM-2.3.x (laut der Header-Datei). PS: Du erwähnst eine Fehlermeldung, die du aber nicht angibst. Da kann man schlecht helfen? Ist genau so eine Aussage wie: Es kommt kein Wasser aus dem Wasserhahn ------------------ Best regards, Tobias Holzmann 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: 29. Jul. 2014 17:24 <-- editieren / zitieren --> Unities abgeben: Nur für boundary
Hallo, also die Fehlermeldung gibt dir doch Aufschluss:
Code:
--> FOAM FATAL IO ERROR: Cannot find patchField entry for fixedWalls/home/kuegele/OpenFOAM/kuegele-2.3.0/run/test/0/U.boundaryField
Du definierst in deiner blockMeshDict Begrenzungsgebiete mit dem Namen "fixedWalls", nach der Ausführung von blockMesh erhältst du dann deine Boundarydatei unter Code:
constant/polyMesh/boundary
Alle Oberflächen die hier drin stehen, sind in deiner Simulation beteiligt. Entsprechend sind das ja deine Begrenzungsflächen, welche Neumann oder Dirichlet Bedingungen benötigen. Diese setzt du in den Dateien welche unter dem Ordner "0" zu finden sind. In deinem Fall musst du in die Datei 0/U --> Code:
/home/kuegele/OpenFOAM/kuegele-2.3.0/run/test/0/U.boundaryField
und die Definition für die Wände "fixedWall" erstellen. Da dein U File das nicht aufweist, weiß OpenFOAM nicht was die Randbedingungen für die Flächen namens "fixedWall" sind. Das Tool macht nur das was man ihm sagt, nicht mehr und nicht weniger. Du kannst auch kein Solver starten, wenn du deine Bedingungen nicht korrekt gesetzt hast. Aus deinem vorherigen Post geht dann folgendes für dein U-File hervor: Code:
boundaryField { movingWall { type empty; } inlet { type fixedValue; value uniform (1 0 0); } outlet { type inletOutlet; inletValue uniform (0 0 0); } }
Aussehen müsste diese so: Code:
boundaryField { fixedWall { type fixedValue; value uniform (0 0 0); } inlet { type fixedValue; value uniform (1 0 0); } outlet { type zeroGradient; // type inletOutlet; // inletValue uniform (0 0 0); // value uniform (0 0 0); } }
Alle Files im 0-Ordner dementsprechend anpassen. Hoff es ist jetz klar. Ach ja die Fehlermeldung in Paraview sollte dir eigentlich egal sein. Damit wird nur mitgeteilt, dass Paraview für deine Initialisierung den Patch nicht wirklich lesen kann. Betrachten kannst du deine Geometrie aber trotzdem. PS: UserGuide gibt zwar nicht gerade viel her aber die wichtigsten Dinge stehen da definitiv drin ------------------ Best regards, Tobias Holzmann 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: 29. Jul. 2014 17:33 <-- editieren / zitieren --> Unities abgeben: Nur für boundary
Ach ja, wenn das im Anhang dein Strömungsfeld ist, dann weiß ich nicht was da strömen soll und wie Außerdem scheint es so als würdest du gern eine 2D Simulation erstellen, dafür solltest du aber auch zwei Patches erstellen, welche den Eintrag "empty" bekommen (in deinem Fall alle bei fixedWall drin). Zudem sagt checkMesh auch noch einiges:
Code:
Mesh stats points: 2646 internal points: 0 faces: 4920 internal faces: 2280 cells: 1200 faces per cell: 6 boundary patches: 3 point zones: 0 face zones: 0 cell zones: 0Overall number of cells of each type: hexahedra: 1200 prisms: 0 wedges: 0 pyramids: 0 tet wedges: 0 tetrahedra: 0 polyhedra: 0 Checking topology... Boundary definition OK. Cell to face addressing OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. *Number of regions: 3 The mesh has multiple regions which are not connected by any face. <<Writing region information to "0/cellToRegion" <<Writing region 0 with 400 cells to cellSet region0 <<Writing region 1 with 400 cells to cellSet region1 <<Writing region 2 with 400 cells to cellSet region2 Checking patch topology for multiply connected surfaces... Patch Faces Points Surface topology fixedWalls 2520 2646 ok (non-closed singly connected) inlet 60 126 ok (non-closed singly connected) outlet 60 126 ok (non-closed singly connected) Checking geometry... Overall domain bounding box (0 -0.15 0) (1 0.2 0.01) Mesh (non-empty, non-wedge) directions (1 1 1) Mesh (non-empty) directions (1 1 1) Boundary openness (-2.73795e-18 4.85008e-18 -1.82739e-16) OK. Max cell openness = 4.22958e-16 OK. Max aspect ratio = 18.9832 OK. Minimum face area = 1.22814e-05. Maximum face area = 0.000310483. Face area magnitudes OK. Min volume = 2.11919e-07. Max volume = 2.94e-06. Total volume = 0.00154842. Cell volumes OK. Mesh non-orthogonality Max: 75.2728 average: 23.4176 *Number of severely non-orthogonal (> 70 degrees) faces: 14. Non-orthogonality check OK. <<Writing 14 non-orthogonal faces to set nonOrthoFaces Face pyramids OK. Max skewness = 1.52703 OK. Coupled point location match (average 0) OK. Mesh OK. End
Wenn du die drei Regionen beabsichtigt angelegt hast dann passts Die 14 nonOrtho kannst vernachlässigen.
------------------ Best regards, Tobias Holzmann 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: 29. Jul. 2014 17:35 <-- editieren / zitieren --> Unities abgeben: Nur für boundary
Da ich annehme das du mittels Code:
paraFoam
deine Domain anschauen möchtest, könntest du auch einfach deinen 0 Ordner umbenennen in bspw. 0.org... ------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
boundary Mitglied Student
Beiträge: 5 Registriert: 28.07.2014
|
erstellt am: 30. Jul. 2014 00:06 <-- editieren / zitieren --> Unities abgeben:
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 30. Jul. 2014 14:28 <-- editieren / zitieren --> Unities abgeben: Nur für boundary
Hallo, dann bist du auf einem guten Weg. Wichtig wäre das du dir die Fehlermeldungen immer anschaust. Die geben sehr viel Aufschluss. Viel Erfolg. Ich markiere den Thread als gelöst. ------------------ Best regards, Tobias Holzmann
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
boundary Mitglied Student
Beiträge: 5 Registriert: 28.07.2014
|
erstellt am: 06. Aug. 2014 16:16 <-- editieren / zitieren --> Unities abgeben:
Ich habe mit dem Solver noch Probleme weil die residual so weit auseinander liegen, vielleicht kann mir da noch jemand helfen. Habe mich an dem Tutorial Airfoil2D aus simpleFoam orientiert und mit dem controlDict schon alles Mögliche ausgetestet. /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : 2.3.0-f5222ca19ce6 Exec : simpleFoam Date : Aug 06 2014 Time : 15:59:20 Host : "VirtualBoxUbuntu" PID : 6664 Case : /home/kuegele/OpenFOAM/kuegele-2.3.0/run/p nProcs : 1 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster allowSystemOperations : Disallowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 Reading field p Reading field U Reading/calculating face flux field phi Selecting incompressible transport model Newtonian Selecting RAS turbulence model SpalartAllmaras SpalartAllmarasCoeffs { sigmaNut 0.66666; kappa 0.41; Cb1 0.1355; Cb2 0.622; Cw2 0.3; Cw3 2; Cv1 7.1; Cv2 5; } Employing Ashford correction No finite volume options present SIMPLE: convergence criteria field p tolerance 1e-05 field U tolerance 1e-05 field nuTilda tolerance 1e-05
Starting time loop
Time = 0.005 smoothSolver: Solving for Ux, Initial residual = 1, Final residual = 0.0242946, No Iterations 4 smoothSolver: Solving for Uy, Initial residual = 1, Final residual = 0.0471871, No Iterations 2 GAMG: Solving for p, Initial residual = 1, Final residual = 3.19223e+85, No Iterations 1000 time step continuity errors : sum local = 2.29331e+85, global = 5.674e+68, cumulative = 5.674e+68 smoothSolver: Solving for nuTilda, Initial residual = 1, Final residual = 1.97668e+67, No Iterations 1000 bounding nuTilda, min: -5.39435e+82 max: 1.24918e+80 average: -6.44988e+80 ExecutionTime = 0.08 s ClockTime = 0 s Time = 0.01 smoothSolver: Solving for Ux, Initial residual = 0.182185, Final residual = 1.11823e+67, No Iterations 1000 smoothSolver: Solving for Uy, Initial residual = 0.248243, Final residual = 2.32791e+67, No Iterations 1000 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
boundary Mitglied Student
Beiträge: 5 Registriert: 28.07.2014
|
erstellt am: 06. Aug. 2014 16:48 <-- editieren / zitieren --> Unities abgeben:
|