你的位置:软件定制开发多少钱 > 软件开发价格 > 软件开发公司 OpenFOAM编程案例|10 标量方程求解

软件开发公司 OpenFOAM编程案例|10 标量方程求解

发布日期:2024-08-09 03:53    点击次数:173
软件开发公司

本案例演示运用OpenFOAM创建一个标量输运方程求解器。

本案例要求解的方程为:

莫得瞬态项和源项。

福彩快乐8第2024175期(上周三)奖号回顾:07 09 12 15 17 19 32 33 40 47 48 49 55 58 62 65 66 69 70 73,其中大小比为11:9,包含4个重号17、32、48、69,包含连码32 33、47 48 49、65 66、69 70。

1 文献框架

运用foamNewApp快速创建文献框架。

runfoamNewApp demo10 && cd demo10

践诺阻隔后的文献框架如下图所示。

小程序开发

图片

本案例比拟浅薄,只需要一个源文献demo10.C即可。

2 源代码

源文献demo10.C的实质如下。

#include "fvCFD.H" int main(int argc, char *argv[]){#include "setRootCase.H"#include "createTime.H"#include "createMesh.H"     Info << "读取物理场beta" << endl;    volScalarField beta    (        IOobject        (            "beta",            runTime.timeName(),            mesh,            IOobject::MUST_READ,            IOobject::AUTO_WRITE        ),        mesh    );     Info << "读取物理场U" << endl;    volVectorField U    (        IOobject        (            "U",            runTime.timeName(),            mesh,            IOobject::MUST_READ,            IOobject::AUTO_WRITE        ),        mesh    );     // 读取字典文献    Info << "读取字典文献transportProperties" << endl;     IOdictionary transportProperties    (        IOobject        (            "transportProperties",            runTime.constant(), //- 此文献在constant文献夹底下            mesh,            IOobject::MUST_READ_IF_MODIFIED,            IOobject::NO_WRITE        )    );     Info << "从字典文献中读取扩散统共gamma" << endl;    dimensionedScalar gamma("gamma", dimViscosity, transportProperties);     Info << "读取/野心面通量场phi" << endl;    surfaceScalarField phi    (        IOobject        (            "phi",            runTime.timeName(),            mesh,            IOobject::READ_IF_PRESENT, //若phi文献存在,则读取,不然选择速率与面积相乘野心获得            IOobject::AUTO_WRITE       // 保存该变量        ),        fvc::interpolate(U) & mesh.Sf() //速率向量与面积向量点积    );     //求解鸿沟方程    solve(fvm::div(phi, beta) - fvm::laplacian(gamma, beta));     // 创建一个标量场用于存储效果,软件定制开发多少钱也不错径直用beta    volScalarField result    (        IOobject        (            "result",            runTime.timeName(),            mesh,            IOobject::NO_READ,            IOobject::AUTO_WRITE        ),        beta     //将beta的值拷贝给result    );     result.write();     Info << nl << "野心阻隔" << endl;    runTime.printExecutionTime(Info);    return 0;}

编译并测试运行,如下图所示。

图片

3 测试野心

案例文献需要字据求解器的需求来准备。上头准备的求解器中需要求解物理量beta。

constant/transportProperties文献中需要指定扩散统共gamma
FoamFile{    version     2.0;    format      ascii;    class       dictionary;    location    "constant";    object      transportProperties;}// * * * * * * * * * * * * * * * * * //gamma            0.01;

由于在读取字典文献时指定了量纲,因此在字典文献中无需叠加指定量纲。

system/fvSolution文献中需要指定beta的求解顺序
FoamFile{    version     2.0;    format      ascii;    class       dictionary;    location    "system";    object      fvSolution;}// * * * * * * * * * * * * * * * * * //solvers{    beta    {        solver        GAMG;        smoother    DILUGaussSeidel;        tolerance    1e-6;        relTol        0;    }}
system/fvSchemes文献需要指定鸿沟方程中对流项、梯度项以及laplacian项的冲破时势
FoamFile{    version     2.0;    format      ascii;    class       dictionary;    location    "system";    object      fvSchemes;}// * * * * * * * * * * * * * * // ddtSchemes{    default none;}// 梯度项gradSchemes{    default none;    grad(beta) Gauss linear;}//散度项divSchemes{    default none;    div(phi,beta) bounded Gauss upwind;}// laplacian项laplacianSchemes{    default none;    laplacian(gamma,beta) Gauss linear corrected;}// 通量插值interpolationSchemes{    default none;    interpolate(U) linear;} snGradSchemes{    default none;} 
system/controlDict按通例建设
FoamFile{    version     2.0;    format      ascii;    class       dictionary;    location    "system";    object      controlDict;}// * * * * * * * * * * * * * * * * //startFrom       startTime;startTime       0;stopAt          endTime;endTime         1;deltaT          1;writeControl    timeStep;writeInterval   1;purgeWrite      0;writeFormat     ascii;writePrecision  6;writeCompression off;timeFormat      general;timePrecision   6;runTimeModifiable true;
0/beta文献指定物理场beta的鸿沟条目与启动条目
FoamFile{    version     2.0;    format      ascii;    class       volScalarField;    object      beta;}// 看重beta是标量dimensions      [0 0 0 0 0 0 0];internalField   uniform 0;boundaryField{    left    {        type            fixedValue;        value           uniform 1;    }     lower    {        type            fixedValue;        value           uniform 0;    }     "(upper|right)"    {        type zeroGradient;    }     frontAndBack    {        type            empty;    }}
0/U文献
FoamFile{    version     2.0;    format      ascii;    class       volVectorField;    object      U;}// * * * * * * * * * * * * * // dimensions      [0 1 -1 0 0 0 0]; internalField   uniform (1 1 0); boundaryField{    "(lower|upper|left|right)"    {        type            fixedValue;        value           $internalField;    }     frontAndBack    {        type            empty;    }}

在案例根旅途下践诺底下的大喊进行野心。

blockMeshdemo10

很快就野心完结。

图片

野心效果如下图所示。

图片

(阻隔)

本站仅提供存储作事,统共实质均由用户发布,如发现存害或侵权实质,请点击举报。