Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  OpenFOAM
  Bestimmung des Strömungswiderstandkoeffizienten für einen porösen Zylinder in OF

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Bestimmung des Strömungswiderstandkoeffizienten für einen porösen Zylinder in OF (917 / mal gelesen)
OFAmateur007ek
Mitglied


Sehen Sie sich das Profil von OFAmateur007ek an!   Senden Sie eine Private Message an OFAmateur007ek  Schreiben Sie einen Gästebucheintrag für OFAmateur007ek

Beiträge: 5
Registriert: 04.09.2020

erstellt am: 04. Sep. 2020 13:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo miteinander,

ich habe kürzlich angefangen mich in OpenFoam einzuarbeiten. Ich habe eine 2D-Umströmung eines porösen Zylinders simuliert, soweit alles einfach. Nun möchte ich den Strömungswiderstandskoeffizienten, welcher auf den Zylinder wirkt, bestimmen. Doch ich kann forcecoeffs im controlDict-Ordner hierfür nicht verwenden, da man in OF keine Patches für interne Faces erstellen kann. Mein alternativer Ansatz war es also mittels Paraview die Zellregion des Zylinders zu extrahieren und die Kraft darauf zu berechnen, um so zumindest indirekt den Koeffizienten Cd zu kriegen. Anderswo habe ich es ausführlich beschrieben:

https://www.cfd-online.com/Forums/paraview/229249-drag-force-calculation-porous-cylinder.html

Leider nicht richtig. Bei forcecoeffs wird zwar durchaus die Porosität unter Umständen berücksichtigt, aber halt nur mit Patches.

https://www.openfoam.com/documentation/guides/latest/doc/guide-fos-forces-force-coeffs.html

Was vielleicht einer weiter?

Danke im Voraus!

[Diese Nachricht wurde von OFAmateur007ek am 04. Sep. 2020 editiert.]

[Diese Nachricht wurde von OFAmateur007ek am 04. Sep. 2020 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Friendly
Mitglied



Sehen Sie sich das Profil von Friendly an!   Senden Sie eine Private Message an Friendly  Schreiben Sie einen Gästebucheintrag für Friendly

Beiträge: 69
Registriert: 05.06.2017

erstellt am: 21. Sep. 2020 16:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für OFAmateur007ek 10 Unities + Antwort hilfreich

Hallo,

ich nehme an, du hast den Zylinder mit dem Darcy-Forchheimer-Modell gerechnet und hast deswegen keine patches.

Ich hätte folgende Idee, die sich hoffentlich "leicht" implementieren lässt. Gemacht habe ich es nicht.

Zunächst müsstest du dafür eine cellZone definieren mit den jeweiligen Zellen, die du zur Bestimmung des Widerstandsbeiberts verwenden möchtest. Mit Hilfe von volRegion, müsstest du dann die erforderlichen Daten wie Druck, Geschwindigkeit etc. samplen und sie später verrechnen. Das ganze ist hier erklärt: https://www.cfd-online.com/Forums/openfoam-post-processing/118165-sampling-cellset.html


Hoffe es hilft.

Grüße,
Friendly

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

OFAmateur007ek
Mitglied


Sehen Sie sich das Profil von OFAmateur007ek an!   Senden Sie eine Private Message an OFAmateur007ek  Schreiben Sie einen Gästebucheintrag für OFAmateur007ek

Beiträge: 5
Registriert: 04.09.2020

erstellt am: 22. Sep. 2020 16:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo lieber Friendly,

zuerst einmal vielen Dank für deinen interessanten Ansatz!

Ja, ich benutzte das Darcy-Forchheimer Modell im fvOptions-Ordner für mein Problem. Die poröse Zellzone habe ich bereits in blockMesh als "porous" definiert.

Re = 100 mit U0 = 1 m/s.

Im controlDict habe ich dann dem Ansatz von cfd-online folgend folgendes hinzugefügt:

Code:

functions
{   

    volFieldValue1
    {
        type             volFieldValue;
        libs             ("libfieldFunctionObjects.so");
        log              true;
        writeControl     writeTime;
        writeFields      true;
        regionType       cellZone;
        name             porous;
        operation        volAverage;
        fields
        (
            U
            p
        );
    }
}



Klappt. Dieser Vorschlag hingegen konnte keinen Postprocessing-Ordner erstellen:

Code:

cellObj1
    {
        type            volRegion;
        libs ("libfieldFunctionObjects.so");
        enabled         true;
        writeControl    adjustableRunTime;
        writeInterval   0.01;
        log             true;
        writeFields     true;
        regionType      cellZone;
        name            porous;
        operation       none;

        fields
        (
            p
            U
        );
    }


In volFieldValue habe ich bis zu 30s folgende Werte erhalten:

Code:

# Region      : cellZone porous
# Cells       : 3300
# Volume      : 7.850342e-01
# Time        volAverage(U) volAverage(p)
5             (4.367639e-04 8.642613e-07 7.675885e-24) -2.257972e-01
10            (4.072414e-04 -1.837840e-06 5.596721e-24) -1.782918e-01
15            (3.966297e-04 -9.299148e-08 4.825904e-24) -1.601596e-01
20            (3.917445e-04 4.436269e-06 4.505260e-24) -1.513882e-01
25            (3.908363e-04 -6.386791e-06 4.323701e-24) -1.493970e-01
30            (3.975167e-04 -7.499127e-06 4.742320e-24) -1.608238e-01

Meine Anströmgeschwindigkeit ist in x-Richtung (positiv). Hab versucht mit den Widerstandkoeffizienteen mit cw=-(2*p*A)/(Ux^2*rho*A) mit A=1m^2 und rho=1000kg/m^3, aber cw ist im 4-stelligen Bereich. Verzeiht mir meine dämlichen Anfängerfehler, aber weiß leider nicht weiter   .

Mit sehr freundlichen Grüßen,

OFAmateur007ek

[Diese Nachricht wurde von OFAmateur007ek am 22. Sep. 2020 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Friendly
Mitglied



Sehen Sie sich das Profil von Friendly an!   Senden Sie eine Private Message an Friendly  Schreiben Sie einen Gästebucheintrag für Friendly

Beiträge: 69
Registriert: 05.06.2017

erstellt am: 23. Sep. 2020 09:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für OFAmateur007ek 10 Unities + Antwort hilfreich

Hallo,

du hast also einen riesigen Zylinder (1m^2), der mit Wasser durchströmt wird. Ich denke, dass hier auch den Reibungswiderstand miteinrechnen musst. Dein Ansatz bezieht sich nur auf den Druckwiderstand.

Ein möglicher Fehler, der mir spontan einfällt und den viele gerne machen:

Wenn du mit OpenFOAM inkompressible rechnest, was bei Wasser und dieser Strömungsgeschwindigkeit definitiv der Fall ist, rechnest du mit einem kinematischen Druck. Der Druck ist durch die Dichte geteilt.

Du hast z.B. einen Druck von -1.608238e-01. Negativer Druck macht physikalisch keinen Sinn. Es ist aber zulässig so zu rechnen, solange du inkompressibel rechnest. Ich denke, dein Druckfeld wurde innertial auf 0 gesetzt, so wie es in den meisten Tutorials ist denke ich. Dein negativer Druck ist somit die Differenz zum Referenzdruck von 0.

Das bedeutet für dein "wahres p":

wahrere p = 101325 Pa - (1.608238e-01 m^2/s^2 * 1000 kg/m^3)

Hoffe es hilft!


Grüße,
Friendly

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Shor-ty
Moderator





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2463
Registriert: 27.08.2010

OpenFOAM-dev (Foundation)
OpenFOAM-xxxx (ESI)

erstellt am: 07. Okt. 2020 08:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für OFAmateur007ek 10 Unities + Antwort hilfreich

Hallo zusammen,

schon mal die Funktion "forces" angeschaut? Ich verweise mal auf das hier:

Code:

        dict.readIfPresent("porosity", porosity_);
        if (porosity_)
        {
            Info(log_)<< "    Including porosity effects" << endl;
        }
        else
        {
            Info(log_)<< "    Not including porosity effects" << endl;
        }

Gegenenfalls etwas, dass Ihr euch anschauen könnt. Ist übrigens auch bei »forceCoeffs« integriert.
Ach übrigens, man kann in FOAM schon interne Faces auswählen und intern "verwrusteln". Man kann so ziemlich alles mit OpenFOAM (:

------------------
Glück Auf,
Tobi

OpenFOAM® Community - Knowledge Base

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Friendly
Mitglied



Sehen Sie sich das Profil von Friendly an!   Senden Sie eine Private Message an Friendly  Schreiben Sie einen Gästebucheintrag für Friendly

Beiträge: 69
Registriert: 05.06.2017

erstellt am: 12. Okt. 2020 10:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für OFAmateur007ek 10 Unities + Antwort hilfreich

Das ist gut zu wissen, danke!

Dann sollte dies ja relativ gut zu bewältigen sein, ohne dass du es "per Hand" berechnen musst.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

OFAmateur007ek
Mitglied


Sehen Sie sich das Profil von OFAmateur007ek an!   Senden Sie eine Private Message an OFAmateur007ek  Schreiben Sie einen Gästebucheintrag für OFAmateur007ek

Beiträge: 5
Registriert: 04.09.2020

erstellt am: 17. Nov. 2020 15:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi miteinander,

tut mir Leid, dass ich so spät antworte, es ist so einiges dazwischen gekommen und ich hatte keine Zeit mehr hierfür.

Friendly, dein interessanter Ansatz hat leider nicht weitergeführt, es kamen merkwürdige Ergebnisse heraus.

Shor-ty, an "includig porosity effects" habe ich auch gedacht, aber als selectionMode wird ja für Darcy-Forchheimer in fvOptions "patches" eben nicht angeboten. Ich benutze eine Zellenregion, welche in blockMeshDict definiert wird. Klappt es etwa mit Snappyhexmesh? Damit habe ich leider noch keine Erfahrung.

MfG

OFAmateur007ek

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz