亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? karman.c

?? 學校的CFD的模型 運用poisson equation 非常好的sequential programme
?? C
字號:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <getopt.h>#include <errno.h>#include "alloc.h"#include "boundary.h"#include "datadef.h"#include "init.h"#include "simulation.h"void write_bin(float **u, float **v, float **p, char **flag,     int imax, int jmax, float xlength, float ylength, char *file);int read_bin(float **u, float **v, float **p, char **flag,    int imax, int jmax, float xlength, float ylength, char *file);static void print_usage(void);static void print_version(void);static void print_help(void);static char *progname;int proc = 0;                       /* Rank of the current process */int nprocs = 0;                /* Number of processes in communicator */int *ileft, *iright;           /* Array bounds for each processor */#define PACKAGE "karman"#define VERSION "1.0"/* Command line options */static struct option long_opts[] = {    { "del-t",   1, NULL, 'd' },    { "help",    0, NULL, 'h' },    { "imax",    1, NULL, 'x' },    { "infile",  1, NULL, 'i' },    { "jmax",    1, NULL, 'y' },    { "outfile", 1, NULL, 'o' },    { "t-end",   1, NULL, 't' },    { "verbose", 1, NULL, 'v' },    { "version", 1, NULL, 'V' },    { 0,         0, 0,    0   } };#define GETOPTS "d:hi:o:t:v:Vx:y:"int main(int argc, char *argv[]){    int verbose = 1;          /* Verbosity level */    float xlength = 22.0;     /* Width of simulated domain */    float ylength = 4.1;      /* Height of simulated domain */    int imax = 660;           /* Number of cells horizontally */    int jmax = 120;           /* Number of cells vertically */    char *infile;             /* Input raw initial conditions */    char *outfile;            /* Output raw simulation results */    float t_end = 2.1;        /* Simulation runtime */    float del_t = 0.003;      /* Duration of each timestep */    float tau = 0.5;          /* Safety factor for timestep control */    int itermax = 100;        /* Maximum number of iterations in SOR */    float eps = 0.001;        /* Stopping error threshold for SOR */    float omega = 1.7;        /* Relaxation parameter for SOR */    float gamma = 0.9;        /* Upwind differencing factor in PDE                                 discretisation */    float Re = 150.0;         /* Reynolds number */    float ui = 1.0;           /* Initial X velocity */    float vi = 0.0;           /* Initial Y velocity */    float t, delx, dely;    int  i, j, itersor = 0, ifluid = 0, ibound = 0;    float res;    float **u, **v, **p, **rhs, **f, **g;    char  **flag;    int init_case, iters = 0;    int show_help = 0, show_usage = 0, show_version = 0;    progname = argv[0];    infile = strdup("karman.bin");    outfile = strdup("karman.bin");    int optc;    while ((optc = getopt_long(argc, argv, GETOPTS, long_opts, NULL)) != -1) {        switch (optc) {            case 'h':                show_help = 1;                break;            case 'V':                show_version = 1;                break;            case 'v':                verbose = atoi(optarg);                break;            case 'x':                imax = atoi(optarg);                break;            case 'y':                jmax = atoi(optarg);                break;            case 'i':                free(infile);                infile = strdup(optarg);                break;            case 'o':                free(outfile);                outfile = strdup(optarg);                break;            case 'd':                del_t = atof(optarg);                break;            case 't':                t_end = atof(optarg);                break;            default:                show_usage = 1;        }    }    if (show_usage || optind < argc) {        print_usage();        return 1;    }        if (show_version) {        print_version();        if (!show_help) {            return 0;        }    }        if (show_help) {        print_help();        return 0;    }    delx = xlength/imax;    dely = ylength/jmax;    /* Allocate arrays */    u    = alloc_floatmatrix(imax+2, jmax+2);    v    = alloc_floatmatrix(imax+2, jmax+2);    f    = alloc_floatmatrix(imax+2, jmax+2);    g    = alloc_floatmatrix(imax+2, jmax+2);    p    = alloc_floatmatrix(imax+2, jmax+2);    rhs  = alloc_floatmatrix(imax+2, jmax+2);     flag = alloc_charmatrix(imax+2, jmax+2);                        if (!u || !v || !f || !g || !p || !rhs || !flag) {        fprintf(stderr, "Couldn't allocate memory for matrices.\n");        return 1;    }    /* Read in initial values from a file if it exists */    init_case = read_bin(u, v, p, flag, imax, jmax, xlength, ylength, infile);            if (init_case > 0) {        /* Error while reading file */        return 1;    }    if (init_case < 0) {        /* Set initial values if file doesn't exist */        for (i=0;i<=imax+1;i++) {            for (j=0;j<=jmax+1;j++) {                u[i][j] = ui;                v[i][j] = vi;                p[i][j] = 0.0;            }        }        init_flag(flag, imax, jmax, delx, dely, &ibound);        apply_boundary_conditions(u, v, flag, imax, jmax, ui, vi);    }    /* Main loop */    for (t = 0.0; t < t_end; t += del_t, iters++) {        set_timestep_interval(&del_t, imax, jmax, delx, dely, u, v, Re, tau);        ifluid = (imax * jmax) - ibound;        compute_tentative_velocity(u, v, f, g, flag, imax, jmax,            del_t, delx, dely, gamma, Re);        compute_rhs(f, g, rhs, flag, imax, jmax, del_t, delx, dely);        if (ifluid > 0) {            itersor = poisson(p, rhs, flag, imax, jmax, delx, dely,                        eps, itermax, omega, &res, ifluid);        } else {            itersor = 0;        }        if (proc == 0 && verbose > 1) {            printf("%d t:%g, del_t:%g, SOR iters:%3d, res:%e, bcells:%d\n",                iters, t+del_t, del_t, itersor, res, ibound);        }        update_velocity(u, v, f, g, p, flag, imax, jmax, del_t, delx, dely);        apply_boundary_conditions(u, v, flag, imax, jmax, ui, vi);    } /* End of main loop */      if (outfile != NULL && strcmp(outfile, "") != 0 && proc == 0) {        write_bin(u, v, p, flag, imax, jmax, xlength, ylength, outfile);    }    free_matrix(u);    free_matrix(v);    free_matrix(f);    free_matrix(g);    free_matrix(p);    free_matrix(rhs);    free_matrix(flag);    return 0;}/* Save the simulation state to a file */void write_bin(float **u, float **v, float **p, char **flag,    int imax, int jmax, float xlength, float ylength, char* file){    int i;    FILE *fp;    fp = fopen(file, "wb");     if (fp == NULL) {        fprintf(stderr, "Could not open file '%s': %s\n", file,            strerror(errno));        return;    }    fwrite(&imax, sizeof(int), 1, fp);    fwrite(&jmax, sizeof(int), 1, fp);    fwrite(&xlength, sizeof(float), 1, fp);    fwrite(&ylength, sizeof(float), 1, fp);    for (i=0;i<imax+2;i++) {        fwrite(u[i], sizeof(float), jmax+2, fp);        fwrite(v[i], sizeof(float), jmax+2, fp);        fwrite(p[i], sizeof(float), jmax+2, fp);        fwrite(flag[i], sizeof(char), jmax+2, fp);    }    fclose(fp);}/* Read the simulation state from a file */int read_bin(float **u, float **v, float **p, char **flag,    int imax, int jmax, float xlength, float ylength, char* file){    int i,j;    FILE *fp;    if (file == NULL) return -1;    if ((fp = fopen(file, "rb")) == NULL) {        fprintf(stderr, "Could not open file '%s': %s\n", file,            strerror(errno));        fprintf(stderr, "Generating default state instead.\n");        return -1;    }    fread(&i, sizeof(int), 1, fp);    fread(&j, sizeof(int), 1, fp);    float xl, yl;    fread(&xl, sizeof(float), 1, fp);    fread(&yl, sizeof(float), 1, fp);    if (i!=imax || j!=jmax) {        fprintf(stderr, "Warning: imax/jmax have wrong values in %s\n", file);        fprintf(stderr, "%s's imax = %d, jmax = %d\n", file, i, j);        fprintf(stderr, "Program's imax = %d, jmax = %d\n", imax, jmax);        return 1;    }    if (xl!=xlength || yl!=ylength) {        fprintf(stderr, "Warning: xlength/ylength have wrong values in %s\n", file);        fprintf(stderr, "%s's xlength = %g,  ylength = %g\n", file, xl, yl);        fprintf(stderr, "Program's xlength = %g, ylength = %g\n", xlength,            ylength);        return 1;    }    for (i=0; i<imax+2; i++) {        fread(u[i], sizeof(float), jmax+2, fp);        fread(v[i], sizeof(float), jmax+2, fp);        fread(p[i], sizeof(float), jmax+2, fp);        fread(flag[i], sizeof(char), jmax+2, fp);    }    fclose(fp);    return 0;}static void print_usage(void){    fprintf(stderr, "Try '%s --help' for more information.\n", progname);}static void print_version(void){    fprintf(stderr, "%s %s\n", PACKAGE, VERSION);}static void print_help(void){    fprintf(stderr, "%s. A simple computational fluid dynamics tutorial.\n\n",        PACKAGE);    fprintf(stderr, "Usage: %s [OPTIONS]...\n\n", progname);    fprintf(stderr, "  -h, --help            Print a summary of the options\n");    fprintf(stderr, "  -V, --version         Print the version number\n");    fprintf(stderr, "  -v, --verbose=LEVEL   Set the verbosity level. 0 is silent\n");    fprintf(stderr, "  -x, --imax=IMAX       Set the number of interior cells in the X direction\n");    fprintf(stderr, "  -y, --jmax=JMAX       Set the number of interior cells in the Y direction\n");    fprintf(stderr, "  -t, --t-end=TEND      Set the simulation end time\n");    fprintf(stderr, "  -d, --del-t=DELT      Set the simulation timestep size\n");    fprintf(stderr, "  -i, --infile=FILE     Read the initial simulation state from this file\n");    fprintf(stderr, "                        (default is 'karman.bin')\n");    fprintf(stderr, "  -o, --outfile=FILE    Write the final simulation state to this file\n");    fprintf(stderr, "                        (default is 'karman.bin')\n");}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xxxxx牲另类人与| www国产精品av| 精品福利一区二区三区| 亚洲欧美一区二区在线观看| 视频一区在线播放| 91在线视频18| 亚洲成人高清在线| 国产成人精品免费网站| 欧美一级片免费看| 亚洲国产另类av| 99re视频这里只有精品| 久久九九久久九九| 免费观看日韩av| 欧美乱熟臀69xxxxxx| 亚洲伦在线观看| bt欧美亚洲午夜电影天堂| 精品日韩99亚洲| 日本中文字幕不卡| 欧美男男青年gay1069videost| 日韩一区有码在线| 东方欧美亚洲色图在线| 精品久久久久久久一区二区蜜臀| 亚洲国产一区二区三区青草影视 | 亚洲日本欧美天堂| 国产精品久久久久久久久免费相片| 日韩一级大片在线观看| 国产日产精品一区| 一区二区三区四区精品在线视频| 亚洲伊人伊色伊影伊综合网| 琪琪久久久久日韩精品| 国产成人av一区二区三区在线| av亚洲精华国产精华精华| 欧美性猛片aaaaaaa做受| 日韩视频一区二区三区| 中文字幕在线不卡视频| 天天操天天综合网| 高清成人免费视频| 欧美精品777| 中文字幕 久热精品 视频在线 | 亚洲精品福利视频网站| 午夜国产精品一区| 高清在线不卡av| 欧美日韩不卡一区| 国产精品久久久久精k8| 蜜臀久久99精品久久久久宅男| 成人精品国产一区二区4080| 在线成人高清不卡| 亚洲欧美另类图片小说| 国产乱码字幕精品高清av| 在线国产亚洲欧美| 国产精品视频免费看| 全部av―极品视觉盛宴亚洲| 99riav久久精品riav| 欧美精品一区二区三区蜜臀| 亚洲在线观看免费视频| jlzzjlzz亚洲日本少妇| 精品久久久久一区| 日本v片在线高清不卡在线观看| 一本大道久久a久久综合婷婷| 久久综合久久鬼色中文字| 天堂精品中文字幕在线| 99视频一区二区三区| 久久精品欧美一区二区三区不卡| 奇米色一区二区| 欧美日韩国产一区二区三区地区| 亚洲同性gay激情无套| 国产成人免费视频精品含羞草妖精| 欧美高清视频一二三区 | 国产精品77777| 日韩一区二区麻豆国产| 青青草97国产精品免费观看无弹窗版| 欧美无砖砖区免费| 亚洲一区二区三区中文字幕| 色婷婷激情久久| 亚洲欧美日韩久久精品| 色噜噜久久综合| 亚洲另类在线一区| 欧美吻胸吃奶大尺度电影| 亚洲女与黑人做爰| 欧美在线视频全部完| 亚洲影院理伦片| 欧美老女人第四色| 视频一区在线播放| 欧美大尺度电影在线| 狠狠色丁香婷婷综合| 精品卡一卡二卡三卡四在线| 精品在线免费观看| 日本一区二区三区视频视频| 国产成人午夜高潮毛片| 亚洲婷婷国产精品电影人久久| 99精品视频在线播放观看| 亚洲色图欧洲色图| 欧美亚洲综合色| 蜜臀99久久精品久久久久久软件| 欧美mv日韩mv| 成人av在线一区二区三区| 亚洲日本免费电影| 欧美一级二级三级蜜桃| 国产精品白丝jk白祙喷水网站| 国产欧美日韩在线看| 91丨porny丨国产入口| 天天影视色香欲综合网老头| 欧美成人一区二区三区片免费| 国产成人av影院| 亚洲黄色尤物视频| 精品国产一区二区三区av性色| 国产69精品久久777的优势| 91蝌蚪porny| 韩国一区二区视频| 精品一区二区在线看| 蜜桃91丨九色丨蝌蚪91桃色| 日韩vs国产vs欧美| 日韩成人免费看| 免费成人在线网站| 理论电影国产精品| 久久精品国产亚洲高清剧情介绍| 日韩精品一区第一页| 五月天激情综合| 日韩国产精品久久久久久亚洲| 日韩影院免费视频| 天堂久久久久va久久久久| 日韩和欧美的一区| 精品中文字幕一区二区| 免费视频最近日韩| 国产乱人伦精品一区二区在线观看 | 8x福利精品第一导航| 欧美精品一卡两卡| 日韩限制级电影在线观看| 日韩一二在线观看| 久久久久久久综合狠狠综合| 欧美韩国一区二区| 亚洲欧美色图小说| 日韩激情一二三区| 激情六月婷婷久久| 成人深夜福利app| 色婷婷国产精品| 制服丝袜中文字幕亚洲| 精品黑人一区二区三区久久| 欧美激情一区在线观看| 国产精品毛片高清在线完整版| 亚洲手机成人高清视频| 天天做天天摸天天爽国产一区| 免费高清不卡av| eeuss鲁片一区二区三区在线看| 91久久一区二区| 日韩欧美在线一区二区三区| 国产亚洲一二三区| 夜夜精品视频一区二区| 青青草伊人久久| fc2成人免费人成在线观看播放| 欧美在线观看视频在线| 欧美白人最猛性xxxxx69交| 国产精品麻豆久久久| 亚洲国产成人av好男人在线观看| 国内久久精品视频| 色婷婷综合久久| 亚洲精品一区二区三区蜜桃下载| 日韩一区欧美一区| 日本特黄久久久高潮| 成人av免费观看| 日韩欧美自拍偷拍| 精品在线视频一区| 欧洲精品在线观看| 国产婷婷色一区二区三区四区| 亚洲最新在线观看| 粉嫩高潮美女一区二区三区| 欧美色精品天天在线观看视频| 国产亚洲精品bt天堂精选| 亚洲国产精品久久久男人的天堂| 国产精品中文欧美| 666欧美在线视频| 亚洲色图视频网站| 国产精品资源站在线| 3751色影院一区二区三区| 日韩理论片一区二区| 国产精品伊人色| 欧美不卡一区二区| 香蕉成人伊视频在线观看| 色偷偷一区二区三区| 中文字幕第一区二区| 激情文学综合丁香| 日韩一二三区视频| 婷婷激情综合网| 欧美三片在线视频观看| 国产精品久久二区二区| 国产福利一区二区三区| 一色屋精品亚洲香蕉网站| 天天爽夜夜爽夜夜爽精品视频| 国内外成人在线| 欧美视频第二页| 久久精品亚洲国产奇米99| 亚洲影视在线观看| 国产成人综合自拍| 欧美高清视频不卡网| 久久亚洲精华国产精华液| 亚洲一区二区中文在线| 国产黄色精品网站| 欧美高清激情brazzers| 中文字幕一区二区三区色视频| 乱一区二区av|