Autor
|
Thema: createbaffleDict (2519 mal gelesen)
|
Studentenmensch Mitglied Student
Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 12. Mai. 2016 14:29 <-- editieren / zitieren --> Unities abgeben:
Hi, ich versuche mich daran, eine Art "Hinderniss" in einen Kanal einzubauen. Das ganze möchte ich über eine baffle lösen, da ich diese Methode später auch benötigen werde. Hierzu habe ich mir eine Surface.stl erstellt , die im Ordner constant/triSurface liegt. Im ordner system liegt mein createBafflesDict, welches wie folgt aussieht: Code: FoamFile { version 2.0; format ascii; class dictionary; object createBafflesDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //internalFacesOnly true; baffles { baffleSurface { //- Use surface to select faces and orientation. type searchableSurface; //surface triSurfaceMesh; //name BaffleSurface.stl; //- Optional flip //flip false; surface searchablePlate; origin (0.2 0.2 0); span (0 0.05 0.01); // Generate patchGroup baffle1 with two patches: // - baffle1_master // - baffle1_slave patchPairs { type wall; patchFields { U { type fixedValue; value uniform (0 0 0); } p { type zeroGradient; } alphat { type compressible::alphatWallFunction; value uniform 0; }
k { type compressible::kqRWallFunction; value uniform 1; } epsilon { type compressible::epsilonWallFunction; value uniform 200; } mut { type mutkWallFunction; value uniform 0; } T { type zeroGradient; } } } } }
Mein solver läuft durch, ich erhalte lediglich die "Warning":
Zitat: FOAM WARNING: From function createBaffles in file createBaffles.C at line 773 Setting field on boundary faces to zero. You might have to edit these fields. Writing mesh to 1
Öffne ich paraview dann erhalte ich folgende Errors: Zitat: ERROR: In /tmp1/OpenFOAM/paraview/ParaView-4.3.1/VTK/IO/Geometry/vtkOpenFOAMReader.cxx, line 6864 vtkOpenFOAMReaderPrivate (0x2db6a20): boundaryField baffleSurface_master not found in object T at time = 500 ERROR: In /tmp1/OpenFOAM/paraview/ParaView-4.3.1/VTK/IO/Geometry/vtkOpenFOAMReader.cxx, line 6864 vtkOpenFOAMReaderPrivate (0x2db6a20): boundaryField baffleSurface_master not found in object U at time = 500
ERROR: In /tmp1/OpenFOAM/paraview/ParaView-4.3.1/VTK/IO/Geometry/vtkOpenFOAMReader.cxx, line 6864 vtkOpenFOAMReaderPrivate (0x2db6a20): boundaryField baffleSurface_master not found in object alphat at time = 500
Das ganze sieht auch nicht ganz korrekt aus. Laut Recherche ist es aber nicht notwenig, master und slave surface vorzugeben wenn "patchPairs" einstelle. Hat irgendjemand Erfahrung hierbei? Grüße und Dankeschön ! Der Studentenmensch 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: 12. Mai. 2016 16:33 <-- editieren / zitieren --> Unities abgeben: Nur für Studentenmensch
Hey Studentenmesch, dein Problem besteht darin, dass du keine faces erzeugst: Code:
OAM WARNING: From function createBaffles in file createBaffles.C at line 773 Setting field on boundary faces to zero. You might have to edit these fields. Writing mesh to 1
Geh mal in dein polyMesh und schau dir die Boundaries an. Bei deinen Baffles solltest du wohl nFaces = 0 haben. Heißt also der Patch hat kein einziges Face. Ich mach da meistens ein faceSet und mach mir neue Patches mittels createPatch via sets. Fertig. ------------------ Viele Grüße, 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: 12. Mai. 2016 18:54 <-- editieren / zitieren --> Unities abgeben: Nur für Studentenmensch
Was mir gerade noch gekommen ist. Du musst baffles erstellen, dann ein faceSet erstellen und diese dann in BC transformieren. Sollte zumindest so funktionieren. ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student
Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 13. Mai. 2016 10:27 <-- editieren / zitieren --> Unities abgeben:
Also wenn ich nacheinander ausführe: blockMesh gefolgt von createBaffles dann erhalte ich von vornherein die Fehlermeldung "FOAM WARNING: From function createBaffles in file createBaffles.C at line 773 Setting field on boundary faces to zero. You might have to edit these fields. Writing mesh to 1" . Daher kann ich ja kein faceSet daraus erstellen? In meinem polymesh Ordner findet sich nach "createBaffles" nirgends etwas mit baffles, auch nicht bei den Boundaries? ------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student
Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 13. Mai. 2016 10:34 <-- editieren / zitieren --> Unities abgeben:
|
Studentenmensch Mitglied Student
Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 13. Mai. 2016 12:08 <-- editieren / zitieren --> Unities abgeben:
Das hat nicht ganz geklappt: 1.Schritt: BlockMesh 2.Schritt: topoSet von: Code: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create timeCreate polyMesh for time = 0 Reading topoSetDict Time = 0 mesh not changed. Created faceSet heater Applying source boxToFace Adding faces with centre within boxes 1((0.3 0 0) (0.3015 0.12 0.08)) faceSet heater now size 662 Created faceZoneSet heater Applying source setAndNormalToFaceZone Adding all faces from faceSet heater ... faceZoneSet heater now size 662 Created faceZoneSet BaffleSurfaceFaceZone Applying source searchableSurfaceToFaceZone Adding all faces from surface BaffleSurface.stl ... faceZoneSet BaffleSurfaceFaceZone now size 80 End
3.Schritt createBaffles Code: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create timeCreate mesh for time = 0 Reading baffle criteria from createBafflesDict Not converting faces on non-coupled patches. Reading geometric fields Reading volScalarField alphat Reading volScalarField p Reading volScalarField T Reading volScalarField k Reading volScalarField epsilon Reading volScalarField mut Reading volVectorField U Created zone baffleSurface at index 2 with 80 faces Converted 80 faces into boundary faces in patches 2 ( baffleSurface_master baffleSurface_slave ) --> FOAM Warning : From function createBaffles in file createBaffles.C at line 773 Setting field on boundary faces to zero. You might have to edit these fields. Writing mesh to 1 End
Mein topoSetDict sieht wiefolgt aus: Code: FoamFile { version 2.0; format ascii; class dictionary; object topoSetDict; }// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // actions ( BlaBlaBla (hier stehen noch andere Zones/Sets) { name BaffleSurfaceFaceZone; type faceZoneSet; action new; source searchableSurfaceToFaceZone; sourceInfo { type searchableSurface; surface triSurfaceMesh; name BaffleSurface.stl; // Optional name if surface triSurfaceMesh } }
Mein createbafflesDict Code: FoamFile { version 2.0; format ascii; class dictionary; object createBafflesDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // /* internalFacesOnly true;baffles { baffleSurface { type faceZone; zoneName BaffleSurfaceFaceZone; // Generate patchGroup baffle1 with two patches: // - baffle1_master // - baffle1_slave patchPairs { type wall; patchFields { U { type fixedValue; value uniform (0 0 0); } p { type zeroGradient; } alphat { type compressible::alphatWallFunction; value uniform 0; } k { type compressible::kqRWallFunction; value uniform 1; } epsilon { type compressible::epsilonWallFunction; value uniform 200; } mut { type mutkWallFunction; value uniform 0; } T { type zeroGradient; } } } } }
Irgendwie merkwürig? ------------------ Moritz Franke [Diese Nachricht wurde von Studentenmensch am 13. Mai. 2016 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: 17. Mai. 2016 07:45 <-- editieren / zitieren --> Unities abgeben: Nur für Studentenmensch
Schau dir mal mein ACMI tutorial an. Da erstell ich auch Baffles und wandel die in Boundaries um. Auf die Schnelle würd ich sagen, du musst jetzt ein Set erstellen, dass die Baffles einschließt (baffles ist nur kopieren der Faces + Normale ändern). Das faceSet dann für createPatch verwenden und dann sollte das passen. ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student
Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 17. Mai. 2016 10:38 <-- editieren / zitieren --> Unities abgeben:
Wenn Du sagst "baffles ist nur kopieren der Faces + Normale ändern" , wieso benötige ich dann überhaupt ein bafflesdict? Dann könnte ich doch auch einfach einfach eine "faceZoneSet" mit topoMesh aus einer .stl Surface machen und anschließend mit createpatch eine "wall" generieren? Zitat: du musst jetzt ein Set erstellen, dass die Baffles einschließt ... Das faceSet dann für createPatch verwenden und dann sollte das passen.
Wie erstelle ich denn daraus nun ein Set welches die baffles einschließt? Im topoSet finde ich keine funktion in der Art "baffleToFaceSet" oder so? Leider konnte ich das ACMI Tutorial nicht ganz nachvollziehen. Danke! ------------------ Moritz Franke 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: 17. Mai. 2016 14:40 <-- editieren / zitieren --> Unities abgeben: Nur für Studentenmensch
Zitat:
Wenn Du sagst "baffles ist nur kopieren der Faces + Normale ändern" , wieso benötige ich dann überhaupt ein bafflesdict? Dann könnte ich doch auch einfach einfach eine "faceZoneSet" mit topoMesh aus einer .stl Surface machen und anschließend mit createpatch eine "wall" generieren?
Das geht nicht da im internalField deine Zellen ein Face teilen. Im Klartext, zwei Zellen teilen ein Face das ein Normalvektor hat. Wenn jetzt beide Zellen nicht zusammenhängen, dann brauchst du für jede Zelle ein Face und ein korrespondierenden Normalenvektor. Das macht genau createBaffles. Faces kopieren + den NOrmalenvektor der kopierten Faces invertieren. Um die Faces in ein Set zu bekommen, verwendest du am besten setSets. Das darauß gewonnene faceSet wandelst du dann in boundaries um.
------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student
Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 19. Mai. 2016 12:25 <-- editieren / zitieren --> Unities abgeben:
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 19. Mai. 2016 13:05 <-- editieren / zitieren --> Unities abgeben: Nur für Studentenmensch
Aso ... du hast nicht mit Code:
createBaffles -overwrite
gearbeitet? Na das wusst ich natürlich nicht. Foam legt (sofern die Applikation das macht) die neuen Netze immer in neue Zeitschritte an. Um das Überschreiben des Originalnetzes zu fordern gibt es das Attribut -overwrite ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |