Hot News:

Unser Angebot:

  Foren auf CAD.de
  OpenFOAM
  Vector-Coupled Solver zur Beschleunigung einsetzen

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:  Vector-Coupled Solver zur Beschleunigung einsetzen (1173 mal gelesen)
ChristianE36
Mitglied
Student


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

Beiträge: 41
Registriert: 30.04.2011

OF 1.6-ext/2.2.1 auf Ubuntu 12.04 LTS

erstellt am: 12. Aug. 2013 09:35    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 alle zusammen,

Nach längerer Abstinenz und Ausflügen in andere Bereiche bin ich zurück bei OpenFOAM 
Dieses Mal möchte ich einen Blick auf den "Vector-Coupled Solver" (siehe http://www.openfoam.org/version2.2.0/matrix-solvers.php) werfen.

In den Tutorials findet man (Inkompressibel/PisoFoam/ras) zwei Beispiele in Form der Cavity. Beide habe ich bis 100 in der zeit berechnen lassen.
Den normalen Fall benötigte 45,14 Sekunden Ausführungszeit, der gekoppelte Fall bringt es auf 44,71 Sekunden.
Bei beiden gibt es keine Erläuterung oder eine Allrun, Die Ausführung habe ich einfach nur mit "blockMesh" und "pisoFoam" gemacht.

Nun ist das nicht  besonders viel, könnte aber bei einem anspruchsvollen Fall vielleicht besser laufen. Ziel ist in diesem Fall das AMI-Tutorial "propeller".
Hier teste ich momentan mehrere Einstellungen in der fvSolution. Leider sind bisher alle divergiert. 

-die gekoppelte Lösung ist scheinbar(?) nur für U geeignet (k und Epsilon wollte er nicht berechnen).
- Nur Ufinal mit PBiCG zu lösen funktioniert auch nicht :

 

Code:
U
    {
        type            coupled;  // optional, defaults to segregated
        solver          PBiCCCG;
        preconditioner  DILU;
        tolerance      (1e-05 1e-05 1e-05);
        relTol          (0.1 0.1 0.1);
    }

    "(k|epsilon)"
    {
        type            smoothSolver;
        solver          GaussSeidel;
        preconditioner  DILU;
        tolerance      1e-6;
        relTol          0.1;
    }

    "(U|k|epsilon)Final"
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-6;
        relTol          0;
    }


Momentan variiere ich einige Einstellungen durch, Toleranz, Einsetzen von U final usw.. Sollte ich eine stabile Rechnung bekommen melde ich mich hier wieder.

Gruß
Christian


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

ChristianE36
Mitglied
Student


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

Beiträge: 41
Registriert: 30.04.2011

OF 1.6-ext/2.2.1 auf Ubuntu 12.04 LTS

erstellt am: 15. Aug. 2013 09:06    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,

einige Varianten habe ich getestet, alle sind sie leider divergiert.
Mich erstaunt dabei, dass es nicht U oder p ist, sondern k:

Folgende Einstellung habe ich zuletzt gefahren:

Code:
solvers
{
    pcorr
    {
        solver          GAMG;
        tolerance       1e-2;
        relTol          0;
        smoother        DICGaussSeidel;
        cacheAgglomeration no;
        nCellsInCoarsestLevel 10;
        agglomerator    faceAreaPair;
        mergeLevels     1;
        maxIter         50;
    }

    p
    {
        $pcorr;
        tolerance       1e-5;
        relTol          0.01;
    }

    pFinal
    {
        $p;
        tolerance       1e-6;
        relTol          0;
    }

    U
    {
        type            coupled;  // optional, defaults to segregated
        solver          PBiCCCG;
        preconditioner  DILU;
        tolerance       (1e-05 1e-05 1e-05);
        relTol          (0.1 0.1 0.1);
    }
    UFinal
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance       1e-6;
        relTol          0;
    }

    "(k|epsilon)"
    {
        type            smoothSolver;
        solver          GaussSeidel;
        preconditioner  DILU;
        tolerance       1e-6;
        relTol          0.1;
    }

    "(k|epsilon)Final"
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance       1e-6;
        relTol          0;
    }
}

PIMPLE
{
    correctPhi          no;
    nOuterCorrectors    2;
    nCorrectors         1;
    nNonOrthogonalCorrectors 0;
}

relaxationFactors
{
    "(U|k|epsilon).*"   1;
}

cache
{
    grad(U);
}


Mit folgendem Ergebnis:

Code:
Courant Number mean: 0.0314992 max: 1.98598
deltaT = 6.25e-05
Time = 0.0648125

solidBodyMotionFunctions::rotatingMotion::transformation(): Time = 0.0648125 transformation: ((0 0 0) (0.369037 (0 -0.929415 0)))
AMI: Creating addressing and weights between 22416 source faces and 22416 target faces
AMI: Patch source weights min/max/average = 0.966171, 1.03844, 1.00079
AMI: Patch target weights min/max/average = 0.97232, 1.04548, 1.00078
PIMPLE: iteration 1
DILUPBiCCCG:  Solving for Ux, Initial residual = 0.00381011, Final residual = 6.5292e-05, No Iterations 1
DILUPBiCCCG:  Solving for Uy, Initial residual = 0.000542918, Final residual = 6.52742e-06, No Iterations 1
DILUPBiCCCG:  Solving for Uz, Initial residual = 0.0038063, Final residual = 6.52198e-05, No Iterations 1
GAMG:  Solving for p, Initial residual = 0.0139698, Final residual = 5.71606e-05, No Iterations 3
time step continuity errors : sum local = 1.14243e-09, global = 3.97802e-11, cumulative = 5.15554e-07
PIMPLE: iteration 2
DILUPBiCG:  Solving for Ux, Initial residual = 6.11433e-05, Final residual = 2.18784e-07, No Iterations 2
DILUPBiCG:  Solving for Uy, Initial residual = 6.8885e-06, Final residual = 1.37125e-07, No Iterations 1
DILUPBiCG:  Solving for Uz, Initial residual = 6.11251e-05, Final residual = 2.13316e-07, No Iterations 2
GAMG:  Solving for p, Initial residual = 0.00663477, Final residual = 4.22168e-07, No Iterations 8
time step continuity errors : sum local = 8.43492e-12, global = -7.02231e-13, cumulative = 5.15553e-07
DILUPBiCG:  Solving for epsilon, Initial residual = 1.72301e-05, Final residual = 1.53226e-08, No Iterations 2
DILUPBiCG:  Solving for k, Initial residual = 0.000127556, Final residual = 4.51129e-09, No Iterations 3
ExecutionTime = 8844.83 s  ClockTime = 17833 s

Courant Number mean: 0.0315005 max: 1.9854
deltaT = 6.25e-05
Time = 0.064875

solidBodyMotionFunctions::rotatingMotion::transformation(): Time = 0.064875 transformation: ((0 0 0) (0.373595 (0 -0.927592 0)))
AMI: Creating addressing and weights between 22416 source faces and 22416 target faces
AMI: Patch source weights min/max/average = 0.967623, 1.05141, 1.00088
AMI: Patch target weights min/max/average = 0.972916, 1.04872, 1.00087
PIMPLE: iteration 1
DILUPBiCCCG:  Solving for Ux, Initial residual = 0.00380965, Final residual = 6.52888e-05, No Iterations 1
DILUPBiCCCG:  Solving for Uy, Initial residual = 0.000543057, Final residual = 6.52863e-06, No Iterations 1
DILUPBiCCCG:  Solving for Uz, Initial residual = 0.0038059, Final residual = 6.52213e-05, No Iterations 1
GAMG:  Solving for p, Initial residual = 0.0146507, Final residual = 6.05295e-05, No Iterations 3
time step continuity errors : sum local = 1.20948e-09, global = -1.62448e-10, cumulative = 5.15391e-07
PIMPLE: iteration 2
DILUPBiCG:  Solving for Ux, Initial residual = 6.08384e-05, Final residual = 2.45187e-07, No Iterations 2
DILUPBiCG:  Solving for Uy, Initial residual = 6.96794e-06, Final residual = 1.40986e-07, No Iterations 1
DILUPBiCG:  Solving for Uz, Initial residual = 6.07692e-05, Final residual = 2.31941e-07, No Iterations 2
GAMG:  Solving for p, Initial residual = 0.00663358, Final residual = 4.18389e-07, No Iterations 8
time step continuity errors : sum local = 8.34576e-12, global = -7.50192e-13, cumulative = 5.1539e-07
DILUPBiCG:  Solving for epsilon, Initial residual = 1.72089e-05, Final residual = 1.42961e-08, No Iterations 2
DILUPBiCG:  Solving for k, Initial residual = 0.000127569, Final residual = 2.04845e+11, No Iterations 1001
bounding k, min: -6.55517e+14 max: 7.28688e+14 average: 1.95927e+10
ExecutionTime = 8902.82 s  ClockTime = 17950 s

Courant Number mean: 0.0315018 max: 1.9848
deltaT = 6.25e-05
Time = 0.0649375

solidBodyMotionFunctions::rotatingMotion::transformation(): Time = 0.0649375 transformation: ((0 0 0) (0.378144 (0 -0.925747 0)))
AMI: Creating addressing and weights between 22416 source faces and 22416 target faces
AMI: Patch source weights min/max/average = 0.969524, 1.05209, 1.00097
AMI: Patch target weights min/max/average = 0.971965, 1.05769, 1.00096
PIMPLE: iteration 1
DILUPBiCCCG:  Solving for Ux, Initial residual = 0.981158, Final residual = 0.0948295, No Iterations 3
DILUPBiCCCG:  Solving for Uy, Initial residual = 0.988759, Final residual = 0.0716283, No Iterations 3
DILUPBiCCCG:  Solving for Uz, Initial residual = 0.979171, Final residual = 0.0968181, No Iterations 3


Hat jemand eine Erklärung oder eine Idee dafür? Habe keine Idee mehr, was ich noch ändern kann, um den propeller mit AMI und coupledU zum Laufen zu bringen.

Schöne Grüße
Christian

[Diese Nachricht wurde von ChristianE36 am 15. Aug. 2013 editiert.]

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

ChristianE36
Mitglied
Student


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

Beiträge: 41
Registriert: 30.04.2011

OF 1.6-ext/2.2.1 auf Ubuntu 12.04 LTS

erstellt am: 30. Sep. 2013 09: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

Hier ein funktionierende Anweisung für die fvSolution, getestet am propeller tutorial:

Code:
  U
    {
        type            coupled;  // optional, defaults to segregated                                                                                                                                                   
        solver          PBiCCCG;
        // smoother        GaussSeidel;                                                                                   
        //       preconditioner  diagonal;                                                                                                                                                         
        tolerance       (1e-05 1e-05 1e-05);
        relTol          (0.1 0.1 0.1);

[Diese Nachricht wurde von ChristianE36 am 30. Sep. 2013 editiert.]

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: 2466
Registriert: 27.08.2010

erstellt am: 01. Okt. 2013 12:16    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 ChristianE36 10 Unities + Antwort hilfreich

Du hast ganz schön große Co-Zahlen.
Könnte auch ein Grund sein für ein Bounding.

Tutorial mit anderen Settings kann auch anders laufen.
Außerdem - wie sehen denn die Schemen aus?

Allgemein noch: Bringt es dir Zeitvorteile?
Ich nehme stark an das in diesen kleinen Tutorials kaum ein Unterschied zu sehen ist.

Du solltest einen Case >> 200.000 Zellen aufsetzen und vergleichen 
Vllt. mal einen mit 4.000.000 !

------------------
Grüße Tobias Holzmann

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

ChristianE36
Mitglied
Student


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

Beiträge: 41
Registriert: 30.04.2011

OF 1.6-ext/2.2.1 auf Ubuntu 12.04 LTS

erstellt am: 02. Okt. 2013 12:01    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 Shorty,

Zu erst wollte ich nur die Funktion erproben. Für alle nachvollziehbar, ich verwende hier ein AMI-Tutorial, pimpleDyMFoam "propeller" der Version 2.2.1
Das hat jeder von uns schon auf seiner Festplatte. Daher darf ich mich darauf beschränken nur meine Änderungen hier anzuzeigen.

Beim Tutorial reden wir von einem Zeitgewinn im niedrigen einstelligen Prozentbereich. Für jeden sehr leicht nachvollziehbar. 

Mit deiner Anregung hast du natürlich recht: Der Case ist viel zu klein. Momentan bin ich mit Lehre so beschäftigt, dass ich keine Zeit habe, hier weiter zu kommen (sorry).

LG, Christian

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