II.5) Réglage du pas de temps (controlDict)

Le choix du pas de temps est important pour la résolution du problème. Dans le cas où la variation des paramètres dans le temps est facile à prévoir, l'utilisateur peut décider d'utiliser un pas de temps fixe, tout en vérifiant le critère de stabilité donné par le  nombre de Courant $ Co = v.{{\Delta t} \over {\Delta x}}$. Pour imposer les paramètres de temps, de lecture et d'écriture des résultats, on procède de la façon suivante :

  1. Aller dans le dossier system,
  2. Ouvrir le fichier 'controlDict'  à l'aide de gedit.

Pour des cas plus complexes, prévoir le pas-de-temps devient plus compliqué. Il est donc nécessaire de faire varier le pas de temps. InterFoam offre alors cette possibilité d'ajustement de pas de temps (comme setFields pour les conditions initiale et limites). Pour cela, l'utilisateur doit alors :

  1. Spécifier adjustTimeStep,
  2. Définir le nombre de courant maximal maxCo,
  3. Imposer un pas-de-temps maximal maxDeltaT.

 

En utilisant cette dernière option, les pas ne sont jamais arrondis à une valeur commode. Par conséquent, si on demande à OpenFoam de sauver les résultats à un nombre fixe d'intervalle de pas-de-temps, les temps auxquels les résultats seront sauvés seront quelques peu arbitraires. C'est pourquoi OpenFoam propose à l'utilisateur de spécifier si les résultats sont enregistrés à temps fixes. Si c'est le cas, OpenFoam forcera l'ajustement des pas de temps afin de tomber sur une "horaire" exacte et pratique. Pour cela, l'utilisateur doit choisir l'option adjustableRunTime pour l'entrée writeControl dans le controlDict.
 

Un exemple de différentes entrées définies dans un controlDict sont données ci dessous :

/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.2.2                                 |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

application     twoLiquidMixingFoam;

startFrom       startTime;                                      Contrôle le départ de la simulation

startTime       0;                                                 

stopAt          endTime;                                     // Contrôle la fin de la simulation

endTime         100;

deltaT          0.05;                                               //  Pas-de-temps de la simulation

writeControl    adjustableRunTime;   //  Contrôle l'instant où les données sont écrites dans un fichier

writeInterval   1;                                         //  Pas de temps entre chaque enregistrement de données

purgeWrite      0;                                                

writeFormat     ascii;                                      //     Format des fichiers de résultat

writePrecision  6;

writeCompression uncompressed;                    

timeFormat      general;

timePrecision   6;

runTimeModifiable yes;

adjustTimeStep  on;                                       //        Ajustement du pas de temps possible

maxCo           0.5;                                            //       Nombre de Courant maximal
maxAlphaCo      0.5;
maxDeltaT       1;                                               //     Pas-de-temps maximal

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