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
28 帖子 5 发布者 18.8k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 史 离线
    史 离线
    史浩 神
    在 中回复了 Yu_Tian 最后由 编辑
    #19

    @Yu_Tian 在createFields.H文件中,添加变量声明

    volVectorField js
    (
        IOobject
        (
            "js",
            runTime.timeName(),
            mesh,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
        -sigma*fvc::grad(Ue)
    );
    

    在求解完Ue后,更新一下js

    js=-sigma*fvc::grad(Ue);
    

    我一般这样通过求解器实现的。
    也可以用postProcess实现,但是需要具体看一下他的源码,这个我不是很熟悉
    放一个我之前写过的一个求边界“axis”上的最大速度,这个是参考之前版本的calc方法写的,后来calc全部整合到postProcess中了,但是在OpenFOAM 6里面,按照calc的思虑一样可以用

    #include "timeSelector.H"
    #include "calcType.H"
    
    void calc(const argList& args, const Time& runTime, const fvMesh& mesh)
    {
        IOobject UHeader
        (
            "U",
            runTime.timeName(),
            mesh,
            IOobject::MUST_READ
        );
    
        if (phiHeader.headerOk())
        {
    		volVectorField U(UHeader, mesh);
    		forAll(U.boundaryField(), patchi)
    		{
    			const fvPatchVectorField & pU = U.boundaryField()[patchi];
    			const fvPatch & pU_B = pU.patch();
    			if(pU_B.name() == "axis")
    			{
    				Foam::Info<< "mag(U) max : " << max(mag(pU)).value() << Foam::endl;
    				break;
    			}
    		}
    	}
    	else
    	{
    		Foam::Info<< "No U exists!" << Foam::endl;
    	}
    
        Info<< "\nEnd\n" << endl;
    }
    
    int main(int argc, char *argv[])
    {
        #include "setRootCase.H"
        #include "createTime.H"
        Foam::instantList timeDirs = Foam::timeSelector::select0(runTime, args);
        #include "createNamedMesh.H"
    
    
        forAll(timeDirs, timeI)
        {
            runTime.setTime(timeDirs[timeI], timeI);
       
            Foam::Info<< "Time = " << runTime.timeName() << Foam::endl;
       
            mesh.readUpdate();
       
            calc(args, runTime, mesh);
       
            Foam::Info<< Foam::endl;
        }
    	
        Foam::Info<< "End\n" << Foam::endl;
       
        return 0;
    }
    

    让我们随波逐流

    Y 1 条回复 最后回复
  • Y 离线
    Y 离线
    Yu_Tian
    在 中回复了 史浩 最后由 编辑
    #20

    @史浩 好的,感谢大神:146: :146: :146: 我仔细研究一下

    永远学习,永远进步

    1 条回复 最后回复
  • Y 离线
    Y 离线
    Yu_Tian
    在 中回复了 史浩 最后由 李东岳 编辑
    #21

    @史浩 史老师,还有一个问题想请教一下, 就是在做这种矢量图和流线图的时候,在我模型里有局部加密的网格,这种怎么能得到均匀分布的矢量图和流线图,需要怎么设置?
    ac5ca5b2-1088-410f-a9fa-2383330611c4-image.png

    永远学习,永远进步

    史 1 条回复 最后回复
  • 史 离线
    史 离线
    史浩 神
    在 中回复了 Yu_Tian 最后由 编辑
    #22

    @Yu_Tian 我这个图就是局部网格加密(AMR)结果的后处理图。对于局部网格加密算例,流线图没有影响,矢量图确实会在加密网格区域比较密集。矢量图的这个问题我也没找到比较好的处理方法,如果你有比较好的方法可以分享一下

    让我们随波逐流

    Y 1 条回复 最后回复
  • Y 离线
    Y 离线
    Yu_Tian
    在 中回复了 史浩 最后由 编辑
    #23

    @史浩 好的,感谢史老师,我看到了一个在tecplot里面进行后处理的,是在原计算域的基础上重新建了一个均匀网格,然后进行插值得到一个新的模型,然后矢量图就均匀了,但存在的一个问题就是可能会不会失真,我把链接放了上来,您评价一下。https://www.bilibili.com/video/av370688662

    永远学习,永远进步

    史 1 条回复 最后回复
  • 史 离线
    史 离线
    史浩 神
    在 中回复了 Yu_Tian 最后由 编辑
    #24

    @Yu_Tian 感谢分享,非常棒!学习了!这个失真的问题肯定会存在,只要不影响你想讨论的结果,都是可以接受的

    让我们随波逐流

    Y 1 条回复 最后回复
  • Y 离线
    Y 离线
    Yu_Tian
    在 中回复了 史浩 最后由 编辑
    #25

    @史浩 好的,感谢史老师,还有一个问题想请教,就是前面跟您学习了在求解器里createFields.H额外定义了一个量(电场强度E)

    Info<< "Reading field E\n" << endl;
        volVectorField E
        (
            IOobject
            (
                "E",
                runTime.timeName(),
                mesh,
                IOobject::NO_READ,
                IOobject::AUTO_WRITE
            ),
            -fvc::grad(Ue)
        );
    

    ,在求解器.c文件里补充了求解梯度的方程,

    E = -fvc::grad(Ue);
    

    这样在实例中0文件里添加了一个E的初始文件,

    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  1.5-dev                               |
    |   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volVectorField;
        location    "0";
        object      E;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [1 1 -3 0 0 -1 0]; //kg*m*s^(-3)*A^(-1)
    
    internalField   uniform (0 0 0);
    
    boundaryField
    {
        upWall
        {
            type            zeroGradient;
        }
        downWall
        {
            type            zeroGradient;
        }
        rightWall
        {
            type            zeroGradient;
        }
        leftWall
        {
            type            symmetryPlane;
        }
        frontAndBack
        {
            type            empty;
        }
    }
    
    
    // ************************************************************************* //
    

    还要不要在system中的fvSchemes和fvSolution对E做一些补充设置?比如下面这个

        div(rho*phi,U)   Gauss upwind;
    
    E
        {
            solver          smoothSolver;
            smoother        GaussSeidel;
            tolerance       1e-08;
            relTol          0;
            nSweeps         1;
        }
    

    永远学习,永远进步

    史 1 条回复 最后回复
  • 史 离线
    史 离线
    史浩 神
    在 中回复了 Yu_Tian 最后由 编辑
    #26

    @Yu_Tian 都不需要,你只需要添加Ue的相应插值格式和求解器参数即可。也不用添加一个初始场,因为一开始你设置的是NO_READ属性,程序不会读初始场

    让我们随波逐流

    Y 2 条回复 最后回复
  • Y 离线
    Y 离线
    Yu_Tian
    在 中回复了 史浩 最后由 编辑
    #27

    @史浩 好的,感谢感谢:146: :146: :146:

    永远学习,永远进步

    1 条回复 最后回复
  • Y 离线
    Y 离线
    Yu_Tian
    在 中回复了 史浩 最后由 编辑
    #28

    @史浩史老师,help,帮忙看一下呗:140: https://www.cfd-china.com/topic/4247/流电耦合模型中边界条件的设置?_=1604991413128

    永远学习,永远进步

    1 条回复 最后回复

  • 登录

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