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

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

?? d2q9.c

?? 格子Boltzmann方法 格子Boltzmann方法是為了保留格子氣自動機方法的優點
?? C
字號:
// D2Q9.c[pp]#include "D2Q9.h"#include "MyArrays.h"#include <stdio.h>#include <math.h>int D=2, Q=9, Nx, Ny, n;char e[9][2], e1[9], **boundary, bounceback, filename[80]="管道流.lbm";double ***f, ***f1, **rho, **u, **v, *f0;double mu, Re, omega, dx, dt, t, c, c_s;double Lx, Ly, L0, U0, V0, Rho0, rho_max;int MyUpper(char *str)		// 臨時使用的處理字符串函數{	// 刪除str中的空格并將小寫英文字母轉換成大寫字母,并將等號轉換成'\0',返回其后面的下標值	int i=0, j=0, k=0;	for(i=j=0; str[i]; i++)	{		if(str[i]!=' ')		{			if(str[i]>='a' && str[i]<='z')				str[j] = str[i] - 'a'+'A';			else if(str[i]=='=')			{				str[j] = '\0';				k = j + 1;			}			else				str[j] = str[i];			j++;		}	}	str[j] = '\0';	return k;}void Init(char *filename){	int i, j;	char str[80];	FILE *fp;	e[0][0] = 0;  e[0][1] = 0;	e[1][0] = 1;  e[1][1] = 0;	e[2][0] = 0;  e[2][1] = 1;	e[3][0] =-1;  e[3][1] = 0;	e[4][0] = 0;  e[4][1] =-1;	e[5][0] = 1;  e[5][1] = 1;	e[6][0] =-1;  e[6][1] = 1;	e[7][0] =-1;  e[7][1] =-1;	e[8][0] = 1;  e[8][1] =-1;	e1[0] = 0;	e1[1] = 3;	e1[2] = 4;	e1[3] = 1;	e1[4] = 2;	e1[5] = 7;	e1[6] = 8;	e1[7] = 5;	e1[8] = 6;	if((fp=fopen(filename, "rt"))==NULL) exit(1);	mu = 1.0;	L0 = -1.0;	bounceback = 0;	while(1)	{		fgets(str, 80, fp);		i = MyUpper(str);		if(strcmp(str, "D")==0)			sscanf(str+i, "%d", &D);		else if(strcmp(str, "Q")==0)			sscanf(str+i, "%d", &Q);		else if(strcmp(str, "DOMAINSIZE")==0)			sscanf(str+i, "%lf,%lf", &Lx, &Ly);		else if(strcmp(str, "L0")==0)			sscanf(str+i, "%lf", &L0);		else if(strcmp(str, "BOUNCEBACK")==0)			sscanf(str+i, "%d", &bounceback);		else if(strcmp(str, "MESHSIZE")==0)			sscanf(str+i, "%d,%d", &Nx, &Ny);		else if(strcmp(str, "MU")==0)			sscanf(str+i, "%lf", &mu);		else if(strcmp(str, "RE")==0)			sscanf(str+i, "%lf", &Re);		else if(strcmp(str, "OMEGA")==0)			sscanf(str+i, "%lf", &omega);		else if(strcmp(str, "BOUNDARYDATA")==0)			break;	}	if(L0<0) L0 = Ly;	f   = (double***)Calloc3DArray(Nx, Ny, Q, sizeof(double));	f1  = (double***)Calloc3DArray(Nx, Ny, Q, sizeof(double));	rho = (double **)Calloc2DArray(Nx, Ny, sizeof(double));	u   = (double **)Calloc2DArray(Nx, Ny, sizeof(double));	v   = (double **)Calloc2DArray(Nx, Ny, sizeof(double));	f0  = (double  *)Calloc1DArray(Q, sizeof(double));	boundary=(char**)Calloc2DArray(Nx, Ny, sizeof(char));	for(j=0; j<Ny; j++)	{		for(i=0; i<Nx; i++)		// 注意循環的順序		{			fscanf(fp, "%c", str);			boundary[i][j] = str[0] - '0';			}		fgets(str, 80, fp);	}	fclose(fp);	dx = Lx/Nx;	dt = (2/omega-1)*dx*dx/(6*mu);	c = dx/dt;	c_s = c/sqrt(3);	U0 = mu*Re/L0;	V0 = 0;	Rho0 = 1;	t = 0;	n = 0;	init_macro();	init_micro();}void Finish(){	if(boundary) Free2DArray((void**)boundary);	if(f0)  Free1DArray((void*)f0);	if(u)   Free2DArray((void**)v);	if(v)   Free2DArray((void**)u);	if(rho) Free2DArray((void**)rho);	if(f1)  Free3DArray((void***)f1);	if(f)   Free3DArray((void***)f);}void SetParameters()	// 僅改變參數 re, mu, omega 時,從頭開始計算{	dt = (2/omega-1)*dx*dx/6.0/mu;	c = dx/dt;	c_s = c/sqrt(3);	U0 = mu*Re/L0;	V0 = 0;	Rho0 = 1;	t = 0;	n = 0;	init_macro();	init_micro();}void init_macro(){	int i, j;	for(i=0; i<Nx; i++)	{		for(j=0; j<Ny; j++)		{			if(boundary[i][j]==1)	// 流場流體入口處			{				u[i][j] = U0;				v[i][j] = V0;			}			else					// 其它				u[i][j] = v[i][j] = 0;			rho[i][j] = Rho0;		}	}}void init_micro(){	int i, j, k;	for(i=0; i<Nx; i++)	{		for(j=0; j<Ny; j++)		{			feq(u[i][j], v[i][j], rho[i][j], f0);			for(k=0; k<Q; k++)				f[i][j][k] = f0[k];		}	}}void feq(double u, double v, double rho, double *f0){/*	double u2, eu, eu2;	int k;	u /= c;	v /= c;	u2 = 1-1.5*(u*u + v*v);	f0[0] = 4.0/9*rho*u2;	for(k=1; k<Q; k++)	{		eu = e[k][0]*u + e[k][1]*v;		eu2 = eu*eu;		f0[k] = rho/9*(3*eu + 4.5*eu2 + u2);	}	for(k=5; k<Q; k++)		f0[k] *= 0.25;*/	double temp_u2, temp_rho, uav, vmu;	u /= c;	v /= c;	temp_u2 = 1-1.5*(u*u + v*v);	temp_rho = 4.0*rho/9.0;	uav = u+v;	vmu = v-u;	f0[0] = temp_rho * temp_u2;	temp_rho *= 0.25;	f0[1] = temp_rho * (temp_u2 + 3*u + 4.5*u*u);	f0[2] = temp_rho * (temp_u2 + 3*v + 4.5*v*v);	f0[3] = f0[1] - temp_rho * 6*u;	f0[4] = f0[2] - temp_rho * 6*v;	temp_rho *= 0.25;	f0[5] = temp_rho * (temp_u2 + 3*uav + 4.5*uav*uav);	f0[6] = temp_rho * (temp_u2 + 3*vmu + 4.5*vmu*vmu);	f0[7] = f0[5] - temp_rho * 6*uav;	f0[8] = f0[6] - temp_rho * 6*vmu;}void collision(){    int i, j, k;	rho_max = 0;    for(i=0; i<Nx; i++)    {        for(j=0; j<Ny; j++)        {			if(boundary[i][j]==1)			{				u[i][j] = U0;				v[i][j] = V0;				rho[i][j] = Rho0;				continue;			}			else if(boundary[i][j]==3)			{				u[i][j] = 0;				v[i][j] = 0;				continue;			}            rho[i][j] = f[i][j][0];			u[i][j] = v[i][j] = 0;            for(k=1; k<Q; k++)            {                u[i][j] += e[k][0] * f[i][j][k];                v[i][j] += e[k][1] * f[i][j][k];                rho[i][j] += f[i][j][k];            }			u[i][j] *= c;			v[i][j] *= c;			if(rho[i][j]>rho_max) rho_max = rho[i][j];			if(rho[i][j]>1e-6)			{				u[i][j] /= rho[i][j];				v[i][j] /= rho[i][j];			}			else			{				u[i][j] = 0;				v[i][j] = 0;			}		}    }						// 計算宏觀量    for(i=0; i<Nx; i++)    {        for(j=0; j<Ny; j++)        {			feq(u[i][j], v[i][j], rho[i][j], f0);            for(k=0; k<Q; k++)                f1[i][j][k] = (1-omega)*f[i][j][k] + omega*f0[k];        }    }}void flow(){	int i, j, k, i1, j1;	double f00[9];	if(bounceback)	// 流動步,反彈邊界處理	{		for(i=0; i<Nx; i++)		{			for(j=0; j<Ny; j++)			{				switch(boundary[i][j])				{				case 1:					feq(u[i][j], v[i][j], rho[i][j], f1[i][j]); break;				case 2:					for(k=0; k<Q; k++)						f1[i][j][k] = f1[i-1][j][k];			break;				case 3:					for(k=0; k<Q; k++)					{						i1 = i - e[k][0];						j1 = j - e[k][1];						if(i1>=0 && i1<Nx && j1>=0 && j1<Ny && boundary[i1][j1]==0)							f1[i][j][k] = f1[i1][j1][e1[k]];					}											break;				}			}		}		for(i=0; i<Nx; i++)		{			for(j=0; j<Ny; j++)			{				if(boundary[i][j]==0)				{					for(k=0; k<Q; k++)						f[i][j][k] = f1[i-e[k][0]][j-e[k][1]][k];				}			}		}	}	else		// 流動步,外推邊界處理	{		for(i=0; i<Nx; i++)	    {		    for(j=0; j<Ny; j++)			{				switch(boundary[i][j])				{				case 0:					for(k=0; k<Q; k++)					{						i1 = i - e[k][0];						j1 = j - e[k][1];						if(i1<0 || i1>=Nx || j1<0 || j1>=Ny)						{							i1 = i + e[k][0];							j1 = j + e[k][1];							if(i1<0 || i1>=Nx || j1<0 || j1>=Ny)	// 角點							{								f[i][j][k] = f1[i][j][k];							}							else	// 邊點(外推)							{								feq(u[i][j], v[i][j], rho[i][j], f0);								feq(u[i1][j1], v[i1][j1], rho[i1][j1], f00);								f[i][j][k] = f1[i1][j1][k] + f0[k] - f00[k];							}						}						else							f[i][j][k] = f1[i1][j1][k];					}					break;				case 1:					feq(u[i][j], v[i][j], rho[i][j], f0);					for(k=0; k<Q; k++)						f[i][j][k] = f0[k];					break;				case 2:					for(k=0; k<Q; k++)						f[i][j][k] = f1[i-1][j][k];					break;                        // 出口處理:無窮遠邊界				default:					feq(u[i][j], v[i][j], rho[i][j], f0);					for(k=0; k<Q; k++)						f[i][j][k] = f0[k];					break;				}			}		}	}}void evolution(){	collision();	flow();	t += dt;	n++;}void SaveFile()	// 將速度(u,v)、密度 rho 寫入相應的文件{	FILE *fpu, *fpv, *fprho;	int nx=Nx, ny=Ny;	int i, j;	fpu = fopen("u.dat", "wb");	fpv = fopen("v.dat", "wb");	fprho = fopen("rho.dat", "wb");	fwrite(&nx, 1, sizeof(int), fpu);	// 按二進制格式存放(前2個整數皆為網格規模)	fwrite(&ny, 1, sizeof(int), fpu);	fwrite(u[0], nx*ny, sizeof(u[0][0]), fpu);	fwrite(&nx, 1, sizeof(int), fpv);	fwrite(&ny, 1, sizeof(int), fpv);	fwrite(v[0], nx*ny, sizeof(v[0][0]), fpv);	fwrite(&nx, 1, sizeof(int), fprho);	fwrite(&ny, 1, sizeof(int), fprho);	fwrite(rho[0], nx*ny, sizeof(rho[0][0]), fprho);	fclose(fpu); fclose(fpv); fclose(fprho);	fpu = fopen("u.txt", "wb");	fpv = fopen("v.txt", "wb");	fprho = fopen("rho.txt", "wb");	for(j=0; j<Ny; j++)		// 寫成文本文件格式	{		for(i=0; i<Nx; i++)		{			fprintf(fpu, "%f ", u[i][j]);			fprintf(fpv, "%f ", v[i][j]);			fprintf(fprho, "%f ", rho[i][j]);		}		fprintf(fpu, "\n");		fprintf(fpv, "\n");		fprintf(fprho, "\n");	}	fclose(fpu); fclose(fpv); fclose(fprho);	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色噜噜夜夜夜综合网| jiyouzz国产精品久久| 国产精品亚洲第一区在线暖暖韩国 | 亚洲私人黄色宅男| 老司机午夜精品| 在线观看免费一区| 欧美激情在线观看视频免费| 免费成人性网站| 在线一区二区三区四区| 国产清纯白嫩初高生在线观看91| 天堂久久久久va久久久久| 99视频在线观看一区三区| 精品91自产拍在线观看一区| 日韩有码一区二区三区| 欧美日韩在线播放三区| 最新热久久免费视频| 丁香婷婷综合网| 久久精品视频在线看| 久草中文综合在线| 91精品一区二区三区在线观看| 亚洲亚洲精品在线观看| 色噜噜偷拍精品综合在线| 国产日产欧产精品推荐色| 免费高清在线视频一区·| 欧美日韩国产一区| 亚洲欧美一区二区三区极速播放 | 日本美女一区二区三区视频| 在线日韩一区二区| 亚洲图片自拍偷拍| 欧美视频自拍偷拍| 偷拍日韩校园综合在线| 欧美裸体一区二区三区| 日韩成人一级大片| 日韩精品一区二区三区视频播放 | 在线观看成人小视频| 亚洲在线视频免费观看| 色妞www精品视频| 亚洲最大成人网4388xx| 精品1区2区3区| 婷婷六月综合网| 日韩欧美国产三级| 国产精品亚洲午夜一区二区三区 | 91行情网站电视在线观看高清版| 亚洲三级电影网站| 在线观看欧美黄色| 天天色 色综合| 日韩精品自拍偷拍| 成人综合婷婷国产精品久久| 1024国产精品| 欧美手机在线视频| 麻豆视频观看网址久久| 337p粉嫩大胆噜噜噜噜噜91av| 国产suv一区二区三区88区| 国产精品国产三级国产普通话蜜臀| 91在线小视频| 午夜精品视频在线观看| 欧美成人在线直播| 99国产精品久久久| 日韩和欧美的一区| 久久久九九九九| 欧美在线免费播放| 狠狠色综合色综合网络| 一区视频在线播放| 3atv一区二区三区| 成人永久免费视频| 亚洲成av人综合在线观看| 久久蜜臀中文字幕| 欧美性受极品xxxx喷水| 狠狠色丁香九九婷婷综合五月| 中文字幕在线一区免费| 91精品久久久久久久99蜜桃| 国产福利一区二区三区视频在线 | 欧美伊人久久久久久午夜久久久久| 日韩精品高清不卡| 综合久久一区二区三区| 欧美一区二区免费观在线| 国产91综合网| 日本午夜一区二区| 亚洲丝袜制服诱惑| 久久久久久久久蜜桃| 欧美吻胸吃奶大尺度电影| 成人免费高清在线| 午夜成人免费电影| 国产欧美一区二区在线| 欧美一区永久视频免费观看| 成人sese在线| 紧缚奴在线一区二区三区| 亚洲已满18点击进入久久| 国产亚洲综合在线| 欧美变态tickling挠脚心| 欧美性videosxxxxx| 99久久精品99国产精品 | 在线观看日韩高清av| 国产iv一区二区三区| 免费成人在线网站| 亚洲aaa精品| 亚洲欧美一区二区久久| 国产目拍亚洲精品99久久精品| 日韩欧美亚洲国产精品字幕久久久| 欧美在线播放高清精品| 91久久线看在观草草青青| 懂色av一区二区三区蜜臀| 久久超级碰视频| 狠狠色丁香婷综合久久| 看电视剧不卡顿的网站| 偷拍日韩校园综合在线| 亚洲成av人片一区二区| 午夜欧美电影在线观看| 一区二区三区自拍| 综合中文字幕亚洲| √…a在线天堂一区| 国产精品系列在线| 国产精品三级av在线播放| 国产欧美日韩三区| 国产欧美在线观看一区| 国产精品拍天天在线| 国产精品欧美一区喷水| 亚洲色图.com| 一区二区三区不卡视频在线观看| 亚洲综合激情网| 午夜久久电影网| 麻豆精品一区二区av白丝在线| 捆绑调教美女网站视频一区| 国产一区 二区 三区一级| 国产一区二区福利视频| 成人视屏免费看| 99国产精品国产精品久久| 99国产精品99久久久久久| 91日韩一区二区三区| 欧美挠脚心视频网站| 欧美大片在线观看一区| 久久综合色鬼综合色| 欧美国产一区二区在线观看| 亚洲欧洲国产专区| 香蕉成人伊视频在线观看| 精品综合久久久久久8888| 国产不卡视频在线观看| 91久久精品一区二区二区| 欧美一区二区三区小说| 国产欧美一区二区精品仙草咪| 亚洲精品国产a久久久久久| 天天操天天干天天综合网| 精品亚洲成av人在线观看| 成人国产免费视频| 欧美二区在线观看| 精品欧美乱码久久久久久| 国产精品成人网| 三级久久三级久久久| 国产成人8x视频一区二区| 99riav久久精品riav| 欧美一级精品在线| 国产精品夫妻自拍| 日本亚洲最大的色成网站www| 丁香婷婷深情五月亚洲| 欧美日韩成人高清| 国产日韩亚洲欧美综合| 性欧美大战久久久久久久久| 成人美女在线视频| 91麻豆精品国产无毒不卡在线观看| 欧美激情一区二区在线| 日韩电影免费在线看| 91丝袜国产在线播放| 欧美videossexotv100| 亚洲最大成人网4388xx| 国产成人精品三级| 日韩免费在线观看| 亚洲精品老司机| 国产盗摄女厕一区二区三区| 88在线观看91蜜桃国自产| 中文字幕一区二区三区四区| 蜜桃视频免费观看一区| 一本一本大道香蕉久在线精品| 一卡二卡三卡日韩欧美| 成人综合婷婷国产精品久久蜜臀 | 日韩欧美中文一区二区| 亚洲一区二区三区四区在线观看| 国产91在线|亚洲| 国产精品成人一区二区三区夜夜夜| 色综合中文综合网| 亚洲人亚洲人成电影网站色| 青青草原综合久久大伊人精品 | 日本欧美肥老太交大片| 亚洲国产高清不卡| 欧美视频在线观看一区二区| 精品一区二区三区欧美| 亚洲成人av资源| 综合分类小说区另类春色亚洲小说欧美| 欧美写真视频网站| 91亚洲国产成人精品一区二三| 国产乱国产乱300精品| 久草热8精品视频在线观看| 午夜视频在线观看一区二区三区| 久久综合久色欧美综合狠狠| 欧美高清精品3d| 在线欧美日韩国产| 亚洲一级电影视频| 777色狠狠一区二区三区| 欧美手机在线视频| 欧美一区二区三区视频免费| 欧美日韩亚洲综合一区|