| |
| Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Rauigkeiten (6027 mal gelesen)
|
Luke92 Mitglied Student
Beiträge: 10 Registriert: 20.09.2013 OpenFOAM 2.2.1
|
erstellt am: 26. Nov. 2013 12:04 <-- editieren / zitieren --> Unities abgeben:
Moin, ich hätte noch eine Frage. Diesmal bezüglich Wandrauigkeiten. Welche Möglichkeiten habe ich in OF Wandrauigkeiten einzufügen? In meinem Fall möchte ich eine eingebundene Geometrie (Zylinder) mit Rauigkeiten versehen, um die Auswirkungen der Rauigkeiten auf die entstehenden Kräfte zu untersuchen. Am besten wäre es natürlich, wenn man lediglich die absolute Rauigkeit oder das k/D-Verhältnis (absolute Rauigkeit/Durchmesser) angeben müsste. Aber das es so simpel ist bezweifel ich.. Grüße - Lukas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 26. Nov. 2013 12:15 <-- editieren / zitieren --> Unities abgeben: Nur für Luke92
Hallo Lukas, ich weiß nicht ob ich mich jetzt irre aber du kannst dir die Files mut, nut, alphat etc. (glaub eines der ersten beiden - je nach Löser) anpassen. Soweit ich weiß gibt es dann dort auch Funktionen mit denen du die Oberflächenrauigkeit definieren kannst. Thomas Tian hat mir damal da was gesagt aber das hab ich leider schon wieder vergessen Die Files nut, mut, ... werden von OpenFOAM (sofern nicht im 0 Ordner vorhanden) selber erstellt. Diese würde ich vom ersten erstellten Zeitordner kopieren und dann deine RB für die entsprechenden Wände umdefinieren. Hab OpenFOAM hier nicht zur Verfügung sonst könnte ich das kurz testen. Vllt ergibt sich heute Abend Zeit um das kurz zu testen. ------------------ Grüße Tobias Holzmann 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: 26. Nov. 2013 12:19 <-- editieren / zitieren --> Unities abgeben: Nur für Luke92
|
Luke92 Mitglied Student
Beiträge: 10 Registriert: 20.09.2013 OpenFOAM 2.2.1
|
erstellt am: 26. Nov. 2013 12:58 <-- editieren / zitieren --> Unities abgeben:
Danke erstmal. Soweit ist mir das schon bewusst. Aber zum Beispiel bei einer nut-Datei:
Code: 17 18 dimensions [0 2 -1 0 0 0 0]; 19 20 internalField uniform 0; 21 22 boundaryField 23 { 24 movingWall 25 { 26 type nutkWallFunction; 27 value uniform 0; 28 } 29 fixedWalls 30 { 31 type nutkWallFunction; 32 value uniform 0; 33 } 34 frontAndBack 35 { 36 type empty; 37 } 38 } 39 40 41 // ************************************************************************* //
Vielleich habe ich mich gerade nicht präzise genug ausgedrückt. Mein Frage ist, wie ich die Rauigkeit genau in dieser Datei definiere. Worauf bezieht sich in diesem Beispiel der "value" von zum Beispiel "fixedWalls"? Wird dieser Wert auch mit [m²/s] angegeben, wie oben in den dimensions angegeben? Falls ja, wo wäre der Zusammenhang zu der Rauigkeit? Und die Seite CFD-Online kenne ich auch Ich kann aber leider zurzeit nicht auf diese zugreifen. Grüße - Lukas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 26. Nov. 2013 17:51 <-- editieren / zitieren --> Unities abgeben: Nur für Luke92
Hallo, in meiner OF-Version kann ich für nut folgende Randbedingungen setzen:
Code:
101 ( MarshakRadiation MarshakRadiationFixedTemperature advective alphatJayatillekeWallFunction atmBoundaryLayerInletEpsilon buoyantPressure calculated codedFixedValue codedMixed compressible::thermalBaffle1D<hConstSolidThermoPhysics> compressible::thermalBaffle1D<hExponentialSolidThermoPhysics> compressible::turbulentHeatFluxTemperature compressible::turbulentTemperatureCoupledBaffleMixed compressible::turbulentTemperatureRadCoupledMixed cyclic cyclicAMI cyclicSlip directionMixed empty energyJump energyJumpAMI epsilonLowReWallFunction epsilonWallFunction externalCoupled externalCoupledTemperature externalWallHeatFluxTemperature fWallFunction fan fanPressure fixedEnergy fixedFluxPressure fixedGradient fixedInternalValue fixedJump fixedJumpAMI fixedMean fixedPressureCompressibleDensity fixedUnburntEnthalpy fixedValue freestream freestreamPressure gradientEnergy gradientUnburntEnthalpy greyDiffusiveRadiation greyDiffusiveRadiationViewFactor inletOutlet inletOutletTotalTemperature kLowReWallFunction kqRWallFunction mapped mappedField mappedFixedInternalValue mappedFixedPushedInternalValue mixed mixedEnergy mixedUnburntEnthalpy multiphaseFixedFluxPressure nonuniformTransformCyclic nutLowReWallFunction nutTabulatedWallFunction nutURoughWallFunction nutUSpaldingWallFunction nutUWallFunction nutkAtmRoughWallFunction nutkRoughWallFunction nutkWallFunction omegaWallFunction oscillatingFixedValue outletInlet outletMappedUniformInlet partialSlip phaseHydrostaticPressure processor processorCyclic rotatingTotalPressure sliced slip symmetryPlane syringePressure timeVaryingMappedFixedValue totalFlowRateAdvectiveDiffusive totalPressure totalTemperature turbulentHeatFluxTemperature turbulentInlet turbulentIntensityKineticEnergyInlet turbulentMixingLengthDissipationRateInlet turbulentMixingLengthFrequencyInlet uniformDensityHydrostaticPressure uniformFixedValue uniformJump uniformJumpAMI uniformTotalPressure v2WallFunction variableHeightFlowRate wallHeatTransfer waveSurfacePressure waveTransmissive wedge wideBandDiffusiveRadiation zeroGradient )
Für dich wahrscheinlich zutreffend:
Code:
nutURoughWallFunction nutkAtmRoughWallFunction nutkRoughWallFunction
Zum ersten nutURoughWallFunction
Code:
Description This boundary condition provides a turbulent kinematic viscosity condition when using wall functions for rough walls, based on velocity. myPatch { type nutURoughWallFunction; roughnessHeight 1e-5; roughnessConstant 0.5; roughnessFactor 1; }
Zum zweiten nutkAtmRoughWallFunction
Code:
Description This boundary condition provides a turbulent kinematic viscosity for atmospheric velocity profiles. It is desinged to be used in conjunction with the atmBoundaryLayerInletVelocity boundary condition. The values are calculated using: \f[ U = frac{U_f}{K} ln(\frac{z + z_0}{z_0}) \f] where \vartable U_f | frictional velocity K | Von Karman's constant z_0 | surface roughness length z | vertical co-ordinate \endvartable \heading Patch usage \table Property | Description | Required | Default value z0 | surface roughness length| yes | \endtable Example of the boundary condition specification: \verbatim myPatch { type nutkAtmRoughWallFunction; z0 uniform 0; } \endverbatim
Zum dritten nutkRoughWallFunction
Code: This boundary condition provides a turbulent kinematic viscosity condition when using wall functions for rough walls, based on turbulence kinetic energy. The condition manipulates the E parameter to account for roughness effects. Parameter ranges - roughness height = sand-grain roughness (0 for smooth walls) - roughness constant = 0.5-1.0 \heading Patch usage \table Property | Description | Required | Default value Ks | sand-grain roughness height | yes | Cs | roughness constant | yes | \endtable Example of the boundary condition specification: \verbatim myPatch { type nutkRoughWallFunction; Ks uniform 0; Cs uniform 0.5; } \endverbatim
Mehr kann ich jetzt nicht mehr tun ------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Luke92 Mitglied Student
Beiträge: 10 Registriert: 20.09.2013 OpenFOAM 2.2.1
|
erstellt am: 27. Nov. 2013 09:24 <-- editieren / zitieren --> Unities abgeben:
|
Luke92 Mitglied Student
Beiträge: 10 Registriert: 20.09.2013 OpenFOAM 2.2.1
|
erstellt am: 28. Nov. 2013 11:13 <-- editieren / zitieren --> Unities abgeben:
Vielleicht noch etwas Allgemeines: Mit welchem Befehl konntest du alle Randbedingungen für 'nut' herausfinden? Und die Beschreibungen hast du wahrscheinlich einfach den .H-Dateien entnommen, oder? Grüße-Lukas
[Diese Nachricht wurde von Luke92 am 28. Nov. 2013 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: 28. Nov. 2013 12:30 <-- editieren / zitieren --> Unities abgeben: Nur für Luke92
|
Michi.K. Mitglied Student
Beiträge: 5 Registriert: 12.11.2015
|
erstellt am: 16. Nov. 2015 10:36 <-- editieren / zitieren --> Unities abgeben: Nur für Luke92
Hallo, nach ein paar Jahren lasse ich das Thema hier einmal wieder aufleben :-D ich habe ein wenig mit deinen Randbedigungen rumprobiert. Die 3 verschiedenen Versuche und die dabei auftretenden Probleme/Fehlermeldungen habe ich einmal zusammengefasst: 1. Bedingung: boden { type nutURoughWallFunction; value uniform 0.8; } Fehlermeldung: --> FOAM FATAL IO ERROR: keyword roughnessHeight is undefined in dictionary "/home/ubof/OpenFOAM/ubof-2.3.1/run/01_michael/Forschung/01_Plausibilitaetsversuch_reibung/01_inter/0/nuSgs.boundaryField.boden" file: /home/ubof/OpenFOAM/ubof-2.3.1/run/01_michael/Forschung/01_Plausibilitaetsversuch_reibung/01_inter/0/nuSgs.boundaryField.boden from line 39 to line 40. From function dictionary::lookupEntry(const word&, bool, bool) const in file db/dictionary/dictionary.C at line 437. FOAM exiting 2. Bedingung: boden { Type nutURoughWallFunction; roughnessHeight 1e-5; roughnessConstant 0.5; roughnessFactor 1; } Fehlermeldung: --> FOAM FATAL IO ERROR: Essential entry 'value' missing
file: /home/ubof/OpenFOAM/ubof-2.3.1/run/01_michael/Forschung/01_Plausibilitaetsversuch_reibung/01_inter/0/nuSgs.boundaryField.boden from line 43 to line 46. From function fvPatchField<Type>::fvPatchField(const fvPatch& p,const DimensionedField<Type, volMesh>& iF,const dictionary& dict,const bool valueRequired) in file /home/openfoam/OpenFOAM/OpenFOAM-2.3.1/src/finiteVolume/lnInclude/fvPatchField.C at line 148. FOAM exiting 3. Bedingung: boden { type nutkWallFunction; value uniform 0.5; }
Rechnet ohne Fehlermeldung Jetzt kann ich leider nicht nachvollziehen, wieso er mir das in den anderen Fällen nicht durchrechnen möchte. Kurz noch zur Simulation: ich verwende ein LES SpallartAllmarasDDES Modell und habe das oben beschriebene in der nuSgs-Datei angepasst.
Ich hoffe sehr, ihr könnt mir weiterhelfen. Viele Grüße Michi 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: 16. Nov. 2015 10:55 <-- editieren / zitieren --> Unities abgeben: Nur für Luke92
Hallo Michi, um deine Fragen zu beantworten bedarf es lediglich die Fehlermeldungen durchzulesen: Zitat: Original erstellt von Michi.K.: Hallo, 1. Bedingung:
boden { type nutURoughWallFunction; value uniform 0.8; } Fehlermeldung: --> FOAM FATAL IO ERROR: keyword roughnessHeight is undefined in dictionary "/home/ubof/OpenFOAM/ubof-2.3.1/run/01_michael/Forschung/01_Plausibilitaetsversuch_reibung/01_inter/0/nuSgs.boundaryField.boden" file: /home/ubof/OpenFOAM/ubof-2.3.1/run/01_michael/Forschung/01_Plausibilitaetsversuch_reibung/01_inter/0/nuSgs.boundaryField.boden from line 39 to line 40. From function dictionary::lookupEntry(const word&, bool, bool) const in file db/dictionary/dictionary.C at line 437. FOAM exiting
In der Definition deiner Randbedingung "nutURoughWallFunction" fehlt die Variable "roughnessHeight". D.h. das die Boundary wie folgt aussehen müsste: Code:
type nutURoughWallFunction; roughnessHeight 0.012; value uniform 0.8;
Analog gilt das natürlich bei deinem zweiten Versuch, bei dem "value uniform xxx;" fehlt. Die oben genannte Randbedingung heißt übrigens korrekt:
Code:
myPatch { type nutURoughWallFunction; roughnessHeight 1e-5; roughnessConstant 0.5; roughnessFactor 1; }
Ich wiederhole hier nochmals die letzten zwei Sätze:
Zitat:
Die Beschreibungen sind - wie du richtig liegst - in den Header-Dateien. Falls nichts angegeben ist, muss eben der Code verstanden werden.
Das oben angegebene Beispiel findest du in $FOAM_SRC:
Code:
cd turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction
------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Michi.K. Mitglied Student
Beiträge: 5 Registriert: 12.11.2015
|
erstellt am: 16. Nov. 2015 12:22 <-- editieren / zitieren --> Unities abgeben: Nur für Luke92
Hallo Tobias Holzmann, erst einmal vielen Dank für die schnelle und ausführliche Antwort! Ich habe den Code jetzt folgendermaßen ergänzt und die Rechnung läuft tatsächlich: type nutURoughWallFunction; roughnessHeight 1e-5; roughnessConstant 0.5; roughnessFactor 1; value uniform 0.8 (willkürlich gewählt); in anderen Themen wurde das value bei diesem type nicht gelistet deswegen dachte ich das kommt hier nicht mit rein. Das wirft mir jetzt allerdings eine weitere Frage auf: worauf bezieht sich in diesem Fall der uniform-Wert? Die Reibungsvariablen wurden doch vorher durch die anderen 3 Werte schon definiert? Noch dazu ist mir aufgefallen, dass die nutURoughWallFunction doch eigentlich nur für RAS Modelle passend ist? Wie schon in deinem Code beschrieben: cd turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction).Ich verwende allerdings ein LES Modell. Lässt sich das dennoch aussagekräftig für meinen Fall anwenden? Viele Grüße Michi
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: 16. Nov. 2015 13:18 <-- editieren / zitieren --> Unities abgeben: Nur für Luke92
Hallo Michi, bezüglich der Notwendigkeit von value wird das auf Grund der Struktur von C++ und der Derivation dieser Klasse her rühren. Das wird eben für den Konstruktor benötigt, da eine Variable initialisiert werden muss. Wird aber nicht weiter verwendet oder nur im ersten Zeitschritt/Iterationsschritt. Nach dem call von "update()" sollte das mit den von dir angegebenen Werten neu berechnet und überschrieben werden. Zur Aussage bezüglich LES und RAS kann ich dir keine Auskunft geben. Sollte aber, da LES und RAS sich ja letztendes im Bereich der Turbulenzmodellierung unterscheidet (große Skalen aufgelöst und kleine Skalen modelliert » isotropie). Da bin ich aber der falsche Ansprechpartnet - LES bin ich nicht bewandert. ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Michi.K. Mitglied Student
Beiträge: 5 Registriert: 12.11.2015
|
erstellt am: 17. Nov. 2015 14:37 <-- editieren / zitieren --> Unities abgeben: Nur für Luke92
|
Michi.K. Mitglied Student
Beiträge: 5 Registriert: 12.11.2015
|
erstellt am: 01. Feb. 2016 15:41 <-- editieren / zitieren --> Unities abgeben: Nur für Luke92
Hallo nochmal, ich habe nun schon sehr lange nach einer genauen Definition für roughnessConstant gesucht, allerdings ohne Erfolg. Wisst ihr was dieser Wert genau definiert bzw. wo ich entsprechende Werte dafür finden kann? roughnessHeight müsste sich ja meiner Meinung nach auf die absolute Rauheit in [m] beziehen und vom Material abhängig sein. Damit ist aber nicht der Manning/Strickler-Beiwert kst gemeint, richtig? Viele Grüße Michi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jojo-Sim Mitglied
Beiträge: 4 Registriert: 24.11.2023
|
erstellt am: 01. Dez. 2023 16:47 <-- editieren / zitieren --> Unities abgeben: Nur für Luke92
Liebes Forum, ich hänge hier meine Frage an einen Beitrag zu nutkRoughWallFunction und den dafür nötigen Parametern an und hoffe, daß das hierhin paßt? Also: hätte vielleicht jemand bereits Erfahrung mit der Umrechnung von „sand-grain-roughness“ (im Folgenden „sgr“) und Ks für wirklich rauhe Oberflächen? Meine Aufgabe besteht darin, den Abfluß von Regenwasser über Wiesen und Äckern zu modellieren, und zwar mit interFoam. Als Wandfunktion habe ich inzwischen nutkRoughWallFunction ausgewählt. Diese sgr und der Zusammenhang mit Ks scheint schon seit Jahrzehnten umfangreich untersucht zu werden, meist für Kanäle oder Fluß- und Bachbetten. Die interessanteste Zusammenfassung ist m.E. dies hier: „Marriott & Jayaratne: Hydraulic roughness – Links between Mannings coefficient, Nikuradses equivalent sand roughness and bed grain size.“ Sehr hilfreich erscheint mir auch Tab. 4 in der folgenden Veröffentlichung: „Stoessner et.al.: Application of a 3D numerical model to a river with vegetated floodplains.“ Auf Seite 106 dieser Veröffentlichung wird diese Tabelle zu sgr und Ks diskutiert. Auf Grundlage dieser beiden Veröffentlichungen und nach weiterer Recherche setze ich den Ks-Wert in nutkRoughWallFunction inzwischen als 2*(sgr = tatsächliche Rauheitselementhöhe) an. Wenn also die Unebenheiten auf dem Acker ca. 10cm = 0,1m hoch sind, trage ich als Ks-Wert 0,2 (m) ein. Für den Vergleich mit geowissenschaftlichen Simulationen, die i.d.R. den Wert n von Manning(-Strickler) benutzen, nehme ich zur Umrechnung dann Formel 7 aus der obigen Schrift von Marriott & Jayaratne. Wie oben schon gesagt: hätte hier im Forum jemand bereits Erfahrung mit dieser Art von Parametrisierung? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |