Skip to content
  • DPM粒子运动到中间不再向后运动

    Fluent
    1
    0 赞同
    1 帖子
    127 浏览
    S

    使用DPM计算,粒子运动到中间某个位置就不再继续往后运动,中间并没有壁面。有大佬知道怎么回事吗?虚心求教!
    117d89b9-90b2-4563-a9d0-f492f4fcde20-5cf03298abc6cff2aaff57c23a7cd6ca.png

  • fluent做三维底吹可压缩气体

    Fluent
    1
    0 赞同
    1 帖子
    145 浏览

    91dd3661-b2f2-42ff-8ee0-667296957aaa-image.png
    在计算过程中,每一次迭代之后连续性方程的残差呈现递增的趋势,请教一下这是为什么?

  • FPVFoam

    OpenFOAM
    1
    0 赞同
    1 帖子
    135 浏览
    L

    请问各位大佬,OpenFOAM v1912中怎么植入FPVFoam(新手)

  • icem中模型重合面网格划分问题

    Meshy
    1
    0 赞同
    1 帖子
    228 浏览
    T

    5160c343e688aab7072eb941eb2018c.png 24abf6ce8abfafd917ae49b6408928a.png
    建立得物理模型中有面重合情况 ,划分网格时候该重合区域划分不了网格怎么处理

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

    Fluent
    1
    0 赞同
    1 帖子
    158 浏览
    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;

    }

  • 限制区域内提高重叠网格质量

    OpenFOAM
    1
    0 赞同
    1 帖子
    140 浏览
    C

    各位好,我现在设想一个工况是在水深非常浅,同时水深与船舶吃水非常小(大约1.2)的情况,在设置重叠部分也即船舶部分网格时,blockmesh需要画的比较小,底部与船舶底部很接近,这就造成了snappyhexmesh后船舶下部的网格质量很差,请问有没有什么办法或者思路来改善网格质量呢,如有相似问题的朋友欢迎讨论,谢谢!261e3ad06976a58e400a1fc15243dc1.png 78823dc1464db8ab58735e54dcd17d2.png efa88c4c50ed4254badb8dbc8db3089.png

  • interFoam如何初始化流场

    OpenFOAM
    1
    0 赞同
    1 帖子
    194 浏览

    用interFoam计算带自由液面的倒虹吸,参考其他人边界设置,往往是入口给定流量(流速),出口给定水位(alpha.air)。这种设置方式如果通过手动设置(setFields)往往因初始流场不好极易发散,有没有办法能跟Fluent一样通过混合初始化得到一个初始场保证计算能够进行下去。(openFoam好像可以通过potentialFoam初始化场,但是这个对于interFoam也可以使用吗)79538e5a-b907-420a-8777-c7a72dd6011f-image.png

  • 0 赞同
    1 帖子
    142 浏览

    请问大佬们知道怎么用starccm实现传送带(带凸起)的运动吗。
    目前能想到的就只有给凸起物一个个建模设置好运动路径,但应该有更简单的方法吧。提前感谢各位大佬。
    0ae2d1b3-d3ba-4382-8cac-a470e7232877-image.png

  • 0 赞同
    1 帖子
    133 浏览
    L

    前一段时间搭建了流化床求解器(燃烧、密相颗粒流动求解器,下称newSolver),目前需要对这个求解器进行冷态颗粒流动的验证(常温,关闭化学反应、燃烧和传热)。通过验证发现颗粒轴向速度和实验吻合较好,但是气相压降差距很大,而使用MPPICFoam计算相同的case可以得到准确的压降(稳定时newSolver比MPPICFoam压降高两倍多)。

    为了找到问题所在,于是关闭颗粒计算纯气体流动的速度和压降,发现newSolver和MPPICFoam计算得到的气相速度相同但是压降有一定差距。因此猜测是气相压力方程计算的问题。

    由于newSolver是基于coalChemistryFoam流体方程加入alpha的修改的,纯气体流动情况下alpha=1。为了排除我修改方程所导致的错误,因此用coalChemistryFoam(关闭化学反应、燃烧和传热)计算纯气体流动看能否得到准确的结果。结果发现压降仍然有差距。

    难道coalChemisryFoam变密度的求解器无法计算常密度的情况吗?coalChemistryFoam是反应所导致的密度变化,关闭化学反应按理说密度应该是不变的,为何计算结果与实际差距大?常温纯气体流动压降都不准,加上化学反应燃烧后压降会准吗?

    MPPICFoam压力方程

    fvScalarMatrix pEqn ( fvm::laplacian(alphacf*rAUcf, p) == fvc::ddt(alphac) + fvc::div(alphacf*phiHbyA) );

    coalChemistryFoam压力方程

    fvScalarMatrix pEqn ( fvm::ddt(psi, p) + fvc::div(phiHbyA) - fvm::laplacian(rhorAUf, p) == coalParcels.Srho() + fvOptions(psi, p, rho.name()) );

    纯气体流动验证的几何模型和网格如下图所示
    图片1.png

    请各位大佬指教!

  • 使用swak4foam中的funkySetFields

    OpenFOAM
    1
    0 赞同
    1 帖子
    191 浏览
    Z

    基于interFoam求解器,添加了标量场S,在模拟了一段时间后,得到了两相流体分布,再使用swak4foam中的funkySetFields,把标量赋值到alpha1流体中,另一相不考虑,设置如下:
    b8c93503-efa8-4a6d-9b18-7852dcb2d072-image.png
    运行后报错:
    15a01aae-36ee-42e4-8223-4fc9eba68dd9-image.png
    请问各位大神该如何解决呢?

  • 0 赞同
    1 帖子
    152 浏览

    大家好!想请教各位在tecplot中对三维模型进行Mirror操作后,使用slices提取出一个面,可以观察到提取出来的面云图都还是对称的,但画出来的流线为什么不是对称的了?原计算案例对称轴所在的面本身使用的也是symmetryPlane型边界条件。
    QQ图片20240407133422.png
    $DR1%SP2~_Y1_A{0ZO8ZND8.png
    TUG[A$3E@2}8%R85`77T]3K.png

  • OpenFOAM边界可以设置既旋转又射流吗

    OpenFOAM
    1
    0 赞同
    1 帖子
    157 浏览
    1

    最近在做一个模型,有一个面既按照一定的角速度旋转,同时又有流体射出,但是不知道该怎么设置这个面的边界条件,有大佬知道吗

  • 关于ICEM尖角网格

    OpenFOAM
    1
    0 赞同
    1 帖子
    173 浏览
    C

    这么做尖角网格是不是看起来不太对呀,这类尖角网格有没有什么好一点的做法呢?
    虽然看着网格质量还行,但总感觉不太对
    Snipaste_2024-04-03_21-48-45.png

  • OpenFOAM中二维轴对称模型的一些问题

    OpenFOAM
    1
    0 赞同
    1 帖子
    139 浏览
    L

    在轴对称模型中,可以只计算两个方向(轴向和径向)的量吗,在写方程时,如何不计算第三个方向的偏导数,可以像volTensorField一样定义一个Tensor2D的体积场吗

  • fluent模拟压力旋流喷雾

    Fluent
    1
    0 赞同
    1 帖子
    231 浏览
    T

    首先在稳态条件下模拟一个风流场,然后利用dpm模型模拟压力旋流喷雾过程,试跑的过程有的方向能喷, 有的方向喷不出来是为什么,新手求帮助ebb4c6e2-270a-497e-a003-fb08d398d4bd-image.png
    z两个方向可以喷,但是换到-y方向时候就喷不出来

  • 多相流液体铺展行为

    OpenFOAM
    1
    0 赞同
    1 帖子
    161 浏览

    我在做单根不锈钢丝切割液滴的模拟,发现液滴触碰到固体后,会快速铺展覆盖固体,这明显与实际情况不符:
    dc6202db-0a4b-4bee-8dfd-d8db7a8ba44e-image.png
    9f370870-b0be-4f65-9075-57dd718ce5cd-image.png
    求解器用的v2212的MPPICInterFOAM,固体壁面的边界条件为:U noSlip;P fixedFluxPressure;Alpha constantAlphaContactAngle,接触角为155疏水界面

    文献和实际可视化拍摄中,液体不会有如此快速的铺展,还请各位指点一二
    c833896f-62e9-4161-ae81-1b226e382477-image.png

  • 关于fluent overset 的一些后处理问题

    Fluent
    1
    0 赞同
    1 帖子
    227 浏览

    论坛里面有没有高手遇到overset 的后处理问题:
    问题描述:fluent overset 方法计算翼型表面转拟,但是在显示翼型面上切应力时,数据分布呈现锯齿状分布。
    下图1是overset cell type.
    9de13be5-dde7-4e34-ba97-95264d78b5b8-image.png
    图2是翼型表面的切应力
    5b284d9b-e3bc-45a4-b92e-d749155a96c3-image.png

  • 0 赞同
    1 帖子
    188 浏览
    1

    报错的自定义边界如下,如图所示报错为:“‘incompressible’ does not name a type“,恳请论坛内各位老师解惑
    /---------------------------------------------------------------------------\

    \ / F ield OpenFOAM: The Open Source CFD Toolbox \ / O peration \ / A nd Copyright (C) 2011 OpenFOAM Foundation \/ M anipulation

    License
    This file is part of OpenFOAM.

    OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.

    *---------------------------------------------------------------------------*/

    #include "adjointOutletPressureHeatFvPatchScalarField.H"
    #include "addToRunTimeSelectionTable.H"
    #include "fvPatchMapper.H"
    #include "volFields.H"
    #include "surfaceFields.H"
    #include "RASModel.H"

    // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

    Foam::adjointOutletPressureHeatFvPatchScalarField::
    adjointOutletPressureHeatFvPatchScalarField
    (
    const fvPatch& p,
    const DimensionedField<scalar, volMesh>& iF
    )
    :
    fixedValueFvPatchScalarField(p, iF)
    {}

    Foam::adjointOutletPressureHeatFvPatchScalarField::
    adjointOutletPressureHeatFvPatchScalarField
    (
    const adjointOutletPressureHeatFvPatchScalarField& ptf,
    const fvPatch& p,
    const DimensionedField<scalar, volMesh>& iF,
    const fvPatchFieldMapper& mapper
    )
    :
    fixedValueFvPatchScalarField(ptf, p, iF, mapper)
    {}

    Foam::adjointOutletPressureHeatFvPatchScalarField::
    adjointOutletPressureHeatFvPatchScalarField
    (
    const fvPatch& p,
    const DimensionedField<scalar, volMesh>& iF,
    const dictionary& dict
    )
    :
    fixedValueFvPatchScalarField(p, iF)
    {
    fvPatchField<scalar>::operator=
    (
    scalarField("value", dict, p.size())
    );
    }

    Foam::adjointOutletPressureHeatFvPatchScalarField::
    adjointOutletPressureHeatFvPatchScalarField
    (
    const adjointOutletPressureHeatFvPatchScalarField& tppsf,
    const DimensionedField<scalar, volMesh>& iF
    )
    :
    fixedValueFvPatchScalarField(tppsf, iF)
    {}

    // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //

    void Foam::adjointOutletPressureHeatFvPatchScalarField::updateCoeffs()
    {
    if (updated())
    {
    return;
    }

    const fvsPatchField<scalar>& phip = patch().lookupPatchField<surfaceScalarField, scalar>("phi"); const fvsPatchField<scalar>& phiap = patch().lookupPatchField<surfaceScalarField, scalar>("phib"); const fvPatchField<vector>& Uap = patch().lookupPatchField<volVectorField, vector>("Ub"); const dictionary& transportProperties = db().lookupObject<IOdictionary>("transportProperties"); dimensionedScalar nu(transportProperties.lookup("nu")); scalarField Up_n = phip / patch().magSf();//Primal scalarField Uap_n = phiap / patch().magSf();//Adjoint const incompressible::RASModel& rasModel = db().lookupObject<Foam::incompressible::RASModel>("RASProperties"); scalarField nueff = rasModel.nuEff()().boundaryField()[patch().index()]; const scalarField& deltainv = patch().deltaCoeffs(); // distance^(-1) scalarField Uaneigh_n = (Uap.patchInternalField() & patch().nf()); //operator ==((Up_n * Uap_n) +2*nu.value()*deltainv*(Uap_n-Uaneigh_n));

    operator ==((Up_n * Uap_n) +2*nueff.value()deltainv(Uap_n-Uaneigh_n));

    fixedValueFvPatchScalarField::updateCoeffs();

    }

    void Foam::adjointOutletPressureHeatFvPatchScalarField::write(Ostream& os) const
    {
    fvPatchScalarField::write(os);
    writeEntry("value", os);
    }

    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

    namespace Foam
    {
    makePatchTypeField
    (
    fvPatchScalarField,
    adjointOutletPressureHeatFvPatchScalarField
    );
    incompressible
    }
    f0c155d4-8455-4c68-be20-3db9aa49d6b6-image.png

  • icoFoam源代码解读

    OpenFOAM
    1
    0 赞同
    1 帖子
    249 浏览

    各位老师,大佬晚上好!openfoam小白最近在阅读icoFoam源代码时遇到了一点问题,根据李老师对icoFoam求解器的理论推导,它的压力泊松方程如下:7.png
    99.png
    在源代码中首先定义了phiHbyA,应该是HbyA的面通量:
    1.png
    但是,它的压力泊松方程里面的用的是phiHbyA而不是HbyA,这里我不是很能理解:
    3.png
    另外按理说piso算法每算一次U、P,按理来说应该要更新HbyA一次:
    8.png
    但是源代码里面更新的好像是phiHbyA(速度变了,且是个通量)
    在我的理解里,这段代码每次进行piso算法时,HbyA似乎没变,毕竟它是从之前的速度方程那里得到的?(对UEqn.A这个函数不太了解)
    9.png
    但是piso算完以后的U用的又是和理论推导的结果一致,用的是HbyA,而不是phiHbyA:
    6.png
    恳请各位老师,大佬解惑,谢谢各位!

  • 旋转动网格集合面不对应

    OpenFOAM
    1
    0 赞同
    1 帖子
    163 浏览

    eb812a45-a24b-435b-a01c-246db6db8afc-250c0b40b51035fb0e43108730efee4.jpg
    请教各位:
    我想如图设置一个扇形的计算域,中间一段圆环设置为旋转动网格,其中涉及a-a' 与b-b'两个对应面之间设置的问题,因为整个过程中,两组对应面并不是时刻交互的,某些面区域会作为边界,这种情况应该如何设置呢?谢谢