Skip to content
  • omegaWall边界中的值是什么意思

    OpenFOAM
    2
    0 赞同
    2 帖子
    5k 浏览
    X

    omegaWallFunction 这个边界条件继承自 fixedValueFvPatchField类,其构造函数如下
    0_1460115657665_upload-47e7e05b-ec74-4419-8ff9-d55730af0dfa

    这个构造函数里,需要注意两点,第一是传给基类fixedValueFvPatchField的参数,也就是 fixedValueFvPatchField<scalar>(p, iF, dict),这一句里,基类会通过参数iF 去读取 类似 value uniform 2; 这样的语句,来讲当前边界的值初始化为 2。不过,看下面最后一句,this->operator==(patchInterField());,这里将当前边界的值重新赋值为临近边界的第一层网格中心的值。

    所以,综合起来,value uniform 2; 这一句不起实际作用。

  • buoyantPressure在openfoam230中没有了?

    OpenFOAM
    2
    0 赞同
    2 帖子
    5k 浏览
    W

    @搬运工不好当 说:

    OpenFOAM2.3.0中有buoyantPressure这个边界条件吗?没有的话要用哪个边界条件来代替 buoyantPressure呢?

    OpenFOAM 2.3.0 中没有buoyantPressure,替代的边界条件为fixedFluxPressure,详细可参考cfd-online的这个帖子。

  • 请问今年的培训有安排了吗

    已移动 CFD彩虹条
    3
    0 赞同
    3 帖子
    4k 浏览
    S

    @东岳 我报名,一位老师两名学生,稍后把报名表发给你

  • 有人知道这两个的区别吗?

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

    上面那个是欧拉框架下的偏导数,U为关于x,y,z,t的函数
    下面这个是拉格朗日下对速度的倒数,其中U为t的函数

    http://dyfluid.com/docs/theory.html
    公式35 and 36

  • 传统工科生喜欢上了CFD

    CFD彩虹条
    4
    0 赞同
    4 帖子
    7k 浏览
    D

    @ludwigzh 现在从事什么工作呀?

  • 变比热容计算

    Algorithm
    4
    0 赞同
    4 帖子
    8k 浏览
    L

    之前有点问题,最终如下
    \par $C_p$采用4次多项式分段拟合
    \begin{equation}\label{equ:NS_Cp}
    C_p(T)=a_1+a_2T+a_3T^2+a_4T^3+a_5T^4
    \end{equation}
    \par静焓
    \begin{equation}\label{equ:NS_H}
    H(T)=\int_{T_{0}}^{T_{x}}C_p(T)dT=a_1T+\frac{a_2}{2}T^2+\frac{a_3}{3}T^3+\frac{a_4}{4}T^4+\frac{a_5}{5}T^5+a_6
    \end{equation}
    \par熵
    \begin{equation}\label{equ:NS_S}
    S(T)=\int_{T_{0}}^{T_{x}}C_p(T)\frac{dT}{T}=a_1\ln{T}+a_2T+\frac{a_3}{2}T^2+\frac{a_4}{3}T^3+\frac{a_5}{4}T^4+a_7
    \end{equation}
    \par$\bullet$求解静温(已知总温和马赫数)
    \begin{equation}\label{equNSUs}
    U_s^2=2\left(H(T_{tot})-H(T_{sta})\right)
    \end{equation}
    \begin{equation}\label{equNSmach}
    Mach^2=\frac{U^2}{\gamma(T)R_gT}=\frac{U^2}{\frac{C_p(T)}{C_p(T)-R_g}R_gT}
    \end{equation}
    \par由(\ref{equ:NSmach})和(\ref{equ:NSUs})得
    \begin{equation}\label{equNSTsta}
    T_{sta}=\frac{2\left(H(T_{tot})-H(T_{sta})\right)}{Mach^2\frac{C_p(T_{sta})R_g}{C_p(T_{sta})-R_g}}
    \end{equation}
    $\bullet$求解静压(已知总温、总压和静温)
    \par由p等熵过程
    \begin{equation}
    ds = C_p(T)\frac{dT}{T} -R_g\frac{d p}{p}=0
    \end{equation}
    \par两边同时积分有
    \begin{equation}
    \int_{T_{tot}}^{T_{sta}}C_p(T)\frac{dT}{T} =\int_{p_{tot}}^{p_{sta}} R_g\frac{d p}{p}
    \end{equation}
    \par记
    \begin{equation}
    S(T_{x})=\int_{T_{0}}^{T_{x}}C_p(T)\frac{dT}{T}
    \end{equation}
    \par则
    \begin{equation}
    S(T_{sta}) - S(T_{tot}) = R_g\ln\frac{p_{sta}}{p_{tot}}
    \end{equation}
    \par那么
    \begin{equation}\label{equNS_psta}
    p_{sta}=p_{tot}e^{\left(\frac{S(T_{sta})-S(T_{tot})}{R_g}\right)}
    \end{equation}

  • SprayFoam 只喷固体该如何设置?

    OpenFOAM
    5
    0 赞同
    5 帖子
    10k 浏览
    chpjz0391C

    这几天放假没在学校,才看到回复。谢谢分享 。我研究一下。万分感谢

  • 求解压力方程中的nNonOrthCorr

    OpenFOAM
    2
    0 赞同
    2 帖子
    4k 浏览
    李东岳

    @搬运工不好当

    在对拉普拉斯项离散的时候,如果使用非正交网格会引入误差,因此需要非正交修正。所以nNonOrthCorr的作用就是消除非正交网格引入的误差。

  • 如何确定流体域某一截面的热流密度

    Fluent
    3
    0 赞同
    3 帖子
    7k 浏览
    W

    @硫酸亚铜 非常感谢~

  • MFIX-DEM的并行性能验证

    已移动 OpenFOAM
    1
    0 赞同
    1 帖子
    4k 浏览
    散漫守望2016

    Liu et al., 2016 "A Comprehensive Benchmark Suite for Simulation of Particle Laden Flows Using the Discrete Element Method with Performance Profiles from the Multiphase Flow with Interface eXchanges (MFiX) Code" 一文中对MFIX-DEM的并行能力进行了验证,采用了Weak Scaling和Strong Scaling两种评估方法,结果证明在核数达到1000左右,MFIX-DEM code的并行能力还很不错。但是注意到,在做自由堆积等的时候,文章回避了负载均衡的问题,也就是如果流化床下半部分非常密集,而上半部分非常稀疏,这是对就需要一种新的分区方式,使得每个核都能计算差不多的颗粒数。现在的MFIX好像还达不到这个功能,但我知道有人开发出来了。文章还认为,当颗粒数达到10(8),即使用1000核,每个核也有10(5)个颗粒,还是非常有挑战性的。气固两相流的计算时间主要花费在了DEM颗粒彭碰撞计算,颗粒和流体之间的数据交换,曳力的求解。
    看到文章的一点心得,和大家分享一下。

  • Latex表格自动换行

    Algorithm
    6
    0 赞同
    6 帖子
    9k 浏览
    李东岳

    谢谢各位,解决了:mihu:

  • 东岳流体“张量基础”中的疑问

    Algorithm
    15
    0 赞同
    15 帖子
    25k 浏览

    @东岳 是我搞错了,向量混合积跟微分算子不一样

  • icem蓝屏

    Meshy
    3
    0 赞同
    3 帖子
    5k 浏览
    A

    @李东岳 谢谢老师解答,之前一直出现这个问题导致每次画完网格都得要重启,我重新装下系统在试试

  • icem非结构网格如何划分block

    Meshy
    16
    0 赞同
    16 帖子
    23k 浏览
    Y

    结构化网格非结构化网格按照网格是六面体还是体面体区分好像是不完全正确的。我看一个老师讲解说,结构化和非结构化区分是文件保存格式的区分,结构化是使用索引,非结构化是把每个网格都区分出来了。我看各位大佬上面回答可能是直接讨论的四面体网格,因为我最近也在学openfoam和icem,icem可以通过自动化分成四面体非结构网格,也可以分块化成6面体网格,但是我通常画完6面体网格后,icem有可以转化成非结构网格按钮,将画好的网格转化成非结构体网格(转化后依然是6面体)。
    所以如果你要话非结构化网格也可以分块(画了6面体转化一下),如果你说的是画四面体非结构化网格分块的话,这方面知识我就不知道了

  • 前处理,进口面问题

    Meshy
    4
    0 赞同
    4 帖子
    6k 浏览
    bestucanB

    icem也有这个功能,只是我没用过,

    https://cfd-china.com/topic/6069/搅拌反应器icem结构网格划分方式/7

    Screenshot from 2024-09-28 14-40-10.png

  • 0 赞同
    3 帖子
    6k 浏览
    Q

    没,只是觉得不严谨,看的文章都说这个模型在瞬态计算中效果突出,但稳态并没有提及。。

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

    公告
    137
    0 赞同
    137 帖子
    165k 浏览
    F

    想问一下李老师这个计划还有吗!!很想要这本湍流模型:mianmo:

  • 层流模型指的是什么?

    Algorithm
    5
    0 赞同
    5 帖子
    10k 浏览
    李东岳

    @winsway_zero 有空整理一下文献,感觉发在CFD界比较合适 :chigua: 类似还有这个帖子 http://www.cfd-china.com/topic/1056/3d-or-2d-les

  • ICEM划分网格

    Meshy
    13
    0 赞同
    13 帖子
    19k 浏览
    H

    @Junren-Hou 在 ICEM划分网格 中说:

    可以试试check block,有些时候其实没有问题,就它软件自己的毛病,然后block里最后有一个check block,可以让他自己检查一下。里面有好多选项,都试试,什么check/fixed block

    回忆了一下,我的旋转区域用ICEM画的应该没有问题。出问题的应该是我画的外流场区域,一方面追求地面边界层,致使网格尺度过小,一方面为了平衡网格数量,过渡不均匀。猜测应该是外流区域的地面边界层设置导致了相关报错的产生。

  • C++11数组初始化

    Algorithm
    4
    0 赞同
    4 帖子
    7k 浏览
    R

    @wwzhao

    简单的感受了一下两种赋值方式,效率确实很大提高。

    #include <stdio.h> #include <string> #include <chrono> #include <iostream> using namespace std ; class Timer { private: // Type aliases to make accessing nested type easier using clock_t = std::chrono::high_resolution_clock; using second_t = std::chrono::duration<double, std::ratio<1> >; std::chrono::time_point<clock_t> m_beg; public: Timer() : m_beg(clock_t::now()) { } void reset() { m_beg = clock_t::now(); } double elapsed() const { return std::chrono::duration_cast<second_t>(clock_t::now() - m_beg).count(); } }; class SomethingBefore11 { private: int m_array[5]; public: SomethingBefore11() // zero the member array { // If we want the array to have values, we'll have to use assignment here m_array[0] = 1; m_array[1] = 2; m_array[2] = 3; m_array[3] = 4; m_array[4] = 5; } }; class SomethingAfter11 { private: int m_array[5]; public: SomethingAfter11(): m_array { 1, 2, 3, 4, 5 } //zero the member array { } }; int main(){ Timer tBefore11; SomethingBefore11 m_array_before11; std::cout << "Time elapsed: " << tBefore11.elapsed() << ‘n’; Timer tAfter11; SomethingAfter11 m_array_after11; std::cout << "Time elapsed: " << tAfter11.elapsed() << ‘n’; return 0; } [xx OFtutorial0_helloWorld]$ whatAboutThisGuy Time elapsed: 7.506e-06 Time elapsed: 1.47e-07 [xx OFtutorial0_helloWorld]$ whatAboutThisGuy Time elapsed: 8.664e-06 Time elapsed: 1.9e-07 [xx OFtutorial0_helloWorld]$ whatAboutThisGuy Time elapsed: 7.646e-06 Time elapsed: 1.89e-07