用多重网格算法求解线性方程组Ax=b,算法求解过程中按理只需要给定系数粗细网格的系数矩阵就可以了,但在看算法理论时,都涉及到粗细网格的位置关系的判定来确定插值矩阵、限定矩阵。这个就需要在算法上导入网格具体的物理位置了吧。这样好像不对(按理是只要给定系数矩阵A,b,就能求解Ax=b)对于这点一直想不明白
一颗鸭蛋
帖子
-
-
@rafe 感谢这么快回复我了 ,第一次用Mac玩openfoam,还不习惯,但我的也是M1,我是直接拷贝一个solver过来,改了一下名字进行测试
-
@rafe 请问进入openfoam环境后,算例文件等都自己重新创建嘛(或者从它自动创建的磁盘中拷贝过来,可以运行算例,就是不够优雅,哈哈哈)?,因为它的磁盘是只读权限。我自己文件夹下自定义的solver进行编译时出现如下错误,不知道是缺了什么?:
-
我使用docker运行的openfoam9,能正常跑案例看结果,就是wmake求解器也能够显示正常的代码语法错误。但完全OK的求解器编译出现错误: can not open file xxx(求解器名字):premission denied。怀疑需要进入root模式下编译求解器,直接在编译目录下怎么也进不了root(显示密码验证失败)。另开一终端就直接能进root模式。有没有遇到类似问题的朋友啊,好几天没解决了,,,,
-
@冠竹 在 .h文件中参照nu的形式,把你新加的DT声明一下就好。建议去了解一下C++变量的声明和定义,,
-
@zhouxu 我之前算磁流体的时候用Omega模型比较好,给你参考参考。
-
@李东岳谢谢东岳老师
-
在湍流模型里的变量可不可以定义成体矢量。
比如我想在 Omega模型里加一个磁场的变量
我定义了B:
从文件中读取方式:
磁场B在模型里用到的公式:
但是报错了
我想请问这是为什么
之前磁场是均匀磁场,定义成:
这个类型没有问题。但是我现在需要计算非均匀磁场,这个类不能使用,我想请问各位有什么好办法解决吗,湍流模型里面可以定义体矢量吗? -
就是这几项在方程好像没有它们 它们的作用是什么? -
![%%91CVIO[U9]]YSD5ZXF)Y.png
这几项分别代表什么? -
谢谢东岳哥
-
最近在学习OpenFOAM库中kOmega湍流模型时比较困惑,尤其是对于kkLOmega模型。请问在kkLOmega模型中,为什么定义了两个k?其中kt和kl分别指的是什么?大家有没有关于这方面的资料。
-
刚刚尝试了下将double型变量赋值给一个新的体标量场,然后比较两个体标量场的大小就可以通过编译了
b =mesn.C().component(vector::Y)/a;//b被声明为一个体标量场记录距离壁面的无量纲距离,a为特征长度 Prt = 1.25;//Prt也是被声明为一个体标量场,这里先把Prt当做了一个中间变量,Prt为我研究中的湍流普朗特数,其对流体温度梯度影响很大,应当是一个函数而非常数。 if( b <= Prt ) { Prt = 0.45; } else { Prt=4.75; }
今晚先算用编译好的求解器算一遍对不对,结果好的话,明后天再放上来。
-
@李东岳 我明年上班去了,哈哈哈哈哈
-
在求解器其中需要使用<=、>=、<、>等比较操作符来对一个double型变量和一个体标量场类型的数据进行比较大小。本想着用强制类型转换来操作,但是行不通。具体代码如下:
b=mesh.C().coponent(vector::Y)/0.01;//b被定义为了一个体标量场,来表示距离壁面的无量纲距离; if(b<=1.25) { Prt=0.45; } else { Prt=4.75 }
如上,我查看其他代码发现scale 变量能够用到比较操作符中, 具体有了解的同学解答嘛,,,
-
我的上述计算中没有用到估算的方法,那论文里的是不是因为边界层网格采用的估算的行为,所以才会导致friction Reynolds numbe因人而异,出现微小的差别呢!
-
@cccrrryyy
是的,正如你所说那样,应该是事先计算好再画网格
以上是我推导的公式,避开了之前一直困扰我的关于速度梯度的问题。从推导看来friction Reynolds number,可以直接由yplus, 特征长度以及第一节点离壁面的距离决定。但是这三者间的关系在确定了之后 friction Reynolds number也就不会改变了,但往往论文中却能够在相同参数下研究不同friction Reynolds number。如下,从论文给出的表格看,应该是改变了yplus, 从而改变了其他变量,但从我在pointwise网站上的ylus计算网页的测试结果看,虽然yplus可以自己定义,但yplus与第一节点距离壁面的距离的比值并不会改变,从上面公式的推导看,也就不会改变friction Reynolds number。这与论文给出的结论是矛盾的。 -
@cccrrryyy
如上,网格数和网格分辨率是不一样的,上图Tabel中的参数Ri是格拉晓夫数与雷诺数的平方的比值,与摩擦雷诺数无关。网格分辨率就是如下标记的颜色的内容,但我不是很理解。就像你说的friction Reynolds number,是friction velocity来表征的,而grid resolution与friction velocity一样都需要通过确定第一层网格的速度梯度来确定。这个估算方法无非就是壁面网格的多少,但是如何通过所画网格来确定friction Reynolds number是我一直无法理解的。
-
以上是一些英文论文中的表示,英文为:grid resolution。同样的Re,但是不同的网格分辨率对应不同的湍流雷诺数。
根据湍流雷诺数的定义,其中的摩擦速度的定义公式中存在壁面处的速度梯度。这个速度梯度在计算前是未知的呀,他们又是如何估算得到并画网格,得到网格分辨率,网格分辨率好像并不是网格的大小,看上面的论文写的好像是最大无量纲网格间距。不知理解的对不对。 -
在湍流文章里经常看到网格分辨率,但我并不知道如何计算这个网格分辨率,它常和湍流雷诺数一起,是不是同一流体只要网格分辨率确定了,湍流雷诺数也确定了
-
我当时是由于湍流模型虽然编译通过但其实还是有问题的,具体就是H文件申明的虚函数divDevRhoReff,在C文件中没有具体的实现。你可以根据H文档最后几个虚函数(virtual函数)再好好对照一下看看C文档中是否都有对应的具体实现。其次我是2.3.1版本。
-
在一般的强制对流中,利用已知的公式很容易就计算得到K、Omega等初始值。但似乎在封闭方腔中的壁面的K、Omega等值却无从下手,很容易就bounding,请问各位有什么合适的公式推荐计算这两个值嘛?
-
@cccrrryyy 我把模型改成了KomegaSST了 然后直接可以计算了,还挺快的。所以我现在就觉得KOmega模型对入口条件太敏感了,其次可能是我求解器里添加了浮力项后更不稳定了。我再按您的推荐测试一下Komega。
-
@xpqiu 老师您好,我在求解器中添加瞬态温度方程,浮升力加到动量方程中,使用Komega模型算矩形管中的磁流体传热,也是一直bounding k,bounding omega,K,omega的初始条件怎么设都发散,是K,Omega初始条件太敏感了嘛,不断在试错当中,感觉拼运气,请问有什么好的建议嘛
-
@dzw05 耦合计算和单域计算的流体域是使用上面提到的模型求解,求解器则是不同的,一个是壁面导电耦合求解器,一个壁面是绝缘求解器。我的耦合也只是壁面和流体的电势耦合。
-
@马乔 您好,我参照你的方法将transportProperties代码写进去,但是很奇怪的是,报错显示,request for dictionary transportPropertie ,而可获得的字典里是transportProperties,两者总是存在单复数的差别(就像你贴的代码里一样)。本来想着直接用令锑度边界条件绕开这个错误,但是最近发现还是得用alphat壁面函数。真是很奇怪呀。
-
使用alphatJayatillWallFunction壁面函数的alphat结果。上面贴错了,不好意思。
-
我是用湍流模型Komega求解流固耦合方腔自然对流(高宽比7.5),使用流固耦合求解器进行求解。温度方程中的alphat=turbulence.nut()/Prt. alphat使用zeroGradient或者Calculated边界条件,能够正常计算出来,但温度迭代极快完成,从高温壁面直接热传导到冷壁面。所以个人觉得应该使用标题所示的壁面函数,况且我在单域算例能够使用alphatJayatilleWallFunction壁面函数,结果也明显与零梯度边界条件不同,呈现壁面温度梯度高,中间温度均匀。现在我想在流固耦合中用alphatJayatilleWallFunction,就报如下错误。
Region: fluid Courant Number mean: 0 max: 0 Region: fluid Courant Number mean: 0 max: 0 Time = 0.01 Solving for fluid region fluid DILUPBiCG: Solving for Ux, Initial residual = 0, Final residual = 0, No Iterations 0 DILUPBiCG: Solving for Uy, Initial residual = 0, Final residual = 0, No Iterations 0 DILUPBiCG: Solving for Uz, Initial residual = 0, Final residual = 0, No Iterations 0 GAMGPCG: Solving for p, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 0, global = 0, cumulative = 1(0) DILUPBiCG: Solving for omega, Initial residual = 0.3364115726, Final residual = 9.041867288e-08, No Iterations 81 DILUPBiCG: Solving for k, Initial residual = 1, Final residual = 9.098095726e-08, No Iterations 158 bounding k, min: -36.19837748 max: -14.87872514 average: -18.05165843 [6] [6] [1] --> FOAM FATAL ERROR: [1] request for dictionary transportProperties from objectRegistry fluid failed available objects of type dictionary are 5 ( RASProperties// fvSchemes fvSolution data turbulenceModel ) [1] [1] [1] From function objectRegistry::lookupObject<Type> (const word&) const [1] in file /home/kdd/OpenFOAM/OpenFOAM-2.3.1/src/OpenFOAM/lnInclude/objectRegistryTemplates.C at line 198. [1] FOAM parallel run aborting
单域算例测试结果如下:
使用零梯度边界条件使用alphatJayatilleWallFunction壁面函数
最后有两个疑问。1:湍流模型计算方腔自然对流的alphat应该使用哪个边界条件,哪个结果更合理。
2:如果温度方程我不考虑湍流普朗特数Prt对热扩散系数的影响,直接使用固定值,然后使用零梯度计算(绕开这个alphatJayatilleWallFunction)。温度方程的浮升力影响动量方程,而湍流模型只用来求解动量方程,对温度方程不影响。是否仍然算作湍流自然对流。因为我目前看到的利用湍流模型来求解自然对流的文章中,都还极少提到Prt。是否意味着他们使用湍流模型计算自然对流也是不考虑Prt.可能问题较多,在这先谢谢各位。祝各位在身体健康,一夜暴富!
最后附上我的算例与求解器(链接: https://pan.baidu.com/s/1m8LzT6iJU84UEq2qOp4iuw 提取码: pj6w) -
最近一直在改封闭方腔自然对流的初始边界条件,但是在求解K或者Omega时,总是出现bounding K,和bounding omega.使用了很多不同的公式计算K和Omega的初始值,但都不得行。有同学能给个参考嘛?
-
@马乔 我这个报错已经解决了,是流体区零文件下的alphat文件的壁面边界条件不能使用alphatJayatilleWallFunction函数。但是具体具体为什么不能使用我并不知道其中缘由。也许你可以调试一下边界条件。
该壁面函数我在单域方腔绝缘算例中是能够使用的,但是在流固耦合求解器计算的流固耦合算例中却会报类似上述错误。希望了解该函数的朋友能够讲解一番,不胜感激。 -
@cccrrryyy 的确添加了新的输运模块,在流体区求解温度方程(solveFluid_MHD.H),同时也会在固体区求解温度方程(流固耦合),只是目前还没有计算到固体区。调过一些可能有问题的代码,但依然存在这个问题。给我的直觉是湍流热扩散系数的计算有问题,但检查过后没发现问题(或者发现不了)
-
@shampoo 我的KOmega模型算封闭方腔湍流传热算例还处于发散状态 ,不过从你的分享中学习了很多,就像你说的OpenFoam 中的系数被简化,然后我也试试Fluent中的边界条件,之前一直没想到。看了前辈没的分析,感觉很受启发~
-
aaa.zip
这是我的完整算例(求解器的温度方程和创建流体场的代码也在其中),目前有关湍流模型需要用到的边界条件(nut、k、Omega、alphat、Pr)我还不能确定,所以应该会发散,只是这个报错让我不解。 -
我毕业课题就是用Omega算传热问题,边界条件的确很敏感!
-
使用了湍流模型的流固耦合求解器计算一个流固耦合算例(封闭方腔传热问题)时出现了如下报错:
Region: fluid Courant Number mean: 0 max: 0 Region: fluid Courant Number mean: 0 max: 0 Time = 0.01 Solving for fluid region fluid DILUPBiCG: Solving for Ux, Initial residual = 0, Final residual = 0, No Iterations 0 DILUPBiCG: Solving for Uy, Initial residual = 0, Final residual = 0, No Iterations 0 DILUPBiCG: Solving for Uz, Initial residual = 0, Final residual = 0, No Iterations 0 GAMGPCG: Solving for p, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 0, global = 0, cumulative = 1(0) DILUPBiCG: Solving for omega, Initial residual = 0.3364115726, Final residual = 9.041867288e-08, No Iterations 81 DILUPBiCG: Solving for k, Initial residual = 1, Final residual = 9.098095726e-08, No Iterations 158 bounding k, min: -36.19837748 max: -14.87872514 average: -18.05165843 [6] [6] [1] --> FOAM FATAL ERROR: [1] request for dictionary transportProperties from objectRegistry fluid failed available objects of type dictionary are 5 ( RASProperties// fvSchemes fvSolution data turbulenceModel ) [1] [1] [1] From function objectRegistry::lookupObject<Type>(const word&) const [1] in file /home/kdd/OpenFOAM/OpenFOAM-2.3.1/src/OpenFOAM/lnInclude/objectRegistryTemplates.C at line 198. [1] FOAM parallel run aborting
算例接下去是求解温度方程,无法获得输运字典的参数进而不能往下计算。
查看了一些相关的帖子,一般都是某个变量没有注册对象导致错误。但我这个报错直接是输运字典错误,并且对于提示的五个可获得的字典也看不出有任何关联。
在求解器的流体区创建场的相关代码也写了:如下forAll(fluidRegions, i) { Info<< "*** Reading fluid mesh thermophysical properties for region " << fluidRegions[i].name() << nl << endl; IOdictionary transportProperties ( IOobject ( "transportProperties", runTime.constant(), fluidRegions[i], IOobject::MUST_READ, IOobject::NO_WRITE ) ); Info<< " Adding to TFluid\n" << endl; TFluid.set ( i, new volScalarField ( IOobject ( "T", runTime.timeName(), fluidRegions[i], IOobject::MUST_READ, IOobject::AUTO_WRITE ), fluidRegions[i] ) ); laminarTransportFluid.set//jiade ( i, new singlePhaseTransportModel(UFluid[i], phiFluid[i]) ); Info<< " Adding to turbulence\n" << endl;//jiade turbulenceFluid.set ( i, incompressible::turbulenceModel::New ( UFluid[i], phiFluid[i], laminarTransportFluid[i] ).ptr() ); Info<< " Adding to alphatFluid\n" << endl;//jiade alphatFluid.set//jiade ( i, new volScalarField ( IOobject ( "alphat", runTime.timeName(), fluidRegions[i], IOobject::MUST_READ, IOobject::AUTO_WRITE ), fluidRegions[i] ) );
这个报错第一次遇到,有没有小伙伴和大佬能指点指点,感激不尽。
-
最近在家呆的闲,又没有实验室的资源,,想看看磁流体的流固耦合的代码和书最好中文的,,,求推荐啊~
-
函数执行的顺序就是主程序C文件中的代码顺序决定的,在执行函数时需要用到的相关参数和函数本身都需要在是执行前声明(一般在H文件中,也可以在C文件中),但是H文件中声明顺序并没有多大关系,除非你声明的变量或者函数本身就需要用到其他函数和变量,那在之前也要声明好放在前面(比如使用湍流模型时,声明的湍流热扩散系数alphat,就需要将指向湍流模型的代码放在声明alphat的前面,参考传热求解器里的H文件)。这是我的理解~
-
这里主要是参考了OpenFoam中的传热求解器buoyantBoussinesqPimpleFoam
参考代码:
alphat = turbulence->nut()/Prt;//计算湍流热扩散系数alphat,需要在H文件中声明该场,nut通过湍流模型计算得到。 alphat.correctBoundaryConditions(); volScalarField alphaEff("alphaEff", turbulence->nu()/Pr + alphat);//建立体标量场alphaEff(综合热扩散系数),直接在主程序中声明了
然后将上述alphaEff放到温度方程中就行了。同是在fvSchemes中定义其格式
fvScalarMatrix TEqn (fvm::ddt(T +fvm::div(phi,T) -fvm::laplacian(alphaEff,T)//laplacian(alphaEff,T)在fvSchemes中定义其格式 );
需要注意的是kOmega模型代码中有alpha,这个系数,这并不是热扩散系数,而是Omega方程中的一个系数(与传热无关),只不过OF在写代码时写成这样了,可以看1988年wilcox发表的论文“Reassessment of the scale-determining equation for advance turbulence models”。
之前因为刚开始设置时将零文件中Omega的边界条件设置成了0(零),所以才会报如下除零错误(附带一浮点数例外和模型问题(因为 alphat = turbulence->nut))
[16] #1 Foam::sigFpe::sigHandler(int) at ??:?//这个错误是除零错误 [37] #1 Foam::sigFpe::sigHandler(int)[20] #0 Foam::error::printStack(Foam::Ostream&) at ??:? [2] #1 Foam::sigFpe::sigHandler(int) at ??:? [47] #4 void Foam::divide<Foam::fvPatchField, Foam::volMesh> (Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/lib/x86_64-linux-gnu/libc.so.6" [23] #3 Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) at ??:? [kdd:28991] *** Process received signal *** [kdd:28991] Signal: Floating point exception (8)//浮点数例外错误 [kdd:28991] Signal code: (-6) [kdd:28991] Failing at address: 0x3e80000713f -------------------------------------------------------------------------- mpirun noticed that process rank 30 with PID 31201 on node kdd exited on signal 8 (Floating point exception).
在求解器中的速度方程代码引入湍流模型的同时,还需要更新速度边界条件的后一行添加湍流修正,如下:
U.correctBoundaryConditions(); turbulence->correct();
否则不会求解k、Omega这两个变量(在显示屏中没有这两个),同时算例的fvSolutions中设置k、Omega的矩阵求解器;
还有一个与一般不同的是,因为在H文件中声明alphat时,因为用到了湍流模型,所以需要将H文件底部指向湍流模型的指针代码放到声明alphat场的前面,这在OF中也有。希望可以帮到其他小伙伴。 -
问题解决了,是因为我将Omega设置为零了,所以在计算的时,湍流模型在算湍流黏性系数是nut=k/Omega 出现除零错误。
-
是啊,老师。希望有人遇到过,给我解解惑,哈哈~
-
各位老师好,我是在DNS求解器的基础上引入湍流kOMega模型,并加入温度方程引入湍流热扩散系数(参照OF2.3中的传热求解器buoyanBoussinesqPimpleFoam 中的热扩散系数代码),求解器编译通过。
参考代码:
alphat = turbulence->nut()/Prt; alphat.correctBoundaryConditions(); volScalarField alphaEff("alphaEff", turbulence->nu()/Pr + alphat);
报错如下:
Reading field T Reading/calculating face flux field phi Reading field phi_0 Creating turbulence model Selecting incompressible transport model Newtonian Selecting turbulence model type RASModel Selecting RAS turbulence model kOmegaMHD//这里以上都能正确读取各个声明的场和模型,接下去本应该读取热扩散系数的alpha场的,但报以下一些错误。 bounding omega, min: 0 max: 0 average: 0 [39] [1] #0 Foam::error::printStack(Foam::Ostream&)[2] [11] [44] #[25] #0 Foam::error::printStack(Foam::Ostream&)#0 Foam::error::printStack(Foam::Ostream&)[26] #0 Foam::error::printStack(Foam::Ostream&)[40] #0 [16] #1 Foam::sigFpe::sigHandler(int) at ??:?//这个错误是除零错误 [37] #1 Foam::sigFpe::sigHandler(int)[20] #0 Foam::error::printStack(Foam::Ostream&) at ??:? [2] #1 Foam::sigFpe::sigHandler(int) at ??:? [47] #4 void Foam::divide<Foam::fvPatchField, Foam::volMesh>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/lib/x86_64-linux-gnu/libc.so.6" [23] #3 Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) at ??:? [kdd:28991] *** Process received signal *** [kdd:28991] Signal: Floating point exception (8)//浮点数例外错误 [kdd:28991] Signal code: (-6) [kdd:28991] Failing at address: 0x3e80000713f -------------------------------------------------------------------------- mpirun noticed that process rank 30 with PID 31201 on node kdd exited on signal 8 (Floating point exception). -------------------------------------------------------------------------- 2 total processes killed (some possibly by mpirun during cleanup)
自带的模型中的Omega方程中的热扩散系数alpha如何理解?我本来将代码中的综合热扩散系数alphaEff去掉,并把alpht改成alpha来表示湍流热扩散系数来与模型保持一致,但依然报如上错误。
OF自带的模型中的Omega方程
tmp<fvScalarMatrix> omegaEqn ( fvm::ddt(omega_) + fvm::div(phi_, omega_) - fvm::laplacian(DomegaEff(), omega_) == alpha_*G*omega_/k_ - fvm::Sp(beta_*omega_, omega_) );
-
请问题主这个问题解决了吗?
-
浮点数溢出(核心已转储)应该是你网格有问题,刚开始做的时候我也经常遇到,到,可以先查查网格,长宽比不要太大。warning 的话一般没有问题的,只要不出现错误。
-
@Samuel-Tu 嗯嗯
-
@东岳 谢谢东岳老师😄😄😄
-
在OpenFOAM2.3中,将自定义2.1的湍流模型编译到OpenFOAM2.3 src/turbulenceModels/RAS 源库中,然后编译求解器时,会出现如下错误:
/home/kdd/OpenFOAM/OpenFOAM-2.3.1/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so:对'Foam::incompressible::RASModels::kOmegaMHD::divDevRhoReff(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>&) const'未定义的引用 collect2: error: ld returned 1 exit status make: *** [/home/kdd/OpenFOAM/kdd-2.3.1/platforms/linux64GccDPOpt/bin/MHDRASpisoFoam] Error 1 /home/kdd/OpenFOAM/OpenFOAM-2.3.1/wmake/Makefile:149: recipe for target '/home/kdd/OpenFOAM/kdd-2.3.1/platforms/linux64GccDPOpt/bin/MHDRASpisoFoam' failed
报错原因显示无法从 libincompressibleRASModels.so库中定位到divDevRhoReff这个可压缩函数。根据这个错误找到我们自己先前在源库中自己编译进去的湍流模型kOmegaMHD发现,在H文件已经添加的divDevRhoReff 这个函数,如下:
//- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff ( const volScalarField& rho, volVectorField& U ) const;
但是在湍流模型的kOmegaMHD的C文件中却没有关于这个函数的具体实现。就是这个原因导致虽然能够将湍流模型编译成功,但是在编译可执行文件/程序(求解器)时(我们在Options中链接了-lincompressibleRASModels动态库)报错。因为C/C++编译为obj文件的时候只要有函数的原型(H文件中的函数)即可,不需要函数的具体实现,但在链接为可执行文件的时候就必须要具体的实现(.C中与.H中函数对应的函数的具体形式)。
所以在C文件中将divDevRhoReff函数的具体实现写进去,如下:tmp<fvVectorMatrix> kOmegaMHD:;divDevRhoReff ( const volScalarField& rho, volVectorField& U ) const { volScalarField muEff("muEff",rho*nuEff()); return ( - fvm::laplacian(muEff,U) -fvc::div(muEff*dev(T(fvc::grad(U)))) ); }
重新编译湍流模型,然后在编译求解器,就能成功了。还需要注意的是,当我将湍流模型只编译到自己的模型库中,编译求解器时并没有报错(因为没有连接到这个模型),只会在算例调用这个模型时显示如上错误(同时还会附带dlopen函数无法打开(和无法加载)该湍流模型。
-
是我C文件里少了divDEVRhoReff 这个函数的具体实现,悲伤自己不是学计算机的.......
-
这个问题已经解决了,整理一下发个帖出来,哈哈!
-
将湍流模型和求解器成功编译到自己的库中,然后在算例system/controlDict中加入如下命令进行调用,如下:
libs ("libkOmegaMHD.so");
但是运行算例会报如下错误,显示未定义的符号,以及后面divDevRhoReff这个可压缩函数,和GeometricField、fvPatchField、volMesh、Vector这几个,并无法加载调用湍流模型,关键是湍流模型已经已经编译通过了,,,
Create time--> FOAM Warning : From function dlOpen(const fileName&, const bool) in file POSIX.C at line 1179 dlopen error : /home/kdd/OpenFOAM/kdd-2.3.1/platforms/linux64GccDPOpt/lib/libkOmegaMHD.so: undefined symbol: _ZNK4Foam14incompressible9RASModels9kOmegaMHD13divDevRhoReffERKNS_14GeometricFieldIdNS_12fvPatchFieldENS_7volMeshEEERNS3_INS_6VectorIdEES4_S5_EE --> FOAM Warning : From function dlLibraryTable::open(const fileName&, const bool) in file db/dynamicLibrary/dlLibraryTable/dlLibraryTable.C at line 99 could not load "libkOmegaMHD.so" Create mesh for time = 0
-
求解器编译成功了,,,
将Options中动态链接库中的:-lincompressibleRASModel 去掉就编译通过了。
多重网格算法在代码实践问题
有人在mac上装of么?
有人在mac上装of么?
M1 Mac安装的openfoam9,编译求解器出现premission denied问题。
icoFoam植入温度方程求助
管道流RANS计算湍流模型的选择
关于湍流模型里变量类定义的问题
关于湍流模型里变量类定义的问题
关于OpenFOAM湍流模型的代码问题
关于OpenFOAM湍流模型的代码问题
请问在kkLOmega模型中,为什么定义了两个k?其中kt和kl分别指的是什么?
请问在kkLOmega模型中,为什么定义了两个k?其中kt和kl分别指的是什么?
OpenFOAM如何进行数据转换以便进行比大小
OpenFOAM如何进行数据转换以便进行比大小
OpenFOAM如何进行数据转换以便进行比大小
如何计算网格分辨率?
如何计算网格分辨率?
如何计算网格分辨率?
如何计算网格分辨率?
如何计算网格分辨率?
关于调用 库函数的报错
方腔中自然对流中的K、Omega等边界条件的初始值如何确定?
bounding k,bounding epsilon,均超限,连续性方程不收敛
bounding k,bounding epsilon,均超限,连续性方程不收敛
流固耦合alphat使用alphatJayatilleWallFunction报错跪求大佬指点
从objectRegistry中无法获得输运字典问题
流固耦合alphat使用alphatJayatilleWallFunction报错跪求大佬指点
流固耦合alphat使用alphatJayatilleWallFunction报错跪求大佬指点
方腔自然对流使用Komega模型时,初始边界条件应该如何确定?
从objectRegistry中无法获得输运字典问题
从objectRegistry中无法获得输运字典问题
OpenFOAM里kOmega模型的问题
从objectRegistry中无法获得输运字典问题
OpenFOAM里kOmega模型的问题
从objectRegistry中无法获得输运字典问题
求推荐磁流体流固耦合的书籍或代码
类中成员函数的执行顺序与什么有关?
kOmega模型的求解器添加温度方程方法
komega模型求解传热算例的报错
komega模型求解传热算例的报错
komega模型求解传热算例的报错
请教下dragmodel问题
浮点数例外(核心已转储) 问题
关于"xxx.so对“XXX”未定义的引用"错误
关于"xxx.so对“XXX”未定义的引用"错误
关于"xxx.so对“XXX”未定义的引用"错误
关于调用 库函数的报错
关于调用 库函数的报错
关于调用 库函数的报错
求解器编译问题“对‘XXX const’未定义的引用”