Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 能否在集群的个人文件夹内安装OF

能否在集群的个人文件夹内安装OF

已定时 已固定 已锁定 已移动 OpenFOAM
8 帖子 3 发布者 6.0k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 林 离线
    林 离线
    林之流风
    写于2020年6月27日 13:37 最后由 编辑
    #1

    各位老师好,我在虚拟机内自定义修改了一个求解器,想放在集群里使用。因为在虚拟机里自定义的文件是放在OpenFOAM的run里的,所以想在集群的个人文件夹内安装一个OpenFOAM。不知能否在集群的个人文件夹内安装OF。我将OpenFOAM-7和ThirdParty-7下载并解压,配置环境变量,然后编译OpenFOAM7,报错如下:

    flex wmkdep.l; \
    gcc -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -O3   -fPIC lex.yy.c -o /gpfs/xxx/OpenFOAM/OpenFOAM-7/wmake/platforms/linux64Gcc/wmkdep
    /bin/sh: flex: command not found
    gcc: error: lex.yy.c: No such file or directory
    gcc: fatal error: no input files
    compilation terminated.
    

    请问是哪儿出了问题?我看了一下集群的gcc版本是5.3.0

    1 条回复 最后回复
  • B 离线
    B 离线
    bestucan 版主 大神
    写于2020年6月27日 14:30 最后由 编辑
    #2

    flex这个命令是缺了的。但是如果你没超级用户权限是无法按装很多依赖软件的,可以编译安装在指定文件夹,但会很麻烦。

    修改OpenFOAM的安装位置这个就更麻烦了。可以参考这个:二楼的帖子

    一楼的从三楼描述来看其实并没有修改安装位置,只是修改了源代码的位置,安装位置还是默认的。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    林 1 条回复 最后回复 2020年6月27日 14:55
  • 林 离线
    林 离线
    林之流风
    在 2020年6月27日 14:55 中回复了 bestucan 最后由 编辑
    #3

    @bestucan 感谢您的回复,我没有超级用户权限。那如果不在个人用户文件夹安装OF,将在虚拟机修改的求解器拷贝到个人文件夹,使用集群的OF能否编译我个人用户文件夹的求解器?这样的话环境变量需要怎么修改呢?:xiexie:

    B 1 条回复 最后回复 2020年6月27日 15:49
  • X 在线
    X 在线
    xpqiu 超神
    写于2020年6月27日 15:21 最后由 编辑
    #4

    可以,修改 etc/bashrc 里面的 FOAM_INST_DIR,改成你想要安装的路径。然后,尝试去运行 ./Allwmake 。运气好的话,直接就能编译了。如果遇到报错,多半是缺少某些依赖组件,比如你上面的报错是因为系统缺少 flex 这个程序导致的。遇到这种情况,有两个办法,一个是请有 root 权限的管理员帮你把 flex 安装了,另一个办法是自己去下载 flex 的源码来编译,把 flex 也安装到你自己的目录下。OpenFOAM 的离线编译,在 gcc 和 mpi 版本足够用的情况下,可能会缺的依赖库大概是 flex , bison, zlib, boost, 等等,都可以通过自己下载源码编译到自己目录下的方式来解决。要完成这些工作,你需要学习一下从源码编译 flex 等软件的方法,以及编译好之后配置环境变量的方法。

    1 条回复 最后回复
  • B 离线
    B 离线
    bestucan 版主 大神
    在 2020年6月27日 15:49 中回复了 林之流风 最后由 编辑
    #5

    @林之流风 能编译,要动那些影响生成文件的环境变量,和存放库文件的环境变量。他们不只是生成的位置,还是读取的位置。FOAM_USER 开头的应该都要变。没具体实施过,目前想象是这么些。

    这些能操作成功的前提是 openfoam 的版本号得对的上。否则比较麻烦。还有一个思路可以考虑:交叉编译。即用A平台编译B平台可以运行的二进制文件。

    无超级用户权限还是很麻烦的,要联系有权限的。不然,目前看依赖三个包。一装,每个包又各自依赖三个包,会让人崩溃的。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    1 条回复 最后回复
  • 林 离线
    林 离线
    林之流风
    写于2020年7月2日 15:29 最后由 编辑
    #6

    @xpqiu @bestucan 非常感谢两位老师的建议!
    我的目的是:在虚拟机内自定义修改了一个求解器,想放在集群里编译使用。试了两个方法似乎都编译成功了,我把我的步骤简要说一下,如果有什么错误请各位老师指正:
    1、用集群的OpenFOAM编译。之前不敢用集群的OpenFOAM编译自己个人文件夹的求解器,因为我不知道 $FOAM_USER开头的这些环境变量具体的是什么目录,在终端键入env后就可以看到这些环境变量了,其实用集群的个人账户登录,这些目录都在自己的个人文件夹里,所以接下来和在虚拟机操作类似了。
    2、在集群个人文件夹内安装OpenFOAM(如果想用其他版本的OF的话)。开始报错说我缺少flex,我找集群管理员要了root账号,因为我们集群的系统是Centos,所以我键入yum -y install flex 来安装flex。flex安装成功后,登陆个人账户,在终端键入env后可以看到 $FOAM_INST_DIR是在我个人文件夹内的目录。编译OF,经过了很长时间编译成功,接下来对自定义的求解器编译,也类似于在虚拟机操作的步骤了。如果是不同版本,编译自定义的求解器会有代码语句上的一些不同提示报错,需要修改下。

    B 1 条回复 最后回复 2020年7月3日 03:42
  • B 离线
    B 离线
    bestucan 版主 大神
    在 2020年7月3日 03:42 中回复了 林之流风 最后由 编辑
    #7

    @林之流风 在 能否在集群的个人文件夹内安装OF 中说:

    1、用集群的OpenFOAM编译。之前不敢用集群的OpenFOAM编译自己个人文件夹的求解器,因为我不知道 $FOAM_USER开头的这些环境变量具体的是什么目录,

    如果是个人帐户,怎么折腾都行,不用怕搞坏系统,因为没权限。

    在终端键入env后就可以看到这些环境变量了,其实用集群的个人账户登录,这些目录都在自己的个人文件夹里,所以接下来和在虚拟机操作类似了。

    如果只是看某个环境变量 echo $FOAM_INST_DIR 就行。

    2、在集群个人文件夹内安装OpenFOAM(如果想用其他版本的OF的话)。开始报错说我缺少flex,我找集群管理员要了root账号,因为我们集群的系统是Centos,所以我键入yum -y install flex 来安装flex。

    yum 的 -y 最好不用,这个是默认 yes 。有时候安装软件会更新一些软件再卸载一些软件。还是看看没啥大影响再 yes。

    flex安装成功后,登陆个人账户,在终端键入env后可以看到 $FOAM_INST_DIR是在我个人文件夹内的目录。编译OF,经过了很长时间编译成功,

    按说编译时候缺包很难只缺一个包,你说编译成功了,怎么确认的呢?编译log有没有保留?有没有搜 log 里的 warning 和 error? 当然不考虑这些兴许也能往下走,但是出了问题,就比较难定位了,因为可能的坑比较多。编译安装最好按官网的要求把需要的包都装上。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    林 1 条回复 最后回复 2020年7月3日 06:38
  • 林 离线
    林 离线
    林之流风
    在 2020年7月3日 06:38 中回复了 bestucan 最后由 编辑
    #8

    @bestucan 非常感谢老师的详细建议。因为集群之前就已经安装过OF,我是在个人账户里安装OF7版本的,所以可能就差这一个包。我已经使用了跑了计算,目前来看没什么问题:xiexie:

    1 条回复 最后回复
2020年6月27日 13:37

2/8

2020年6月27日 14:30

未读 6
2020年7月3日 06:38
  • 登录

  • 登录或注册以进行搜索。
2 / 8
  • 第一个帖子
    2/8
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]