当前位置: 首页>編程日記>正文

## 2019-8-30 光滑粒子流体力学开源软件(Dual)sphysics使用中遇到的一些问题1

## 2019-8-30 光滑粒子流体力学开源软件(Dual)sphysics使用中遇到的一些问题1

2019-8-30 光滑粒子流体力学开源软件(Dual)sphysics使用中遇到的一些问题1

#写在前面

第一篇博客。本来我没有写博客的习惯的,开始写博客的目的很简单,怕以后忘记。不如趁着刚把一些问题解决之后马上记录下来。当然,如果有人看能帮到遇到同样问题的伙伴那就跟好了。学习过各类用于科学计算的开源软件(Openfoam之类)的小伙伴们都知道,此类软件有多么的麻烦,不仅仅是配置文件,甚至不同版本同样的选项配置起来都会有差别。解决起来很是头疼,guide能大致给你提供解决思路。但是老实说帮助有限,OF倒算好的,问题多架不住用的人多,大部分问题网上都能找到解决方法。这里因为科研方向,主要针对的是Dualsphysics和Sphysics。前者是可以在GPU上运行,后者不行。用一个团队的作品,但是功能上有巨大的差别,这里不提。懂得都懂,不懂得可以看guide。因为用的人少,遇到问题真的自己解决。曾经也试着在官网的forum中求助,大多石沉大海。

再简单介绍一下我自己,某东南沿海高校博士生在读,博1(马上博2了)。目前论文:0(哭,都给我哭。嘛不过我们学校第一年要上一整年的课,而且方向也近2个月才定下来)。计算机能力:极弱,还是短期大概2 3个月强化的结果。那么就开始吧,顺便这个系列能写多久我也不晓得。

另外,如果有小伙伴对相同的问题有更好的解决方法,也请联系我。

1.Sphysics的使用问题

这个软件结构很简单。具体可以参考https://blog.csdn.net/shewei1977/article/details/85480601。
简单的说就是首先编译生成Sphysicsgen2D/3D,运行(该软件用于工况配置和生成下一步主程序Sphysics2D/3D的makfile)然后,通过刚才生成的makefile生成主程序,第一步中生成的各种其他文件作为这个主程序的input文件,然后运行/输出结果。

很显然,上述步骤可以通过一个bat文件一步到位。该文件位于/run_directort/case中。很简单吧,但是,这一切都是你环境变量搭好的前提下。很遗憾,我试了一晚上依然没搭好环境。问了组里的别的师兄,都是说没遇到过(估计是前人解决了,后面的人都没在意)。在这里插入图片描述
以上是用过单行执行bat文件的结果,有可能是缺库。但是百度了相关问题并没有解决。

一个很蠢的解决方案
相信很多和我一样的没什么计算机基础的小伙伴,最起码都知道ivf,vs什么的,也不喜欢用那些黑乎乎的cmd命令行。那么就想办法绕开nmake,用vs来编译。首先我们在vs中新建fortran项目并添加现有项sphysicsgen2D.f,release。得到exe文件,运行。输出配置参数得到一系列文件在这里插入图片描述
其中makefile文件就是我们需要的,右键随便什么文本编辑器打开。在这里插入图片描述
可以发现makefile的作用只是告诉编译器需要哪些源文件,那么我们手动将这些文件找出来,新建一个vs项目并将这些文件包括进去
在这里插入图片描述
生成。这样就得到了主程序。还记得在运行sphysicsgen2D中得到的一堆文件吗,将他们打包与新生成的sphysics2D.exe放入同一个文件夹,运行即可
在这里插入图片描述

2.Dualsphysics的restart问题

这是通过命令行的方式实现的,我们先看看help文件中是怎么写的
在这里插入图片描述
如果按着这么来-partbegin:begin[10] %xxxx%。那么恭喜你,前面算的部分他会重新算一遍。
再看看官方算例中是怎么写的。
set olddiroutdata=%diroutdata%
set dirout=%name%_restart_out
set diroutdata=%dirout%\data

rem “redirout” is created to store results of restart simulation

if exist %dirout% rd /s /q %dirout%
mkdir %dirout%
if not “%ERRORLEVEL%” == “0” goto fail
mkdir %diroutdata%

rem CODES are executed according the selected parameters of execution in this testcase

rem Executes GenCase4 to create initial files for simulation.
%gencase% %name%_Def %dirout%/%name% -save:all
if not “%ERRORLEVEL%” == “0” goto fail

rem Executes DualSPHysics to simulate the last 3 seconds.
%dualsphysicscpu% %dirout%/%name% %dirout% -dirdataout data -svres -partbegin:100 %olddiroutdata%
if not “%ERRORLEVEL%” == “0” goto fail

发现这跟help里的写法不一样啊kora(无能狂怒) 。总之,这才是正确的写法。但是有时候一些配置是无法从case_def通过gencase生成得到的(???不信? 下面我会举例子),也就是说必须手动更改最终的xml,这种情况下当然就不能在restart前重新生成case了。那很简单啊,注释掉就好了,你可以去试试,会报错:找不到part。解决方法是将restart那一行上面的都注释掉,保留3个set,手动新建相关文件夹,并将原来的%name%_out中%name%.xml和%name%.bi4文件拷到新的%name%_restart_out中才可运行。

3.Dualsphysics中两相流LiquidGas代码中Floating的配置

主要是float的初始速度
首先看看xmlguide
在这里插入图片描述
如果你这么配,恭喜你,算的都废了。实际float的速度全是0.单项流代码这么配没问题。
这个问题当时快把我逼成暴躁老哥了,去官网论坛,发邮件全都没人回。
直到,我看到了这么一段。
两相流版本
单项流版本
surprise,mother fxxker???????
没错,单项流叫linearvelini和angularvelini。两相流中叫velini和omegaini。。。??????why??????这才是两相流版本的正确配置方法。但是,不能在_def中配,我怀疑是gencase并不认识这个参数(linearvelini和angularvelini倒是认识)。因此只能生成xml之后手动添加。这就是我说的,有些配置不能通过gencase生成。。。。。

最后,这个或者这一系列文章主要是写给自己看的。当然有帮到别的小伙伴最好,写的不详细请见谅,我这里一些解决方法也并非最佳方案,比如环境变量的设置我就暂时搞不定,如果有会设置的麻烦请教我。


https://www.fengoutiyan.com/post/15607.html

相关文章:

  • 流体力学仿真软件
  • 流体力学仿真软件哪个好
  • 流体仿真软件fluent
  • 流体力学仿真
  • 颗粒流体力学
  • 流体力学软件
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機