Guten Tag zusammen
Ich versuche mich in den code von pisofoam einzuarbeiten da ich auf basis dieses codes einen neuen löser programmieren muss.
Da ich mit OpenFOAM noch wenig gearbeitet habe, habe ich schwierigkeiten mit einigen codezeilen.
Es geht um den abschnitt am Anfang
Code:
while (runTime.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
#include "readPISOControls.H"
#include "CourantNo.H"
// Pressure-velocity PISO corrector
{
// Momentum predictor
fvVectorMatrix UEqn
(
fvm::Dnobiggrin:t(U)
+ fvm::Div(phi, U)
+ turbulence->divDevReff(U)
);
UEqn.relax();
if (momentumPredictor)
{
solve(UEqn == -fvc::grad(p));
}
so nun zu meinen Fragen
1) fvm::ddt(U) bedeutet einfach nur das intern der ausdruck dU/dt erstellt wird, also dass das Ergebnis von fvm::ddt(U) = dU/dt ist, richtig?
2)was bedeutet turbulence->divDevReff(U)? Ist turbulence ein Zeiger, also wegen dem Pfeil -> ?
3)woher kommt momentumPredictor und wann wird es true?
4)was genau tut der solve befehl? erledigt er wirklich das komplete lösen des systems, also diskretisieren, matrix aufstellen und lösen der Matrix? Also was kriege ich dort als ergebniss?
5)Später wird noch folgt noch folgender aufruf
UEqn.A()
UEqn haben wir ja oben definiert aber worauf wird hier zugegriffen?
Ich bin aus der Doku nicht wirklich schlau geworden und hoffe Ihr könnt mir hier weiterhelfen.
Falls was unklat ist einfach bescheid sagen
Viele Grüße
Duall777
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP