prog:openfoam
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| prog:openfoam [2020/07/31 07:40] – Ajout de l'exemple en vrac root | prog:openfoam [2020/08/01 23:43] (Version actuelle) – [Modélisation] : fix typo root | ||
|---|---|---|---|
| Ligne 31: | Ligne 31: | ||
| ====Modélisation==== | ====Modélisation==== | ||
| - | icoFoam : solver for laminar, isothermal, incompressible flow | + | ===Programmes=== |
| - | pisoFoam : solver will be used for turbulent, isothermal, incompressible flow | + | |
| - | blockMesh | + | '' |
| - | A besoin d'un fichier | + | |
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | ===Configuration du maillage=== | ||
| + | |||
| + | Il faut remplir le fichier '' | ||
| + | |||
| + | < | ||
| // Entête | // Entête | ||
| FoamFile | FoamFile | ||
| { | { | ||
| - | | + | |
| - | format | + | format |
| - | class | + | class |
| - | object | + | object |
| } | } | ||
| + | |||
| // Coefficient réducteur de la position des sommets. | // Coefficient réducteur de la position des sommets. | ||
| scale 0.1; | scale 0.1; | ||
| + | |||
| // Les sommets de la forme où le fluide circulera. | // Les sommets de la forme où le fluide circulera. | ||
| vertices | vertices | ||
| ( | ( | ||
| - | | + | |
| - | (1 0 0) | + | (1 0 0) |
| - | (1 1 0) | + | (1 1 0) |
| - | (0 1 0) | + | (0 1 0) |
| - | (0 0 0.1) // Une épaisseur égale à scale indique une modélisation 2D. | + | (0 0 0.1) // Une épaisseur égale à scale indique une modélisation 2D. |
| - | (1 0 0.1) | + | (1 0 0.1) |
| - | (1 1 0.1) | + | (1 1 0.1) |
| - | (0 1 0.1) // Sommet 7 | + | (0 1 0.1) // Sommet 7 |
| ); | ); | ||
| + | |||
| // Définition du bloc à mailler | // Définition du bloc à mailler | ||
| blocks | blocks | ||
| ( | ( | ||
| - | | + | |
| - | // Nombre de discrétisation du maillage en x, y, z. | + | // Nombre de discrétisation du maillage en x, y, z. |
| - | // En mettant z à 1, on modélise en 2D. | + | // En mettant z à 1, on modélise en 2D. |
| - | // uniform expansions en x, y et z | + | // uniform expansions en x, y et z |
| - | // https:// | + | // https:// |
| - | hex (0 1 2 3 4 5 6 7) (20 20 1) simpleGrading (1 1 1) | + | hex (0 1 2 3 4 5 6 7) (20 20 1) simpleGrading (1 1 1) |
| ); | ); | ||
| - | // Si on souhaite | + | |
| + | // Si on souhaite des bords ne soient pas forcément droit. | ||
| edges | edges | ||
| ( | ( | ||
| ); | ); | ||
| + | |||
| // On définit les 8 faces. Un type par condition initiale. | // On définit les 8 faces. Un type par condition initiale. | ||
| boundary | boundary | ||
| ( | ( | ||
| - | | + | |
| - | movingWall | + | movingWall |
| - | { | + | { |
| - | type wall; | + | type wall; |
| - | faces | + | faces |
| - | ( | + | ( |
| - | (3 7 6 2) | + | (3 7 6 2) |
| - | ); | + | ); |
| - | } | + | } |
| - | // Les 3 faces qui ferment le rectangle. | + | // Les 3 faces qui ferment le rectangle. |
| - | fixedWalls | + | fixedWalls |
| - | { | + | { |
| - | type wall; | + | type wall; |
| - | faces | + | faces |
| - | ( | + | ( |
| - | (0 4 7 3) | + | (0 4 7 3) |
| - | (2 6 5 1) | + | (2 6 5 1) |
| - | (1 5 4 0) | + | (1 5 4 0) |
| - | ); | + | ); |
| - | } | + | } |
| - | // Les deux faces qui font le devant et derrière | + | // Les deux faces qui font le devant et derrière |
| - | // Mais comme on modélise en 2D, elles sont vides. | + | // Mais comme on modélise en 2D, elles sont vides. |
| - | frontAndBack | + | frontAndBack |
| - | { | + | { |
| - | type empty; | + | type empty; |
| - | faces | + | faces |
| - | ( | + | ( |
| - | (0 3 2 1) | + | (0 3 2 1) |
| - | (4 5 6 7) | + | (4 5 6 7) |
| - | ); | + | ); |
| - | } | + | } |
| ); | ); | ||
| - | // TODO : pour connecter deux blocs. | + | |
| + | // Pour connecter deux blocs. | ||
| mergePatchPairs | mergePatchPairs | ||
| ( | ( | ||
| ); | ); | ||
| - | Après création de ce fichier, on exécute le programme blockMesh. Cela va créer le dossier constant/polyMesh avec les fichiers boundary, faces, neighbour, owner et points. | + | </code> |
| + | Après création de ce fichier, on exécute le programme '' | ||
| + | ===Définition d'un fluide incompressible, | ||
| - | On définit | + | Il faut se baser sur les exemples fournis |
| - | 0/p | + | * Conditions initiales |
| + | On définit les conditions initiales dans le dossier '' | ||
| + | |||
| + | <file txt 0/p> | ||
| FoamFile | FoamFile | ||
| { | { | ||
| - | | + | |
| - | format | + | format |
| - | class | + | class |
| - | object | + | object |
| } | } | ||
| + | |||
| // L' | // L' | ||
| dimensions | dimensions | ||
| + | |||
| // Le champ de pression est uniforme. Le type étant incompressible, | // Le champ de pression est uniforme. Le type étant incompressible, | ||
| internalField | internalField | ||
| + | |||
| // On définit le type de condition initiale | // On définit le type de condition initiale | ||
| boundaryField | boundaryField | ||
| { | { | ||
| - | | + | |
| - | movingWall | + | movingWall |
| - | { | + | { |
| - | type zeroGradient; | + | type zeroGradient; |
| - | } | + | } |
| - | // Les murs fixes sont ceux qui ferment la boite. | + | // Les murs fixes sont ceux qui ferment la boite. |
| - | fixedWalls | + | fixedWalls |
| - | { | + | { |
| - | type zeroGradient; | + | type zeroGradient; |
| - | } | + | } |
| - | // Pas de condition pour les deux faces 3D puisqu' | + | // Pas de condition pour les deux faces 3D puisqu' |
| - | frontAndBack | + | frontAndBack |
| - | { | + | { |
| - | type empty; | + | type empty; |
| - | } | + | } |
| } | } | ||
| + | </ | ||
| - | Le fichier | + | <file txt 0/U> |
| FoamFile | FoamFile | ||
| { | { | ||
| - | | + | |
| - | format | + | format |
| - | class | + | class |
| - | object | + | object |
| } | } | ||
| + | |||
| // Unité : m/s | // Unité : m/s | ||
| dimensions | dimensions | ||
| + | |||
| // Champ uniforme. | // Champ uniforme. | ||
| internalField | internalField | ||
| + | |||
| // https:// | // https:// | ||
| boundaryField | boundaryField | ||
| { | { | ||
| - | | + | |
| - | movingWall | + | movingWall |
| - | { | + | { |
| - | type fixedValue; | + | type fixedValue; |
| - | // 1 m/s | + | // 1 m/s |
| - | value | + | value |
| - | } | + | } |
| - | // Les murs n' | + | // Les murs n' |
| - | fixedWalls | + | fixedWalls |
| - | { | + | { |
| - | type noSlip; | + | type noSlip; |
| - | } | + | } |
| - | // le devant et derrière n' | + | // le devant et derrière n' |
| - | frontAndBack | + | frontAndBack |
| - | { | + | { |
| - | type empty; | + | type empty; |
| - | } | + | } |
| } | } | ||
| + | </ | ||
| - | La propriété physique est dans constant/ | + | La propriété physique est dans le fichier '' |
| + | |||
| + | <file txt constant/ | ||
| FoamFile | FoamFile | ||
| { | { | ||
| - | | + | |
| - | format | + | format |
| - | class | + | class |
| - | location | + | location |
| - | object | + | object |
| } | } | ||
| - | // nu est la kinematic viscosity. | + | |
| + | // nu est la viscosité cinématique. | ||
| // Le nombre de Reynolds vaut d*abs(U)/nu d est la longueur (0.1) et U la viscosité du fluide (1 ici). | // Le nombre de Reynolds vaut d*abs(U)/nu d est la longueur (0.1) et U la viscosité du fluide (1 ici). | ||
| nu 0.01; | nu 0.01; | ||
| + | </ | ||
| + | Il y a le contrôle dans le dossier '' | ||
| - | + | <file txt system/ | |
| - | Et il y a le contrôle dans le dossier système : | + | |
| - | fichier | + | |
| FoamFile | FoamFile | ||
| { | { | ||
| - | | + | |
| - | format | + | format |
| - | class | + | class |
| - | location | + | location |
| - | object | + | object |
| } | } | ||
| application | application | ||
| Ligne 230: | Ligne 259: | ||
| timePrecision | timePrecision | ||
| runTimeModifiable true; | runTimeModifiable true; | ||
| + | </ | ||
| - | + | <file txt system/ | |
| - | + | ||
| - | + | ||
| - | fichier | + | |
| // On laisse les valeurs par défaut. | // On laisse les valeurs par défaut. | ||
| FoamFile | FoamFile | ||
| { | { | ||
| - | | + | |
| - | format | + | format |
| - | class | + | class |
| - | location | + | location |
| - | object | + | object |
| } | } | ||
| ddtSchemes | ddtSchemes | ||
| { | { | ||
| - | | + | |
| } | } | ||
| gradSchemes | gradSchemes | ||
| { | { | ||
| - | | + | |
| - | grad(p) | + | grad(p) |
| } | } | ||
| divSchemes | divSchemes | ||
| { | { | ||
| - | | + | |
| - | div(phi, | + | div(phi, |
| } | } | ||
| laplacianSchemes | laplacianSchemes | ||
| { | { | ||
| - | | + | |
| } | } | ||
| interpolationSchemes | interpolationSchemes | ||
| { | { | ||
| - | | + | |
| } | } | ||
| snGradSchemes | snGradSchemes | ||
| { | { | ||
| - | | + | |
| } | } | ||
| + | </ | ||
| - | + | <file txt system/ | |
| - | fichier | + | |
| - | + | ||
| FoamFile | FoamFile | ||
| { | { | ||
| - | | + | |
| - | format | + | format |
| - | class | + | class |
| - | location | + | location |
| - | object | + | object |
| } | } | ||
| solvers | solvers | ||
| { | { | ||
| - | | + | |
| - | { | + | { |
| - | solver | + | solver |
| - | preconditioner | + | preconditioner |
| - | tolerance | + | tolerance |
| - | relTol | + | relTol |
| - | } | + | } |
| - | | + | |
| - | { | + | { |
| - | $p; | + | $p; |
| - | relTol | + | relTol |
| - | } | + | } |
| - | | + | |
| - | { | + | { |
| - | solver | + | solver |
| - | smoother | + | smoother |
| - | tolerance | + | tolerance |
| - | relTol | + | relTol |
| - | } | + | } |
| } | } | ||
| PISO | PISO | ||
| { | { | ||
| - | | + | |
| - | nNonOrthogonalCorrectors 0; | + | nNonOrthogonalCorrectors 0; |
| - | // Le fluide étant incompressible, | + | // Le fluide étant incompressible, |
| - | pRefCell | + | pRefCell |
| - | pRefValue | + | pRefValue |
| } | } | ||
| - | + | </ | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | PDRblockMeshDict | + | |
prog/openfoam.1596174003.txt.gz · Dernière modification : de root
