格子玻尔兹曼吧 关注:58贴子:32
  • 6回复贴,共1

顶盖驱动流LBM模拟

只看楼主收藏回复

LBM小白,今天看了何雅玲老师的《格子Boltzmann方法的理论及应用》的附录D,顶盖驱动流LBM模拟,我想自己运行一下。出了一些问题,网上也没搜到解决方法,我也是自己稀里糊涂的解决了,发个帖为了以后的小白们少走弯路,也为了防止我以后自己忘了。何老师是用c++写的,支持的环境为visual c++6.0。
我用的是visual studio2013,文件-新建-项目-visual c++-Win32控制台应用程序-下一步-选择附加选项的空选项-完成。然后在右侧解决方案管理器里点源文件,右键添加-新建项-c++文件(.cpp),然后照着书敲代码就行了。
我解决的第一个问题就是vc++新建项目的时候选哪一类,我刚开始用Win32新建后面一直有问题,我以为不能用win32,试了好几张其他的vc++的项目种类,后来我瞎捣鼓把问题解决了,我应该是瞎折腾了,就用Win32控制台应用程序。什么问题见楼下


IP属地:山东来自Android客户端1楼2022-01-18 21:45回复
    我在源文件新建项的时候,程序代码我没自己敲,我直接复制的百度的,我一调试它好多错误,如图一第10行namespace没有变成蓝色而是黑色,下面提示我第10行无法识别的标记。如图二第11行定义的const int Q=9;int是定义变量Q为整形,const是将整形变量Q定义为常数。按理说const和int应该都是蓝色,可图二里只有const是蓝色,下面还提示未定义标识符Q。我明明定义Q为int了却失效了。我刚开始以为是我c++新建项时的种类选错了所以又随便试了几个,都这样。我最后又回来瞎折腾让我解决了这个问题。namespace没变蓝,我就把namespace删了又重新输了一遍,还是没变蓝。。。然后我把namesapce后面的空格删了又重新敲了个空格,奇迹发生了,namespace变蓝了!合着是因为复制过来的空格不对?反正我把int Q的空格删了又敲了一个空格(英文输入法下),const和int都变蓝了(如图三)!我就这么瞎折腾解决了一个问题,反正是折腾了我半晚上,估计后面还会有各种奇奇怪怪的问题等着我,再说吧




    IP属地:山东来自Android客户端2楼2022-01-18 21:59
    回复
      又出现了新问题,我用tecplot画算出来的数据的流线,都是点一下就画出一条流线来,结果如图所示左下角和右下角的两坨黑黑的流线怎么这么粗啊,我确实只点了两下鼠标,怎么跑出来这么一片黑压压的流线啊!但是我选择左下角的流线删除时,左下角那一片黑就一块被删走了,证明那确实是一条流线。可是这怎么看也不是一条嘛


      IP属地:山东来自Android客户端3楼2022-01-19 18:30
      回复
        还是上面那个问题,我试的是1000雷诺数的,结果我画的流线图左下角和右下角那么密,黑压压一片,书上1000雷诺数的左右下角就很稀疏



        IP属地:山东来自Android客户端4楼2022-01-19 18:36
        回复
          由于我要用fortran,在csdn上花钱下了一个fortran的顶盖驱动流lbm模拟代码,如图。下载完有两份代码,代码略有差别但差别不大。他的代码网格是100×100的,雷诺数选的100,和何老师书上的例子不一样。而且他输出了四个数据文件,也和何老师的不太一样。这四个数据文件(.dat)要去d盘找。streamline记录的就是101×101个格点的坐标和水平、竖直分速度,mid-x-u是网格在水平长度二分之一处的竖直方向的水平速度,如图六第二列是竖直坐标从0到0.01到0.02一直到1。这里和何老师不同的是,四个数据文件只记录了最后收敛的一次数据,何老师那个是每隔1000次记录一下数据,我1000雷诺数的都算到了82000次,每1000次就有一个全网格各格点的速度数据。何老师每1000次在命令窗口还显示NX/2,NY/2的速度,还有误差,这个fortran的只显示误差。这些没有的我也能写出来,但是懒得搞。我准备用这个fortran把网格扩到256×256,雷诺数改到1000,看看fortran和何老师的c++出来的数据是否一样







          IP属地:山东来自Android客户端5楼2022-03-04 20:19
          回复
            两个有区别,左边的边界条件是反弹,右边是非平衡态外推格式


            IP属地:山东来自Android客户端6楼2022-03-04 21:25
            回复
              楼主我也在拿fortran写这个,雷诺数一过400就算不出来了,可能自己编的有问题很郁闷,能交流一下吗


              IP属地:陕西来自Android客户端7楼2022-03-09 01:05
              回复