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. setExprFieldsDict中表征变量幂次计算和指数计算的语法问题

setExprFieldsDict中表征变量幂次计算和指数计算的语法问题

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

    各位老师同学,我遇到这样一个问题,想在初始流场中用setExprFieldsDict定义一个不均匀流场(表达大气分层现象),比如密度、压力的函数表达式为:
    密度:ρ=1.225(1-6.5/288.15 H)^4.26
    ρ=0.364 exp⁡(-(H-11)/6.34)
    压力:p=100465.03-11149.96x+374.99x^2
    请问方程中的幂次、指数运算语法在setExprFieldsDict中是怎样的?
    以下为我的setExprFieldsDict文件:

    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  v2006                                 |
    |   \\  /    A nd           | Website:  www.openfoam.com                      |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        object      setExprFieldsDict;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    expressions
    (
    rho
        {
            field       rho;
            dimensions  [1 -3 0 0 0 0 0];
    
            constants
            {
                centre (0 0 0);
            }
    
            variables
            (
                "height = pos().z()"
            );
                
            condition
            #{
                // Within the box
                (pos().z() < 11000) && (pos().z() > 0) && (pos().x() < 8000) && (pos().x() > -8000))
    
            #};
            
            expression
            #{
               ??ρ=1.225(1-6.5/288.15 H)^4.26
            #};
        }
        
        p
        {
            field       p;
            dimensions  [1 -1 -2 0 0 0 0];
    
            constants
            {
                centre (0 0 0);
            }
    
            variables
            (
                "height = pos().z()"
            );
    
            condition
            #{
                // Within the radius
                (pos().z() < 11000) && (pos().z() > 0) && (pos().x() < 8000) && (pos().x() > -8000))
    
            #};
                   
            expression
            #{
                ??p=100465.03-11149.96x+374.99x^2
            #};
        }
    );
    
    1 条回复 最后回复
  • L 离线
    L 离线
    lyc
    写于 最后由 编辑
    #2

    自己回复自己一下吧,问题可能有些幼稚了,分享给跟我一样的小白吧。昨天晚上查了些资料解决了,syntax问题在OF的userguide里面说的很清楚,请见下图:
    image.png
    我所要表达的公式正确的写法应为:
    1.225 * pow((1 - 6.5/288.15 * H), 4.26)

    1 条回复 最后回复

  • 登录

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