Navigation

    CFD中文网

    CFD中文网

    • Login
    • Search
    • 最新

    数组变量边界条件的设置

    OpenFOAM
    2
    3
    1774
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Y
      yang山青 last edited by

      单独计算和通过数组循环计算的结果分别如下(取相同方向):
      0_1520941821583_QQ截图20180313194929.png
      0_1520941836934_QQ截图20180313194947.png
      循环计算时在四个顶点处有数据错误。

      在计算各方向的方程时为了方便使用了数组进行循环,所设的变量如下:

          PtrList<volScalarField> PHI(nRay_);
          forAll(PHI, nRay_)
          {
      	PHI.set
      	(
      		nRay_,
      		new volScalarField
      		(
                		    IOobject
      			    (
      				"PHI"+i,
      				runTime.timeName(),
      				mesh,
      				IOobject::MUST_READ,
      				IOobject::AUTO_WRITE
      			    ),
      			    mesh
      		)
      	);
          } 
      

      计算方程如下:

          while (simple.loop())
          {      
                Info<< "Time = " << runTime.timeName() << nl << endl;
                i = 0; 
                forAll(PHI,i)
                {
                   while (simple.correctNonOrthogonal())
                   {  
                      fvScalarMatrix TEqn
                      (
                           fvm::ddt(PHI[i])
                         + fvc::div(phiA[i],PHI[i])
                         ==
                         - fvm::Sp(v*sigmaT,PHI[i])
                         + fvOptions(PHI[i])
                      );
                      TEqn.relax();
                      fvOptions.constrain(TEqn);
                      TEqn.solve() ;
                      fvOptions.correct(PHI[i]);
                   }
                }
      

      变量的边界条件设置如下:

      dimensions      [0 -1 0 0 0 0 0];
      
      internalField   uniform 0;
      
      boundaryField
      {
          movingWall1
          {
              type            empty;
          }
          movingWall2
          {
              type            zeroGradient;
          }
          fixedWall1
          {
              type            zeroGradient;
          }
          fixedWall2
          {
              type            empty;
          }
          fixedWall3
          {
              type            zeroGradient;
          }
          fixedWall4
          {
              type            zeroGradient;
          }    
      }
      

      单独调出每个变量的边界条件均与所设相同。求教这是什么问题?

      1 Reply Last reply Reply Quote
      • 李东岳
        李东岳 管理员 last edited by

        并没有看出什么错误 :quwan:

        线上CFD课程 7月1日报名截止 http://dyfluid.com/class.html
        CFD高性能服务器 http://dyfluid.com/servers.html

        Y 1 Reply Last reply Reply Quote
        • Y
          yang山青 @李东岳 last edited by

          @李东岳 谢谢。我将原代码放入了另外一个求解器中就没有了这种问题,可能是路径的问题

          1 Reply Last reply Reply Quote
          • First post
            Last post

          CFD中文网 | 东岳流体 | 京ICP备15017992号-2
          论坛登录问题反馈可联系 li.dy@dyfluid.com