• 大小: 4KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: 其他
  • 标签: c  simple  cfd  

资源简介

一个 simple 算法的cfd代码,用C写成,代码较为简单,但对理解cfd代码写法有帮助,是一个2d不可压缩工况

资源截图

代码片段和文件信息


/* code for 不可压缩,simple算法*/

#include 
#define UE 1
#define midu 0.002377
#define miu 3.737e-7
#define dx 0.025
#define dy 0.001
#define dt 0.001
#define songchi 0.1
#include



 void main()
{
   int ijkstepssteps_sum;
   float p[22][12]={0}u[23][12]={0}v[24][13]={0}; //编号并初始化流场
   float _p[22][12]={0}d[22][12]={0};
   float liuliang_u[23][12]={0}liuliang_v[24][13]={0};
   float ABabcv_1v_2u_1u_2;
   
    for(i=1;i<=22;i++)
          u[i][11]=UE;
          v[15][5]=0; //给流场一个扰动(当赋给流场一个扰动时,比如0.5,无法收敛,百思不得其解)
          
    for(i=1;i<=22;i++)
        liuliang_u[i][11]=midu*UE;
        liuliang_v[15][5]=midu*v[15][5];
        printf(“初始化流场u:\n“);
        
    for(j=1;j<=11;j++)
      {
       for(i=1;i<=22;i++)
          printf(“%.3f\t“u[i][j]);
           printf(“\n“);
      }
    printf(“初始化流场v:\n“);
    
    for(j=1;j<=12;j++)
      {
       for(i=1;i<=23;i++)
          printf(“%.3f\t“v[i][j]);
          printf(“\n“);
      }
    
       printf(“输入时间步数:\n“); 
       scanf(“%d“&steps_sum);
    
    for(steps=1;steps<=steps_sum;steps++)
       {
        for(i=2;i<=21;i++) //求流量
         for(j=2;j<=10;j++)
           {
            v_1=0.5*(v[i][j+1]+v[i+1][j+1]);
            v_2=0.5*(v[i][j]+v[i+1][j]);
            A=-((midu*u[i+1][j]*u[i+1][j]-midu*u[i-1][j]*u[i-1][j])/(2*dx)+(midu*u[i][j+1]*v_1-midu*u[i][j-1]*v_2)/(2*dy))+miu*((u[i+1][j]-2*u[i][j]+u[i-1][j])/(dx*dx)+(u[i][j+1]-2*u[i][j]+u[i][j-1])/(dy*dy));
            liuliang_u[i][j]=midu*u[i][j]+A*dt-(dt/dx)*(p[i][j]-p[i-1][j]);
           }
        for(i=2;i<=22;i++) //求流量
           for(j=2;j<=11;j++)
             {
              u_1=0.5*(u[i][j-1]+u[i][j]);
              u_2=0.5*(u[i-1][j-1]+u[i-1][j]);
              B=-((midu*v[i+1][j]*u_1-midu*v[i-1][j]*u_2)/(2*dx)+(midu*v[i][j+1]*v[i][j+1]-midu*v[i][j-1]*v[i][j-1])/(2*dy))+miu*((v[i+1][j]-2*v[i][j]+v[i-1][j])/(dx*dx)+(v[i][j+1]-2*v[i][j]+v[i][j-1])/(dy*dy));
              liuliang_v[i][j]=mid

评论

共有 条评论