@王孟飞 Hi!
感觉不能不算温度,其他solver计算发散原因很多也是温度。可能是计算条件等等设置有问题。 共勉。
Ryo
帖子
-
-
@东岳
Thanks very much for reply.I totally understand.Please take your own time, reply me just when you are leisure ,I will try my best to solve the problem on myself .
really thanks a lot for so long. best wishes !
-
@东岳
多谢老师回复 现在没搞懂这些边是怎么添加上去的 (上面的斜线和右边圆里面的不规则四面体)sorry 刚上手这个软件 。
然后我简化的画了网格 还有之前的问题。。这是我画的切的block
这是画的网格
sorry 实在是有点太小白了 麻烦老师了。 -
@东岳 多谢老师
这是tin文件 传到dropbox上的
https://www.dropbox.com/s/4zw6pr4f9hvy86v/12345.tin?dl=0
这是prj文件在dropbox上的
https://www.dropbox.com/s/997ohw1j55uw2z3/12345.prj?dl=0我用snappyHexMesh弄的网格数在180万左右,网格少点没事,感谢老师啦Thanks♪(・ω・)ノ
-
@regina Hi!
openfoam不能直接进入密度场,密度是由其他物理条件(p,u,t...etc)计算出来的,我也想直接设置密度😭。。 我是通过调节初始p,u,t来调节初始的密度。sorry,不知道帮到你了没有。。
另外你知道我这网格为啥会有这问题吗? 然后我把这网格用fluentToFoam了下发现报错
之前用gmesh这样gmshToFoam都没问题可以转。。
-
@东岳
又来麻烦老师了。之前用snappyHexMesh做的网格感觉不好现在想换用icem cfd来做,弄了好几天发现喷口旁边座位阻碍物的圆柱的网格有大瑕疵(表面的都很好),找了很多视频里面都没有找到该怎么去掉圆柱里面这些不需要的网格。
另外icem cfd做好的网格怎么导入openfoam和paraview现在也没找出来方法。 请老师给点指示。
🙏🙏
-
@东岳
懂了,多谢老师。 -
@东岳
sorry 😂
先跑一遍rho:把data放到paraview里面选择rho然后点击play
先跑一遍p在调节到rho:把data放到paraview里面先选择p然后点击play在从p调节到rho
想说的意思可能就是第一遍play显示的数据图像和play完第一遍后切换到其他性质(比如从密度切换到压强,压强切换到密度)后在切换回来显示的不一样。一样的data为什么会显示的不一样呢? 问题解释的可能有点傻,请见谅。。
-
@东岳 Hi!
又要来麻烦老师了🙏之前的涡的存在问题已经解决。原因是因为压力边界条件设置问题,还有发现k和epsilon之前按照公式算的是10的5次方级别的数字 但是我把他调节成0.5也能算而且精度更准,这个还不知道什么原因。。
现在(其实从之前)就有个关于paraview的问题,把data放到paraview里面显示rho跑第一遍的colour legend和先显示p跑一遍在切换到rho显示的colour legend有些许的不同。
这是显示rho跑第一遍的图 colour legend只显示到0.23
这是先跑完一遍p在切换到rho, colour legend就可以显示到0.06
求老师给点指示
-
@李东岳
老师好!发现openfoam是不能直接进入密度场的因为openfoam用的是kinematic viscasity.fluent用的是动力粘度。
所以感觉还是得调节p,之前的压力边界条件我设置的是outlet为0.2大气压,inlet为zerogradient。现在调换后inlet为0.2大气压,outlet为zerogradient,initial为1个大气压。然后按照
更改fvscheme后达到预期的冲击波外的区域密度场都1左右,但是发现冲击波前面的涡很微弱。
这是实验得到的图像。冲击波前面有很明显的蓝色的涡。
这是openfoam得到的图像,冲击波前面基本没有涡
-
@李东岳 感谢老师回复 🙏
Mac上还是没有找到什么原因wmake出错,但是在虚拟机(Linux Mint)上在按照openfoam wiki上添加温度的教程编译成功了。
发现 在createfields.H里加Oobject::MUST_READ,IObject::AUTO_WRITE,和在/systym/controlDict里面加
效果一样 都只是根据初始p,U,粘度等来计算密度,不能直接读取0文件夹里面的rho文件。。。
这是0文件夹里面的rho文件 虽然设置的是1但是计算后在paraview上显示是0.23
怎么才能跟fluent一样直接调节初始场密度呢。
麻烦老师在看下🙏 -
@李东岳 谢谢 回复。🙏
Make/option里面本来就有这些码。 -
@ryo 不是wmke是 wmake,刚才手误
-
@李东岳 李老师,现在想重新编译时按照http://openfoamwiki.net/index.php/How_to_add_temperature_to_icoFoam。 这个教程想练一遍,发现wmake的时候出现错误
/opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::fileFormats::STARCDCore::STARCDCore()' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::triSurface(Foam::fileName const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::fileFormats::STARCDCore::starFileName(Foam::fileName const&, Foam::fileFormats::STARCDCore::fileExt)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `typeinfo for Foam::OBJstream' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::vtk::legacy::contentNames' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so: undefined reference to `Foam::reduce(Foam::Vector2D<double>&, Foam::sumOp<Foam::Vector2D<double> > const&, int, int)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so: undefined reference to `Foam::OBJstream::~OBJstream()' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so: undefined reference to `Foam::UPstream::freePstreamCommunicator(int)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::geometricSurfacePatch::geometricSurfacePatch(Foam::word const&, int, Foam::word const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::triSurface()' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so: undefined reference to `Foam::UPstream::finishedRequest(int)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::scalePoints(double)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::xferPoints()' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::DimensionedField<double, Foam::triSurfacePointGeoMesh>::typeName' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::fileFormats::STARCDCore::writePoints(Foam::Ostream&, Foam::Field<Foam::Vector<double> > const&, double)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::xferFaces()' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::OBJstream::write(Foam::Vector<double> const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::fileFormats::NASCore::parseNASCoord(Foam::string const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::triSurface(Foam::fileName const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::fileFormats::STARCDCore::writeHeader(Foam::Ostream&, Foam::fileFormats::STARCDCore::fileHeader)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so: undefined reference to `Foam::UPstream::abort()' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::vtk::legacy::fileHeader(Foam::vtk::formatter&, std::string const&, std::string const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::DimensionedField<double, Foam::triSurfaceGeoMesh>::typeName' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::subsetMesh(Foam::List<bool> const&, Foam::List<int>&, Foam::List<int>&) const' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so: undefined reference to `Foam::OBJstream::write(Foam::face const&, Foam::UList<Foam::Vector<double> > const&, bool)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::vtk::outputOptions::legacy(bool)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::canRead(Foam::fileName const&, bool)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::fileFormats::STARCDCore::readPoints(Foam::IFstream&, Foam::Field<Foam::Vector<double> >&, Foam::List<int>&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so: undefined reference to `Foam::UPstream::resetRequests(int)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so: undefined reference to `Foam::UPstream::allocatePstreamCommunicator(int, int)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::edgeOwner() const' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so: undefined reference to `Foam::OBJstream::OBJstream(Foam::fileName const&, Foam::IOstream::streamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::OBJstream::write(Foam::UList<Foam::face> const&, Foam::Field<Foam::Vector<double> > const&, bool)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::triSurface(Foam::List<Foam::labelledTri> const&, Foam::List<Foam::geometricSurfacePatch> const&, Foam::Field<Foam::Vector<double> > const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so: undefined reference to `Foam::UPstream::init(int&, char**&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::geometricSurfacePatch::geometricSurfacePatch()' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::UPstream::allToAll(Foam::UList<int> const&, Foam::UList<int>&, int)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::fileFormats::STARCDCore::readHeader(Foam::IFstream&, Foam::fileFormats::STARCDCore::fileHeader)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so: undefined reference to `Foam::UIPstream::UIPstream(int, Foam::PstreamBuffers&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::~triSurface()' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so: undefined reference to `Foam::UIPstream::UIPstream(Foam::UPstream::commsTypes, int, Foam::DynamicList<char, 0u, 2u, 1u>&, int&, int, int, bool, Foam::IOstream::streamFormat, Foam::IOstream::versionNumber)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so: undefined reference to `Foam::sumReduce(double&, int&, int, int)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so: undefined reference to `Foam::reduce(double&, Foam::minOp<double> const&, int, int)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::operator=(Foam::triSurface const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `typeinfo for Foam::vtk::formatter' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::sortedEdgeFaces() const' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::vtk::legacy::dataTypeNames' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::coordSet::coordSet(Foam::word const&, Foam::word const&, Foam::List<Foam::Vector<double> > const&, Foam::List<double> const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::triSurface(Foam::List<Foam::labelledTri> const&, Foam::Field<Foam::Vector<double> > const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::triSurface(Foam::triSurface const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::triSurface(Foam::List<Foam::labelledTri>&, Foam::List<Foam::geometricSurfacePatch> const&, Foam::Field<Foam::Vector<double> >&, bool)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so: undefined reference to `Foam::UPstream::addValidParOptions(Foam::HashTable<Foam::string, Foam::word, Foam::string::hash>&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so: undefined reference to `Foam::UPstream::exit(int)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::vtk::newFormatter(std::ostream&, Foam::vtk::formatType, unsigned int)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::vtkUnstructuredReader::vtkUnstructuredReader(Foam::objectRegistry const&, Foam::ISstream&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::operator==(Foam::geometricSurfacePatch const&, Foam::geometricSurfacePatch const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::~triSurface()' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so: undefined reference to `Foam::UPstream::waitRequest(int)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::OBJstream::write(Foam::UList<Foam::edge> const&, Foam::UList<Foam::Vector<double> > const&, bool)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::write(Foam::fileName const&, bool) const' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `typeinfo for Foam::triSurface' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::movePoints(Foam::Field<Foam::Vector<double> > const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::DimensionedField<int, Foam::triSurfaceGeoMesh>::typeName' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::triSurface(Foam::triSurface const&)' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::markZones(Foam::List<bool> const&, Foam::List<int>&) const' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::fileFormats::NASCore::NASCore()' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::writeStats(Foam::Ostream&) const' /opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so: undefined reference to `Foam::triSurface::clearOut()' collect2: error: ld returned 1 exit status make: *** [/opt/OpenFOAM/OpenFOAM-v1706/platforms/linux64GccDPInt32Opt/bin/my_icoFoam] Error 1 sh-4.2#
我在想是不是用mac的原因于是 我又在虚拟机上(linux mint)上试了下,直接告诉我wmke command can not found
。。不知道时怎搞的了。。能帮忙看下哪里出错了吗。
🙏 -
赞👍
-
@李东岳
感谢回复🙏现在所在的这个研究室在做用独创的激光CT法观测从冲击波管里面喷出的冲击波密度场。 所以我现在想用OpenFOAM作为CFD工具模拟出冲击波的密度场,然后再和真实实验中的图像数据做对比。
sonicfoam里面计算出的结果没发显示密度,在网上找了个代表密度函数的代码放到controldict里面后可以显示密度了但是不能直接在0文件夹里面调节初始密度场。
这是放在controlDict里面的代码
现在把Oobject::MUST_READ,IObject::AUTO_WRITE加到createFields.H里面后,计算时仍然不读取0文件夹里面的密度边界条件和初始密度场。。
想问还需要编译什么才能直接调节初始场的密度。
麻烦老师啦🙏 -
@李东岳
李老师,现在发现openfoam Mac版的applications文件夹好像只存在于docker模拟的虚拟机里面在Mac上找不到。用vim在docker状态下找到createfields.H文件了,用vim打开后发现里面已经有一个rho的场存在,代码和您写的是一样的。
是不是要像速度场那样 加上IOobject::MUST_READ,IObject::AUTO_WRITE这些代码才行,现在还没有完全理解这些代码的含义。比如 "Reading field U\n" << endl里面的这个n和endl是什么意思。。网上找了很久也没有发现答案。希望老师能解答一下🙏 -
@李东岳 在 新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题 中说:
volScalar
感谢回复
这个代码的意思是修改求解器重新建立一个可单独计算密度的场吗,如果是的话 还需不需要在ControlDic里加rho function。
然后代码是不是要放在 applications/solvers/compressible/sonicFoam/createFields.H里面?不知道是不是我用的Mac系统,找了一下午找不到createFields.H这个文件。。applications文件夹也没有找到。这些文件是不是隐藏在docker里面,怎么打开这些隐藏文件?
麻烦老师了🙏Ryo
-
@李东岳 感谢老师之前的解答现在又有问题想请教一下。
现在把层流模型换成RAS KomegaSST乱流模型后结果也顺利出来了,研究目的是观察冲击波密度场变化,于是在controldict里加上了密度function,为了想观察冲击波和重播前面的涡流更清晰,想把初始场密度调成1kg/立方米,但是密度好像是根据粘度和初始压力等算出来的 不能调初始场的密度(修改0文件夹里的rho文件 结果还是没有变化)。想问下怎么调节初始密度场。
-
@李东岳
谢谢 李老师 有点激动真的快哭了。。 -
感谢李老师回复!
用snappyHexMesh画六面体网格后发现问题解决了!!
但是还有个问题为什么画的网格感觉好多小的瑕疵。。。。而且这还是完全没有细化也没有添加layers的情况。。
还想请老师帮忙看下snappyHexMeshDic。
这个是snappyHexMeshDic:
https://www.dropbox.com/s/ehr4vknk6injnvr/snappyHexMeshDict?dl=0这个是case
https://www.dropbox.com/s/xzhhygrywtj3g2r/1.zip?dl=0Ryo
-
@李东岳
谢谢李老师。还是跟之前一样的错误。。tube里面的气体不往前面流动。
这个是把网格换成六面体的case
sonicFoam
https://www.dropbox.com/s/bb0a0lmzb67h8o1/sonicFoam 3.zip?dl=0rhoCentralFoam
https://www.dropbox.com/s/m5ayc8xkdd9ffi4/rhoCentralFoam.zip?dl=0Ryo
-
@李东岳 在 新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题 中说:
Allrun
李老师,
感谢回复🙏
发的文件夹里面的Allrun,Allclean文件是之前tutorial里复制粘贴过来的,忘了给删掉所以不能用,我用的是Gmesh进行网格划分已经划分过了不需要再用blockMesh了,
另外算这个例子的时候感觉运算量没那么大就没有分cpu去算,所以没有设置decomposeParDict。我现在已经给您加上decomposerParDict文件了如果您想用的话改一下里面的cpu个数就行了,如果不用的话直接在终端输入sonicFoam应该就ok。
另外,我用的版本是openFoam Plus的mac版的,如果用什么格式不对的话,按照tutorial里的复制一下报错的地方应该就行。
下面是case的dropbox链接,
这个是sonicFoam https://www.dropbox.com/s/2t2rc8k3vnl9fqp/sonicFoam.zip?dl=0这个是rhoCentralFoam
https://www.dropbox.com/s/vzgr1r84fvxk1ts/rhoCentralFoam.zip?dl=0这两个例子离散格式和用的求解器不一样,这些求解器和离散格式 的意思还没有完全搞懂。。不知道是不是这里出的问题。求老师给看一下,什么样的离散格式和求解器才适合这个例子。
Ryo
-
@李东岳 https://pan.baidu.com/s/1kVd1wl5
Thanks! -
@李东岳 感谢回复🙏 这个是tube的mesh https://pan.baidu.com/s/1miBVoeO
这个tube只是为了简便练习下用的 实际想做有个小的3mm长的inlet然后测冲击波从tube里刚喷出那段时间的密度计测,这个是模型的mesh https://pan.baidu.com/s/1cLIYzO谢谢李老师
-
@李东岳 直径3mm长30mm的tube 用Gmesh 细化到0.1mm的网格 谢谢李老师!
图片地址)
-
-
用paraview显示的速度只在inlet附近变化 其他部分不变化。求指点下🙏
/Users/Air/Desktop/屏幕快照 2017-10-17 上午11.52.10.png
-
键盘按键不一样按错了 没有高亮代码。抱歉。
-
谢谢李老师回复🙏
把p换成waveTransmissive的形式结果paraview还是空气不往前流动(只有inlet附近有速度tube其他地方没有速度变化)。
可能是fvscheme或者fvsolution里面设置出错。自己试了不下于100遍了。还是不行,可以帮忙检查下吗。。🙏fvscheme如下
ddtSchemes { default Euler; } gradSchemes { default Gauss linear; } divSchemes { default none; div(phi,U) Gauss limitedLinear 1; div(phi,e) Gauss limitedLinear 1; div(phi,K) Gauss limitedLinear 1; div(phiv,p) Gauss limitedLinear 1; div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; }
fvsolution 如下
solvers { "(p|rho)" { solver PCG; preconditioner DIC; tolerance 1e-6; relTol 0.01; } "(p|rho)Final" { $p; relTol 0; } "(U|e|k|nuTilda)" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-6; relTol 0.01; } "(U|e|k|nuTilda)Final" { $U; relTol 0; } } PIMPLE { momentumPredictor yes; nOuterCorrectors 3; nCorrectors 1; nNonOrthogonalCorrectors 0; pMinFactor 0.5; pMaxFactor 2.0; } }
comtroldic如下
application rhoPimpleFoam; startFrom latestTime; startTime 0; stopAt endTime; endTime 5e-6; deltaT 1e-7; writeControl timeStep; writeInterval 1; purgeWrite 0; writeFormat binary; writePrecision 6; //was 6 writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable yes; }
-
现在为了简化 想用无粘度而且取消紊流来算。 fvscheme 和fvsolutions用的tutorials 里面的sonic foam里shocktube的例子 但是算出来速度变化不随着时间推进而往前推进 不知道是不是时间步写错了(圆管直径3mm 网格用Gmesh 细化到0.1mm 速度600 时间步按公式算的1e-7)。
或者是离散设置或者求解器里设置错了。 希望能得到指导下。 真的不知道怎么办了。。万分感谢🙏 -
在网上找了很久没有发现有关的解决方法。所以才来请大家能给点指点意见。
现在想用openFOAM模拟冲击波管喷出的低马赫数冲击波的密度计测。
边界条件和其他的文件基本copy的tutorial里的nacaAirfoil,关于U文件夹里的internalfield的值是什么意思?然后如果用supersonicfreestream该怎么设定
p的inlet和outlet该怎么设定(如果用waveTransmissive)
这几项需要注意什么请指教下,万分感谢! -
snappyHexMesh为何怎么划分 还是会出现不均匀的错误网格?。快疯了 求解答下 !
这个是snappyHexMeshDic
castellatedMesh true; // make basic mesh ? snap true; // decide to snap back to surface ? addLayers true; // decide to add viscous layers ? geometry // Load in STL files here { inlet.stl {type triSurfaceMesh; name inlet;} outlet.stl {type triSurfaceMesh; name outlet;} part1.stl {type triSurfaceMesh; name part1;} part2.stl {type triSurfaceMesh; name part2;} volume.stl {type triSurfaceMesh; name volume;} }; castellatedMeshControls { maxLocalCells 1000000; //max cells per CPU core maxGlobalCells 2000000; //max cells to use before mesh deletion step minRefinementCells 0; //was 0 - zero means no bad cells are allowed during refinement stages maxLoadUnbalance 0.1; nCellsBetweenLevels 1; // expansion factor between each high & low refinement zone // Explicit feature edge refinement // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ features // taken from STL from each .eMesh file created by "SurfaceFeatureExtract" command ( {file "inlet.eMesh"; level 0;} {file "outlet.eMesh"; level 0;} {file "part1.eMesh"; level 0;} {file "part2.eMesh"; level 0;} ); // Surface based refinement // ~~~~~~~~~~~~~~~~~~~~~~~~ refinementSurfaces // Surface-wise min and max refinement level { inlet {level (0 0);} outlet {level (0 0);} part1 {level (0 0);} part2 {level (0 0);} } resolveFeatureAngle 80; // Resolve sharp angles // Default 30 refinementRegions // In descending levels of fine-ness {} // was ((0.001 4) (0.003 3) (0.01 2)) locationInMesh (0.01 0 0); //to decide which side of mesh to keep ** allowFreeStandingZoneFaces true; } // Settings for the snapping. snapControls { nSmoothPatch 3; tolerance 2.0; nSolveIter 30; nRelaxIter 5; nFeatureSnapIter 10; // default is 10 // New settings from openfoam 2.2 onwards for SHMesh implicitFeatureSnap false; // default is false - detects without doing surfaceFeatureExtract explicitFeatureSnap true; // default is true multiRegionFeatureSnap false; // deafault is false - detects features between multiple surfaces } addLayersControls //add the PATCH names from inside the STL file so STLpatchName_insideSTLName { relativeSizes false; // was true layers { } expansionRatio 1.3; finalLayerThickness 0.00016; //was 0.00016 minThickness 0.00008; //was 0.00008 nGrow 0; // was 1 // Advanced settings featureAngle 80; // was 70 //- When not to extrude surface. 0 is flat, 90 is right angle. nRelaxIter 3; //- Max# of snapping relaxation iter. Should stop before upon reaching a correct mesh. nSmoothSurfaceNormals 1; nSmoothNormals 3; nSmoothThickness 10; maxFaceThicknessRatio 0.5; maxThicknessToMedialRatio 0.3; thickness to medial distance is large minMedianAxisAngle 130; nBufferCellsNoExtrude 0; nLayerIter 50; } meshQualityControls { maxNonOrtho 65; maxBoundarySkewness 20; maxInternalSkewness 4; maxConcave 80; minFlatness 0.5; minVol 1e-13; minTetQuality 1e-9; minArea -1; minTwist 0.02; minDeterminant 0.001; minFaceWeight 0.02; minVolRatio 0.01; minTriangleTwist -1; // Advanced nSmoothScale 4; errorReduction 0.75; } // Advanced debug 0; mergeTolerance 1E-6;
-
@xpqiu 感谢回复!
现在把inlet,outlet和本体分开转换成stl文件 然后snappyHexMesh了一下
圆柱是r=18mm h=20mm inlet尺寸是r=1.5mm,h=3mm这样够不够大?现在想按您说的把空气区域和喷口区域网格如何变的密集?该添加哪些代码。。 求指导一下
这个是我现在的snappyHexMeshDicFoamFile
{
version 2.0;
format ascii;
class dictionary;
object snappyHexMeshDict;
}castellatedMesh true; // make basic mesh ?
snap true; // decide to snap back to surface ?
addLayers true; // decide to add viscous layers ?geometry // Load in STL files here
{
inlet.stl {type triSurfaceMesh; name inlet;}
outlet.stl {type triSurfaceMesh; name outlet;}
wall.stl {type triSurfaceMesh; name wall;}
volume.stl {type triSurfaceMesh; name volume;}
refinementBox {type searchableBox; min (-0.03 -0.03 -0.03); max ( 0.03 0.3 0.3);}
};castellatedMeshControls
{
maxLocalCells 1000000; //max cells per CPU core
maxGlobalCells 2000000; //max cells to use before mesh deletion step
minRefinementCells 10; //was 0 - zero means no bad cells are allowed during refinement stages
maxLoadUnbalance 0.10;
nCellsBetweenLevels 1; // expansion factor between each high & low refinement zone// Explicit feature edge refinement // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ features // taken from STL from each .eMesh file created by "SurfaceFeatureExtract" command ( {file "inlet.eMesh"; level 2;} {file "outlet.eMesh"; level 2;} {file "wall.eMesh"; level 2;} ); // Surface based refinement // ~~~~~~~~~~~~~~~~~~~~~~~~ refinementSurfaces // Surface-wise min and max refinement level { inlet {level (0 0);}
outlet {level (0 0);}
wall {level (3 3);}
}resolveFeatureAngle 80; // Resolve sharp angles // Default 30 refinementRegions // In descending levels of fine-ness {volume {mode distance; levels ((0.0006 3) (0.002 2) (0.01 1));}} // was ((0.001 4) (0.003 3) (0.01 2)) locationInMesh (0.01 0 0); //to decide which side of mesh to keep ** allowFreeStandingZoneFaces true;
}
// Settings for the snapping.
snapControls
{
nSmoothPatch 3;
tolerance 4.0;
nSolveIter 30;
nRelaxIter 5;
nFeatureSnapIter 15; // default is 10// New settings from openfoam 2.2 onwards for SHMesh
implicitFeatureSnap false; // default is false - detects without doing surfaceFeatureExtract
explicitFeatureSnap true; // default is true
multiRegionFeatureSnap false; // deafault is false - detects features between multiple surfaces}
// Settings for the layer addition.
addLayersControls //add the PATCH names from inside the STL file so STLpatchName_insideSTLName
{
relativeSizes false; // was true
layers
{
wall
{nSurfaceLayers 3;} // was 3
}expansionRatio 1.3; finalLayerThickness 0.00016; //was 0.00016 minThickness 0.00008; //was 0.00008 nGrow 0; // was 1 // Advanced settings featureAngle 80; // was 70 //- When not to extrude surface. 0 is flat, 90 is right angle. nRelaxIter 3; //- Max# of snapping relaxation iter. Should stop before upon reaching a correct mesh. nSmoothSurfaceNormals 1; // Number of smoothing iterations of surface normals nSmoothNormals 3; // Number of smoothing iterations of interior mesh movement direction nSmoothThickness 10; // Smooth layer thickness over surface patches maxFaceThicknessRatio 0.5; // Stop layer growth on highly warped cells maxThicknessToMedialRatio 0.3; // Reduce layer growth where ratio thickness to medial distance is large minMedianAxisAngle 130; // Angle used to pick up medial axis points nBufferCellsNoExtrude 0; // Create buffer region for new layer terminations nLayerIter 50; // Overall max number of layer addition iterations
}
// Generic mesh quality settings. At any undoable phase these determine
// where to undo.
meshQualityControls
{
maxNonOrtho 65;
maxBoundarySkewness 20;
maxInternalSkewness 4;
maxConcave 80;
minFlatness 0.5;
minVol 1e-13;
minTetQuality 1e-9;
minArea -1;
minTwist 0.02;
minDeterminant 0.001;
minFaceWeight 0.02;
minVolRatio 0.01;
minTriangleTwist -1;// Advanced nSmoothScale 4; errorReduction 0.75;
}
// Advanced
debug 0;
// Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this.
mergeTolerance 1E-6;// ************************************************************************* //
-
@xpqiu 感谢 回复!真的很感谢
学openfoam学的太纠结了。。感觉从建模到网格划分都一团糊 我把我想做的模拟说一下吧希望您能给点指导意见。。想用一个冲击波管发生冲击波然后从一个单一孔喷出,模拟喷出的气体观察在喷出口的气体,并不想模拟在管道内的流动。
所以在CAD建模的时候要把气体喷出后的空气区域也放在模型里吗,如果是这样的话inlet是管道的起始位置outlet是空气区域的尾部吗?
这个是前辈用fluent做出来的葱两个孔喷出的
现在做了一个有3mm长的管道和一个18mm半径20mm长的圆柱,圆柱用来表示从管道喷出的空气区域。
-
@xpqiu 感谢回复!
是按照例题的步骤来的 加了overwrite。
应该是snappyHexMeshDic里面编辑出错了,例题里原来的模型有两个inlet,我现在这个只有一个。想问下是怎么指定哪个面是inlet哪个面是outlet的? -
@xpqiu 非常感谢这么短时间就回复
现在已经能在paraview上显示了 但是只显示blockmesh时设定的区域 不现实modle。。 例题的话可以正常显示。
是不是边界没有设定好。。尝试很久也没有调好
这个是blockmeshdicmodle的尺寸是底面半径18mm 长10mm
在虚拟机上的时候提示这种错误
-
OpenFoam 新手,现在想用一个有一个孔的模型模拟马赫数=2冲击波,mesh想用snappyHexMesh来做 ,modle的stl file也做好了。 把网上下载的例题里的模型换掉,blockMesh了一下很正常 但是用paraFoam显示的时候按apply就闪退
按照例题snappyHexMesh后 checkMesh也正常 在paraview上也显示不出来提示也是一样的问题
0文件夹里的p的25行到39行如下
twoPhaseEulerFoam算水流
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
13th OpenFOAM Workshop 2018
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
新手求问冲击波管喷出的低马赫数supersonic的 边界条件问题
snappyHexMesh为何怎么划分 还是会出现不均匀的错误网格?。快疯了
求助 把snappyHexMesh例题里的modle换了,网格划分都正常checkMesh也正常 为什么在paraview上显示不出来
求助 把snappyHexMesh例题里的modle换了,网格划分都正常checkMesh也正常 为什么在paraview上显示不出来
求助 把snappyHexMesh例题里的modle换了,网格划分都正常checkMesh也正常 为什么在paraview上显示不出来
求助 把snappyHexMesh例题里的modle换了,网格划分都正常checkMesh也正常 为什么在paraview上显示不出来
求助 把snappyHexMesh例题里的modle换了,网格划分都正常checkMesh也正常 为什么在paraview上显示不出来