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. 边界条件编译问题

边界条件编译问题

已定时 已固定 已锁定 已移动 OpenFOAM
1 帖子 1 发布者 1.4k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • C 离线
    C 离线
    cxzhmg
    写于 最后由 编辑
    #1

    最近在研究边界条件的问题,想复制一个边界条件出来修改编译测试。参考了网上的教程,但是还是有些问题,想请教大家。

    OpenFOAM里面的边界条件有些只包括一个C文件,一个H文件,这种边界条件按照网上的教程都可以直接编译。比如fixedFluxPressure,我拷贝到新的文件夹test下,创建一个Make文件夹,在其内部创建files和options文件:
    files:

    fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
    
    LIB = $(FOAM_USER_LIBBIN)/libUsr
    
    

    options:

     EXE_INC = \
    	-I$(LIB_SRC)/finiteVolume/lnInclude\
    
    LIB_LIBS = \
    	-lfiniteVolume
    

    编译正常。
    但是还有一部分的边界条件包含多个C文件和H文件,这种就编译不成功了。以cyclic为例,拷贝$FOAM_SRC/finiteVolume/fields/fvPatchFields/constraint/cyclic 到testcyclic文件夹,test下面生成Make文件夹,Make里面建立files和options:

    files:

    cyclic/cyclicFvPatchField.C
    
    LIB = $(FOAM_USER_LIBBIN)/libcyclicFvPatchField
    

    options:

     EXE_INC = \
    	-I$(LIB_SRC)/finiteVolume/lnInclude\
    
    LIB_LIBS = \
    	-lfiniteVolume
    

    执行wmake libso

    wmake libso .
    wmakeLnInclude: linking include files to ./lnInclude
    Making dependency list for source file cyclicFvPatchField.C
    g++ -std=c++11 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3  -DNoRepository -ftemplate-depth-100 -I/home/xc15/OpenFOAM/OpenFOAM-7/src/finiteVolume/lnInclude -IlnInclude -I. -I/home/xc15/OpenFOAM/OpenFOAM-7/src/OpenFOAM/lnInclude -I/home/xc15/OpenFOAM/OpenFOAM-7/src/OSspecific/POSIX/lnInclude   -fPIC -c cyclic/cyclicFvPatchField.C -o Make/linux64GccDPInt32Opt/cyclic/cyclicFvPatchField.o
    cyclic/cyclicFvPatchField.C:32:1: error: redefinition of ‘Foam::cyclicFvPatchField<Type>::cyclicFvPatchField(const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&)’
     Foam::cyclicFvPatchField<Type>::cyclicFvPatchField
     ^
    In file included from cyclic/cyclicFvPatchField.H:225:0,
                     from cyclic/cyclicFvPatchField.C:26:
    cyclic/cyclicFvPatchField.C:32:1: error: ‘Foam::cyclicFvPatchField<Type>::cyclicFvPatchField(const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&)’ previously declared here
     Foam::cyclicFvPatchField<Type>::cyclicFvPatchField
     ^
    cyclic/cyclicFvPatchField.C:44:1: error: redefinition of ‘Foam::cyclicFvPatchField<Type>::cyclicFvPatchField(const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&, const Foam::dictionary&)’
     Foam::cyclicFvPatchField<Type>::cyclicFvPatchField
     ........
    make: *** [Make/linux64GccDPInt32Opt/cyclic/cyclicFvPatchField.o] Error 1
    
    

    error太长,只贴了一部分,但是基本上都是说重复定义和声明

    正确的编译方式应该是什么?:mihu:

    1 条回复 最后回复

  • 登录

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