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

    首先恭喜一下我终于顺利成为该论坛的用户!
    我创建了一个新场电势,其中阴极边界条件如图:
    6e3b21b6-e645-4823-b228-a8aeb8f4d473-075945645D5AEDD1AD3B75A03F7FBF37.jpg
    Jcath是一个仅与边界相关的位置函数,sigma是电导率。
    类似于codeFixedValue,想请教怎么对gradient边界条件编程。
    如有案例,不胜感激。
    另外有没有小伙伴做磁流体或者等离子体仿真,我们可以详细交流。

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

    你这个是算什么的?这个就是固定梯度边界条件。你开始应该有J_cath的值,然后赋值给phi的面法向梯度就行了

    首先恭喜一下我终于顺利成为该论坛的用户!

    哈哈挺有意思,自己恭喜自己一下

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

    1 条回复 最后回复
  • G 离线
    G 离线
    gooseEast
    写于 最后由 编辑
    #3

    是的,李老师你讲的没错,J_cath = C1 * exp(- (r / C2)^C3),假设是一个垂直X轴的面,C1、C2、C3均为已知参数,r是距X轴的距离。这样就是一个非均匀的fixedGradient。该怎么实现呢?

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

    把你的phi的边界声明成固定梯度边界条件,然后在求解器层面

    forAll(patch循环)
    {
         phi边界的gradient() = -J/sigma;
    }
    

    这个是大体思路。

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

    1 条回复 最后回复
  • G 离线
    G 离线
    gooseEast
    写于 最后由 编辑
    #5

    哦哦好的好的,谢谢李老师

    1 条回复 最后回复
  • G 离线
    G 离线
    gooseEast
    写于 最后由 编辑
    #6

    上面李老师的方法对于小白同学依然门槛太高,下边是我通过swak4Foam(OpenFOAM-v2306环境下)中的funkySetBoundaryField来实现的:

    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  v2306                                 |
    |   \\  /    A nd           | Website:  www.openfoam.com                      |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        object      funkySetBoundaryDict;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    currentDensity
    {
    	field PotE;
    	expressions
    	(
    		{
    			target gradient;
    			patchName CATHODE;
    			variables 
    			(
    				"Jcath0=1;"
    				"Rc=1;"
    				"nc=1;"
    				"sigma0=1;"
    				"y=pos().y;"
    				"r=1;"
    			);
    
    			expression "-Jcath0*exp(-pow(mag(y) / Rc, nc)) / sigma0";
    		}
    	);
    }
    
    // ************************************************************************* //
    

    想要实现速度边界条件为高斯分布的同学可以参考代码修改field和target,想要了解其他信息,可以参见:https://www.cfd-online.com/Forums/openfoam-pre-processing/96280-funkysetboundaryfields-manipulation-existing-field.html

    1 条回复 最后回复
  • G 离线
    G 离线
    gooseEast
    写于 最后由 编辑
    #7

    删除掉0文件下CATHODE的gradientOld行代码,即可在paraview里查看0时刻场信息。

    1 条回复 最后回复
  • G 离线
    G 离线
    gooseEast
    写于 最后由 编辑
    #8

    想请教大家标量的梯度不应该是个矢量吗,为什么设置边界条件的时候fixedGradient是个标量?

    S 1 条回复 最后回复
  • S 离线
    S 离线
    shirouchen
    在 中回复了 gooseEast 最后由 编辑
    #9

    @gooseEast 个人理解。因为你定义的是边界的数值的梯度,其梯度方向是固定的,即边界的法向量方向,所以边界数值的梯度是标量。而不是内部场量的三方向的梯度数据。

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

    楼上说的对,嗯,这是面法向梯度

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

    1 条回复 最后回复

  • 登录

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