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. 利用codeStream设置温度边界初始场

利用codeStream设置温度边界初始场

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

    各位前辈好,我想利用codeStream设置壁面的初始温度场,但是编译之后显示出错,查找相关资料没有很好的办法,希望大家可以指点一下,谢谢

    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  2.4.0                                 |
    |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volScalarField;
        location    "0";
        object      T;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [ 0 0 0 1 0 0 0 ];
    
    internalField   uniform 300;
    
    boundaryField
    {
       INT
        {
            type            fixedValue;
            value           uniform 300;
        }
        OUT
        {
            type            zeroGradient;
        }
        LONGWALL
        {
            type            zeroGradient;
        }
        WALL
        {
           type            codedFixedValue;
           value           #codeStream
           {
           codeInclude
    	    #{
    	            #include "fvCFD.H"
    	    #};
    
           codeOptions
    	    #{
    	           -I$(LIB_SRC)/finiteVolume/lnInclude \
    	           -I$(LIB_SRC)/meshTools/lnInclude
    	    #};
    
            codeLibs
    	    #{
    	           -lmeshTools \
    	           -lfiniteVolume
    	    #};
    
            code           
                #{
                      const IOdictionary& d = static_cast<const IOdictionary&>(dict.parent().parent());
                      const fvMesh& mesh = refCast<const fvMesh>(d.db());
                      const label id = mesh.boundary().findPatchID("WALL");
                      const fvPatch& patch = mesh.boundary()[id];
    
                      scalarField  T(patch.size(), scalar(300) );
    
                      const scalar gamma = 25e2;
                      const scalar Tin = 300;
                      const scalar Tout = 1400; 
                      const scalar L = 2.5e-3;
    
                      forAll(T, i)
                      {
                           const scalar x = patch.Cf()[i][0];
                           const scalar y = patch.Cf()[i][1]; 
                           const scalar radial = pow(x,2)+pow(y,2);
                           const scalar dist = sqrt(radial);
                         if ( dist <= L )
                            {                             
                                scalar alpha = gamma*(dist-L/2);
    
                                T[i] = scalar( (Tout-Tin)/2*(exp(2.0*alpha)-1.0)/(exp(2.0*alpha)+1.0)+(Tin+Tout)/2.0 );
                            }
                         else if ( dist > L )
                           {
                               T[i] = scalar( Tout );
                           }
                      }
    
                     T.writeEntry("",os);
                #};
            }
         }
                   
    }
    
    --> FOAM FATAL IO ERROR: 
    "ill defined primitiveEntry starting at keyword 'value' on line 40 and ending at line 100"
    
    file: /home/lucas/桌面/phi0.7/0/T at line 100.
    
        From function primitiveEntry::readEntry(const dictionary&, Istream&)
        in file lnInclude/IOerror.C at line 132.
    
    FOAM exiting
    

    报错信息一直显示从40到100行不正确的定义,但是我整个字典只有98行,希望大家能指点一下

    T 1 条回复 最后回复
  • T 在线
    T 在线
    Tens 神
    在 中回复了 luca 最后由 编辑
    #2

    @luca codeStream好像不是和codedFixedValue搭配使用的吧,你改成fixedValue试试?

    T 1 条回复 最后回复
  • T 在线
    T 在线
    Tens 神
    在 中回复了 Tens 最后由 Tens 编辑
    #3

    刚才试了下,前面的说的不对,问题应该是line 93后面需要一个分号。

    L 1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #4

    :146:

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • L 离线
    L 离线
    luca
    在 中回复了 Tens 最后由 编辑
    #5

    @tens问题已经解决了,非常感谢指点

    1 条回复 最后回复

  • 登录

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