发布日期:2024-08-09 05:09 点击次数:77 |
欺骗OpenFOAM开拓一个求解波动方程的的求解器软件开发公司。
波动方程抒发式为:
小程序开发式中,c为波速,h为波高。
1 创建文献欺骗foamNewApp快速创建文献结构。
runfoamNewApp demo13cd demo13touch createFields.H
文献结构如下所示。
图片
2 源代船埠文献createFields.H中终了物理量的读取// 需要从字典文献中读取变量c,何况界说待求标量h Info << "读取transportProperties文献" << endl; IOdictionary transportProperties( IOobject ( "transportProperties", //文献名 runTime.constant(), //文献位置 mesh, IOobject::MUST_READ_IF_MODIFIED, IOobject::NO_WRITE )); // 界说标量C,该变量从字典文献中读取dimensionedScalar C( "C", //字典中的要害字 dimVelocity, // 速率量纲,也不错写成dimensionSet(0,1,-1,0,0) transportProperties); Info << "读取标量场h" << endl;// 界说标量场hvolScalarField h( IOobject ( "h", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh);源文献demo13.C
#include "fvCFD.H"int main(int argc, char *argv[]){ // 给个方法使用诠释 argList::addNote("本方法用于估量给定网格下的波动方程"); #include "setRootCase.H" #include "createTime.H" // 添加fvMesh对象mesh #include "createMesh.H" // 包括前范围说的createFields.H头文献 #include "createFields.H" Info << nl << "脱手时候迭代估量" << endl; while (runTime.loop()) { Info << nl << "Time = " << runTime.timeName() << endl; Info << "求解物理场h" << endl; // 放手方程 fvScalarMatrix hEqn ( // sqr函数为估量C的平常 fvm::d2dt2(h) == fvm::laplacian(sqr(C), h) ); hEqn.solve(); // 求解方程 runTime.write(); // 写出数据 Info << "Execution Time = " << runTime.elapsedClockTime() << "s" << endl; } // * * * * * * * * * * * * * * * * * * * * // Info << nl; runTime.printExecutionTime(Info); Info << "End\n" << endl; return 0;}3 测试案例
领受二维模子,几何尺寸为2x2m,网格尺寸0.02 m,软件开发公司估量域中心位置有一个0.2x0.2m的区域,将h的值确立为1,其他区域h=0。
这里挑遑急的文献进行诠释,细节可平直检察案例文献。
system/fvSolution文献中需要添加h的求解方法FoamFile{ version 2.0; format ascii; class dictionary; location "system"; object fvSolution;}// * * * * * * * * * * * * * * //solvers{ "h|hFinal" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-08; relTol 0.01; } }setFieldsDict字典文献进交运行化
FoamFile{ version 2.0; format ascii; class dictionary; object setFieldsDict;}// * * * * * * * * * * * * // defaultFieldValues( volScalarFieldValue h 0); regions( boxToCell { box (-0.1 -0.1 -1) (0.1 0.1 1); fieldValues ( volScalarFieldValue h 1 ); } );transportProperties文献中指定波速
FoamFile{ version 2.0; format ascii; class dictionary; location "constant"; object transportProperties;}// * * * * * * * * * * * * * * * * * * //// 界说波速CC [0 1 -1 0 0 0 0] 0.05;0/h文献指定待求量h的运行值与范围值
FoamFile{ version 2.0; format ascii; class volScalarField; object h;}// * * * * * * * * * * * * //dimensions [0 1 0 0 0 0 0];internalField uniform 0;boundaryField{ topBot { type empty; } north { type fixedValue; value uniform 0; } south { type fixedValue; value uniform 0; } east { type fixedValue; value uniform 0; } west { type fixedValue; value uniform 0; }}
估量后果如下图所示。
图片
(罢了)软件开发公司
本站仅提供存储劳动,扫数推行均由用户发布,如发现存害或侵权推行,请点击举报。