Hot News:

Unser Angebot:

  Foren auf CAD.de
  OpenFOAM
  Courant-Zahl mit rhoSimpleFoam

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:  Courant-Zahl mit rhoSimpleFoam (2485 mal gelesen)
StudentMax
Mitglied
Student Maschinenbau


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

Beiträge: 73
Registriert: 03.12.2009

SuseLinux 11.2
OpenFoam 1.6
Salome 5.1.3

erstellt am: 25. Mrz. 2010 10:47    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 zusammen,
ich würde mit rhoSimpleFoam gerne eine automatische TimeStep-Anpassung mit der Courantzahl vornehmen. Jedoch ignoroiert rhoSimpleFoam meine maxCO und adjustTimeStep Einträge in ControlDict.
Kann ich den Solver dazu bringen, den Zeitschritt automatisch anzupassen?
Ich habe zwar eine Anleitung allgemein für alle Solver gefunden, siehe: http://www.idurun.com/?p=371

aber ich bin mir nicht sicher ob das der richtige Weg ist.
Denkt ihr das funktioniert oder verpfusche ich mir damit meinen Solver?

Grüße,
Max

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

Ulrich Heck
Mitglied
OpenFOAM Tool Entwicklung


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

Beiträge: 291
Registriert: 08.09.2003

CastNet (DHCAE Tools)
OpenFOAM
CalculiX

erstellt am: 25. Mrz. 2010 11: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 Nur für StudentMax 10 Unities + Antwort hilfreich

Hallo Max,

Bei Simple-Solvern sind die Zeitschritte nur fiktiv, d.h. eher ein Iterationsindex. Daher ist eine Anpassung des "Zeitschritts" hier nicht üblich/sinnvoll. Wenn dann würde ich mir mal die Piso oder Pimple-Sover ansehen.

Viele Grüße
Ulrich

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

StudentMax
Mitglied
Student Maschinenbau


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

Beiträge: 73
Registriert: 03.12.2009

SuseLinux 11.2
OpenFoam 1.6
Salome 5.1.3

erstellt am: 25. Mrz. 2010 11:10    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

Danke für die schnelle Antwort,
d.h. ich muss dann selbst einen geeigneten TimeStep wählen, um die Courantzahl kleiner 1 zu halten? Oder ist der Zeitschritt wirklich "egal" ?
Oder spielt die Courantzahl dann bei SIMPLE Solvern keine große Rolle?

Zwei Fragen hätt ich da noch:
1. Gibt es dann mit OpenFoam die Möglichkeit die Zelllänge zu ermitteln, um einen geeigneten TimeStep zu berechnen?

2. Kann ich mir die Courantzahl während der Berechnung anzeigen lassen? (Falls dies dann überhaupt sinnvoll ist)

Vielen Dank für die Mühe,

Grüße

Max

[Diese Nachricht wurde von StudentMax am 25. Mrz. 2010 editiert.]

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

Ulrich Heck
Mitglied
OpenFOAM Tool Entwicklung


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

Beiträge: 291
Registriert: 08.09.2003

CastNet (DHCAE Tools)
OpenFOAM
CalculiX

erstellt am: 26. Mrz. 2010 17:40    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 StudentMax 10 Unities + Antwort hilfreich

Hallo Max,

Bei simple braucht man keine Courant-Zahl zu beachten, "Stabilität" wird über Unterrelaxtion hergestellt.

Ich denke checkMesh sollte die kleinste Zelle geben, hier kann man eine geeignete Länge ableiten.

Bei den Piso-Solvern ist die Courant Zahl sehr wichtig, um wird im log-File ausgegeben.

Viele Grüße

Ulrich

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

StudentMax
Mitglied
Student Maschinenbau


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

Beiträge: 73
Registriert: 03.12.2009

SuseLinux 11.2
OpenFoam 1.6
Salome 5.1.3

erstellt am: 29. Mrz. 2010 09:23    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

Super,
vielen Dank.

Grüße

Max

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


Ex-Mitglied

erstellt am: 27. Mai. 2013 14:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo, ich versuche seit zwei Tagen, en Zeitschritt im icoFoam anzupsasen, damit die Courantzahl nicht in unendliche Höhen geht, und die Berechnung sinnfrei wird. Ich habe bereits folgenden Code mit Hilfe des Internets zusammengebastelt:


#include "fvCFD.H"

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

int main(int argc, char *argv[])
{
   
  #include "setRootCase.H"
 
  #include "createTime.H"
  #include "createMesh.H"
  #include "createFields.H"
 
  #include "initContinuityErrs.H"
 
  #include "readTimeControls.H"
  #include "CourantNo.H"
 
  # include "setInitialDeltaT.H"

    // included
 

   
   
   

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

    Info<< "\nStarting time loop\n" << endl;

    while (runTime++; runTime.end(); runTime++)
    {
# include "readTimeControls.H"

# include "CourantNo.H"
# include "setDeltaT.H"

runTime++;

        Info<< "Time = " << runTime.timeName() << nl << endl;

# include "readPISOControls.H"

       
        fvVectorMatrix UEqn
        (
            fvm::ddt(U)
          + fvm::div(phi, U)
          - fvm::laplacian(nu, U)
        );

        solve(UEqn == -fvc::grad(p));

        // --- PISO loop

        while (int corr=0; corr<nCorr; corr++)
        {
            volScalarField rAU(1.0/UEqn.A());

            U = rAU*UEqn.H();
            phi = (fvc::interpolate(U) & mesh.Sf())
                + fvc::ddtPhiCorr(rAU, U, phi);

            adjustPhi(phi, U, p);

            for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
            {
                fvScalarMatrix pEqn
                (
                    fvm::laplacian(rAU, p) == fvc::div(phi)
                );

                pEqn.setReference(pRefCell, pRefValue);
                pEqn.solve();

                if (nonOrth == nNonOrthCorr)
                {
                    phi -= pEqn.flux();
                }
            }

            #include "continuityErrs.H"

            U -= rAU*fvc::grad(p);
            U.correctBoundaryConditions();
        }

        runTime.write();

        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
            << "  ClockTime = " << runTime.elapsedClockTime() << " s"
            << nl << endl;
    }

    Info<< "End\n" << endl;

    return 0;
}

Nach wclean, und wmake im entsprechenden Ordner spuckt mir mein LieblingsEndgerät folgendes aus:

Making dependency list for source file myIcoFoam.C
SOURCE=myIcoFoam.C ;  g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3  -DNoRepository -ftemplate-depth-100 -I/opt/openfoam211/src/finiteVolume/lnInclude -IlnInclude -I. -I/opt/openfoam211/src/OpenFOAM/lnInclude -I/opt/openfoam211/src/OSspecific/POSIX/lnInclude  -fPIC -c $SOURCE -o Make/linux64GccDPOpt/myIcoFoam.o
myIcoFoam.C: In Funktion »int main(int, char**)«:
myIcoFoam.C:63:19: Fehler: »runTime.Foam::Time: perator++(0)« konnte nicht von »Foam::Time« nach »bool« umgewandelt werden
myIcoFoam.C:63:21: Fehler: expected »)« before »;« token
myIcoFoam.C:63:47: Fehler: expected »;« before »)« token
In file included from myIcoFoam.C:45:0:
/opt/openfoam211/src/finiteVolume/lnInclude/initContinuityErrs.H:37:8: Warnung: Variable »cumulativeContErr« wird nicht verwendet [-Wunused-variable]
In file included from myIcoFoam.C:47:0:
/opt/openfoam211/src/finiteVolume/lnInclude/readTimeControls.H:38:8: Warnung: Variable »maxDeltaT« wird nicht verwendet [-Wunused-variable]
myIcoFoam.C:130:1: Fehler: expected »}« at end of input
make: *** [Make/linux64GccDPOpt/myIcoFoam.o] Fehler 1


womit ich wenig anfangen kann.

Kann mir vielleicht jemand helfen??

Ein bissschen verzweifelte Grüße aus Freising

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

ESI-OpenCFD OpenFOAM v2312

erstellt am: 27. Mai. 2013 22:12    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 StudentMax 10 Unities + Antwort hilfreich

Code:

runTime++;

das ist dein Fehler. Ich weiß nicht was du damit machen iwllst!

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

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