Skip to content

OpenFOAM

OpenFOAM交流区

5.3k 主题 31.7k 帖子
  • icoFoam求解器解析中问题。

    9
    9 帖子
    11k 浏览
    winsway_zeroW

    @李东岳 李老师,您好。volScalarField rAU(1.0/UEqn.A());这个重理论上分析应该是矢量才对,但是细节上的操作确实做成了体标量场。

    template<class Type> Foam::tmp<Foam::volScalarField> Foam::fvMatrix<Type>::A() const { tmp<volScalarField> tAphi ( volScalarField::New ( "A("+psi_.name()+')', psi_.mesh(), dimensions_/psi_.dimensions()/dimVol, extrapolatedCalculatedFvPatchScalarField::typeName ) ); tAphi.ref().primitiveFieldRef() = D()/psi_.mesh().V(); tAphi.ref().correctBoundaryConditions(); return tAphi; }

    $ A=\frac{A_p}{\Delta V}$
    在计算系数Diag的过程中,将边界对主对角线的系数进行了平均更新:

    template<class Type> Foam::tmp<Foam::scalarField> Foam::fvMatrix<Type>::D() const { tmp<scalarField> tdiag(new scalarField(diag())); //这里进行了平均处理并修正了主对角线系数。 addCmptAvBoundaryDiag(tdiag.ref()); return tdiag; }

    为什么这样操作呢?这样会使得系数矩阵不一样了!

  • pairCollision中,A和B分别指网格还是粒子?

    5
    5 帖子
    4k 浏览
    zheZ

    @bestucan 抱歉回复的晚了,已经很感谢您的解答了,帮我捋清了很多了。我按着您的这个思路走了一遍,大概明白了我之前给出的的确是A和B都是网格名称。而同时,在分别中也代表着其中包含的粒子a和b,也就是您说的也可以理解为A 和B 也是粒子。

    我的理解是A 和B 是有相关的两个cells,而最后的

    evaluatePair(*pA_ptr, *pB_ptr);

    是建立两个网格之间(包括网格里所有粒子)的一种配对机制,不知道对不对?

    // Loop over the other Parcels in cell A (aO) forAll(cellOccupancy[realCelli], aO) { pB_ptr = cellOccupancy[realCelli][aO]; // Do not double-evaluate, compare pointers, arbitrary // order if (pB_ptr > pA_ptr) { evaluatePair(*pA_ptr, *pB_ptr); } }

    在之后的loop里,对于相同cell里的粒子相对配对,也就是说把一个粒子单拎出来a,然后其它的所有粒子相当于a0(而这个其实与之前B网格的指示相同而以)。这样理解不知道对不对?

    最后一点儿避免两次被征用,所以有了一个对比。

    知道您肯定也花时间翻了一遍了,实在是感谢!

    如果有其他朋友一起讨论,感激不尽。

  • 3 帖子
    3k 浏览
    V

    @OF初学者周 这个是最后sample操作时候的报错,求解器的报错在 log.multiphaseEulerFoam里边。
    我修改了求解器为multiphaseEulerFoam, phase properties type basicMultiphaseSystem, 提示需要定义alpha.water, 添加后还需要定义fvSchemes,可能是我添加有误,操作完成后还出现如下报错:
    我也来蹲🙈一个大佬:papa:

    Courant Number mean: 0.0001514815028686309 max: 0.01324964389123762 deltaT = 0.002398081534772182 Time = 0.00239808 PIMPLE: Iteration 1 #0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::sigFpe::sigHandler(int) at ??:? #2 ? in "/lib/x86_64-linux-gnu/libc.so.6" #3 Foam::MULES::limitSum(Foam::UPtrList<Foam::Field<double> const> const&, Foam::UPtrList<Foam::Field<double> >&, Foam::HashSet<int, Foam::Hash<int> > const&) at ??:? #4 void Foam::MULES::limitSum<Foam::PtrList<Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> > >(Foam::PtrList<Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> > const&, Foam::PtrList<Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> >&, Foam::HashSet<int, Foam::Hash<int> > const&) at ??:? #5 Foam::phaseSystem::solve(Foam::PtrList<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&, Foam::PtrList<Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> > const&) at ??:? #6 ? in "/home/veen/Disk/OpenFOAM/OpenFOAM-8/platforms/linux64GccDPInt32Opt/bin/multiphaseEulerFoam" #7 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" #8 ? in "/home/veen/Disk/OpenFOAM/OpenFOAM-8/platforms/linux64GccDPInt32Opt/bin/multiphaseEulerFoam" Floating point exception (core dumped)
  • 3 帖子
    2k 浏览
    strive_DUTS

    @李东岳 谢谢李老师!这是调用函数模板的一种形式吧。此问题已解决!但关于autoCreatek函数的实现功能还是不太明白:mihu:

  • 3 帖子
    3k 浏览
    J

    @cccrrryyy 嗯呢,已经明白了~

  • 1 帖子
    833 浏览

    一般的openFOAM算例文件,时间步文件下就是场数据,而且场数据和网格点一般多,然而mutiRegions问题时间步文件下是region名称,而且场数据和region保持一致,这样导入的话,tecplot绘图会出现如下怪异场!微信图片_20201230134855.png

  • 如何在paraView中画出这样的图

    3
    3 帖子
    2k 浏览

    感谢感谢,成功了

  • WSL2安装OpenFOAM

    10
    10 帖子
    9k 浏览
    bestucanB

    wsl是win模拟linux的api,就像wine一样。wsl2就是个虚拟机,不过经过微软优化,没其他虚拟机那么嗝应人。

    如果是升级失败,系统里应该有还原点,还原一下更新前的系统状态就好,不会擦除其他个人数据。

  • 13 帖子
    10k 浏览
    李东岳

    @队长别开枪 大佬大佬 感谢分享!!

  • 后处理新定义一个物理量问题

    3
    3 帖子
    3k 浏览
    孟豪龙

    谢谢老师的回复,老师提供了一个可供一试的办法。这里给出一个使用 Python programmable filter 后处理的办法,粘贴在这,供参考。使用时需要VTK格式
    29a52e6c-72e1-4861-b38c-6733d4ea7b35-image.png

  • 添加湍流模型遇到问题(重发)

    7
    7 帖子
    8k 浏览
    R

    李老师您好,请问这个问题解决了吗?我也遇到类似的问题,就是只改湍流模型的名字,在编译的时候也出现了一些error

  • fsiFoam中的固体求解器

    7
    7 帖子
    6k 浏览

    @Stan同学 别邮箱请教了,发布在论坛估计能更快得到解答,祝好

  • rhoSimpleFoam求解器算例

    3
    3 帖子
    4k 浏览
    李东岳

    非常感谢!我更新了下方程33:xiexie:

    方程22是严谨的情况下的方程,但是22并不能用,因为$A^{n+2}$未知,所以还是要把方程22参考方程14那样线性化一下。就是方程23

  • 5 帖子
    5k 浏览
    C

    @yhdthu 谢谢!

  • 3 帖子
    3k 浏览
    hurricane007H

    @刘雄国 哈哈哈好没事,反正看得懂的。嗯应该是进程。
    MPI或者OpenMP并不影响这个问题,反正都是两边交流信息,所以其实影响这个问题的是第二个。如果离散相分数很低,考虑单向耦合,或者二向耦合(连续相->离散相,离散相->离散相),那么可以把离散相和连续相分开,因为只需要把所有的连续相的流动汇总,并加给离散相就好了。
    如果是四向耦合,是不是大概这样:

    如果在每个时间步骤,用一个进程把所有的流场信息都集中起来供其他颗粒跟踪的进程去访问,并且还需要把所有的离散相信息汇总给连续相,那么通信量太大了。 即使把每个进程跟踪的颗粒都加上label,只定点访问某些进程的信息,似乎通信量也还挺大问题。 如果把流场的作为主进程,跟踪颗粒的作为slave进程,如果这个master/slave比是定的,那么也是之前的那个效率问题。
  • 自定义求解器运行时报错

    2
    2 帖子
    2k 浏览
    bestucanB

    信息太少,没法判断。可能性太多。像这个cfd online提供了这么多信息,依然是自己排查出来的。

    信息少就没法定位错误。可是都贴也太多。所以“知道提供什么信息”本身就是一件比较有挑战性的事情。然后现在好多问题是,了解的足够了就不会问了,了解的不足够又不知道怎么问,加油:huahua:

  • DPMFoam中如何设定初始流场中的颗粒浓度?

    5
    5 帖子
    5k 浏览

    前辈,麻烦问一下,您的问题解决了吗?我刚接触这块知识,也是不会设置颗粒初始位置。(已知初始浓度)不知您有什么好的解决办法?

  • 用pimpleFOAM做圆柱的涡激振动遇到收敛性问题

    12
    12 帖子
    10k 浏览

    @Fu 是的,大兄弟。我其他文件中改参数了,但forceCoeffs中忘改了,都改后已经可以算了。谢谢哈!

  • 5 帖子
    5k 浏览
    C

    感谢分享!

  • foamDataToFluent问题

    1
    1 帖子
    1k 浏览
    S

    请问foamDataToFluent如何用来转换组分量 比如CO2 H2O等转换 U P等都没问题 但是species fluent一直读不出来
    https://github.com/OpenFOAM/OpenFOAM-2.4.x/blob/master/applications/utilities/postProcessing/dataConversion/foamDataToFluent/fluentUnitNumbers.txt