编译overWaveDyMFoam失败请求援助
-
@liujm 在 编译overWaveDyMFoam失败请求援助 中说:
@chenboyao 在 编译overWaveDyMFoam失败请求援助 中说:
@liujm 你对照当前的wave2foam中waveFoam求解器和interFoam求解器,然后你看看修改了哪儿,你就把修改的地方复制到overInterDyMFoam中,在把修改好的文件复制到wave2Foam存放求解器的地方,重新编译一下wave2foam就行
Hello, 我说下我的编译方法,避免出错,您看看哪里有问题:
-
把multiphase/interFoam/overInterDyMFoam文件夹复制到solvers1912_PLUS目录下(与原有waveFoam同级),并将overInterDyMFoam改名为overWaveDyMFoam。
-
在overWaveDyMFoam.C的基础上对照waveFoam.C,填补缺少的代码。
做到第二步时我有两点疑问:
- 您提供的文件中没有完全将waveFoam.C中的代码补充到overWaveDyMFoam.C中,例如部分头文件以及如下等代码。请问略去的代码是不需要吗?
#include "readDyMControls.H" phi = mesh.Sf() & Uf(); MRF.update();
- 两个文件夹中的部分同名文件也有较大区别,例如correctPhi.H等,这些该如何处理?对于waveFoam中有的文件,而overWaveDyMFoam没有的文件,是否应该复制到后者处?
其实你应该拷贝我这个文件到solve2206_PLUS中后,你编译文件之前需要
cd wave2foam/src/bin
./barsh
然后进去到solvee2206_PLUS中我的这个文件,然后
wmake
就可以了 -
-
@liujm 在 编译overWaveDyMFoam失败请求援助 中说:
@chenboyao 在 编译overWaveDyMFoam失败请求援助 中说:
@liujm 你对照当前的wave2foam中waveFoam求解器和interFoam求解器,然后你看看修改了哪儿,你就把修改的地方复制到overInterDyMFoam中,在把修改好的文件复制到wave2Foam存放求解器的地方,重新编译一下wave2foam就行
Hello, 我说下我的编译方法,避免出错,您看看哪里有问题:
-
把multiphase/interFoam/overInterDyMFoam文件夹复制到solvers1912_PLUS目录下(与原有waveFoam同级),并将overInterDyMFoam改名为overWaveDyMFoam。
-
在overWaveDyMFoam.C的基础上对照waveFoam.C,填补缺少的代码。
做到第二步时我有两点疑问:
- 您提供的文件中没有完全将waveFoam.C中的代码补充到overWaveDyMFoam.C中,例如部分头文件以及如下等代码。请问略去的代码是不需要吗?
#include "readDyMControls.H" phi = mesh.Sf() & Uf(); MRF.update();
- 两个文件夹中的部分同名文件也有较大区别,例如correctPhi.H等,这些该如何处理?对于waveFoam中有的文件,而overWaveDyMFoam没有的文件,是否应该复制到后者处?
我这个代码对应的OpenFOAM版本是2206,不知道1912版本适不适配
-
-
@liujm 在 编译overWaveDyMFoam失败请求援助 中说:
@chenboyao 抱歉回错了 waveDyMFoam_2206.rar 这个好像不是overWaveDyMFoam的包。编译思路我大概理解了,请问可以添加联系方式吗?我也打算作风机方面的研究。liujm87@mail2.sysu.edu.cn
-
@liujm 在 编译overWaveDyMFoam失败请求援助 中说:
@chenboyao 在 编译overWaveDyMFoam失败请求援助 中说:
@liujm 你对照当前的wave2foam中waveFoam求解器和interFoam求解器,然后你看看修改了哪儿,你就把修改的地方复制到overInterDyMFoam中,在把修改好的文件复制到wave2Foam存放求解器的地方,重新编译一下wave2foam就行
Hello, 我说下我的编译方法,避免出错,您看看哪里有问题:
-
把multiphase/interFoam/overInterDyMFoam文件夹复制到solvers1912_PLUS目录下(与原有waveFoam同级),并将overInterDyMFoam改名为overWaveDyMFoam。
-
在overWaveDyMFoam.C的基础上对照waveFoam.C,填补缺少的代码。
做到第二步时我有两点疑问:
- 您提供的文件中没有完全将waveFoam.C中的代码补充到overWaveDyMFoam.C中,例如部分头文件以及如下等代码。请问略去的代码是不需要吗?
#include "readDyMControls.H" phi = mesh.Sf() & Uf(); MRF.update();
- 两个文件夹中的部分同名文件也有较大区别,例如correctPhi.H等,这些该如何处理?对于waveFoam中有的文件,而overWaveDyMFoam没有的文件,是否应该复制到后者处?
hello, 我下载了@chenboyao在本网站提供的rar包,也发现他在waveDyMFoam。C文件中缺少了这几行代码,以及externalWave->step();
请问是这几行代码不需要吗? -
-
@liujm 在 编译overWaveDyMFoam失败请求援助 中说:
@pb 细节我有些忘记了,不过说一下我的大概思路。对比以下两个文件:
- interFoam vs. overInterDyMFoam
如果一个代码出现interFoam中,而没有出现在overInterDyMFoam中,那就说明它不是编译overWaveDyMFoam必要的,例如“MRF.update();”。
其次,关于“externalWave->step();”这类带有明显waveFoam特征的代码我是保留了的。目前编译成功,但还没有进行功能性测试。
明白了,谢谢
@李东岳 在 编译overWaveDyMFoam失败请求援助 中说:
解器找不到,你看你求解器的Ma
谢谢,按照这个思路编译成功了,过程中间出过一些overInterDyMFoam.C里面include重复的问题。这两天测试下
-
@pb
我当时编译overInterDyMFoam的时候,先是比对了interFoam求解器和overInterDyMFoam求解器中有那些差别,然后再比对的是interFoam 和wave2Foam的waveFoam求解器中有那些差别,然后将interFoam和waveFoam中有差别的部分添加到overInterDyMFoam中,差别的那一部分其实就是wave2Foam添加到interFoam求解器中的松弛区代码,然后形成的waveFoam。然后我这边就是将有差别的这松弛区代码添加到overInterDyMFoam中,就是我上面上传的那个我自己编的waveDyMFoam.rar文件。
理论上来说应该莫得问题。毕竟waveFoam求解器本身就是再interFoam中添加了松弛区的代码 -
老师们,为什么我编译成功后跑case的时候会报下面的错误?我用的openfoam1812版本
Duplicate entry waveAlpha in runtime selection table fvPatchField
#0 /home/katniss/OpenFOAM/OpenFOAM-v1812/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so(_ZN4Foam5error14safePrintStackERSo+0x49) [0x7f9f0887be99]
#1 /home/katniss/OpenFOAM/OpenFOAM-v1812/platforms/linux64GccDPInt32Opt/lib/libwaveModels.so(_ZN4Foam12fvPatchFieldIdE31adddictionaryConstructorToTableINS_27waveAlphaFvPatchScalarFieldEEC2ERKNS_4wordE+0x100) [0x7f9f09040770]
#2 /home/katniss/OpenFOAM/OpenFOAM-v1812/platforms/linux64GccDPInt32Opt/lib/libwaveModels.so(+0x49abe) [0x7f9f09001abe]
#3 /lib64/ld-linux-x86-64.so.2(+0x11b9a) [0x7f9f0c01ab9a]
#4 /lib64/ld-linux-x86-64.so.2(+0x11ca1) [0x7f9f0c01aca1]
#5 /lib64/ld-linux-x86-64.so.2(+0x113a) [0x7f9f0c00a13a] -
@chenboyao 请问大佬,那是否说明overInterDyMFoam是不具备松弛区的?意思是我的入流和出流边界都有可能会产生波浪的反射吗?一直困扰我的就是我无法确定在openfoam里构建水池并加上物体,波浪遇到物体产生的反射波是否还会回到我的inlet边界产生二次反射呢?
-
@katnisswen OpenFOAM有自带的主动消波技术,你自己看一下就知道了,