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

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

?? read_input_file.cpp

?? fdtd 3D xyzPML MPI OpenMP
?? CPP
字號:
#include "read_input_file.h"

int readFile_fdtd_data(Input_Data *Inp_D, char *ut_nev)
{
	//ifstream declaration
	ifstream *inClientFile = NULL;
	inClientFile = new ifstream[1];
	//open the file
	inClientFile->open(ut_nev,ios::in);
	if (!*inClientFile)//return if ifstream could not open the specified file
	{
		cerr << "File: " << ut_nev << " - cannot be open" << endl;
		return 1;
	}
	
	try
	{
		#ifdef _OPENMP
			ReadFileVar<int>(inClientFile, "num_threads", &Inp_D->num_threads);
		#endif

		ReadFileVar<long>(inClientFile, "iProcs", &Inp_D->iProcs);
		ReadFileVar<long>(inClientFile, "jProcs", &Inp_D->jProcs);
		ReadFileVar<long>(inClientFile, "kProcs", &Inp_D->kProcs);

		ReadFileVar<long>(inClientFile, "nx", &Inp_D->nx);
		ReadFileVar<long>(inClientFile, "ny", &Inp_D->ny);
		ReadFileVar<long>(inClientFile, "nz", &Inp_D->nz);

		ReadFileVar<long>(inClientFile, "nPML_x_1", &Inp_D->nPML_x_1);
		ReadFileVar<long>(inClientFile, "nPML_x_2", &Inp_D->nPML_x_2);
		ReadFileVar<long>(inClientFile, "nPML_y_1", &Inp_D->nPML_y_1);
		ReadFileVar<long>(inClientFile, "nPML_y_2", &Inp_D->nPML_y_2);
		ReadFileVar<long>(inClientFile, "nPML_z_1", &Inp_D->nPML_z_1);
		ReadFileVar<long>(inClientFile, "nPML_z_2", &Inp_D->nPML_z_2);

		//the PML parameters in x,y and z direction
		ReadFileVar<double>(inClientFile, "PML_eps_r_x_1", &Inp_D->PML_eps_r_x_1);
		ReadFileVar<double>(inClientFile, "PML_mu_r_x_1", &Inp_D->PML_mu_r_x_1);
		
		ReadFileVar<double>(inClientFile, "PML_eps_r_x_2", &Inp_D->PML_eps_r_x_2);
		ReadFileVar<double>(inClientFile, "PML_mu_r_x_2", &Inp_D->PML_mu_r_x_2);
		
		ReadFileVar<double>(inClientFile, "PML_eps_r_y_1", &Inp_D->PML_eps_r_y_1);
		ReadFileVar<double>(inClientFile, "PML_mu_r_y_1", &Inp_D->PML_mu_r_y_1);
		
		ReadFileVar<double>(inClientFile, "PML_eps_r_y_2", &Inp_D->PML_eps_r_y_2);
		ReadFileVar<double>(inClientFile, "PML_mu_r_y_2", &Inp_D->PML_mu_r_y_2);
		
		ReadFileVar<double>(inClientFile, "PML_eps_r_z_1", &Inp_D->PML_eps_r_z_1);
		ReadFileVar<double>(inClientFile, "PML_mu_r_z_1", &Inp_D->PML_mu_r_z_1);
		
		ReadFileVar<double>(inClientFile, "PML_eps_r_z_2", &Inp_D->PML_eps_r_z_2);
		ReadFileVar<double>(inClientFile, "PML_mu_r_z_2", &Inp_D->PML_mu_r_z_2);
		
		ReadFileVar<double>(inClientFile, "dx", &Inp_D->dx);
		ReadFileVar<double>(inClientFile, "dy", &Inp_D->dy);
		ReadFileVar<double>(inClientFile, "dz", &Inp_D->dz);

		ReadFileVar<long>(inClientFile, "num_iter", &Inp_D->num_iter);
		
		ReadFileVar<double>(inClientFile, "limit_time", &Inp_D->limit_time);

		ReadFileVar<int>(inClientFile, "load_workspace_data", &Inp_D->load_workspace_data);
		if(Inp_D->load_workspace_data)
		{
			ReadFileVarString(inClientFile, "Path_Load_Workspace_Data", &Inp_D->Path_Load_Workspace_Data);
		}
	    
		ReadFileVar<int>(inClientFile, "save_field", &Inp_D->save_field);
		if(Inp_D->save_field)
		{
			ReadFileVar<long>(inClientFile, "nr_Save", &Inp_D->nr_Save);
			ReadFileVar<long>(inClientFile, "saveFROMinst", &Inp_D->saveFROMinst);
			ReadFileVar<long>(inClientFile, "saveTOinst", &Inp_D->saveTOinst);
			ReadFileVar<long>(inClientFile, "save_slice_nx", &Inp_D->save_slice_nx);
			if (Inp_D->save_slice_nx < 0)
			{
				cerr << "wrong save_slice_nx:  " << Inp_D->save_slice_nx << endl;
				return 1;
			}
			if (Inp_D->save_slice_nx >= Inp_D->nx)
			{
				cerr << "wrong save_slice_nx:  " << Inp_D->save_slice_nx << " >= " << Inp_D->nx  << endl;
				return 1;
			}
			ReadFileVar<long>(inClientFile, "save_slice_ny", &Inp_D->save_slice_ny);
			if (Inp_D->save_slice_ny < 0)
			{
				cerr << "wrong save_slice_ny:  " << Inp_D->save_slice_ny << endl;
				return 1;
			}
			if (Inp_D->save_slice_ny >= Inp_D->ny)
			{
				cerr << "wrong save_slice_ny:  " << Inp_D->save_slice_ny << " >= " << Inp_D->ny  << endl;
				return 1;
			}
			ReadFileVar<long>(inClientFile, "save_slice_nz", &Inp_D->save_slice_nz);
			if (Inp_D->save_slice_nz < 0)
			{
				cerr << "wrong save_slice_nz:  " << Inp_D->save_slice_nz << endl;
				return 1;
			}
			if (Inp_D->save_slice_nz >= Inp_D->nz)
			{
				cerr << "wrong save_slice_nz:  " << Inp_D->save_slice_nz << " >= " << Inp_D->nz  << endl;
				return 1;
			}
		}

		ReadFileVar<long>(inClientFile, "source_type", &Inp_D->source_type);
		ReadFileVar<long>(inClientFile, "jel_plane_wave", &Inp_D->jel_plane_wave);

		if ( Inp_D->jel_plane_wave) //plane wave
		{
			ReadFileVar<long>(inClientFile, "n_TS", &Inp_D->n_TS);

			ReadFileVar<long>(inClientFile, "nPML_1D", &Inp_D->nPML_1D);
			ReadFileVar<double>(inClientFile, "PML_eps_r_1D", &Inp_D->PML_eps_r_1D);
			ReadFileVar<double>(inClientFile, "PML_mu_r_1D", &Inp_D->PML_mu_r_1D);

			ReadFileVar<double>(inClientFile, "teta", &Inp_D->teta);
			ReadFileVar<double>(inClientFile, "phi", &Inp_D->phi);
			ReadFileVar<double>(inClientFile, "gamma", &Inp_D->gamma);
			
			ReadFileVar<double>(inClientFile, "X0", &Inp_D->X0);
			switch ( Inp_D->source_type)
			{
				case 1: //Gaussian source
					ReadFileVar<double>(inClientFile, "t0", &Inp_D->t0);
					ReadFileVar<double>(inClientFile, "tw", &Inp_D->tw);
					break;
				case 2: //Sin source
					ReadFileVar<double>(inClientFile, "omega", &Inp_D->omega);
					ReadFileVar<double>(inClientFile, "phase", &Inp_D->phase);
					ReadFileVar<double>(inClientFile, "const_alfa", &Inp_D->const_alfa);
					break;
				case 3://Gaussian-Sin source
					ReadFileVar<double>(inClientFile, "t0", &Inp_D->t0);
					ReadFileVar<double>(inClientFile, "tw", &Inp_D->tw);
					ReadFileVar<double>(inClientFile, "omega", &Inp_D->omega);
					ReadFileVar<double>(inClientFile, "phase", &Inp_D->phase);
					break;
			}
		}
		else
		{
			ReadFileVar<long>(inClientFile, "n_Coord", &Inp_D->n_Coord);
			ReadFileVarString(inClientFile, "path_name_CoordPointSource", &Inp_D->path_name_CoordPointSource);
			ReadFileVar<int>(inClientFile, "readFile_Param_Pt_Source", &Inp_D->readFile_Param_Pt_Source);
			if (Inp_D->readFile_Param_Pt_Source)
			{
				ReadFileVarString(inClientFile, "path_name_ParamPointSource", &Inp_D->path_name_ParamPointSource);
			}
			else
			{
				ReadFileVar<double>(inClientFile, "X0", &Inp_D->X0);
				switch ( Inp_D->source_type)
				{
					case 1: //Gaussian source
						ReadFileVar<double>(inClientFile, "t0", &Inp_D->t0);
						ReadFileVar<double>(inClientFile, "tw", &Inp_D->tw);
						break;
					case 2: //Sin source
						ReadFileVar<double>(inClientFile, "omega", &Inp_D->omega);
						ReadFileVar<double>(inClientFile, "phase", &Inp_D->phase);
						ReadFileVar<double>(inClientFile, "const_alfa", &Inp_D->const_alfa);
						break;
					case 3://Gaussian-Sin source
						ReadFileVar<double>(inClientFile, "t0", &Inp_D->t0);
						ReadFileVar<double>(inClientFile, "tw", &Inp_D->tw);
						ReadFileVar<double>(inClientFile, "omega", &Inp_D->omega);
						ReadFileVar<double>(inClientFile, "phase", &Inp_D->phase);
						break;
				}
			}
			ReadFileVar<int>(inClientFile, "pt_source_Ex", &Inp_D->pt_source_Ex);
			ReadFileVar<int>(inClientFile, "pt_source_Ey", &Inp_D->pt_source_Ey);
			ReadFileVar<int>(inClientFile, "pt_source_Ez", &Inp_D->pt_source_Ez);
			ReadFileVar<int>(inClientFile, "pt_source_Hx", &Inp_D->pt_source_Hx);
			ReadFileVar<int>(inClientFile, "pt_source_Hy", &Inp_D->pt_source_Hy);
			ReadFileVar<int>(inClientFile, "pt_source_Hz", &Inp_D->pt_source_Hz);
		}

		ReadFileVarString(inClientFile, "path_name_Index", &Inp_D->path_name_Index);

		ReadFileVar<long>(inClientFile, "n_Mat", &Inp_D->n_Mat);
		ReadFileVarString(inClientFile, "path_name_Mat", &Inp_D->path_name_MatParam);

		//the followed points
		ReadFileVar<int>(inClientFile, "load_foll_field_points", &Inp_D->load_foll_field_points);
		if (Inp_D->load_foll_field_points > 0)
		{
			ReadFileVar<long>(inClientFile, "n_Ind_F", &Inp_D->n_Ind_F);
			ReadFileVarString(inClientFile, "path_name_foll_field_points", &Inp_D->path_name_foll_field_points);
		}

		ReadFileVar<int>(inClientFile, "nr_cout", &Inp_D->nr_cout);
		
		//save the data
		ReadFileVarString(inClientFile, "path_save_data", &Inp_D->path_save_data);
	}
	catch( char * str )
    {
        cout << "Exception raised - " << str << ut_nev << '\n';
		return 1;
    }

	if (inClientFile)
	{
		delete [] inClientFile;
		inClientFile = NULL;
	}
	
	return 0;	

	
}

///////////////////////////////////////////////////////////////////////////////////////
//Reads from a previously opened file the value of a variable
///////////////////////////////////////////////////////////////////////////////////////
template <class T>int ReadFileVar(ifstream *inClientFile, char var_name[], T *var)
{
	//inClientFile - pointer to the previously opened File stream
	//var_name - contains the name of the variable
	//var - pointer to a long, the function will return the value of the variable in this
	
	int length_var_name = (int) strlen(var_name);
	char line[512];
	int i, j;
		
	while (inClientFile->getline(line,512))
	{
		if (line[0] != '/' && line[1] != '/')
		{
			i = 0;
			while (line[i] != '\0')
			{
				if (!strncmp(&line[i],var_name,length_var_name))
				{
					j = i + length_var_name;
					while (line[j] != '\0')
					{
						if ( line[j] >= '0' && line[j] <= '9')
						{
							*var = (T) atof(&line[j]);
							inClientFile->seekg( 0, ios_base::beg ); //back to the beginning of the file
							return 0;
						}
						j++;
					}
				}
				i++;
			}
		}
	}

	cerr << var_name << " - cannot be found" << endl;
	throw "error reading input data from: ";

	return 1; //the specified variable was not found in the file
}

///////////////////////////////////////////////////////////////////////////////////////
//Reads from a previously opened file the value of a variable
///////////////////////////////////////////////////////////////////////////////////////
int ReadFileVarString(ifstream *inClientFile, char var_name[], char **var)
{
	//inClientFile - pointer to the previously opened File stream
	//var_name - contains the name of the variable
	//var - pointer to a long, the function will return the value of the variable in this
	int length_var_name = (int) strlen(var_name);
	char line[512];
	int i, j, k;
	
	while (inClientFile->getline(line,512))
	{
		if (line[0] != '/' && line[1] != '/')
		{
			i = 0;
			while (line[i] != '\0')
			{
				if (!strncmp(&line[i],var_name,length_var_name))
				{
					j = i + length_var_name;
					while (line[j] != '\0')
					{
						if ( ( (line[j] >= 48 && line[j] <= 59 ) || // "1-9"
							   (line[j] >= 65 && line[j] <= 90 ) || // "A-Z"
							   (line[j] >= 97 && line[j] <= 122) || // "a-z"
							    line[j] == 47 || line[j] == 92 ) )    // "/" and "\"
						{  
							k = j+1;
							while (line[k] != ' ' && line[k] != '\0' && line[k] != ';') //find the end
							{
								k++;
							}
							long n_array = k-j;
							*var = new char[n_array+1];
							strncpy(*var,&line[j],n_array);//does not copy null character
							var[0][n_array] = '\0';
							inClientFile->seekg( 0, ios_base::beg ); //back to the beginning of the file
							return 0;
						}
						j++;
					}
				}
				i++;
			}
		}
	}
	
	*var = NULL;

	cerr << var_name << " - cannot be found" << endl;
	throw "error reading input data from: ";
	return 1; //the specified variable was not found in the file
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲6080在线| 国产白丝网站精品污在线入口| 日韩一区二区电影网| 国产精品一二三区在线| 一区二区成人在线| 国产欧美日韩另类视频免费观看| 8v天堂国产在线一区二区| 成人av一区二区三区| 日韩国产成人精品| 狠狠狠色丁香婷婷综合激情| 亚洲人成亚洲人成在线观看图片 | 亚洲男同1069视频| 久久综合久色欧美综合狠狠| 欧美写真视频网站| 成人污视频在线观看| 久久99精品视频| 日日夜夜精品视频天天综合网| 亚洲人精品一区| 中文字幕av一区二区三区免费看 | 亚洲高清不卡在线观看| 国产精品色在线| 久久综合av免费| 日韩欧美色电影| 欧美三级视频在线| 91福利视频网站| 一道本成人在线| 97久久久精品综合88久久| 国产黄色成人av| 国产精品18久久久久久久网站| 免费不卡在线观看| 午夜伊人狠狠久久| 亚洲成人自拍一区| 亚洲成人自拍网| 亚洲国产一区视频| 爽好多水快深点欧美视频| 亚洲国产aⅴ天堂久久| 亚洲精品国产无天堂网2021| 亚洲精品欧美综合四区| 亚洲欧美另类在线| 一区二区三区精品久久久| 一区二区三区欧美日| 亚洲免费在线播放| 亚洲成va人在线观看| 日韩激情av在线| 六月丁香婷婷久久| 国产精品88888| 成人av网址在线观看| 91性感美女视频| 欧洲精品一区二区| 欧美日韩国产乱码电影| 在线成人高清不卡| 日韩欧美亚洲国产另类| 精品国产乱码91久久久久久网站| 精品国产三级电影在线观看| 久久久国产午夜精品| 国产精品女同一区二区三区| 中文字幕永久在线不卡| 亚洲综合清纯丝袜自拍| 蜜臀av一区二区在线免费观看| 日本成人在线一区| 国产成人小视频| 丁香婷婷综合五月| 色久优优欧美色久优优| 337p亚洲精品色噜噜| 国产亚洲欧美在线| 夜夜爽夜夜爽精品视频| 麻豆精品精品国产自在97香蕉| 国产黄色91视频| 一本大道久久a久久精品综合| 制服丝袜亚洲精品中文字幕| 精品久久久久av影院| 久久久精品2019中文字幕之3| 中文字幕日韩一区二区| 亚洲成av人片一区二区三区| 另类欧美日韩国产在线| av成人老司机| 91精品婷婷国产综合久久 | 欧美一级久久久| 国产色产综合色产在线视频| 亚洲黄色小视频| 久久精品国产精品亚洲综合| 99re亚洲国产精品| 日韩一区二区在线播放| 中文字幕在线不卡国产视频| 日韩国产欧美在线观看| 成人av网站在线观看| 欧美老女人第四色| 国产精品美女久久久久av爽李琼| 亚洲第一激情av| 国产成人99久久亚洲综合精品| 欧美色图激情小说| 国产精品久久久久久久久晋中| 日韩精品电影一区亚洲| 972aa.com艺术欧美| 精品国产免费久久| 亚洲福利电影网| caoporn国产精品| 精品国产91久久久久久久妲己 | 久久久久一区二区三区四区| 亚洲第一福利视频在线| 本田岬高潮一区二区三区| 日韩视频国产视频| 亚洲一区二区三区影院| 不卡的电影网站| 亚洲精品在线免费观看视频| 亚洲资源在线观看| 99国内精品久久| 国产欧美日韩亚州综合| 蜜桃视频在线一区| 欧美日韩国产三级| 一区二区三区在线高清| 不卡的电影网站| 欧美极品美女视频| 国产久卡久卡久卡久卡视频精品| 欧美久久一区二区| 亚洲国产成人porn| 色老汉一区二区三区| 亚洲欧洲综合另类| 91麻豆国产自产在线观看| 国产精品色呦呦| 成人综合婷婷国产精品久久免费| 欧美zozo另类异族| 日韩电影一二三区| 欧美欧美欧美欧美| 亚洲午夜精品网| 欧美色男人天堂| 亚洲国产综合在线| 欧美日韩中文精品| 午夜精品免费在线观看| 欧美日韩一区二区电影| 亚洲高清免费视频| 8v天堂国产在线一区二区| 亚洲成av人影院在线观看网| 欧美日韩一区二区三区在线| 中文字幕一区二区三区蜜月| av亚洲精华国产精华精华| 欧美国产日韩精品免费观看| 成人免费观看男女羞羞视频| 国产人妖乱国产精品人妖| 国产不卡在线播放| 久久久精品国产免大香伊| 国产福利一区二区三区在线视频| 久久夜色精品一区| 高清日韩电视剧大全免费| 国产精品久久久爽爽爽麻豆色哟哟 | 高清成人在线观看| 中文字幕中文字幕中文字幕亚洲无线 | 国产精品美女久久久久久久网站| 波多野结衣亚洲一区| 亚洲男女毛片无遮挡| 欧美色精品天天在线观看视频| 五月婷婷欧美视频| 精品成人一区二区三区四区| 国产一区二区三区日韩| 国产精品水嫩水嫩| 在线看国产一区二区| 日韩和欧美一区二区| 久久亚洲影视婷婷| 不卡视频在线看| 悠悠色在线精品| 日韩欧美123| 国产91高潮流白浆在线麻豆| 亚洲欧洲国产日韩| 欧美丰满嫩嫩电影| 国产激情一区二区三区四区| 亚洲欧美怡红院| 欧美老肥妇做.爰bbww视频| 韩日精品视频一区| 亚洲欧美日韩在线播放| 欧美高清性hdvideosex| 国产精品 日产精品 欧美精品| 亚洲色大成网站www久久九九| 欧美喷水一区二区| 国产91丝袜在线播放| 亚洲国产精品久久久久婷婷884| 久久影院午夜片一区| 91麻豆免费观看| 韩国欧美国产1区| 樱桃国产成人精品视频| 亚洲午夜久久久久久久久电影网| 2022国产精品视频| 色狠狠av一区二区三区| 久久99久久99小草精品免视看| 国产精品久久久久影院老司| 欧美久久婷婷综合色| 成人在线视频一区| 午夜精品久久久久影视| 国产精品免费视频观看| 91精品国产欧美一区二区成人| 成人黄色777网| 老司机午夜精品| 亚洲影院久久精品| 久久久国产精华| 欧美久久久影院| 91丝袜呻吟高潮美腿白嫩在线观看| 免费高清在线视频一区·| 一区二区三区高清在线| 亚洲国产精品av| 日韩一区二区免费视频| 欧美私人免费视频|