Skip to content
  • 多重参考系的疑问

    Algorithm
    3
    0 赞同
    3 帖子
    7k 浏览
    Z

    首先感谢李老师的热情帮助~~
    这个PPT中的第9页给出公式(1.5.9)。如果这个公式是正确的,则我的疑问就没有了,因为我原图中(4)式的右端项,第二项与第三项抵消了。但可疑的,这个公式(1.5.9)似乎并不正确。贴上来再麻烦李老师帮我看看:
    0_1502119393399_7fd74579-5b34-4c15-ac3c-1cc3aae56236-image.png

  • CFD青年成长支持计划(2022)

    公告
    87
    0 赞同
    87 帖子
    216k 浏览

    我是南京航空航天大学航空学院2022级硕士研究生吴祥清,跟随张老师链接文本从事CFD研究,本人的主要研究方向为高速出入水,初步学习商软入门CFD现在准备编程写算法。查找学习资料了解到CFD中文网以及老师,所以想申请2022CFD青年成长支持计划,我目前正在使用LS-DYNA软件进行垂直破冰仿真,开始着手发相关论文。在本科期间接触流体力学便想深入了解这个专业,也申请了这个方向的研究生,如果论文写作顺利,便会在研究生二年级申请硕博连读,为国家军事建设贡献自己的一份力量。目前在上课之余也开始着手C++入门。但是CFD学习之路道阻且长,希望可以得到老师资助来更好的学习CFD。

  • 有关紧密排布圆柱的网格绘制

    Meshy
    10
    0 赞同
    10 帖子
    11k 浏览

    @李东岳 感谢李老师,我试试看能不能画出来

  • 0 赞同
    2 帖子
    5k 浏览
    李东岳

    不是很清楚你说的那种涡脱落现象。不过用户指南中我记得有一章曾经表示,大体意思为:“如果用稳态求解器模拟比较强的非稳态问题会出现残差的震荡”。

    能否附稳态求解涡街的文献?谢谢。

  • 收藏,美国自驾指南

    CFD彩虹条
    1
    0 赞同
    1 帖子
    2k 浏览
    李东岳

    http://www.mafengwo.cn/gonglve/ziyouxing/99502.html

  • 0 赞同
    3 帖子
    4k 浏览

    上传一下我的snappyhexMeshDict文件,请各位老师帮忙看看```
    code_text

    ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 10 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { format ascii; class dictionary; object snappyHexMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #includeEtc "caseDicts/mesh/generation/snappyHexMeshDict.cfg" castellatedMesh true; snap true; addLayers true; geometry { cylinder { type triSurfaceMesh; file "cylinder.stl"; } refinementBox { type searchableBox; min (0.0 0.0 0.08); max (1.2 0.2 0.22); } }; castellatedMeshControls { maxLocalCells 200000; maxGlobalCells 5000000; minRefinementCells 10; maxLoadUnbalance 0.10; nCellsBetweenLevels 6; features ( { file "cylinder.eMesh"; level 3; } ); refinementSurfaces { cylinder { level (3 3); patchInfo { type wall; } } } refinementRegions { refinementBox { mode inside; level 1; } } insidePoint (0.4 0.1 0.15); } snapControls { nSmoothPatch 3; tolerance 2.0; nSolveIter 30; nRelaxIter 5; nFeatureSnapIter 10; explicitFeatureSnap true; implicitFeatureSnap false; multiRegionFeatureSnap false; } addLayersControls { layers { "(cylinder_stl_face<stlunit=MM>|cylinder_stl_top<stlunit=MM>)" { nSurfaceLayers 10; } } relativeSizes true; expansionRatio 1.05; finalLayerThickness 0.8; minThickness 0.5; } meshQualityControls {} writeFlags ( // scalarLevels // layerSets // layerFields ); mergeTolerance 1e-6; // ************************************************************************* //
  • OpenFOAM壁面摩擦速度

    OpenFOAM
    3
    0 赞同
    3 帖子
    3k 浏览
    S

    @东岳 我是按这个公式计算的,密度为1,那么u_tau=sqrt(tau_w),但是我发现,论文里的摩擦速度刚好是我用OF算出来的1.225倍。论文是用fluent算的,fluent里面的空气密度是1.225。我现在想不通 为什么会差这1.225倍。:jingya:

  • 关于SIMPLE循环的请教

    OpenFOAM
    7
    0 赞同
    7 帖子
    7k 浏览

    @东岳 明白了!谢谢老师

  • fluent数据处理成二维数组

    Fluent
    3
    0 赞同
    3 帖子
    5k 浏览
    N

    不知道当时的问题是否解决了,我去年做的一部分工作里面也需要相关的处理。当时采用的Matlab对导出的数据进行处理,不过在数据处理之前需要将 x,y当中一些极小的值变成0,比如10的负十几次方的值,因为这些fluent输出的值可能会对处理产生影响,然后导入程序就可以变成矩阵形式了,程序大概如下。供以后有需要的朋友们参考。

    data1 = xlsread('D:\User.....');

    % 获取X、Y坐标和密度值的向量
    X = data1(:, 1);
    Y = data1(:, 2);
    density = data1(:, 3);

    % 确定X和Y的唯一值,并按升序排列
    unique_x = unique(X);
    unique_y = unique(Y);

    % 创建行列编号映射表
    x_mapping = containers.Map(unique_x, 1:length(unique_x));
    y_mapping = containers.Map(unique_y, 1:length(unique_y));

    % 初始化矩阵
    num_rows = length(unique_y);
    num_cols = length(unique_x);
    densityMatrix1 = zeros(num_rows, num_cols);

    % 将密度值填充到矩阵中
    for i = 1:length(X)
    row = y_mapping(Y(i));
    col = x_mapping(X(i));
    densityMatrix1(row, col) = density(i);
    end

  • 用于实现吸收空气中CO的源项UDF

    Fluent
    1
    0 赞同
    1 帖子
    2k 浏览
    D

    计算域某个区域可以吸收CO,吸收的CO的量与该区域的每个网格单元本身的浓度值成正比,请问各位老师这个UDF对吗,我设置了这个之后CO浓度无变化

    #include "udf.h"

    DEFINE_SOURCE(co_absorption, c, t, dS, eqn)
    {
    real S;
    real Ci;

    Ci = C_YI(c, t, 0); // 获取CO的浓度,假设CO是第一个组分(编号为0) // 计算吸收区域吸收CO的量 S = -0.0064 * Ci; // 更新源项数组 dS[eqn] = S; return S;

    }

  • 0 赞同
    5 帖子
    8k 浏览
    肖艺

    @yfclark

  • Python

    Algorithm
    11
    1 赞同
    11 帖子
    24k 浏览
    Elibathe康E

    @arctan 非常感谢!

  • 边界条件编译问题

    OpenFOAM
    1
    0 赞同
    1 帖子
    2k 浏览
    C

    最近在研究边界条件的问题,想复制一个边界条件出来修改编译测试。参考了网上的教程,但是还是有些问题,想请教大家。

    OpenFOAM里面的边界条件有些只包括一个C文件,一个H文件,这种边界条件按照网上的教程都可以直接编译。比如fixedFluxPressure,我拷贝到新的文件夹test下,创建一个Make文件夹,在其内部创建files和options文件:
    files:

    fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C LIB = $(FOAM_USER_LIBBIN)/libUsr

    options:

    EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude\ LIB_LIBS = \ -lfiniteVolume

    编译正常。
    但是还有一部分的边界条件包含多个C文件和H文件,这种就编译不成功了。以cyclic为例,拷贝$FOAM_SRC/finiteVolume/fields/fvPatchFields/constraint/cyclic 到testcyclic文件夹,test下面生成Make文件夹,Make里面建立files和options:

    files:

    cyclic/cyclicFvPatchField.C LIB = $(FOAM_USER_LIBBIN)/libcyclicFvPatchField

    options:

    EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude\ LIB_LIBS = \ -lfiniteVolume

    执行wmake libso

    wmake libso . wmakeLnInclude: linking include files to ./lnInclude Making dependency list for source file cyclicFvPatchField.C g++ -std=c++11 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3 -DNoRepository -ftemplate-depth-100 -I/home/xc15/OpenFOAM/OpenFOAM-7/src/finiteVolume/lnInclude -IlnInclude -I. -I/home/xc15/OpenFOAM/OpenFOAM-7/src/OpenFOAM/lnInclude -I/home/xc15/OpenFOAM/OpenFOAM-7/src/OSspecific/POSIX/lnInclude -fPIC -c cyclic/cyclicFvPatchField.C -o Make/linux64GccDPInt32Opt/cyclic/cyclicFvPatchField.o cyclic/cyclicFvPatchField.C:32:1: error: redefinition of ‘Foam::cyclicFvPatchField<Type>::cyclicFvPatchField(const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&)’ Foam::cyclicFvPatchField<Type>::cyclicFvPatchField ^ In file included from cyclic/cyclicFvPatchField.H:225:0, from cyclic/cyclicFvPatchField.C:26: cyclic/cyclicFvPatchField.C:32:1: error: ‘Foam::cyclicFvPatchField<Type>::cyclicFvPatchField(const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&)’ previously declared here Foam::cyclicFvPatchField<Type>::cyclicFvPatchField ^ cyclic/cyclicFvPatchField.C:44:1: error: redefinition of ‘Foam::cyclicFvPatchField<Type>::cyclicFvPatchField(const Foam::fvPatch&, const Foam::DimensionedField<Type, Foam::volMesh>&, const Foam::dictionary&)’ Foam::cyclicFvPatchField<Type>::cyclicFvPatchField ........ make: *** [Make/linux64GccDPInt32Opt/cyclic/cyclicFvPatchField.o] Error 1

    error太长,只贴了一部分,但是基本上都是说重复定义和声明

    正确的编译方式应该是什么?:mihu:

  • OF文件读写

    OpenFOAM
    12
    0 赞同
    12 帖子
    14k 浏览
    C

    @马乔 在 OF文件读写 中说:

    #include "fvCFD.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // class proxyWriter : public regIOobject { private: scalar value_; proxyWriter(const proxyWriter&) = delete; void operator=(const proxyWriter&) = delete; public: proxyWriter(const IOobject& io, const scalar& value) : regIOobject(io), value_(value) { } virtual bool writeData(Ostream& os) const { os<<value_; return os.good(); } proxyWriter& operator++() { ++value_; return *this; } }; int main(int argc, char *argv[]) { #include "setRootCaseLists.H" #include "createTime.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // proxyWriter writer ( IOobject ( "value", runTime.timeName(), runTime, IOobject::NO_READ, IOobject::AUTO_WRITE ), 0. ); Info<< "\nStarting time loop\n" << endl; while (runTime.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; ++writer; runTime.write(); runTime.printExecutionTime(Info); } Info<< "End\n" << endl; return 0; } :chigua:

    @马乔 @Samuel-Tu 请问这个怎么用?这是重新编译一个lib然后link到controlDict吗?那怎么知道是在这一步的什么时候输出?是计算前还是计算后?

  • slover的文件附在这里了

    OpenFOAM
    1
    0 赞同
    1 帖子
    2k 浏览
    同学博

    回复: 请教个关于编译求解器时报错的问题solidificationFoam.zip :high:

  • 0 赞同
    1 帖子
    2k 浏览

    请问各位优秀的学术者,我现在已经用fluent算完了一个三维冷态的(即没进行点火燃烧)超音速燃烧仿真,现在想要去分析计算域里某一截面上燃料与空气的混合效率,但是这个 a 的值我没办法直接获取,因为这个截面上的燃料分布是不均匀的,如果用fluent里面自带的面加权平均来算的话,这个 a 的值就比实验值小很多,所以我想请教一下在fluent或者tecplot、cfd-post这样的后处理软件怎么去正确获取a的值呢?谢谢各位

    混合效率.png

  • 0 赞同
    2 帖子
    4k 浏览
    Q

    @yuan_neu 建议看看《张量分析》的相关课程
    二阶 【各向同性】的 【张量函数】 ( Dij(r) )
    只可能是上述 (6.25) 的表达形式

    所以,你首先要明白“张量”,其次再搞清楚“张量函数”的定义,然后需要理解“各向同性”的概念,最后才能明白 6.25 式是怎么推导出来的

    实际上,NS 方程的 Newton 本构关系,也是 “可以” 基于 【线性】和【各向同性】的假设直接写出来的 !

    推荐看看清华黄克智的《张量分析》教材

  • 0 赞同
    1 帖子
    2k 浏览
    H

    c7a27198-c865-41aa-bc5f-ce28c85f32d3-1728486466827.jpg

    请教各位大佬专家,立方体里边,挖掉一个圆柱体,对圆柱顶面进行切割,上半部分为流体入口边界,请问又什么好的网格划分思路吗?

    单纯立方体里挖一个圆柱能够实现,但中间多切了一条线,不知道怎么操作比较好。

    另外,有没有好的网格划分方面的教程资料推荐?

    恳请大佬们指点。

  • CFD结果渲染

    Fluent
    6
    0 赞同
    6 帖子
    8k 浏览
    huntersongH

    x3d
    用这个导出,导入到blender

  • 0 赞同
    1 帖子
    2k 浏览
    M

    需要一些大流量流量计300Nm3/h的,网上能找到的都是一些小品牌的,有没有推荐的,热式、涡街、压差都可以