圆孔区域速度为1,其它区域为0

chengan.wang
帖子
-
定义非均匀入口速度场 -
定义非均匀入口速度场inlet非均一分布
-
定义非均匀入口速度场大家好,我用blockMesh生成了一个长方体,想在某一个固体壁面上开一个圆孔作为速度入口边界条件,是否有相似的例子?
谢谢大家 -
chtMultiRegionFoam中使用snappyhexmesh划分网格导致toposet设置的规则平面不平整@李东岳 在 chtMultiRegionFoam中使用snappyhexmesh划分网格导致toposet设置的规则平面不平整 中说:
要是很接近地面,就需要局部细化网格,要不就会出现这个问题
也就是说在整个大背景内部,画一个长方体区域进行加密,并能包裹住这个椭球体,是吧?
-
chtMultiRegionFoam中使用snappyhexmesh划分网格导致toposet设置的规则平面不平整@李东岳 在 chtMultiRegionFoam中使用snappyhexmesh划分网格导致toposet设置的规则平面不平整 中说:
blockMesh细化一下就好了
那这个物体要是很接近地面呢,如果用blockMesh设置背景网格会不会太多了
-
chtMultiRegionFoam中使用snappyhexmesh划分网格导致toposet设置的规则平面不平整大家好,
我先用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程序运行出错原因,求助@黄昏晓为谁破 在 第三代涡识别方法liutex的Fortran程序运行出错原因,求助 中说:
@Vortex学习 我没用过Fortran程序计算Rortex,不过我的方法可以借鉴下,就是使用Tecplot打开Fluent结果,并导出基于节点的data文件,里面只包含xyz坐标以及UVW速度,然后我是在matlab中进行处理获得的R值以及矢量值,在替换data文件里的数值,最后再使用Tecplot打开data文件。这样可以处理较大网格量的数据,不过这个网格量得取决于Tecplot软件,我之前有个2000万的网格,Tecplot无法打开,我就很无奈了。
您好,这么多节点的UVW速度,如何在matlab里面计算速度梯度张量呢?
-
OpenFOAM libtorch tutorial step by step@李东岳 我看了您提供的PINN算例,感觉目前还没有真正跟of结合起来,是吧?只不过用了of的c++编译环境,可以这么理解么?
-
OpenFOAM libtorch tutorial step by step@李东岳 谢谢李老师
-
OpenFOAM libtorch tutorial step by step@李东岳 李老师,http://dyfluid.com/pinn.html ,#include "output.H"这个文件能补充上传么,想研究一下您的完整代码,谢谢
-
OpenFOAM libtorch tutorial step by step@李东岳 在 OpenFOAM libtorch tutorial step by step 中说:
更新gcc之后你openfoam就编译不了了。那你尝试安装老版本的libtorch吧
李老师,我用的是ubuntu18.04,Of2.4.0,您有推荐的libtorch版本么
-
数据文件格式FEPolygon转换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
整理成这样:
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
-
数据文件格式FEPolygon转换FETriangle@Prometheus10 谢谢哈,我主要目的是建立节点数据之间的关联,三角形,缩放只能是个视觉上的平面。
-
数据文件格式FEPolygon转换FETriangle用paraview或tecplot那能不能把曲面上的数据投影到一个规则的矩形平面上呢?
-
数据文件格式FEPolygon转换FETriangle大家好,
我目前用starccm做了一个仿真,数据能用tecplot导出ZONETYPE=FEPolygon形式,如何进一步转换成ZONETYPE=FETriangle?
谢谢。 -
paraview做多个切面,然后在每个面上对物理量积分大家好,目前我可以输出温度场的三维数据,比如
我想垂直于z轴做100个等间距垂直切面,在每个切面上对温度求积分并取平均值。
\begin{equation}
\int_{A} T dx dy /A
\end{equation}
然后沿着z轴画出一条温度平均值曲线。谢谢大家!
-
如何在src文件中创建标量物理filed并且调用@李东岳 非常感谢李老师,终于搞定,能输出数据了,但还需要进一步验证是否正确。差点放弃想升级新版本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();
希望对以后需要的朋友有点借鉴作用。特别感谢 @星星星星晴 不厌其烦的解答
-
如何在src文件中创建标量物理filed并且调用@李东岳 李老师,这句命令
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");
-
如何在src文件中创建标量物理filed并且调用@李东岳 李老师,还是不行
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();
-
如何在src文件中创建标量物理filed并且调用@李东岳 还是不行
lnInclude/ParticleCollector.C: In member function ‘virtual void Foam::ParticleCollector<CloudType>::postMove(Foam::ParticleCollector<CloudType>::parcelType&, Foam::label, Foam::scalar, const point&, bool&)’: lnInclude/ParticleCollector.C:746:43: error: ‘const InternalField {aka const class Foam::Field<double>}’ has no member named ‘ref’ scalar& PPC = summass.internalField().ref() [cellIp]; ^ lnInclude/ParticleCollector.C: In member function ‘virtual void Foam::ParticleCollector<CloudType>::postMove(Foam::ParticleCollector<CloudType>::parcelType&, Foam::label, Foam::scalar, const point&, bool&)’: lnInclude/ParticleCollector.C:746:43: error: ‘const InternalField {aka const class Foam::Field<double>}’ has no member named ‘ref’ scalar& PPC = summass.internalField().ref() [cellIp];