Skip to content

OpenFOAM

OpenFOAM交流区

5.4k 主题 31.9k 帖子
  • 合集:OpenFOAM安装准备工作贴

    已固定
    28
    28 帖子
    43k 浏览
    N

    请问那个含有很多版本的离线的虚拟机,怎么设置共享文件夹啊,VMtools设置了出错呢?

  • OpenFOAM教程 初级入门建议

    已固定
    55
    55 帖子
    201k 浏览
    李东岳

    新版的transportProperties改成了physicalProperties,你改个名

  • 几何VOF方法扩展包geometricVofExt发布

    8
    8 帖子
    4k 浏览
    L

    安装 geometricVofExt,遇到CGAL的链接和指向问题。

    问题语句为 include $(GENERAL_RULES)/CGAL

    请大佬指点一下,如何解决?!

    安装过程如下:

    CGAL 安装
    安装后,检查是否安装成功: ****************************** Check CGAL ****************************** cgal=true flavour=library root="/home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3" include="/home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3/include" library="/home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3/lib64" ********************************* Done *********************************

    其中,ABCD表示 home 目录。

    src/CGALVof 目录编译: 使用原始的 options 文件

    无法编译 libCGALVof.so

    >> wmake libso CGALVof make: *** /home/ABCD/OpenFOAM/OpenFOAM-v2506/wmake/rules/General/CGAL: Is a directory. Stop. make: *** /home/ABCD/OpenFOAM/OpenFOAM-v2506/wmake/rules/General/CGAL: Is a directory. Stop. wmake error: file 'Make/linux64GccDPInt32Opt/sourceFiles' could not be created in /home/ABCD/OpenFOAM/ABCD-v2506/modules/geometricVofExt/src/CGALVof

    其中,原始 options 文件为

    CGAL_EXACT = /*-DCGAL_DONT_USE_LAZY_KERNEL*/ CGAL_INEXACT = -DCGAL_INEXACT include $(GENERAL_RULES)/CGAL c++CGALWARN = -Wno-old-style-cast EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/fileFormats/lnInclude \ -I$(LIB_SRC)/surfMesh/lnInclude \ -I$(LIB_SRC)/dynamicFvMesh/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/surfMesh/lnInclude \ -ICGALVof/lnInclude \ ${CGAL_EXACT} \ ${CGAL_INEXACT} \ ${CGAL_INC} \ ${c++CGALWARN} \ -fopenmp \ -frounding-math EXE_LIBS = \ ${CGAL_LIBS} \ -lfiniteVolume \ -lfileFormats \ -lsurfMesh \ -ldynamicFvMesh \ -lmeshTools

    **根据错误提示,定位问题出在语句 include $(GENERAL_RULES)/CGAL **.

    src/CGALVof 目录编译: 编译前导入环境变量

    注释 options 文件中的语句 /*include $(GENERAL_RULES)/CGAL*/ **.

    编译前导入的环境变量为

    #!/bin/bash export CGAL_INC=-I${WM_THIRD_PARTY_DIR}/platforms/linux64Gcc/CGAL-4.14.3/include export CGAL_LIBS=-L${WM_THIRD_PARTY_DIR}/platforms/linux64Gcc/CGAL-4.14.3/lib64

    编译命令为

    source bashrc # bashrc 文件即为导入的环境变量 wclean wmake

    成功编译出 libCGALVof.so

    applications/utilities/setVofField 编译

    根据第 3 步的经验,注释 options 文件中的语句 /*include $(GENERAL_RULES)/CGAL*/ **.

    编译结果为

    Making dependencies: setVofField.C g++ -std=c++17 -m64 -pthread -DOPENFOAM=2506 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -Wno-unknown-pragmas -O3 -DNoRepository -ftemplate-depth-100 -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/finiteVolume/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/fileFormats/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/surfMesh/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/dynamicFvMesh/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/dynamicMesh/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/overset/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/meshTools/lnInclude -I/home/ABCD/OpenFOAM/ABCD-v2506/modules/geometricVofExt/src/CGALVof/lnInclude -I/home/ABCD/OpenFOAM/ABCD-v2506/modules/geometricVofExt/src/SimPLIC/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/phaseSystemModels/twoPhaseInter/incompressibleInterPhaseTransportModel/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/sampling/lnInclude -DCGAL_INEXACT -I/home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3/include -Wno-old-style-cast -fopenmp -frounding-math -iquote. -IlnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/OpenFOAM/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/OSspecific/POSIX/lnInclude -fPIC -c setVofField.C -o Make/linux64GccDPInt32Opt/setVofField.o In file included from /usr/include/boost/type_index.hpp:25, from /usr/include/boost/variant/variant.hpp:21, from /usr/include/boost/variant.hpp:17, from /home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3/include/CGAL/Object.h:38, from /home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3/include/CGAL/kernel_basic.h:34, from /home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3/include/CGAL/basic.h:47, from /home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3/include/CGAL/Cartesian/Cartesian_base.h:29, from /home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3/include/CGAL/Simple_cartesian.h:29, from /home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3/include/CGAL/Exact_predicates_inexact_constructions_kernel.h:29, from /home/ABCD/OpenFOAM/ABCD-v2506/modules/geometricVofExt/src/CGALVof/lnInclude/CGALKernel.H:55, from /home/ABCD/OpenFOAM/ABCD-v2506/modules/geometricVofExt/src/CGALVof/lnInclude/CGALSurfaceMesh.H:41, from setVofField.C:36: /usr/include/boost/function_output_iterator.hpp:14:1: note: ‘#pragma message: This header is deprecated. Use <boost/iterator/function_output_iterator.hpp> instead.’ 14 | BOOST_HEADER_DEPRECATED("<boost/iterator/function_output_iterator.hpp>") | ^~~~~~~~~~~~~~~~~~~~~~~ /usr/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’ 36 | BOOST_PRAGMA_MESSAGE( | ^~~~~~~~~~~~~~~~~~~~ In file included from setVofField.C:43: /home/ABCD/OpenFOAM/ABCD-v2506/modules/geometricVofExt/src/SimPLIC/lnInclude/reconstruction.H:318:13: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] 318 | const bool willMapAlphaField() const | ^~~~~ In file included from setVofField.C:98: setAlphaField.H: In function ‘int main(int, char**)’: setAlphaField.H:32:35: warning: unused variable ‘aridCells’ [-Wunused-variable] 32 | const DynamicList<label>& aridCells(cellLocs.aridCells()); | ^~~~~~~~~ In file included from setVofField.C:136: setAlphaField.H:32:35: warning: unused variable ‘aridCells’ [-Wunused-variable] 32 | const DynamicList<label>& aridCells(cellLocs.aridCells()); | ^~~~~~~~~ g++ -std=c++17 -m64 -pthread -DOPENFOAM=2506 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -Wno-unknown-pragmas -O3 -DNoRepository -ftemplate-depth-100 -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/finiteVolume/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/fileFormats/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/surfMesh/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/dynamicFvMesh/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/dynamicMesh/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/overset/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/meshTools/lnInclude -I/home/ABCD/OpenFOAM/ABCD-v2506/modules/geometricVofExt/src/CGALVof/lnInclude -I/home/ABCD/OpenFOAM/ABCD-v2506/modules/geometricVofExt/src/SimPLIC/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/phaseSystemModels/twoPhaseInter/incompressibleInterPhaseTransportModel/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/sampling/lnInclude -DCGAL_INEXACT -I/home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3/include -Wno-old-style-cast -fopenmp -frounding-math -iquote. -IlnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/OpenFOAM/lnInclude -I/home/ABCD/OpenFOAM/OpenFOAM-v2506/src/OSspecific/POSIX/lnInclude -fPIC -Xlinker --add-needed -Xlinker --no-as-needed Make/linux64GccDPInt32Opt/setVofField.o -L/home/ABCD/OpenFOAM/OpenFOAM-v2506/platforms/linux64GccDPInt32Opt/lib \ -L/home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib -L/home/ABCD/OpenFOAM/ThirdParty-v2506/platforms/linux64Gcc/CGAL-4.14.3/lib64 -lfiniteVolume -lfileFormats -lsurfMesh -ldynamicFvMesh -loverset -lmeshTools -lwaveModels -lCGALVof -lSimPLIC -limmiscibleIncompressibleTwoPhaseMixture -lsampling -lOpenFOAM -ldl \ -lm -o /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/bin/setVofField /usr/bin/ld: Make/linux64GccDPInt32Opt/setVofField.o: in function `CGAL::Interval_nt<false>::Test_runtime_rounding_modes::Test_runtime_rounding_modes()': setVofField.C:(.text._ZN4CGAL11Interval_ntILb0EE27Test_runtime_rounding_modesC2Ev[_ZN4CGAL11Interval_ntILb0EE27Test_runtime_rounding_modesC5Ev]+0xc9): undefined reference to `CGAL::assertion_fail(char const*, char const*, int, char const*)' /usr/bin/ld: setVofField.C:(.text._ZN4CGAL11Interval_ntILb0EE27Test_runtime_rounding_modesC2Ev[_ZN4CGAL11Interval_ntILb0EE27Test_runtime_rounding_modesC5Ev]+0xe8): undefined reference to `CGAL::assertion_fail(char const*, char const*, int, char const*)' /usr/bin/ld: Make/linux64GccDPInt32Opt/setVofField.o: in function `CGAL::Interval_nt<true>::Test_runtime_rounding_modes::Test_runtime_rounding_modes()': setVofField.C:(.text._ZN4CGAL11Interval_ntILb1EE27Test_runtime_rounding_modesC2Ev[_ZN4CGAL11Interval_ntILb1EE27Test_runtime_rounding_modesC5Ev]+0xc9): undefined reference to `CGAL::assertion_fail(char const*, char const*, int, char const*)' /usr/bin/ld: setVofField.C:(.text._ZN4CGAL11Interval_ntILb1EE27Test_runtime_rounding_modesC2Ev[_ZN4CGAL11Interval_ntILb1EE27Test_runtime_rounding_modesC5Ev]+0xe8): undefined reference to `CGAL::assertion_fail(char const*, char const*, int, char const*)' /usr/bin/ld: Make/linux64GccDPInt32Opt/setVofField.o: in function `_GLOBAL__sub_I_setVofField.C': setVofField.C:(.text.startup+0x2e6): undefined reference to `CGAL::Random::Random()' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `mpfr_get_emin' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpn_com' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpq_swap' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpq_init' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `CGAL::precondition_fail(char const*, char const*, int, char const*)' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpn_copyi' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpq_cmp' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `mpfr_set_q' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `CGAL::postcondition_fail(char const*, char const*, int, char const*)' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpn_add_n' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpq_set_d' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `mpfr_get_d' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpq_sub' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpz_init_set_ui' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpq_clear' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpn_sqr' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `mpfr_set_emin' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpn_sub_n' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpq_mul' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpq_div' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `CGAL::Random::Random(unsigned int)' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpz_init_set_si' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `mpfr_subnormalize' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpq_set' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpn_mul' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `CGAL::warning_fail(char const*, char const*, int, char const*)' /usr/bin/ld: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/lib/libCGALVof.so: undefined reference to `__gmpq_add' collect2: error: ld returned 1 exit status make: *** [/home/ABCD/OpenFOAM/OpenFOAM-v2506/wmake/makefiles/general:182: /home/ABCD/OpenFOAM/ABCD-v2506/platforms/linux64GccDPInt32Opt/bin/setVofField] Error 1

    setShapedFields 的编译错误与上面的类似。

  • buoyantfoam计算发散求助

    28
    28 帖子
    1k 浏览
    李东岳

    buoyantBoussinesqSimpleFoam10-12.tar.xz

    这个压缩包里面有两个笨笨的求解器,分别适用于

    OpenFOAM-10 OpenFOAM-12 (模块化)

    算法主要基于老版本的buoyantBoussinesqSimpleFoam。这个求解器不需要求解能量方程,同时将动量方程处理为不可压缩。求解器稳定的多,不会出现负温度。但是在OpenFOAM-7之后被删掉了。

    压缩包里面同时含有1个测试算例,分别适用于两个版本的求解器。对模块化求解器感兴趣的可以研究研究。我在植入过程中,模块化求解器的植入相对麻烦,主要是成员函数比较分散。OpenFOAM-10作为一个顶层的求解器在写的时候一气呵成。二者体验还是挺大的。

    如果想在OpenFOAM-12里面植入求解器,可以对比下我写的求解器在10下以及12下的区别。

  • 移植sprayFoam液相功能

    50
    50 帖子
    18k 浏览

    @李东岳 是的,李老师理解的没有错,就是高速可压缩反应流,爆轰就是激波和火焰面的耦合

  • 2 帖子
    50 浏览
    C

    @studentTan nCellsBetweenLevels 过渡层设置多一点,试下10层或20层

    nCellsBetweenLevels 1;
  • openfoam中如何将一个面设置为内部面

    4
    4 帖子
    77 浏览
    李东岳

    画成一个平的圆形就行

  • 5 帖子
    105 浏览
    李东岳

    这问题老大难了,基本要一事一议

  • MPPICFoam求粒子的运动轨迹

    1
    1 帖子
    61 浏览
    F

    有什么好的方法展示粒子的运动轨迹吗?

  • SOWFA动态偏航

    1
    1 帖子
    87 浏览
    L

    大家好
    我想在SOWFA模拟过程中让风力机偏航角度随时间变化(动态偏航),请问有什么方法可以实现吗?我看SOWFA里面的偏航角设置是一个定值。

  • Bubbly Flow Resources For CFD Validation And Verification

    2
    2 帖子
    3k 浏览
    李东岳

    当时可真能写...

  • 多相体系的计算模拟

    2
    2 帖子
    5k 浏览
    李东岳

    哎呀我勒个去 当时自己可真能写 现在看了都想删了 不嫌害臊

  • OpenFOAM shu osher Woodward Colella 验证算例

    1
    1 帖子
    93 浏览
    李东岳

    shu-osher-wwc.tar.xz

    shuosher.JPG

  • 9 帖子
    495 浏览
    A

    @xpqiu 哈哈哈必应第二条就是,谢谢邱老师!faf5e653-d711-4b05-aa92-a1af89def6f5-image.png

  • rhoCentralFoam模拟边界条件求助

    5
    5 帖子
    193 浏览

    @李东岳 电流密度达到一定强度后表面会电离发射等离子体,我这里当气体模拟的

  • Coupled level set-VOF方法

    13
    13 帖子
    7k 浏览

    @capillaryFix 是的,我求解了Eqn.30 -> Eqn.34 ->Eqn.33,但是Eqn.33的结果用在哪里了?

  • 如何根据stl模型定义cellZone?

    3
    3 帖子
    158 浏览
    liujmL

    @李东岳 在 如何根据stl模型定义cellZone? 中说:

    你需要看cellZone,不是看stl。paraFoam可以打开cellZone

    老师,之前尝试过了,在一个snappyhexmeshdict中好像没有办法同时生成壁面边界模型和cellzone(即A.stl生成壁面模型,B.stl为cellzone区域),这个我在polymesh文件夹中检查了cellzone文件,的确为空。不过,后续我通过两次运行snappyhexmesh解决了,第一次只配置壁面边界模型,第二次只生成cellzone。

  • OpenFOAM膨胀喷管边界条件设置

    17
    17 帖子
    6k 浏览
    李东岳

    @xuluxi18 才看见,rhoCentralFoam能跑通,rhoPimpleFoam跑不通么

  • codedFixedValue 入口速度相关问题

    9
    9 帖子
    316 浏览
    J

    @chon01 这也只是我的猜测,因为我按了一下计算器,lg和ln函数算出来的结果差距确实比较明显,希望能帮到你吧。

  • 使用sprayFoam求解器设置多喷雾入口算例

    12
    12 帖子
    3k 浏览
    孟豪龙

    @欧阳 我也尝试了一下,目前编译没啥问题