楼主为什么会在Windows的C盘下面啊? 看你截图感觉是权限不够的问题??? 建议你把算例文件夹整个复制到$FOAM_RUN
路径下面,然后再次运行求解器.
Amadeus
帖子
-
openfoam计算停止但无明显error报错 -
preCICE软件在CentOS7超算集群上无root权限从源码编译安装记录贴@Amadeus 在 preCICE软件在CentOS7超算集群上无root权限从源码编译安装记录贴 中说:
但是如果碰到了如下和_MT相关的错误
此处错误的原因在于spooles库编译时没有开启多线程(Multi-Thread),如果你的calculix-preCICE不需要启用多线程,那么就无需往下看了.
spooles多线程编译
@Amadeus 在 preCICE软件在CentOS7超算集群上无root权限从源码编译安装记录贴 中说:
spooles可以按照指南编译
按照preCICE官方给出的指南是默认没有打开spooles库的多线程编译选项的.
因此在make lib之后,需要进入 spooles库所在路径/spooles.2.2/MT/src 中,然后执行make makeLib
注意大小写敏感. 然后就会把多线程支持库合并编译进之前生成的spooles.a文件.
最后回到calculix-adapter文件夹,make clean清理之前生成的文件,把
makefile
文件第55行的CFLAGS改回来即可CFLAGS = -Wall -O3 -fopenmp $(INCLUDES) -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DUSE_MT
最后 make -j 重新编译
-
preCICE软件在CentOS7超算集群上无root权限从源码编译安装记录贴安装完成preCICE之后,继续编译安装calculix-preCICE-adapter.
编译依赖项
根据官网指南编译SPOOLES2.2, ARPACK和yaml-cpp.
spooles可以按照指南编译,但是在
make.inc
文件中需要修改第106行左右的MPI_INSTALL_DIR = mpi/安装/路径
在编译安装arpack96时,由于PETSc库是在preCICE安装时的依赖项,而PETSc安装时自动安装了BLAS和LAPACK,因此除了指南里面的要求之外,还需要修改
ARmake.inc
文件中第60行左右的LAPACKLIB = PETSc库的安装路径/petsc-3.22.2/arch-linux-c-debug/externalpackages/f2cblaslapack-3.8.0.q2/libf2clapack.a BLASLIB = PETSc库的安装路径/petsc-3.22.2/arch-linux-c-debug/externalpackages/f2cblaslapack-3.8.0.q2/libf2cblas.
yaml-cpp在集群中的安装有点坑,首选是查看自己的集群中是否已经安装好了. 次选才是自己从源码编译安装,因为在编译时必须注意集群中的默认gcc版本,例如CentOS7自带的gcc-4.8.5就坑了我好一会儿....
根据指南走,在进入build文件夹之后,cmake命令修改为
CC=$(which gcc) CXX=$(which g++) cmake -DBUILD_SHARED_LIBS=ON ..
以此指定为自己OpenFOAM和preCICE常用的编译器.
不然可能在编译calculix-adapter时出现如下错误
mpifort -fopenmp -Wall -O3 -o bin/ccx_preCICE bin/ccx_2.20.o bin/ccx_2.20.a /beegfs/home/20144242/software/Calculix/dependencies/SPOOLES.2.2/spooles.a -L/beegfs/home/20144242/app/precice/lib64 -lprecice -lstdc++ -L/beegfs/home/20144242/software/Calculix/dependencies/yaml-cpp-yaml-cpp-0.6.2/build -lyaml-cpp /beegfs/home/20144242/software/Calculix/dependencies/ARPACK/libarpack_INTEL.a -lpthread -lm -lc /usr/bin/ld: warning: libgfortran.so.3, needed by /beegfs/software/openmpi-403/lib/libmpi_usempi.so, may conflict with libgfortran.so.5 /usr/bin/ld: warning: libgfortran.so.3, needed by /beegfs/software/openmpi-403/lib/libmpi_usempi.so, may conflict with libgfortran.so.5 bin/ccx_2.20.a(ConfigReader.o): In function `ConfigReader_Read': ConfigReader.cpp:(.text+0x84): undefined reference to `YAML::LoadFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' bin/ccx_2.20.a(ConfigReader.o): In function `YAML::detail::node_ref::set_scalar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': ConfigReader.cpp:(.text._ZN4YAML6detail8node_ref10set_scalarERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4YAML6detail8node_ref10set_scalarERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x2a): undefined reference to `YAML::detail::node_data::set_scalar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' bin/ccx_2.20.a(ConfigReader.o): In function `YAML::Node::Scalar[abi:cxx11]() const': ConfigReader.cpp:(.text._ZNK4YAML4Node6ScalarB5cxx11Ev[_ZNK4YAML4Node6ScalarB5cxx11Ev]+0x64): undefined reference to `YAML::detail::node_data::empty_scalar[abi:cxx11]' collect2: error: ld returned 1 exit status make: *** [bin/ccx_preCICE] Error 1
编译calculix-adapter
在依赖项编译完成后,根据指南修改
makefile
文件,最后编译即可.但是如果碰到了如下和
_MT
相关的错误bin/ccx_2.19.a(spooles.o): In function `factor_MT': spooles.c:(.text+0x58b): undefined reference to `FrontMtx_MT_factorInpMtx' bin/ccx_2.19.a(spooles.o): In functio [Makefile.txt|attachment](upload://hTRrap8IGPDYBU68AlxhityA5RU.txt) (3.7 KB) n `fsolve_MT': spooles.c:(.text+0x716): undefined reference to `FrontMtx_MT_solve' collect2: error: ld returned 1 exit status make: *** [Makefile:107: bin/ccx_preCICE] Error 1
则需要删除makefile文件中第55行左右的
-DUSE_MT
标志,把CFLAGS修改为CFLAGS = -Wall -O3 -fopenmp $(INCLUDES) -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE
然后再次编译即可.
-
如何开始学习OpenFOAM,有大佬指导指导嘛@initial2025 楼主有兴趣一起团报三月LCO吗.... 我这边有几个人想组团
-
虚拟机 VMware安装问题@ansel 不需要让VMware找到wsl啊,可以把wsl理解成一个没有GUI的虚拟机,它可以用物理机的全部CPU资源(虽然读写性能会弱一点),但是VMware是一个有GUI的虚拟机,它只能用你允许范围内的CPU/内存资源. 这两者是相互独立且互不影响的....
-
虚拟机 VMware安装问题要正儿八经计算的话,虚拟机不如wsl不如物理机,因此建议装真实系统
-
东岳流体的虚拟机能否转为ISO镜像安装在物理机上?@Amadeus 在 东岳流体的虚拟机能否转为ISO镜像安装在物理机上? 中说:
找不到我设备中的NVME硬盘
已经解决systemback找不到NVME硬盘的问题, 新的镜像上传至百度云
@Amadeus 在 东岳流体的虚拟机能否转为ISO镜像安装在物理机上? 中说:
ventoy启动后选择我们的镜像并回车.
此步骤在回车选择我们的镜像后,会出现四个选项:
- 正常模式启动(选这个可能会出现上文所述黑框框卡住不动的情况)
- grub2模式启动(选这个)
- 计算校验值(checksum,不用管)
- 回到上个菜单
我们选择第二个选项回车,此时应该就不会有乱码了. 后面的步骤就都一样了.
-
为什么计算过程中动量方程U不收敛?流固耦合问题你的固体是有限元法计算吗? 用什么软件和OpenFOAM配合呢? 是不是考虑流固界面上插值计算导致的速度场难以收敛?
-
东岳流体的虚拟机能否转为ISO镜像安装在物理机上?@李东岳 能造福大家就很高兴哈哈哈
-
有谁对OpenFOAM+GPU感兴趣么?@尚善若水 在 有谁对OpenFOAM+GPU感兴趣么? 中说:
deepflame好像也在做GPU
24年6月北京OpenFOAM Workshop的时候就听陈炽教授介绍了deepflame,确实是在加入深度学习和GPU
确实org这边用上GPU可能很难了,毕竟ESI那边更有钱?
-
有谁对OpenFOAM+GPU感兴趣么?@尚善若水 牛逼了这都能找到....我关注exaFoam一段时间了,还挺期待OpenFOAM能用GPU的
-
请教OpenFOAM通过codedFixedValue自定义边界的问题@BK 老铁! 我也想三月底去杭州学习一波! 有没有兴趣组团报名哇...我看组团报名还能便宜呢....
-
东岳流体的虚拟机能否转为ISO镜像安装在物理机上?安全警告与风险提示(狠狠滴叠甲)
- 本镜像基于dyfluid提供的Ubuntu 22.04 虚拟机制作,除帖子中声明的必要软件外,未主动引入其他风险. 若担心安全隐患,请自己判断使用与否.
- 本帖更推荐读者自己基于东岳流体的虚拟机和
systemback
自行定制属于自己的ISO镜像,还可以额外加装研究所需的其他软件,如tecplot,Pointwise等. - 本镜像上传至百度云只是为了造福大家,无偿使用,欢迎探讨!
- 感谢李东岳老师提供的基础虚拟机!
-
东岳流体的虚拟机能否转为ISO镜像安装在物理机上?喜大普奔
在搜索并尝试了几条路径后,最后成功地利用
systemback
工具将李东岳老师的虚拟机转换为可以安装在物理机上的ISO镜像.引言
我把打包好的ISO镜像上传到了百度云,系统用户名以及默认密码都和东岳老师的虚拟机一致,除李老师安装的OpenFOAM相关软件之外,为了达到打包镜像的目的,我额外安装了
cdrtools-3.02a07.tar.gz
和systemback
软件. 此外,还把Ubuntu 22.04中内置的snap商店及其附带全部卸载了(包括Firefox浏览器),这么做的原因是snap组件会影响systemback的打包过程. 因为火狐浏览器被卸载,我又安装了Microsoft Edge浏览器避免没有浏览器可用的尴尬... 最后为了方便还安装了aptitude
作为Ubuntu上的包管理软件(在这里强烈推荐!).先声明一下我这个方法的缺陷:
- 在制作好U盘启动盘后的安装过程比较麻烦,且需要一定的系统安装经验.
- 系统迁移安装至物理机时必须靠
systemback
,暂未找到其他方法.
再说一下这个方法的优点:
- 可以利用
Ventoy
软件(一款启动盘制作工具,强烈推荐)作为随身OpenFOAM使用,systemback
制作的live模式镜像可以不用安装到物理机上,只要物理机允许从U盘启动就OK. systemback
本身可以创造系统还原点,以后乱折腾也可以一键还原至你备份的还原点- 拥有这个镜像就可以无限量产dyfluid虚拟机同款系统啦! 再也不用为了安装老版本OpenFOAM或者Foam-extend抓狂啦!
- 可以直接使用李老师调教好的CFDEM和libtorch,真是
嘎嘎一嘎子太棒啦!
安装流程
步骤一: 安装Ventoy并制作启动盘
Ventoy是一款国人开发的新一代多ISO启动引导程序,这款工具最大的优点就是无需格式化优盘,用户只需要将所需的ISO镜像文件拷贝至优盘中即可在Ventoy界面中选择自己想要的ISO镜像文件.
ventoy下载地址:
https://www.ventoy.net/cn/download.html我是用Windows系统制作的启动盘,因此ventoy我使用的是Windows版本. 如何使用ventoy请看教程或者问问AI. Linux版本应该是解压后执行
./VentoyGUI.x86_64
即可.
注意,ISO镜像体积超过21GB,请准备一个容量至少为32GB的U盘!
步骤二: 调整物理机BIOS以允许从U盘启动
这一步的坑主要是必须关闭BIOS中的安全启动,并把U盘启动顺序拉到上面,不然ventoy无法启动.
ventoy启动后选择我们的镜像并回车.
系统可能显示乱码,但是我们直接选择第一个选项回车
回车后可能看见一个黑框框然后卡住不动了,我也不知道怎么回事. 但是只要先按一下回车键,再键盘输入
exit
然后回车,等十几秒就会继续正常开机流程. 此处初步推断是显卡驱动导致的黑框框和卡住不动.步骤三: systemback进行系统安装
正常进入Ubuntu系统后,我们打开终端,执行
systemback-sustart
命令,可以看到下图所示内容
然后点击
系统安装
输入你喜欢的用户名等信息,此处为了和虚拟机保持一致,我密码设置为
1
分区步骤比较麻烦
我发现systemback
找不到我设备中的NVME硬盘,只能看见走sata协议的硬盘. 因此我主要把sdb1分三个区,第一个区用作UEFI的引导(即图中的/boot/efi
分区),格式化为FAT32,这个分区我建议在live系统里面使用磁盘
工具提前格式化; 第二个区用作SWAP交换分区,我的物理内存只有16GB,因此我SWAP也给了16GB; 第三个分区挂载点设置为/
分区,用于存放系统.在分区步骤完成后,
efi
分区,SWAP
分区和/
分区在图中显示的格式化标志应该是- X X
,即efi
分区无需另外格式化(因为已经提前格式化了),另外两个分区需要格式化.此外,请勾选传递用户配置文件前面的框!!! 把它√成
传递用户配置文件及用户数据
.最后点击下一步,选择开始即可. 等待系统安装完成.
看到安装完成的提示信息后,关闭机器,拔出U盘,重新开机!
-
preCICE软件在CentOS7超算集群上无root权限从源码编译安装记录贴@Mina-Lee 在 preCICE软件在CentOS7超算集群上无root权限从源码编译安装记录贴 中说:
我之前在超算里安装precice+ccx+of,安装了一个月才装上,同样也是没有root权限,找了一大堆人,花了七八张毛爷爷才搞上。
我遇到的问题,OF编译就会报错,超算里所有的C++都试过了,都报错。最后找人查到了原因,超算的C++缺mpicxx环境,重新装的C++才搞上。那可真是太痛苦了... 幸好我这边自带openMPI
-
速度压力每次迭代1000次是网格的问题吗?请问楼主,网格多少万? 并行多少核心跑? 看日志文件感觉连续性误差好大...
-
如何建一个圆柱体我有几个问题啊,inlet上表面压力为什么是固定值啊? 我要是跑着跑着里面的压力变得大于入口压力了,那岂不是反流了?
此外,速度边界条件的Outlet为什么给uniform (0 0 0.1);
这个值啊? -
Openfoam安装报错失败@Thx 并行使用的核心数量太多啦,就双核或者四核好了
-
如何建一个圆柱体可以找一个圆柱绕流的算例,搞清楚blockMeshDict的规则,然后反过来应用,把被掏空的圆柱部分变成内部有网格的部分
-
blockMeshDict报错相邻面数量不一致怎么解决?@李东岳 李老师谬赞了,我就是写bug写多了自己犯错犯出经验了O(∩_∩)O哈哈~,就是一个普通学生完全不是大佬