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

小

小考拉

@小考拉
关于
帖子
95
主题
42
群组
0
粉丝
3
关注
0

帖子

最新

  • 如何输出某一个面上所有网格节点的坐标
    小 小考拉

    各位前辈好!

    我将网格导入到openfoam中,但只想输出某一个面上所有网格点的坐标信息,有没有类似程序可以参考呢?

    麻烦哪位热心前人指点一下!:chitang:


  • 在centos7上安装openfoam3.0.0
    小 小考拉

    各位前辈好!

    最近我想在工作站的centos7系统上安装of3,我根据wiki上的教程进行了操作(链接如下:链接文本)

    其中的一步是“Now let's get and unpack Boost and fix the version in makeCGAL”(中文含义是:“现在让我们获取并解压 Boost 并修复 makeCGAL 中的版本:”)
    给出的参考命令是

    wget "https://raw.github.com/wyldckat/scripts4OpenFOAM3rdParty/master/getBoost"
    

    但运行发现无法 无法下载,可能是这个链接已经没有了,这也导致后面在编译openfoam的时候报错

    g++ -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=64 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3  -DNoRepository -ftemplate-depth-100 -I/home/win/OpenFOAM/ThirdParty-3.0.0/platforms/linux64Gcc/boost_1_55_0/include -I/home/win/OpenFOAM/OpenFOAM-3.0.0/src/meshTools/lnInclude -I/home/win/OpenFOAM/OpenFOAM-3.0.0/src/parallel/decompose/decompositionMethods/lnInclude -I/home/win/OpenFOAM/OpenFOAM-3.0.0/src/renumber/renumberMethods/lnInclude -IlnInclude -I. -I/home/win/OpenFOAM/OpenFOAM-3.0.0/src/OpenFOAM/lnInclude -I/home/win/OpenFOAM/OpenFOAM-3.0.0/src/OSspecific/POSIX/lnInclude   -fPIC -c SloanRenumber.C -o /home/win/OpenFOAM/OpenFOAM-3.0.0/platforms/linux64GccDPInt64Opt/src/renumber/SloanRenumber/SloanRenumber.o
    SloanRenumber.C:34:28: 致命错误:boost/config.hpp:没有那个文件或目录
     #include <boost/config.hpp>
                                ^
    编译中断。
    make: *** [/home/win/OpenFOAM/OpenFOAM-3.0.0/platforms/linux64GccDPInt64Opt/src/renumber/SloanRenumber/SloanRenumber.o] 错误 1
    

    请问一下大家,如何才能下载合适版本的boost用于of3的安装呢?

    谢谢


  • 论文投稿的期刊选择
    小 小考拉

    各位前辈好!

    自己目前基于OpenFOAM开发了一个简单的程序,做的是气液两相流模拟,目前论文投稿 想投到Physics of Fluids 或者 international journal of multiphase flow杂志

    我上网查看发现Physics of Fluids是个比较老牌的杂志,之前口碑很好,但最近几年有点水的趋势,年发文量2000+;international journal of multiphase flow中的论文都很扎实,但感觉圈子比较小,年发文量才200+,目前的影响力没有POF高。所以目前自己也比较纠结投到哪个杂志

    有没有哪位前辈能发表一下自己的经验或者看法呢?

    感激不尽!


  • const的使用
    小 小考拉

    感谢二位前辈的回复,我差不多理解这个意思了:xinxin:


  • const的使用
    小 小考拉

    最近看到了一点OF关于 函数声明的代码 ,对于const的使用存在疑惑:

    inline scalar k() const { return k_; }
    
    inline const vectorField& Smom() const { return Smom_; }
    

    为什么第一行代码应用了一个const,第二行代码用了两个const呢?

    第二行代码中的两个const分别表示什么意思呢?

    麻烦老师们能够指点一下:chitang:


  • paraview如何将气泡信息映射到壁面
    小 小考拉

    各位前辈好!

    如图1 ,我现在流场中有一些气泡,想将每一个气泡的内部压力映射到底部壁面上,效果图如图2,我应该如何在paraview中进行映射/投影呢?我自己试验了pointDatasetInterpolator好像不太对(图3)。

    哪位前辈能够指点一个思路呢?谢谢

    图1:
    1111111111.png

    图2:

    2222222.png

    图3:
    3333333.png


  • 如何在程序中累加不同时刻流场
    小 小考拉

    @tens 谢谢您的热心指点,虽然还有点晕,我后面仔细体会体会:quwan: ,再次感谢:xinxin:


  • 如何在程序中累加不同时刻流场
    小 小考拉

    @tens 感谢您的回答,我试验了一下,确实可以累加流场,但我非常疑惑,在主程序中添加

    c_flow_total += c_flow;  // 展开为c_flow_total = c_flow_total + c_flow;
    

    每一次循环,主程序怎么知道等式右边的c_flow_total代表了上一个时间步的值呢?为什么替换为c_flow_total.oldTime()就不可以了呢?

    希望您能够在解答一下,谢谢:xinxin:


  • 如何在程序中累加不同时刻流场
    小 小考拉

    各位前辈好!

    我有一个volScalarField场c_flow,现在想累加每一个时刻的c_flow流场,在一段时间后输出c_flow_total

    我写的程序如下:
    初始化设置c_flow_total流场为0

    Info<< "Initializing c_flow_total" << endl;
    
    volScalarField c_flow_total
    (
        IOobject
        (
            "c_flow_total",
            mesh.time().timeName(),
            mesh,
            IOobject::READ_IF_PRESENT,    
            IOobject::NO_WRITE
        ),
       mesh,
       dimensionedScalar("c_flow_total", dimensionSet(0,1,-1,0,0,0,0), 0)
    );
    

    然后在主程序中计算c_flow和c_flow_total

    Info<< "Calculating erosion index c_flow\n" << endl;
    
    volScalarField c_flow
    (
        IOobject
        (
            "c_flow",
            runTime.timeName(),
            mesh,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
       8.97pos(p_rgh - pSat)*sqrt(mag(p_rgh - pSat)/rho1)
    );
    
    Info<< "Calculating c_flow_total" << endl;
    
    volScalarField c_flow_total
    (
        IOobject
        (
            "c_flow_total",
            runTime.timeName(),
            mesh,
            IOobject::READ_IF_PRESENT,
            IOobject::AUTO_WRITE
        ),
       c_flow_total.oldTime() + c_flow  
    );
    

    程序编译没有问题,但用interPhaseChangeFoam计算case报错如下:

    Calculating c_flow_total
    #0  Foam::error::printStack(Foam::Ostream&) at ??:?
    #1  Foam::sigSegv::sigHandler(int) at ??:?
    #2  ? in "/lib64/libc.so.6"
    #3  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::storeOldTimes() const at ??:?
    #4  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::oldTime() const at ??:?
    #5  ? at ??:?
    #6  __libc_start_main in "/lib64/libc.so.6"
    #7  ? at ??:?
    Segmentation fault
    

    我感觉可能是oldTime()的使用出现了问题,请问一下大家,在程序中 累加每一个时刻的流场有什么好的办法呢?


  • 如何输出特定patch的流场
    小 小考拉

    @小考拉 自问自答来解决这个问题。

    首先定义一个全为0的流场命名为c_flow

    然后利用下面的命令

    c_flow.boundaryField()[patchID] = c_flow_origin.boundaryField()[patchID]
    

    最后输出c_flow流场即可:chitang:


  • 如何输出特定patch的流场
    小 小考拉

    各位前辈好!我现在有一个volScalarField类型的流场c_flow_origin,但我只想在程序中输出名字为“BOTTOM”的这个面的流场

    代码如下:

    volScalarField c_flow_origin = 8.97*pos(0.99-alpha1)*sqrtp_rgh/rho1); //流场c_flow
    
    label patchID = mesh.boundaryMesh().findPatchID("BOTTOM"); //查找名字为BOTTOM的面ID
    
     volScalarField c_flow_BOTTOM     //输出这个面的流场
            (
                IOobject
              (
                "c_flow_BOTTOM",
                runTime.timeName(),
                mesh,
                IOobject::NO_READ,
                IOobject::AUTO_WRITE
             ),         
             c_flow_origin.boundaryField()[patchID]
            );
    

    编译发现报错:

    createFields.H:139:9: error: no matching function for call to ‘Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>::GeometricField(Foam::IOobject, Foam::fvPatchField<double>&)’
    

    根据报错分析 应该是输出的 BOTTOM面流场的 数据类型volScalarField有问题,但更改了好像也不行,请问这个问题应该如何解决呢?

    感谢


  • 如何创建一个list装符合条件的单元
    小 小考拉

    @队长别开枪 谢谢老师指点,我好好研究一下


  • 如何创建一个list装符合条件的单元
    小 小考拉

    各位前辈好!

    我现在想在interPhaseChengFoam中添加一个链表list,里面放一些符合某些条件的单元,比如要求单元蒸汽体积分数大于0.5,我应该如何操作呢?有没有哪些类似的代码 可以参考呢?:chitang:

    麻烦哪位老师指点一下

    谢谢


  • OpenFOAM中能量方程的疑问
    小 小考拉

    @tens 学到了,感谢老师的指点!:chitang:


  • OpenFOAM中能量方程的疑问
    小 小考拉

    @小考拉 继续补充,对于第二个问题,目前导热系数的确可以通过普朗特数的公式计算得到,但前提是我设置的case里面保证了thermophysicalProperties中的transport里面选择const

    具体的介绍,可以参考:https://cfd.direct/openfoam/user-guide/v6-thermophysical/

    https://www.cfd-online.com/Forums/openfoam-programming-development/172223-how-thermal-conductivity-calculated.html


  • OpenFOAM中能量方程的疑问
    小 小考拉

    @李东岳

    感谢老师的回复。

    是的,我说的就是alphaEff的单位。我目前认为单位是 kg/(ms)

    问题二中,对于导热率( thermal diffusivity)我通过查找资料,感觉可能是通过 普朗特数计算得到的吧。

    我计算之前设置了流场的普朗特数,就可以计算得到导热率了,不知道我这样的理解是否正确呢?:chigua:

    _ZKW6R19G4A%HV2H72LAEJY.png


  • OpenFOAM中能量方程的疑问
    小 小考拉

    各位老师好!

    我采用compressibleInterFoam二次开发计算了一个可压缩空化问题,目前对里面的能量方程有一点疑问。能量方程代码如下:

    fvScalarMatrix TEqn
        (
            fvm::ddt(rho, T)
          + fvm::div(rhoPhi, T)
          - fvm::laplacian(mixture.alphaEff(turbulence->mut()), T)
          + (
                fvc::div(fvc::absolute(phi, U), p)
              + fvc::ddt(rho, K) + fvc::div(rhoPhi, K)
            )
           *(
               alpha1/mixture.thermo1().Cv()
             + alpha2/mixture.thermo2().Cv()
            )
        );
    

    根据东岳老师的能量方程教程(链接:http://www.dyfluid.com/docs/energy.html ) 公式(7)和公式(21),可以得到alpha_eff 的单位应该是 kg/(ms),但通过查看of源代码可以发现alpha_eff 单位竟然可以是 kg/(ms) 还可以是 J/m/s/K。
    代码链接:https://cpp.openfoam.org/v3/a02698.html#a9648c27c51ad3b583ca3c44c7ac0d868
    https://cpp.openfoam.org/v3/a00123.html#a20f8bad2335b8c29d97af5ac7d324746

    问题一:我感觉alpha_eff 单位应该是 kg/(ms),怎么又多出来一个呢?

    问题二:通过查阅文献,发现混合热扩散系数alpha_eff 需要通过导热率k,定容比热容Cv来计算(在本例中为水和水蒸气的导热率),在of中如何计算导热率k呢?
    111111.png

    麻烦各位老师指点一下,同时请问有什么资料可以推荐参考呢?我去学习一下


  • 如何避免输出矢量时 新的值覆盖老的值
    小 小考拉

    感谢老师的指点,我自己去试一试!!:xinxin: :xinxin:


  • 如何避免输出矢量时 新的值覆盖老的值
    小 小考拉

    各位老师好!

    我想在一个自己写的类中输出一个矢量CCC,参考论坛上的代码,将下面的代码写进了类中:

        fileName name = ("coefficient");
        OFstream OS(name);
        if (Pstream::master())
        {
         
    	if(OS.opened())
             {
                 OS << runTime_.value() << tab << CCC.value() << endl << "\n";  // CCC是一个dimensionedVector
    
    	     OS << nl << endl;
    
             }
        }
    

    但计算时发现 当前时间步输出的 CCC 将 上一时间步输出的 CCC 覆盖掉了

    我现在想输出每一个时间步的CCC值,应该加哪些代码呢? 或者是 有哪些代码可以参考呢?

    麻烦哪位老师可以指点一下呢?:chigua:


  • OpenFOAM中有关类模板使用的一些疑问
    小 小考拉

    各位朋友们好!

    我最近在看lagrangian库中的solidParticle库代码,对于里面的 类模板的使用 不太懂,solidParticleCloud.C部分代码如下:

    void Foam::solidParticleCloud::move(const dimensionedVector& g)  //在solidParticleCloud类中定义一个move函数
    {
        const volScalarField& rho = mesh_.lookupObject<const volScalarField>("rho");
        const volVectorField& U = mesh_.lookupObject<const volVectorField>("U");
        const volScalarField& nu = mesh_.lookupObject<const volScalarField>("nu");
    
        interpolationCellPoint<scalar> rhoInterp(rho);
        interpolationCellPoint<vector> UInterp(U);
        interpolationCellPoint<scalar> nuInterp(nu);
    
        solidParticle::trackingData
            td(*this, rhoInterp, UInterp, nuInterp, g.value());   //在solidParticleCloud类下面定义了一个trackingData类的对象td??
        Cloud<solidParticle>::move(td, mesh_.time().deltaTValue());
    }
    

    代码中的这句话:

    solidParticle::trackingData
            td(*this, rhoInterp, UInterp, nuInterp, g.value());  
    

    目前自己很困惑,为什么在solidParticleCloud类的函数move中可以 定义一个 solidParticle类中的 trackingData类的 对象td呢?

    自己查找了solidParticleCloud.H文件发现 solidParticleCloud的基类是 Cloud<solidParticle>类,这个Cloud<solidParticle>类 中solidParticle是实参,对Cloud <ParticleType> 类模板进行了实例化.

    我怀疑难道是因为Cloud<solidParticle>类中的 实参是solidParticle,所以其子类solidParticleCloud中函数 就可以调用/定义 solidParticle类中的trackingData类?

    请哪位高手能够指点一下呢?感激不尽:xinxin:

  • 登录

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