| |  | 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

 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 / zitieren --> Unities abgeben:         
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

 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 / zitieren --> Unities abgeben:         
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.0648125solidBodyMotionFunctions::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

 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 / zitieren --> Unities abgeben:         
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
     

 Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 01. Okt. 2013 12:16 <-- editieren / zitieren --> Unities abgeben:          Nur für ChristianE36
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

 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 / zitieren --> Unities abgeben:         
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 >>)
 |