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
6 帖子 2 发布者 3.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Prometheus10P 在线
    Prometheus10P 在线
    Prometheus10
    写于 最后由 编辑
    #1

    各位大佬Cfders大家好!
    前些日子看资料,如图中在边界处有一个喷水口,在0~0.2s内以固定流速向盒子内送水。
    fillBox_BC.png

    :xinxin: 图1 边界送水图:xinxin:
    这个喷水口是通过设置0文件夹下phase.water的boundaryField指定其左壁面的正方形区域内(z:0.4~0.6;y:0.5~0.7),在某时间内完成送水过程的(0s~0.2s)。代码如下:

    internalField   uniform 0;
    boundaryField
    {
        leftWall
        {
            //type            zeroGradient;
    
       	type            codedFixedValue;
        	value           uniform 0;
    
        	name    inletProfile2;
        	//redirectType    inletProfile2;	//OF7 <
    
    	code
        	#{
                const fvPatch& boundaryPatch = patch(); 
                const vectorField& Cf = boundaryPatch.Cf(); 
                scalarField& field = *this; 
    
                field = patchInternalField(); 	//take value from initialization at the given boundary surface
    
                scalar minz = 0.4;  
                scalar maxz = 0.6; 
                scalar miny = 0.5;  
                scalar maxy = 0.7; 
    
    	    scalar t = this->db().time().value();
    
     	    forAll(Cf, faceI)
                {
                    if ( 
                       (Cf[faceI].z() > minz) &&
                       (Cf[faceI].z() < maxz) &&
                       (Cf[faceI].y() > miny) &&
                       (Cf[faceI].y() < maxy) 
                       )
                	   {
    
    		       if ( t < 1.)
    		       {
                               field[faceI] = 1.;
    		       }
    		       else
    		       {
    		           field[faceI] = 0.;
    		       }
    
    	    	       //field[faceI] = 1;
    	           }
    	    }
       	#};         
        }
    

    我现在想在区域内有一个假想面或者是假想点达到类似的功能(我想这应该是在internalField中完成)如图2,而不是像上述图1提到的在boundaryField边界上给定面。
    fig2 (2).png
    :xinxin: 图2 区域内假想的送水口图 :xinxin:

    尝试了在0文件下的phase.water的internalField做调整,但只能给定高度的初始流体如图3。
    fig3.png
    :xinxin: 图3 通过internalField只做到了给定高度的水形成自由面 :xinxin:

    还是不太明白如何做到设定送水面和引入时间来控制送水,求大佬降临,救救菜鸟!
    :chouchou:

    1 条回复 最后回复
  • Prometheus10P 在线
    Prometheus10P 在线
    Prometheus10
    写于 最后由 编辑
    #2

    尴尬...标题应该是喷口...:wocao: 请各位大佬原谅我的小学拼音

    Z 1 条回复 最后回复
  • Z 离线
    Z 离线
    zhouxu
    在 中回复了 Prometheus10 最后由 编辑
    #3

    @prometheus10 应该在boundaryField中,还需要指定速度吧,现在只是确定了相体积分数

    Prometheus10P 1 条回复 最后回复
  • Prometheus10P 在线
    Prometheus10P 在线
    Prometheus10
    在 中回复了 zhouxu 最后由 编辑
    #4

    @zhouxu 您好!大佬,谢谢您的回复:xinxin:
    我之前看boundaryField是需要在指定的边界上给定相体积分数和速度,但是我现在想要的入口是在区域内部,这个时候没有确切的边界可以指定 ,所以我就想是不是在internalFields里来达成。

    Z 1 条回复 最后回复
  • Z 离线
    Z 离线
    zhouxu
    在 中回复了 Prometheus10 最后由 编辑
    #5

    @prometheus10 不是大佬,互相学习。我没有做过,但是感觉可以用createBafflesDict将内部面转化为边界

    Prometheus10P 1 条回复 最后回复
  • Prometheus10P 在线
    Prometheus10P 在线
    Prometheus10
    在 中回复了 zhouxu 最后由 编辑
    #6

    @zhouxu 好的,我马上去看一下!:142: 那就~谢谢前辈!:xinxin:

    1 条回复 最后回复

  • 登录

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