| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Wärmeabgabe über Leistung bei freier Konvektion (1922 / mal gelesen)
|
flowpow Mitglied Student

 Beiträge: 13 Registriert: 21.04.2016 OpenFoam 3.0.x Salome 7.7.1
|
erstellt am: 21. Apr. 2016 19:24 <-- editieren / zitieren --> Unities abgeben:         
Hallo OpenFOAMer! Im Moment schreibe ich an meiner Abschlussarbeit und möchte die Wärmeabgabe eines Rohres mit Hilfe von OpenFOAM simulieren. Ein wenig Erfahrung (ca. 4 Monate) habe ich schon mit OpenFOAM. Das Problem lautet: Das Rohr befindet sich in einem Luftraum (siehe Bild). Die Verlustleistung (Wärmeabgabe) des Rohres wurde schon bestimmt. Diese soll entweder in Watt oder W/m³ angegeben werden. Die Wärme geht über an das Fluid, welches sich nur durch freie Konvektion bewegen soll und dann an die Außenwand eines weiteren Rohres. Meine Frage ist jetzt, ob das mit OpenFOAM ohne Weiteres möglich ist (heißt mit den Standard-Solvern und Randbedingungen). Ich habe mir den Solver chtMultiRegionSimpleFoam angeschaut und der passt meiner Meinung nach wahrscheinlich am Besten. Ich würde mich über Tipps und Antworten sehr freuen [Diese Nachricht wurde von flowpow am 25. Mai. 2016 editiert.] [Diese Nachricht wurde von flowpow am 25. Mai. 2016 editiert.] [Diese Nachricht wurde von flowpow am 25. Mai. 2016 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: 21. Apr. 2016 19:59 <-- editieren / zitieren --> Unities abgeben:          Nur für flowpow
|
flowpow Mitglied Student

 Beiträge: 13 Registriert: 21.04.2016 OpenFoam 3.0.x Salome 7.7.1
|
erstellt am: 21. Apr. 2016 20:12 <-- editieren / zitieren --> Unities abgeben:         
Danke für die schnelle Antwort! Dann bin ich ja schon mal auf dem rechten Weg. Kann man dann in den Randbedingungen eine Wärmeleistung für den Leiter, wie beschrieben, angeben? Und wenn ja, wie? [Diese Nachricht wurde von flowpow am 21. Apr. 2016 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: 21. Apr. 2016 20:29 <-- editieren / zitieren --> Unities abgeben:          Nur für flowpow
|
flowpow Mitglied Student

 Beiträge: 13 Registriert: 21.04.2016 OpenFoam 3.0.x Salome 7.7.1
|
erstellt am: 25. Apr. 2016 14:02 <-- editieren / zitieren --> Unities abgeben:         
Leider hab ich noch nicht wirklich den Durchblick bei manchen grundlegenden Eigenschaften von OpenFOAM. Wo kann ich sehen wie die Dateien der Anfangs- & Randbedingungen der physikalischen Größen heißen müssen (also im Ordner 0/)? Kann man die völlig frei wählen oder gibt es eine Datei/Liste in der die Namen der einzelnen physikalischen Größen aufgezählt sind? Ich versuche mich an die Tutorials zu halten, jedoch wird z.B. beim heatExchanger nur die Temperatur T angegeben. Viele Grüße 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. Apr. 2016 09:12 <-- editieren / zitieren --> Unities abgeben:          Nur für flowpow
Hi, das hat nicht mit grundlegenden Eigenschaften zu tun sondern ist einfach C++. Wenn du (ich hoffe) in Linux arbeitest und in dein Terminal "wasMachIchFalsch" eingibst, dann wird da auch nur eine Rückmeldung kommen das es diesen "Command" nicht gibt. Gleiches gilt bei OpenFOAM. Wenn du falsche Randbedingungen eingibst dann kommt auch nix bei raus außer die Liste die du verwenden kann. Das nennt sich "BannanaTrick". Code:
wall { type foobarBannanaOrWhatEver; value uniform 23; }
Beim Starten des Solvers wird im Konstruktor der type analysiert und mit den Libs verglichen. Natürlich wird da keine Randbedingung drin sein die foobarBannanaOrWhatEver heißt. Entsprechend gibts ein Fehler und die Ausgabe der möglichen Randbedingungen. Solltest du irgendwann mal vim verwenden, kannst du auch mein Plugin verwenden, dass dir diese Arbeit erleichtert. Zusätzlich findest du viele Randbedingungen unter:
Code:
src cd finiteVolume/fields/fvPatchFields/derived/
Pfadangabe grad aus m Kopf. Kann also Fehler enthalten. ------------------ Viele Grüße, Tobias Holzmann
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
flowpow Mitglied Student

 Beiträge: 13 Registriert: 21.04.2016 OpenFoam 3.0.x Salome 7.7.1
|
erstellt am: 26. Apr. 2016 09:30 <-- editieren / zitieren --> Unities abgeben:         
Hallo, das war mir bereits bewusst. Danke aber für den Pfad mit den Randbedingungen Ich glaube, ich habe mich nicht ganz gut ausgedrückt. Meine frage war, wie der Dateiname im Ordner 0 festgelegt ist (z.B. bei Temperatur T, bei Geschwindigkeit U, bei Druck p,...) oder wie die einzelnen Variablen überhaupt heißen in OpenFOAM. Beste Grüße 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. Apr. 2016 09:42 <-- editieren / zitieren --> Unities abgeben:          Nur für flowpow
Ähm,... interessante Frage, wieso willst du das wissen  ? Wenn du den Solver startest bekommst du eine Meldung ob was fehlt oder nicht. Manche Dateien werden einfach selber initialisiert oder gelesen wenn diese verfügbar sind. Wenn es dich interessiert welche Datei welche Größe repräsentieren, dann musst du halt den Quellcode anschauen. Gleiches gilt für Variablen die nicht in einem File stehen, wie oftmals nul, mul, phi etc. Bspw. werden in allen Turbulenzmodellen im Konstruktor die entsprechenden Dateien gelesen und Objekte wie bspw. k, epsilon, omega, alphat, nut etc. angelegt. Auch andere notwendige Variablen werden hier definiert wie Koeffizienten etc. Alle Namen korrespondieren zu entsprechenden Größen das entspricht aber auch ganz normaler Natur. Keiner würde U für die Enthalpie halten, oder?  ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
flowpow Mitglied Student

 Beiträge: 13 Registriert: 21.04.2016 OpenFoam 3.0.x Salome 7.7.1
|
erstellt am: 26. Apr. 2016 10:08 <-- editieren / zitieren --> Unities abgeben:         
|
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 26. Apr. 2016 10:29 <-- editieren / zitieren --> Unities abgeben:          Nur für flowpow
Na dann musst du halt die korrekte Randbedingung verwenden. Heißt also Trick anwenden: Code:
Valid patchField types are :103 ( MarshakRadiation MarshakRadiationFixedTemperature advective calculated codedFixedValue codedMixed compressible::alphatJayatillekeWallFunction compressible::alphatWallFunction compressible::epsilonLowReWallFunction compressible::epsilonWallFunction compressible::fWallFunction compressible::gaussTurbulentHeatFluxTemperature compressible::kLowReWallFunction compressible::kqRWallFunction compressible: megaWallFunction compressible::thermalBaffle1D<hConstSolidThermoPhysics> compressible::thermalBaffle1D<hExponentialSolidThermoPhysics> compressible::turbulentHeatFluxTemperature compressible::turbulentMixingLengthDissipationRateInlet compressible::turbulentMixingLengthFrequencyInlet compressible::turbulentTemperatureCoupledBaffleMixed compressible::turbulentTemperatureRadCoupledMixed compressible::v2WallFunction convectiveHeatTransfer cyclic cyclicACMI cyclicAMI cyclicSlip directionMixed empty energyJump energyJumpAMI externalCoupled externalCoupledTemperature externalWallHeatFluxTemperature fan fanPressure fixedEnergy fixedFluxPressure fixedGradient fixedInternalValue fixedJump fixedJumpAMI fixedMean fixedPressureCompressibleDensity fixedUnburntEnthalpy fixedValue freestream freestreamPressure gradientEnergy gradientUnburntEnthalpy greyDiffusiveRadiation greyDiffusiveRadiationViewFactor inletOutlet inletOutletTotalTemperature mapped mappedField mappedFixedInternalValue mappedFixedPushedInternalValue mixed mixedEnergy mixedUnburntEnthalpy mutLowReWallFunction mutURoughWallFunction mutUSpaldingWallFunction mutUWallFunction mutkRoughWallFunction mutkWallFunction nonuniformTransformCyclic oscillatingFixedValue outletInlet outletMappedUniformInlet partialSlip phaseHydrostaticPressure prghPressure processor processorCyclic rotatingTotalPressure sliced slip symmetry symmetryPlane syringePressure timeVaryingMappedFixedValue totalFlowRateAdvectiveDiffusive totalPressure totalTemperature turbulentInlet turbulentIntensityKineticEnergyInlet uniformDensityHydrostaticPressure uniformFixedGradient uniformFixedValue uniformInletOutlet uniformJump uniformJumpAMI uniformTotalPressure variableHeightFlowRate wallHeatTransfer waveSurfacePressure waveTransmissive wedge wideBandDiffusiveRadiation zeroGradient )
Und dann wahrscheinlich entweder compressible::turbulentHeatFluxTemperature, externalWallHeatFluxTemperature oder wallHeatTransfer. Dann musst du erstmal schauen was die Randbedingungen machen (also Header und Source File). Heißt man geht in die erste rein und schaut sich an was da so steht:
Code:
Description Fixed heat boundary condition to specify temperature gradient. Input heat source either specified in terms of an absolute power [W], or as a flux [W/m2]. Example usage: hotWall { type compressible::turbulentHeatFluxTemperature; heatSource flux; // power [W]; flux [W/m2] q uniform 10; // heat power or flux kappa fluidThermo; // calculate kappa=alphaEff*thermo.Cp Qr none; // name of the radiative flux value uniform 300; // initial temperature value }
So und nun weißt du was du angeben musst und was welche Variable bedeutet. Wenn du keine BC findest die das macht was du willst dann eben alles mit Groovy machen. ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
flowpow Mitglied Student

 Beiträge: 13 Registriert: 21.04.2016 OpenFoam 3.0.x Salome 7.7.1
|
erstellt am: 26. Apr. 2016 10:31 <-- editieren / zitieren --> Unities abgeben:         
|
flowpow Mitglied Student

 Beiträge: 13 Registriert: 21.04.2016 OpenFoam 3.0.x Salome 7.7.1
|
erstellt am: 28. Apr. 2016 14:10 <-- editieren / zitieren --> Unities abgeben:         
Hallo nochmal, wie oben beschrieben würde ich gerne eine Wärmeleistung pro Volumen angeben. Ich habe gelesen, dass es über thermalBaffle funktionieren würde. Gibt es eine simplere Lösung und gibt es für meinen Fall vielleicht ein gutes Beispiel, das du kennst, an dem ich mich vielleicht besser orientieren könnte? Viele Grüße 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. Apr. 2016 14:48 <-- editieren / zitieren --> Unities abgeben:          Nur für flowpow
Adhoc würd ich sagen das das nicht möglich ist, da es ganz einfach mathematisch unsinnig wäre eine Randbedingung zu setzen (also auf jedes Face (m²)) die ein Volumenstrom enthält. Volumenströme sind auf einzelne Volumen anzuwenden, ergo, das müsstest du in der Enthalpie/Temperaturgleichung machen (nicht als Randbedingung). Das wäre dann ein Source-Term, angegeben in [W/m³] der dann umgerechnet werden müsste (sofern das geht). Es wäre auch immer sehr sehr hilfreich wenn du deine Aussagen/Vermutungen mit Quellen belegst. Mich würde das nämlich auch interessieren wo du das gelesen hast (bin schließlich auch nicht allwissend; verwende nur meinen normalen Kopf ) Entsprechend eine Widerlegung deiner Aussage (Auszug aus ThermalBaffle):
Code:
30 Description 31 32 This BC solves a steady 1D thermal baffle. The solid properties are 33 specify as dictionary. Optionaly radiative heat flux (Qr) can be 34 incorporated into the balance. Some under-relaxation might be needed on 35 Qr. 36 Baffle and solid properties need to be specified on the master side 37 of the baffle. 38 39 \heading Patch usage 40 Example of the boundary condition specification using constant 41 solid thermo : 42 43 \verbatim 44 myPatch_master 45 { 46 type compressible::thermalBaffle1D<hConstSolidThermoPhysics>; 47 samplePatch myPatch_slave; 48 49 thickness uniform 0.005; // thickness [m] 50 Qs uniform 100; // heat flux [W/m2] 51 52 Qr none; 53 relaxation 0; 54 55 // Solid thermo 56 specie 57 { 58 nMoles 1; 59 molWeight 20; 60 } 61 transport 62 { 63 kappa 1; 64 } 65 thermodynamics 66 { 67 Hf 0; 68 Cp 10; 69 } 70 equationOfState 71 { 72 rho 10; 73 } 74 75 value uniform 300; 76 }
------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
flowpow Mitglied Student

 Beiträge: 13 Registriert: 21.04.2016 OpenFoam 3.0.x Salome 7.7.1
|
erstellt am: 28. Apr. 2016 15:10 <-- editieren / zitieren --> Unities abgeben:         
Hi, gelesen habe ich es unter: http://www.openfoam.org/version2.2.0/thermophysical.php Zitat: thermalBaffle This boundary condition can be applied to transfer thermal energy between both sides of the baffle. Heat transfer is solved for across a 3D region created by extrudeToRegionMesh, so in effect, the thermalBaffle has zero physical thickness in the flow domain, but non-zero thickness for thermal calculations. Across the encapsulated mesh region the boundary condition solves for a transient 3D heat equation during every solver iteration. The user can now select the thermodynamic models including radiation, with an option to specify a volumetric heat source (W/mˆ3) within the baffle region. An example setup for the 3D thermal baffle an image from a simple case demonstrating its use are shown below.
Hab mir dann das Beispiel circuitBoardCooling unter buoyantSimpleFoam angeschaut. Da wird für die Baffle-Region Q in Watt pro Kubikmeter angegeben. [Diese Nachricht wurde von flowpow am 28. Apr. 2016 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. Apr. 2016 19:37 <-- editieren / zitieren --> Unities abgeben:          Nur für flowpow
Hi, danke für den Link, hab ich noch gar nicht gesehen . Allerdings bleibt alles beim Alten. Wie erwähnt ist das eine "Modellierung" der nicht disretisierten Solidregion mit einer physikalischen Modelldicke = 0 (in der Realität ist die schon da). Man betrachtet das dann mathematisch und führt dann einen Source-Term ein, der natürlich die Einheit W/(m^3) haben muss. Es ist also keine Randbedingung, da hier ein nicht diskretisiertes Volumen modelliert, ergo [W/m3]. Wieso man das macht liegt auf der Hand. Wenn man zwischen zwei Fluiden bspw. eine Wand mit einer Heizspindel hat, dann wäre die Modellierung recht komplex. Man kann das dann vereinfachen und schmeißt die Solidregion inklusive Heizspindel komplett raus (dann braucht man auch kein cht) und gibt einfach eine volumetrischen Wärmestrom an und modelliert das ganze mit der baffles Randbedingung. An einer Wand kannst du diese Randbedingung nicht verwenden; wie erwähnt paarweise und zwischen diesen Baffles ist ein Solid mit einer optionalen Wärmeab- oder Zufuhr (deswegen auch W/m³). Wenn du aber solch einen volumetrischen Wärmestrom hast, dann hast du ja eigentlich ein ähnliches System, also wäre das dann vllt möglich. Da ich aber keine Ahnung habe was du simulierst und wie deine Bedingungen aussehen (Geometrie etc) kann ich dazu jetzt nicht sagen. Zusammenfassen:
- Auf Rändern kein volumetrischen Wärmestrom möglich (macht auch kein Sinn)
- thermalBaffles sind für Solids in denen Wärmezu- oder Abfuhr modelliert werden soll, ohne das physikalische zu machen. Man macht das also mathematisch mittels Gleichungen. Funktioniert auch super, da die Wärmeleitung lediglich die Laplace-Gleichung darstellt allerdings ist man hier halt auch beschränkt auf mehr oder weniger Plane-Flächen (aber ist ja meistens eh der Fall).
Grüße und ich hoff es ist jetzt klarer. PS: Im Tutorial siehst du auch ganz genau das beide Seiten (baffles) gekoppelt sind (_master, _slave), parallel zueinander stehen müssen etc. ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |