@李东岳 在 可凝气体的冷凝数值模拟 中说:
@杨英狄 在 可凝气体的冷凝数值模拟 中说:
高温水蒸气在液态水中的冷凝及流动
不太好理解。水蒸气在水里冷凝然后流动?
李老师您好,我想做高温空气或燃气从喷管流出后水蒸气遇冷凝结雾化的仿真,您有没有了解的求解器比较适用这个问题?谢谢
 C
C
			
		@李东岳 在 可凝气体的冷凝数值模拟 中说:
@杨英狄 在 可凝气体的冷凝数值模拟 中说:
高温水蒸气在液态水中的冷凝及流动
不太好理解。水蒸气在水里冷凝然后流动?
李老师您好,我想做高温空气或燃气从喷管流出后水蒸气遇冷凝结雾化的仿真,您有没有了解的求解器比较适用这个问题?谢谢
圆孔区域速度为1,其它区域为0
inlet非均一分布
大家好,我用blockMesh生成了一个长方体,想在某一个固体壁面上开一个圆孔作为速度入口边界条件,是否有相似的例子?
谢谢大家
@李东岳 在 chtMultiRegionFoam中使用snappyhexmesh划分网格导致toposet设置的规则平面不平整 中说:
要是很接近地面,就需要局部细化网格,要不就会出现这个问题
也就是说在整个大背景内部,画一个长方体区域进行加密,并能包裹住这个椭球体,是吧?
@李东岳 在 chtMultiRegionFoam中使用snappyhexmesh划分网格导致toposet设置的规则平面不平整 中说:
blockMesh细化一下就好了
那这个物体要是很接近地面呢,如果用blockMesh设置背景网格会不会太多了
大家好,
我先用blockMesh生成背景网格,椭球体在空气中,地面上方,与空气发生共轭传热,所以我进一步使用snappyhexmesh划分网格,
geometry
{
    target.stl
    {
        type        triSurfaceMesh;
        name        target;
    }    
    
};
对椭球体区域进行加密
    refinementRegions
    {
            target
            {
                mode inside;
                levels ((1E15 5));               
            }    
    }
    locationInMesh ( 39 39 59 ) ;
我设置了不同的levels ((1E15 0));   levels ((1E15 3));   levels ((1E15 5));
之后使用toposet分别定义物体和地面
    {
        name    target;
        type    cellSet;
        action  new;
        source  surfaceToCell;
        sourceInfo
        {
            file            "constant/triSurface/target.stl";
            outsidePoints   ((39 39 59));    
            includeCut      false;          
            includeInside   true;          
            includeOutside  false;           
            nearDistance    -1;              
            curvature       -100;       
        }
    }    
    {
        name    target;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        set     target;           // cellSet
    }
    {
        name    floor;
        type    cellSet;
        action  new;
        source  boxToCell;
        box     (0  0 -2)(41 41 0);
    }
    {
        name    floor;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        set     floor;
    }
 图片地址)
 图片地址)
 图片地址)
 图片地址)
 图片地址)
 图片地址)
随着level增加,网格越接近椭球体,但地面越来越不平整,该如何解决?
希望能得到帮助
@黄昏晓为谁破 在 第三代涡识别方法liutex的Fortran程序运行出错原因,求助 中说:
@Vortex学习 我没用过Fortran程序计算Rortex,不过我的方法可以借鉴下,就是使用Tecplot打开Fluent结果,并导出基于节点的data文件,里面只包含xyz坐标以及UVW速度,然后我是在matlab中进行处理获得的R值以及矢量值,在替换data文件里的数值,最后再使用Tecplot打开data文件。这样可以处理较大网格量的数据,不过这个网格量得取决于Tecplot软件,我之前有个2000万的网格,Tecplot无法打开,我就很无奈了。
您好,这么多节点的UVW速度,如何在matlab里面计算速度梯度张量呢?
@李东岳 我看了您提供的PINN算例,感觉目前还没有真正跟of结合起来,是吧?只不过用了of的c++编译环境,可以这么理解么?
@李东岳 谢谢李老师
@李东岳 李老师,http://dyfluid.com/pinn.html ,#include "output.H"这个文件能补充上传么,想研究一下您的完整代码,谢谢
@李东岳 在 OpenFOAM libtorch tutorial step by step 中说:
更新gcc之后你openfoam就编译不了了。那你尝试安装老版本的libtorch吧
李老师,我用的是ubuntu18.04,Of2.4.0,您有推荐的libtorch版本么
@李东岳 就是想把离散点数据
    -17.00000000    -59.58333206      0.00000000    302.77685547
    -17.00000000    -62.50000000      0.00000000    302.77685547
    -17.00000000    -65.41666412      0.00000000    302.77685547
    -17.00000000    -68.33333588      0.00000000    302.77685547
    -17.00000000    -71.25000000      0.00000000    302.77685547
    -17.00000000    -74.16666412      0.00000000    302.77682495
    -17.00000000    -77.08333588      0.00000000    302.77679443
    -17.00000000    -80.00000000      0.00000000    302.77664185
整理成这样:
VARIABLES = "X""Y""Z"
 Nodes=39888, Elements=78526, ZONETYPE=FETriangle
    -17.00000000    -59.58333206      0.00000000    302.77685547
    -17.00000000    -62.50000000      0.00000000    302.77685547
    -17.00000000    -65.41666412      0.00000000    302.77685547
    -17.00000000    -68.33333588      0.00000000    302.77685547
    -17.00000000    -71.25000000      0.00000000    302.77685547
    -17.00000000    -74.16666412      0.00000000    302.77682495
    -17.00000000    -77.08333588      0.00000000    302.77679443
    -17.00000000    -80.00000000      0.00000000    302.77664185
       1       2       3
       3       4       1
       5       6       2
       2       1       5
       7       8       6
       6       5       7
@Prometheus10 谢谢哈,我主要目的是建立节点数据之间的关联,三角形,缩放只能是个视觉上的平面。
用paraview或tecplot那能不能把曲面上的数据投影到一个规则的矩形平面上呢?
大家好,
我目前用starccm做了一个仿真,数据能用tecplot导出ZONETYPE=FEPolygon形式,如何进一步转换成ZONETYPE=FETriangle?
谢谢。
大家好,目前我可以输出温度场的三维数据,比如

我想垂直于z轴做100个等间距垂直切面,在每个切面上对温度求积分并取平均值。
\begin{equation}
\int_{A} T dx dy  /A
\end{equation}
然后沿着z轴画出一条温度平均值曲线。
谢谢大家!
@李东岳 非常感谢李老师,终于搞定,能输出数据了,但还需要进一步验证是否正确。差点放弃想升级新版本of。
    volScalarField& summass = const_cast<volScalarField&>(p.mesh().objectRegistry::lookupObject<volScalarField>("summass")); 
    const label cellIp = p.cell();  
    scalar& PPC = summass.internalField() [cellIp]; 
    PPC += p.nParticle()*p.mass();
希望对以后需要的朋友有点借鉴作用。特别感谢 @星星星星晴 不厌其烦的解答
@李东岳 李老师,这句命令
volScalarField& summass = p.mesh().objectRegistry::lookupObjectRef<volScalarField>("summass");
又报错了
lnInclude/ParticleCollector.C:745:71: error: ‘class Foam::objectRegistry’ has no member named ‘lookupObjectRef’
     volScalarField& summass = p.mesh().objectRegistry::lookupObjectRef<volScalarField>("summass");
@李东岳 李老师,还是不行
    const volScalarField& summass = p.mesh().objectRegistry::lookupObject<volScalarField>("summass");
    const label cellIp = p.cell();  
    summass.internalField() [cellIp] += p.nParticle()*p.mass();
编译出错
lnInclude/ParticleCollector.C:749:38: error: assignment of read-only location ‘(&(& summass)->Foam::GeometricField<Type, PatchField, GeoMesh>::internalField<double, Foam::fvPatchField, Foam::volMesh>())->Foam::Field<double>::<anonymous>.Foam::List<double>::<anonymous>.Foam::UList<T>::operator[]<double>(((Foam::label)cellIp))’
     summass.internalField() [cellIp] += p.nParticle()*p.mass();
                                      ^
lnInclude/ParticleCollector.C: In instantiation of ‘void Foam::ParticleCollector<CloudType>::postMove(Foam::ParticleCollector<CloudType>::parcelType&, Foam::label, Foam::scalar, const point&, bool&) [with CloudType = Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > >; Foam::ParticleCollector<CloudType>::parcelType = Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> >; Foam::label = int; Foam::scalar = double; Foam::point = Foam::Vector<double>]’:
parcels/derived/basicKinematicCollidingParcel/makeBasicKinematicCollidingParcelSubmodels.C:53:1:   required from here
lnInclude/ParticleCollector.C:749:38: error: assignment of read-only location ‘(&(& summass)->Foam::GeometricField<Type, PatchField, GeoMesh>::internalField<double, Foam::fvPatchField, Foam::volMesh>())->Foam::Field<double>::<anonymous>.Foam::List<double>::<anonymous>.Foam::UList<T>::operator[]<double>(((Foam::label)cellIp))’
     summass.internalField() [cellIp] += p.nParticle()*p.mass();