Hot News:

Unser Angebot:

  Foren auf CAD.de
  OpenFOAM
  Konvergenzprobleme mit simpleFoam (Fahrzeugumströmung)

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
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Konvergenzprobleme mit simpleFoam (Fahrzeugumströmung) (2633 mal gelesen)
slint
Mitglied
M.Sc. Schiffs- und Meerestechnik


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

Beiträge: 48
Registriert: 02.09.2012

OpenFOAM 2.3.x

erstellt am: 08. Aug. 2013 10:53    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


Residuals.png


grid1.png


grid2.png

 
Hallo alle zusammen,

ich möchte gerne die Umströmung des Ahmed Body (generisches Fahrzeugmodell) mit simpleFoam und anschließend mit pisoFoam simulieren. Leider scheitere ich an den RANS-Rechnungen, da diese nicht vernünftig konvergieren (besonders der Druck macht mir Probleme). Ich habe mir ein Netz (vorerst ohne Layer) über snappyHexMesh erstellt, welches ca. 700.000 Zellen auskommt und eine recht solide Qualität hat. Für die Simulation möchte ich gerne den Solver simpleFoam mit dem k-Omega-SST-Modell verwenden.

Mir ist klar, dass die Strömung hinter dem Ahmed Body instationär ist. Jedoch muss es doch möglich sein, das Problem mit einem stationären Solver wie simpleFoam zu lösen. Das haben ja bereits etliche Personen vor mir geschafft      

Kann mir vielleicht jemand einen Tipp geben, wie ich sozusagen eine stationäre Lösung erzwingen kann?     

Der Widerstands- und Auftriebsbeiwert ist für die Netzauflösung nicht so schlecht (Abweichung ca. 10-15% von den experimentellen Ergebnissen), jedoch möchte ich eine konvergierte Rechnung. Ich habe bereits mit nonOrthoCorrector 1-2 gerechnet und kein Erfolg gehabt. Auch die Verwendung von potentialFoam für eine Startlösung bringt nicht den gewünschten Effekt. Meine Rechnung konvergiert nur, wenn ich für div(phi,U) das upwind-Schema benutze. Dieses Schema ist aber 1. Ordnung und viel zu diffusiv um bei der Umströmung vernünftige Werte zu liefern.

Vielen Dank im Voraus,
slint


Code:

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create polyMesh for time = 0

Time = 0

Mesh stats
    points:           543028
    faces:            1556358
    internal faces:   1528249
    cells:            506859
    faces per cell:   6.08573
    boundary patches: 6
    point zones:      0
    face zones:       0
    cell zones:       0

Overall number of cells of each type:
    hexahedra:     490871
    prisms:        570
    wedges:        0
    pyramids:      0
    tet wedges:    0
    tetrahedra:    0
    polyhedra:     15418
    Breakdown of polyhedra by number of faces:
        faces   number of cells
            4   2
            5   73
            6   835
            9   14373
           12   105
           15   11
           18   11
           21   8

Checking topology...
    Boundary definition OK.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
    Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces...
                   Patch    Faces   Points                  Surface topology
                   inlet      200      231  ok (non-closed singly connected)
                  outlet      200      231  ok (non-closed singly connected)
               lowerWall    14622    15061  ok (non-closed singly connected)
               upperWall     1600     1701  ok (non-closed singly connected)
            frontAndBack     1600     1782  ok (non-closed singly connected)
             ahmed_Ahmed     9887     9950  ok (non-closed singly connected)

Checking geometry...
    Overall domain bounding box (-7 -2 0) (9 2 2)
    Mesh (non-empty, non-wedge) directions (1 1 1)
    Mesh (non-empty) directions (1 1 1)
    Boundary openness (-6.74054e-18 1.64826e-17 -3.44936e-14) OK.
    Max cell openness = 3.46945e-16 OK.
    Max aspect ratio = 3.64388 OK.
    Minimum face area = 2.42787e-05. Maximum face area = 0.04.  Face area magnitudes OK.
    Min volume = 3.47553e-07. Max volume = 0.008.  Total volume = 127.89.  Cell volumes OK.
    Mesh non-orthogonality Max: 47.4485 average: 4.95745
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 1.97202 OK.
    Coupled point location match (average 0) OK.

Mesh OK.

End


Code:

FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

ddtSchemes
{
    default         steadyState;
}

gradSchemes
{
    default         Gauss linear;
    grad(U)         cellLimited Gauss linear 1;
}

divSchemes
{
    default         none;
    div(phi,U)      bounded Gauss linearUpwindV grad(U);
    div(phi,k)      bounded Gauss upwind;
    div(phi,omega)  bounded Gauss upwind;
    div((nuEff*dev(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
    default         Gauss linear corrected 0.5;
}

interpolationSchemes
{
    default         linear;
}

snGradSchemes
{
    default         corrected 0.5;
}

fluxRequired
{
    default         no;
    p;
}

// ************************************************************************* //


Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    p
    {
        solver           GAMG;
        tolerance        1e-7;
        relTol           0.01;
        smoother         GaussSeidel;
        nPreSweeps       0;
        nPostSweeps      2;
        cacheAgglomeration on;
        agglomerator     faceAreaPair;
        nCellsInCoarsestLevel 10;
        mergeLevels      1;
    }

    U
    {
        solver           smoothSolver;
        smoother         GaussSeidel;
        tolerance        1e-8;
        relTol           0.1;
        nSweeps          1;
    }

    k
    {
        solver           smoothSolver;
        smoother         GaussSeidel;
        tolerance        1e-8;
        relTol           0.1;
        nSweeps          1;
    }

    omega
    {
        solver           smoothSolver;
        smoother         GaussSeidel;
        tolerance        1e-8;
        relTol           0.1;
        nSweeps          1;
    }
}

SIMPLE
{
    nNonOrthogonalCorrectors 0;
}

/*
potentialFlow
{
    nNonOrthogonalCorrectors 10;
}
*/

relaxationFactors
{
    fields
    {
        p               0.3;
    }
    equations
    {
        U               0.7;
        k               0.7;
        omega           0.7;
    }
}

cache
{
    grad(U);
}

// ************************************************************************* //


Code:

FoamFile
{
    version     2.0;
    format      ascii;
    class       volScalarField;
    object      k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -2 0 0 0 0];

internalField   uniform 6.00;

boundaryField
{
    inlet
    {
    type  fixedValue;
    value uniform 6.00;
    }

    outlet
    {
        type            inletOutlet;
        inletValue      uniform 6.00;
        value           uniform 6.00;
    }

    lowerWall
    {
        type            kqRWallFunction;
        value           uniform 6.00;
    }

    "ahmed_.*"
    {
        type            kqRWallFunction;
        value           uniform 6.00;
    }

    upperWall
   
    {
    type slip;
    }

    frontAndBack
   
    {
    type slip;
    }
}


// ************************************************************************* //


Code:

FoamFile
{
    version     2.0;
    format      ascii;
    class       volScalarField;
    location    "0";
    object      nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -1 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    inlet
    {
        type            calculated;
        value           uniform 0;
    }

    outlet
    {
        type            calculated;
        value           uniform 0;
    }

    lowerWall
    {
        type            nutkWallFunction;
        value           uniform 0;
    }

    upperWall
    {
        type            calculated;
        value           uniform 0;
    }

    "ahmed_.*"
    {
        type            nutkWallFunction;
        value           uniform 0;
    }

    frontAndBack
    {
        type            calculated;
        value           uniform 0;
    }
}


// ************************************************************************* //


Code:

FoamFile
{
    version     2.0;
    format      ascii;
    class       volScalarField;
    object      omega;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 0 -1 0 0 0 0];

internalField   uniform 21.21;

boundaryField
{
    inlet
    {
    type  fixedValue;
    value uniform 21.21;
    }

    outlet
    {
type            inletOutlet;
        inletValue      uniform 21.21;
        value           uniform 21.21;
    }

    lowerWall
    {
        type            epsilonWallFunction;
        value           uniform 21.21;
    }

    "ahmed_.*"
    {
        type            epsilonWallFunction;
        value           uniform 21.21;
    }

    upperWall
    {
    type slip;
    }

    frontAndBack
    {
    type slip;
    }
}


// ************************************************************************* //


Code:

FoamFile
{
    version     2.0;
    format      ascii;
    class       volScalarField;
    object      p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //


dimensions      [0 2 -2 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    inlet
    {
        type            zeroGradient;
    }

    outlet
    {
        type            fixedValue;
        value           uniform 0;
    }

    lowerWall
    {
        type            zeroGradient;
    }

    "ahmed_.*"
    {
        type            zeroGradient;
    }

    upperWall
    {
    type slip;
    }

    frontAndBack
    {
    type slip;
    }
}

// ************************************************************************* //


Code:

FoamFile
{
    version     2.0;
    format      ascii;
    class       volVectorField;
    location    "0";
    object      U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (40 0 0);

boundaryField
{
    inlet
    {
    type  fixedValue;
    value uniform (40 0 0);
    }

    outlet
    {
        type            inletOutlet;
        inletValue      uniform (0 0 0);
        value           uniform (40 0 0);      
    }

    lowerWall
    {
        type            fixedValue;
        value           uniform (40 0 0);
    }

    "ahmed_.*"
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }

    upperWall
    {
    type slip;
    }

    frontAndBack
    {
    type slip;
    }
}


// ************************************************************************* //


[Diese Nachricht wurde von slint am 08. Aug. 2013 editiert.]

[Diese Nachricht wurde von slint am 08. Aug. 2013 editiert.]

[Diese Nachricht wurde von slint am 08. Aug. 2013 editiert.]

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

t.schumacher
Mitglied
CFD Engineer


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

Beiträge: 184
Registriert: 03.05.2010

erstellt am: 08. Aug. 2013 12:51    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 slint 10 Unities + Antwort hilfreich

Du hast dir die Frage doch schon selbst beantwortet. Die Strömung hat instationäre Elemente, gerade im Nachlauf. Ein stationärer Solver ist deswegen nur bedingt geeignet.
Die Residuen sehen völlig normal aus für einen simpleFoam Run für den Ahmed. 10-15% Abweichung bei 700.000 Zellen ohne Layers und stationär ist schon sehr gut.

Layer würde ich auf jeden Fall spendieren.
Auch scheint mir die z-Ausdehung deines Gitters zu niedrig zu sein, es sei denn du bildest exact den Windkanal nach?

Thomas S.

------------------
Helyx-OS - Frei verfügbares GUI für OPENFOAM

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

slint
Mitglied
M.Sc. Schiffs- und Meerestechnik


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

Beiträge: 48
Registriert: 02.09.2012

OpenFOAM 2.3.x

erstellt am: 18. Aug. 2013 10:46    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 Thomas,

vielen Dank (wenn auch verspätet) für deine Antwort. Du hast natürlich recht mit deiner Aussage, dass das ein normaler Verlauf für den Ahmed Body ist. Ich bin davon ausgegangen, dass man den Verlauf vielleicht doch etwas glätten könnte.

Ich werde dem Ahmed ein paar Layer spendieren und schauen was bei rum kommt.

Genau, das Gitter ist dem Windkanalversuch nachempfunden, deshalb die Amessungen. Ich werde auch mal versuchen die Domain insgesamt etwas größer zu gestalten, möglicherweise bringt das ja etwas Stabilität 

Ich habe noch eine eher allgemeine Frage zu SimpleFoam. Ich kann ja mit dem dummy-Turbulenzmodell "laminar" auch laminare Berechnungen durchführen. Kann mir jemand sagen welche Gleichungen in diesem Fall gelöst werden? Werden die NS-Gleichungen in diesem Fall auch gemittelt? Sollte das so sein, wie wird dann die Schließung realisiert?

Viele Grüße 

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)2025 CAD.de | Impressum | Datenschutz