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中文网

H

hongjiewang

@hongjiewang
关于
帖子
111
主题
28
群组
0
粉丝
2
关注
3

帖子

最新

  • 求助:openfoam三维算例中如何沿着某一个方向做空间上的平均
    H hongjiewang

    @学流体的小明 在 求助:openfoam三维算例中如何沿着某一个方向做空间上的平均 中说:

    我算槽道流,是有一个专门的postChannel后处理程序的,可能你得自己编程做了。
    可以参考一下这个后处理程序。
    https://develop.openfoam.com/Development/openfoam/-/tree/OpenFOAM-v2012/applications/utilities/postProcessing/miscellaneous/postChannel

    感谢,我发现了一个叫fluidfoam的后处理python工具,已经植入到openfoam中,需要py3.8以上版本,of的版本估计也得是2106以上,具体可以参照他的官方说明,该工具功能极其强大且便携


  • 求助:openfoam三维算例中如何沿着某一个方向做空间上的平均
    H hongjiewang

    跑了一个三维的算例,其中z为水深方向,现在想取x-y平面上的一处剖面画流速分布,为了有代表性,打算沿着z方向对速度做一个平均,请教大家有什么办法吗


  • LES直流槽道边界层模拟,如何得到正则化速度u+以及正则化坐标y+?
    H hongjiewang

    @学流体的小明

    对于此,我想请问,Um即平均速度如何给定,雷诺数的计算,假如我是在半宽通道中跑的,即下表面为wall,上表面为symmetry,此时,雷诺数公式里面应该把2h换成水力半径吗


  • LES直流槽道边界层模拟,如何得到正则化速度u+以及正则化坐标y+?
    H hongjiewang

    @学流体的小明 先前我做过这个工作,用于大涡模拟入口的前置算例,我当时画u+--y+使用的你说的方法二得到的,效果还行


  • OpenFoam实时监测流场某一截面上组合变量问题
    H hongjiewang

    @Try-harder 请问这个问题解决了吗


  • openfoam监测某个面上的涡量数据
    H hongjiewang

    请教大家:
    openfoam2106版本中如何监测某个面上的涡量值
    我的思路是在controdict中加入surfaceSampling和vorticity两个函数,发现确实时间文件里面有了涡量的结果,而且也出现了postprocessing文件夹,但是该文件夹的数据里面只有x y z坐标,而没有涡量的值,请问大家有什么办法吗,具体的Function如下

    surfaceSampling
    {
    type surfaces;
    libs ( "libsampling.so" );
    enabled true;
    timeStart 0;
    writeControl runTime;
    writeInterval 0.06;
    interpolationScheme cellPointFace;
    surfaceFormat raw;
    fields (vorticityField);
    surfaces
    (
    plane
    {
    type plane;
    planeType pointAndNormal;
    pointAndNormalDict
    {
    normal (0 0 1);
    point (0 0 0.1) ;
    }
    bounds (0.1 0.1 0.08) (0.6 0.4 0.12);
    }
    );
    }

    vorticity1
    {
    type vorticity;
    libs (fieldFunctionObjects);
    field U;
    result vorticityField;
    region region0;
    enabled true;
    log true;
    timeStart 0.25;
    timeEnd 1000;
    executeControl timeStep;
    executeInterval 5;
    writeControl runTime;
    writeInterval 0.06;
    }


  • Openfoam中的ExecutionTime 和ClockTime有何区别?
    H hongjiewang

    @李东岳 老师,我看了一下我的z盘是网络驱动器,所以读取相比固态硬盘会慢很多~也就是说如果我直接放在Ubuntu根目录下运行算例的话,用时相对会少~
    但是就有另外的问题:在根目录下运行时,对电脑内存是否有要求(实际占用的是哪里的内存?);后期后处理时,安装的win版本的paraview,好像打开不到wsl下~
    1640918395(1).png
    1640918235(1).png


  • Openfoam中的ExecutionTime 和ClockTime有何区别?
    H hongjiewang

    @李东岳 老师,我使用的是wsl系统,算例挂载在z盘计算,使用16个核并行计算。发现运行的时候clockTime远大于实际计算时间executionTime,几乎是它的五六倍
    这种问题有办法解决嘛~

    Solving for solid region SOLID
    smoothSolver:  Solving for T, Initial residual = 0.00013333, Final residual = 1.48053e-09, No Iterations 15
    min/max(T) = 372.689, 375.942
    ExecutionTime = 12245.5 s  ClockTime = 60719 s
    

  • 气液两相 没有纯气体
    H hongjiewang

    DZ44GBIONA}7`WR})4VI(2V.png
    GU0962NTFA1OXF5XX{B5.png
    上面是加热壁面,下面全都是多孔区域(孔隙率0.73),然后我产生的液相分布是这样的~ 几乎没有纯气体区域~甚至在固液界面处的液相含量反而高~我已经调过不同的毛细力模型,发现不是毛细力的影响~
    现在还可以做的是增大相变系数~但是我相变系数一增大,就会在开始相变的时候发散~

    有没有老师可以分析一下 可能是哪里导致的问题~

    solvers
    {
        "alpha.liquid.*"
        {         
            cAlpha          1;
            nAlphaCorr      2;
            nAlphaSubCycles 2;
            MULESCorr       yes;
            nLimiterIter    5;       
            solver          smoothSolver;
            smoother        symGaussSeidel;
            tolerance       1e-7;
            relTol          0;
        }
        rho
        {
            solver           diagonal;
            tolerance        1e-7;
            relTol           0.1;
        }
        rhoFinal
        {
            $rho;
            tolerance        1e-7;
            relTol           0;
        }
        mDotSmearFinal
        {
            solver           PCG;
            tolerance        1e-7;
            preconditioner   DIC;
            relTol           0.00;
            smoother         DIC;
        }
        "(U|T)"
        {
            solver           smoothSolver;
            smoother         symGaussSeidel;
            tolerance        1e-7;
            relTol           0.;
            minIter          15;
            maxIter          50;
        };  
        "(U|T)Final"
        {
            $U;
            tolerance        1e-7;
            relTol           0;
            maxIter          50;
        }
        p
        {
            tolerance        1e-8;
            solver           PCG;
            preconditioner   DIC;
            relTol           0.001;
            smoother         DIC;
        }
        pFinal
        {
            $p;
            tolerance       1e-07;
            relTol          0;
        }    
        "pcorr.*"
        {
            $p_rgh;
            tolerance        1e-9;
            relTol           0;
        };
    }
    PIMPLE
    {
        momentumPredictor   yes;
        nCorrectors         5;
        nNonOrthogonalCorrectors 0;
        pRefCell            0;
        pRefValue           1e5;
    }
    relaxationFactors
    {
        alpha.liquid   0.2;
        U              0.5;
        p              0.5;
    }
    
    ddtSchemes
    {
        default         Euler;
    }
    gradSchemes
    {
        default         Gauss linear;
    }
    divSchemes
    {
        div(phi,alpha)  Gauss vanLeer01;
        div(phirb,alpha) Gauss vanLeer01;
        //div(phirb,alpha) Gauss interfaceCompression;
        //div(rhoPhi,U)      Gauss vanLeerV;
        //div(rhoPhi,U)      Gauss limitedLinearV 1;
        div(rhoPhi,U)      Gauss linearUpwind;
        div(rhoPhiByEps,U)  Gauss linearUpwind;
        div((mu*dev2(grad(U).T()))) Gauss linear;
        div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
        div(((rho*nu)*dev2(T(grad(U))))) Gauss linear;
        div(rhoCpPhi,T) Gauss vanLeer;
        div((interpolate(cp)*rhoPhi),T) Gauss vanLeer;
    }
    laplacianSchemes
    {
        default         Gauss linear corrected;
    }
    interpolationSchemes
    {
        default         linear;
    }
    snGradSchemes
    {
        default         corrected;
    }
    

  • 类型转化
    H hongjiewang

    @李东岳 嗯嗯好的~所以我上面的采用的其实是老师提到的第一种方法,但是需要把x分量表示出来,这样就不是vector量了~
    第二种方法我也尝试一下 谢谢老师~


  • 类型转化
    H hongjiewang

    @李东岳 老师,我想要vol场~


  • 类型转化
    H hongjiewang

    0dd86172b816ae62cb1c7ea91d127f4.jpg
    我现在需要表示出dpc/da(volScalarField),一种方法是在界面处定义为无穷大的数(可以实现);另一种方法是我想转化为和x的关系,但是涉及到dx,就会变成volVector(当然可以用mag把vector转化为scalar,再相除是可以得到scalar类型的,但是好像物理意义不对了,在运行算例的时候会报错~),想问一下应该怎么处理~
    volScalarField dpcdx = mag(fvc::grad(pc_));
    volScalarField dSedx = mag(fvc::grad(Se_));
    volScalarField dpcdS_= dpcdx/dSedx;


  • 速度残差
    H hongjiewang

    @李东岳 谢谢老师回复~
    老师可以帮我看一下这个错误怎么修改吗,按照您之前的一个帖子,定义了一个随时间变化的热流边界~

        HEATED
        {
            type       externalWallHeatFluxTemperature;
            mode     flux;
            q            coded;       // Heat flux
            code
            #{
                 scalar q=*this;
                 scalar t = this->db().time().value();       
                 if(t >= 0 && t<=1.5)
                 {
                      q = 180000;
                 }             
                 else if(t<=3)
    	     {
    	          q = 200000;
    	     }	     
    	     else if(t<=4.5)
    	     {
    	          q = 250000;
    	     }	     
    	     else if(t<=6)
    	     {
    	          q = 300000;
    	     }	     
    	     else
    	     {
    	          q = 0;
    	     }
    	     q.writeEntry("", os);	     
            #}; 
            value           uniform 300;
            kappaMethod     lookup;
            kappa           "K";
        }
    
    /home/dyfluid/OpenFOAM/dyfluid-v2006/run/bianhuaQ/0/SOLID/T.boundaryField.HEATED:32:23: error: cannot convert ‘const Foam::PatchFunction1Types::qPatchFunction1ScalarField’ to ‘Foam::scalar’ {aka ‘double’} in initialization
    /home/dyfluid/OpenFOAM/dyfluid-v2006/run/bianhuaQ/0/SOLID/T.boundaryField.HEATED:33:31: error: ‘const class Foam::PatchFunction1Types::qPatchFunction1ScalarField’ has no member named ‘db’
    /home/dyfluid/OpenFOAM/dyfluid-v2006/run/bianhuaQ/0/SOLID/T.boundaryField.HEATED:55:9: error: request for member ‘writeEntry’ in ‘q’, which is of non-class type ‘Foam::scalar’ {aka ‘double’}
    /home/dyfluid/OpenFOAM/dyfluid-v2006/run/bianhuaQ/0/SOLID/T.boundaryField.HEATED:55:24: error: ‘os’ was not declared in this scope; did you mean ‘cos’?
    

  • 速度残差
    H hongjiewang
    smoothSolver:  Solving for Ux, Initial residual = 1, Final residual = 1.00985e-16, No Iterations 15
    smoothSolver:  Solving for Uy, Initial residual = 1, Final residual = 1.07542e-16, No Iterations 15
    

    请问我求解算例的时候,发现速度的第一次迭代残差都是1。
    我用相同的求解器跑了其他的算例,速度的第一次残差也是0.1的量级。
    请问如何优化这种问题~


  • OpenFOAM小代码
    H hongjiewang

    @hongjiewang 在 OpenFOAM小代码 中说:

    @李东岳 目前我需要将温度边界和压力边界定义为随相含量变化的一个场。我只可以做到变化之后的也是同一类边界条件,但是像下图中的气相区压力是第一类边界条件,液相区温度是第二类边界条件。请问这种变边界类型的边界应该怎么定义~1632279639(1).png

    已解决压力的~但是温度的第二类和第三类的转换还没有解决~


  • OpenFOAM小代码
    H hongjiewang

    @李东岳 目前我需要将温度边界和压力边界定义为随相含量变化的一个场。我只可以做到变化之后的也是同一类边界条件,但是像下图中的气相区压力是第一类边界条件,液相区温度是第二类边界条件。请问这种变边界类型的边界应该怎么定义~1632279639(1).png


  • cellzone的问题
    H hongjiewang

    @鲸落 请问你解决了吗~动态读取cellZone~


  • 温度边界条件
    H hongjiewang

    @hongjiewang 在 温度边界条件 中说:

    1632279639(1).png
    气液界面是不断变化的,请问红色方框内的边界条件如何添加~

    可以识别出气液界面,但是想知道如何在同一个边界里使用第二类和第三类边界条件


  • 温度边界条件
    H hongjiewang

    1632279639(1).png
    气液界面是不断变化的,请问红色方框内的边界条件如何添加~


  • 不均匀温度边界 热流密度
    H hongjiewang

    目前我只会做到在边界某段添加固定温度,整个边界都使用热流密度条件也是可以的,请问如何在边界的某段添加热流密度边界~比如下面这段0.000333<=x<=0.000666使用热流边界 应该如何修改~

    OUTLET
    {
        type            codedFixedValue;
        name            heated;
        value           uniform 300;
        
            codeInclude
            #{
                #include "fvCFD.H"
            #};
    
            codeOptions
            #{
                -I$(LIB_SRC)/finiteVolume/lnInclude \
                -I$(LIB_SRC)/meshTools/lnInclude
            #};
    
    	    //libs needed to visualize BC in paraview
    	    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("OUTLET");
                const fvPatch& patch = mesh.boundary()[id];*/
    
                
                scalarField T(patch().size(), 300);	
    
                forAll(T, i)
                {
                    const scalar x = patch().Cf()[i][0];
                    //const scalar y = patch.Cf()[i][1];
                    //const scalar z = patch.Cf()[i][2];
                    if(x>=0.000333||x<=0.000666)
                    {
    	         T[i] = 400;
    	     }
    	     else
    	     {
    	         T[i] = 300;
    	     }    
                }
    
                (*this)==T;//T.writeEntry("", os);
            #};
         
    }
    
  • 登录

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