⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sx01.c

📁 解决很多地下水数值模拟问题
💻 C
字号:
    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    #include <conio.h>

    int main()
    {
/*       PRACTICE 01 (D1 EXPLICIT METHOD)*/
    float KM,MU,LAMDA;
    float DX,DT;
    float H0[11],H[11];
    float TIME;
    int NP,NP01,ndt,mdt;
    int ICOUNT,IPRINT;
    int i;

    KM=20.0;
    MU=0.002;
    NP=11;
    NP01=NP-1;
    ndt=80;
    DX=10.0;
    DT=0.005;
    LAMDA=KM*DT/(MU*DX*DX);
    printf("\nLAMDA=%5.2f\n",LAMDA);

    for(i=0;i<NP;i++)
    {H0[i]=16.0;}

    H0[0]=16.0;
    H[0]=16.0;
    H[NP-1]=16.0;

    printf("\nTime         Head\n\n");

    TIME=0.0;
    ICOUNT=1;
    IPRINT=4;

    for(mdt=0;mdt<ndt;mdt++)
    {
     TIME=TIME+DT;
     H[0]=16.0+TIME*exp(-TIME);
     H0[0]=16.0+TIME*exp(-TIME);
     H[NP-1]=16.0-TIME*exp(-TIME);
     for(i=1;i<NP01;i++)
     {H[i]=LAMDA*(H0[i-1]+H0[i+1])+(1-2*LAMDA)*H0[i];}

    if(ICOUNT==IPRINT)
    {
    printf("%5.2f",TIME);
     for(i=0;i<NP;i++)
     {
      printf("%6.2f",H[i]);
     }
    printf("\n");
    ICOUNT=1;
    }
    else
    {
    ICOUNT=ICOUNT+1;
    }
    for(i=1;i<NP01;i++)
    {
     H0[i]=H[i];
     }
    }
    return 0;
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -