你的位置:软件定制开发多少钱 > 软件开发资讯 > 软件定制开发多少钱 OpenFOAM编程案例|08 自界说边界

软件定制开发多少钱 OpenFOAM编程案例|08 自界说边界

发布日期:2024-08-09 03:29    点击次数:124

本文刻画在OpenFOAM中编程达成自界说边界类型软件定制开发多少钱。

不过杉浦悠太在转职业之前,已经声名远播。去年,他以业余身份赢得宫崎县凤凰乡村俱乐部举行的邓禄普凤凰高球赛,成为历史上第七个以业余身份在日巡赛上夺冠的选手。

近10期,前区和值范围在51--111之间开出,近十期和值的平均值是86.4,上期开出奖号和值为51,本期预测和值上升,推荐和值在94左右。

OpenFOAM中不错专揽codeStream、codeFixedValue达成自界说边界上物理场散播。这些容貌操作起来简单,然则功能也较为单一。若思要达成愈加复杂的边界条目类型,不错通过编程创建新的边界类型。

OpenFOAM中通盘的边界条目界说均位于文献夹$FOAM_SRC/finiteVolume/fields/fvPatchFields中,用户不错专揽文献夹中的边界类型为模板,软件定制开发配置我方的边界条目类型。

以一个沿y所在速率成抛物线散播的边界为例,刻画在OpenFOAM中新建一个边界条目的基本历程。在充分发展的管说念流动中,轴向速率沿径向散播为:

这里为平均速率;为径向所在坐标,为管说念半径,为圆心坐标。

1 文献准备

掀开Linux末端或Windows WSL,通过底下的号令准备文献。

runfoamNewBC -f -v parabolicVelocitycd parabolicVelocity

这里专揽法子foamNewBC快速构造一个边界条目界说框架。对于foamNewBC的用法,不错使用号令foamNewBC -help进行稽察,如下图所示。

图片

上头的号令中,-f示意创建一个fixedValue型边界;-v示意创建一个矢量边界。

此时在面前旅途下创建了一个名为parabolicVelocity的文献夹,其内文献结构如下图所示。

图片

文献夹parabolicVelocity中包含了一个Make文献夹与parabolicVelocityFvPatchVectorField.C及parabolicVelocityFvPatchVectorField.H文献。这里不需要篡改Make文献夹中的任何本体。

2 修改头文献

在头文献parabolicVelocityFvPatchVectorField.H中指定成员变量及构造函数。

软件开发删除宽裕的成员变量,添加新的成员变量
// 指定最大速率值scalar maxvalue_;// 指定流动所在vector n_;// 指定y坐标所在vector y_;

如下图所示。

图片

着重掉虚函数autoMap与rmap的界说

图片

3 修改源文献

在源文献parabolicVelocityFvPatchVectorField.C中界说功能达成软件定制开发多少钱。

着重或删掉t()函数在第一个构造函数中添加参数启动化法子代码
// 默许启动化Foam::parabolicVelocityFvPatchVectorField::    parabolicVelocityFvPatchVectorField(        const fvPatch &p,        const DimensionedField<vector, volMesh> &iF)    : fixedValueFvPatchVectorField(p, iF),      maxvalue_(0),      n_(1, 0, 0),      y_(0, 1, 0){}
修改第二个构造函数
Foam::parabolicVelocityFvPatchVectorField::parabolicVelocityFvPatchVectorField(    const fvPatch& p,    const DimensionedField<vector, volMesh>& iF,    const dictionary& dict):    fixedValueFvPatchVectorField(p, iF),    maxvalue_(readScalar(dict.lookup("maxvalue"))),    n_(dict.lookup("n")),    y_(dict.lookup("y")){    Info << "Using the parabolicVelocity boundary condition" << endl;    if (mag(n_) < SMALL