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

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

?? radarfdtd.cpp

?? fdtd3 C++.rar 3維電磁散射通用程序
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/* Define the precision */
#include "stdafx.h"
#include <iostream>
#define PRECISION double
#include "radarFDTD.h"

CradarFDTD::CradarFDTD()
{
	allocatedBytes = 0.0;        
	iteration = 0;     
	stimulus = 0.0;              
	currentSimulationTime = 0.0; 
	totalSimulationTime = 0.0; 
	currentConfigFileVersion = 3; 
	storage = 0;
}

CradarFDTD::~CradarFDTD()
{
	
}

PRECISION*** CradarFDTD::MyAllocPrecision(int dimensionX, int dimensionY, int dimensionZ, PRECISION value, int *storage)
{
	PRECISION ***returnArray;
	int i,j,k;
  
	*storage += sizeof(PRECISION) * dimensionX * dimensionY * dimensionZ;
	*storage += sizeof(PRECISION *) * dimensionX * dimensionY;
	*storage += sizeof(PRECISION **) * dimensionX;
  

	returnArray = (PRECISION ***) malloc(dimensionX * sizeof(PRECISION **));
	if (returnArray == NULL)
	{
		fprintf(stdout, "Sorry, but you don't have enough memory installed!");
		exit(1);
	}
  
	 for(i=0; i<dimensionX; i++)
	{
		returnArray[i] = (PRECISION **) malloc(dimensionY * sizeof(PRECISION *));
		if (returnArray[i] == NULL)
		{
		    fprintf(stdout, "Sorry, but you don't have enough memory installed!");
		    exit(1);
		}
		    for(j=0; j<dimensionY; j++)
		{
		    returnArray[i][j] = (PRECISION *) malloc(dimensionZ * sizeof(PRECISION));
		    if (returnArray[i][j] == NULL)
			{
			    fprintf(stdout, "Sorry, but you don't have enough memory installed!");
			    exit(1);
			}
			for(k=0; k<dimensionZ; k++)
			{
				returnArray[i][j][k] = value;
			}
		}
	}

	return returnArray;

}

unsigned short int*** CradarFDTD::MyAllocShortInt(int dimensionX, int dimensionY, int dimensionZ, int *storage)
{
	unsigned short int ***returnArray;
    int i,j,k;

    *storage += sizeof(unsigned short int) * dimensionX * dimensionY * dimensionZ;
    *storage += sizeof(unsigned short int *) * dimensionX * dimensionY;
    *storage += sizeof(unsigned short int **) * dimensionX;

    returnArray = (unsigned short int ***) malloc(dimensionX * sizeof(unsigned short int **));
    if (returnArray == NULL)
    {
        fprintf(stdout, "Sorry, but you don't have enough memory installed!");
        exit(1);
    }
  
    for(i=0; i<dimensionX; i++)
    {
        returnArray[i] = (unsigned short int **) malloc(dimensionY * sizeof(unsigned short int *));
        if (returnArray[i] == NULL)
		{
			fprintf(stdout, "Sorry, but you don't have enough memory installed!");
			exit(1);
		}

		for(j=0; j<dimensionY; j++)
		{
			returnArray[i][j] = (unsigned short int *) malloc(dimensionZ * sizeof(unsigned short int));
			if (returnArray[i][j] == NULL)
			{
				fprintf(stdout, "Sorry, but you don't have enough memory installed!");
				exit(1);
			}

			for(k=0; k<dimensionZ; k++)
			{
			   returnArray[i][j][k] = 0.0;
			}
		}
    }

  return returnArray;
  
}

int CradarFDTD::MyFreePrecision(PRECISION ***pointer, int x, int y, int z)
{
	int i,j;
  
	for(i=0; i<x; i++)
		for(j=0; j<y; j++)
			free(pointer[i][j]);
  
	 for(i=0; i<x; i++)
		free(pointer[i]);
  
	free(pointer);
	return 0;
}

int CradarFDTD::MyFreeShortInt(unsigned short int ***pointer, int x, int y, int z)
{
    int i,j;
  
    for(i=0; i<x; i++)
        for(j=0; j<y; j++)
			free(pointer[i][j]);
  
	for(i=0; i<x; i++)
		free(pointer[i]);
  
	free(pointer);
	return 0;
	
}

void CradarFDTD::PrintCorrectOrder(PRECISION number, FILE *output)
{
    int order = (int) log(number) / log(10) - 0.5;
  
	switch(order)
	{
		case -15: fprintf(output, "%5.2f f", number*1.0e+15);break;
		case -14: fprintf(output, "%5.2f f", number*1.0e+15);break;
		case -13: fprintf(output, "%5.2f f", number*1.0e+15);break;
		case -12: fprintf(output, "%5.2f p", number*1.0e+12);break;
		case -11: fprintf(output, "%5.2f p", number*1.0e+12);break;
		case -10: fprintf(output, "%5.2f p", number*1.0e+12);break;
		case -9: fprintf(output, "%5.2f n", number*1.0e+9);break;
		case -8: fprintf(output, "%5.2f n", number*1.0e+9);break;
		case -7: fprintf(output, "%5.2f n", number*1.0e+9);break;
		case -6: fprintf(output, "%5.2f t", number*1.0e+6);break;
		case -5: fprintf(output, "%5.2f t", number*1.0e+6);break;
		case -4: fprintf(output, "%5.2f t", number*1.0e+6);break;
		case -3: fprintf(output, "%5.2f m", number*1.0e+3);break;
		case -2: fprintf(output, "%5.2f m", number*1.0e+3);break;
		case -1: fprintf(output, "%5.2f m", number*1.0e+3);break;
		case 0: fprintf(output, "%5.2f", number);break;
		case 1: fprintf(output, "%5.2f", number);break;
		case 2: fprintf(output, "%5.2f", number);break;
		case 3: fprintf(output, "%5.2f k", number*1.0e-3);break;
		case 4: fprintf(output, "%5.2f k", number*1.0e-3);break;
		case 5: fprintf(output, "%5.2f k", number*1.0e-3);break;
		case 6: fprintf(output, "%5.2f M", number*1.0e-6);break;
		case 7: fprintf(output, "%5.2f M", number*1.0e-6);break;
		case 8: fprintf(output, "%5.2f M", number*1.0e-6);break;
		case 9: fprintf(output, "%5.2f G", number*1.0e-9);break;
		case 10: fprintf(output, "%5.2f G", number*1.0e-9);break;
		case 11: fprintf(output, "%5.2f G", number*1.0e-9);break;
		case 12: fprintf(output, "%5.2f T", number*1.0e-12);break;
		case 13: fprintf(output, "%5.2f T", number*1.0e-12);break;
		case 14: fprintf(output, "%5.2f T", number*1.0e-12);break;
		default: fprintf(output, "%5.2e", number);
  }
	
}


void CradarFDTD::ReadNextLine (FILE *file, char s[]) 
{
  /*  Read next line, which is not a comment, i.e. there is no '#' at the beginning */
   s[0] = '#';
   while ((s[0] == '#') && (!feof(file)))
      fscanf (file, "%[^\n]\n", s);
}

void CradarFDTD::ReadConfigfile(char *directory, char *filename)
{
	  FILE *configFile;
	  float a,b,c,d;
	  int h,i,j,k;
	  PRECISION maxEpsilon;
	  PRECISION tmpdt;
	  PRECISION tmpSigma, tmpEpsilon;
	  char string[4000];
	  PRECISION maxStep;
	  PRECISION tmpReflection;
	  int boxStartX, boxStartY, boxStartZ, boxEndX, boxEndY, boxEndZ;
	  int warningStop = 0;
  
	  /* open configfile */

	  fprintf(stdout, "Opening configfile %s\n\n", filename);
 
	  configFile = fopen(filename, "r");
  
	  if (configFile == NULL)
	  {
		  fprintf(stderr, "Cannot open file %s. Please check this!\n", filename);
		  exit(1);
	  }

	  /* ok, file is opened now read that cryptic file */

	  /* check version of config-file */
	  ReadNextLine(configFile, string);
	  sscanf(string, "%d\n", &h);

	  if (h != currentConfigFileVersion)
	  {
		  fprintf(stderr, "WARNING!!\n\nThis configfile (%s) is NOT suitable for this program.\n\n", filename);
		  exit(1);
	  }
    
	  /* max memory [bytes] */
	  ReadNextLine(configFile, string);
	  sscanf(string, "%d\n", &maxAllowedMemory);
	  /* range checking: must not be negative */
	  if (maxAllowedMemory < 0)
	  {
		  warningStop = 1;
		  fprintf(stderr, "WARNING: max. allowed memory is less than 0!\n");
	  }

	  /* maximum Sigma [S/m] */
	  ReadNextLine(configFile, string);
	  sscanf(string, "%f\n", &a);
	  maxSigma = (PRECISION) a;
	  /* range checking: must not be negative */
	  if (maxSigma < 0.0)
	  {
		  warningStop = 1;
		  fprintf(stderr, "WARNING: max. conductivity is less than 0!\n");
	  }

	  /* maximum Stretching [1] */
	  ReadNextLine(configFile, string);
	  sscanf(string, "%f\n", &a);
	  maxStretching = (PRECISION) a;
	  /* range checking: must not be negative */
	  if (maxStretching < 0.0)
	  {
		  warningStop = 1;
		  fprintf(stderr, "WARNING: max. stretching is less than 0!\n");
	  }
  
	  /* steepness of stretch parameter */
	  ReadNextLine(configFile, string);
	  sscanf(string, "%d\n", &stretchSteepness);
	  /* range checking: must not be zero */
	  if (fabs(stretchSteepness) < LIMIT)
	  {
		  warningStop = 1;
		  fprintf(stderr, "WARNING: stretching-exponent must not be 0!\n");
	  }
  
	  /* length of simulation */
	  ReadNextLine(configFile, string);
	  sscanf(string, "%g\n", &a);
	  simulationLength = (PRECISION) a;
	  /* range checking: must not be negative */
	  if (simulationLength < 0.0)
	  {
		  warningStop = 1;
		  fprintf(stderr, "WARNING: length of simulation is less than 0!\n");
	  }
  
	  /* number of cells in x,y,z-direction */
	  ReadNextLine(configFile, string);
	  sscanf(string, "%d %d %d\n", &nx, &ny, &nz);
	  /* range checking: must not be negative */
	  if (nx < 0)
	  {
		  warningStop = 1;
		  fprintf(stderr, "WARNING: number of cells in x-direction is less than 0!\n");
	  }
	  if (ny < 0)
	  {
		  warningStop = 1;
		  fprintf(stderr, "WARNING: number of cells in y-direction is less than 0!\n");
	  }
	  if (nz < 0)
	  {
		  warningStop = 1;
		  fprintf(stderr, "WARNING: number of cells in z-direction is less than 0!\n");
	  }

	  /* cell dimensions (x,y,z) */
	  ReadNextLine(configFile, string);
	  sscanf(string, "%g %g %g\n", &a, &b, &c);
	  dx = (PRECISION) a;
	  dy = (PRECISION) b;
	  dz = (PRECISION) c;
	  /* range checking: must not be negative */
	  if (dx < 0.0)
		{
		  warningStop = 1;
		  fprintf(stderr, "WARNING: number of cells in x-direction is less than 0!\n");
		}
	  if (dy < 0.0)
		{
		  warningStop = 1;
		  fprintf(stderr, "WARNING: number of cells in y-direction is less than 0!\n");
		}
	  if (dz < 0.0)
		{
		  warningStop = 1;
		  fprintf(stderr, "WARNING: number of cells in z-direction is less than 0!\n");
		}
	  dim_X = nx * dx;
	  dim_Y = ny * dy;
	  dim_Z = nz * dz;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品bt天堂精选| 国产成人免费av在线| 色av一区二区| 亚洲欧美另类久久久精品2019| 国产盗摄视频一区二区三区| 久久久久97国产精华液好用吗| 久久精品免费观看| 亚洲女同女同女同女同女同69| www.欧美.com| 伊人开心综合网| 欧美视频在线观看一区二区| 亚洲高清久久久| 欧美精品在线一区二区| 男人的天堂久久精品| 欧美va日韩va| 国产成人高清在线| 中文字幕日本乱码精品影院| 91影院在线观看| 亚洲高清免费在线| 日韩区在线观看| 国产成人8x视频一区二区| 亚洲欧洲中文日韩久久av乱码| 欧洲亚洲国产日韩| 美女国产一区二区三区| 国产欧美日韩精品在线| 色婷婷精品大在线视频| 日韩国产精品大片| 久久久久国产精品麻豆ai换脸| 色综合夜色一区| 蜜臀精品一区二区三区在线观看| 国产亚洲欧美中文| 欧美羞羞免费网站| 精品一区二区免费视频| 亚洲色图一区二区| 91精品国产麻豆| 成熟亚洲日本毛茸茸凸凹| 亚洲人成伊人成综合网小说| 日韩一区二区三区视频| 成人免费黄色在线| 日本一不卡视频| 亚洲日本免费电影| 精品久久久久香蕉网| 一本大道久久a久久精品综合| 香港成人在线视频| 国产精品天美传媒沈樵| 欧美日韩国产经典色站一区二区三区| 国产激情一区二区三区| 性欧美大战久久久久久久久| 国产精品理论片在线观看| 欧美一区二区视频在线观看2020| 成人高清免费在线播放| 麻豆成人91精品二区三区| 一区二区三区视频在线看| 久久久久久久久久久久久女国产乱 | 亚洲人成在线播放网站岛国| 日韩视频在线你懂得| 在线观看一区不卡| 成人一区二区视频| 老汉av免费一区二区三区| 亚洲综合视频网| 国产精品欧美久久久久无广告 | 亚洲成a人在线观看| 国产精品久久久久久久久免费丝袜| 欧美一区二区三区人| 色老汉一区二区三区| 成人av免费在线| 国产精品一区二区三区四区| 日韩福利视频导航| 一区二区三区小说| 日韩伦理免费电影| 国产精品久久久久天堂| 久久综合久久鬼色中文字| 日韩片之四级片| 777亚洲妇女| 欧美日韩亚洲综合在线| 欧美专区亚洲专区| 色天使色偷偷av一区二区| 99久久伊人久久99| 成人国产精品免费观看视频| 国v精品久久久网| 国产成人精品免费一区二区| 韩国精品久久久| 国产在线视视频有精品| 久久精品久久综合| 久久精品国产一区二区三区免费看 | 在线播放91灌醉迷j高跟美女 | 国产真实乱偷精品视频免| 豆国产96在线|亚洲| 国产精品99久久久久久似苏梦涵| 六月婷婷色综合| 国精产品一区一区三区mba桃花 | 成人性生交大片免费看中文网站| 久久 天天综合| 国产呦萝稀缺另类资源| 国内精品国产成人国产三级粉色| 国产裸体歌舞团一区二区| 国产精品66部| 不卡视频免费播放| 91黄色小视频| 欧美二区在线观看| 26uuu精品一区二区三区四区在线| 26uuu精品一区二区| 国产精品每日更新在线播放网址| 中文字幕一区二区三区乱码在线| 亚洲欧美日韩中文播放| 亚洲成av人片一区二区三区| 捆绑紧缚一区二区三区视频 | 日韩欧美国产1| 久久美女艺术照精彩视频福利播放| 久久久亚洲精华液精华液精华液| 国产欧美精品一区二区色综合朱莉| 综合分类小说区另类春色亚洲小说欧美| 亚洲摸摸操操av| 天堂成人国产精品一区| 精品亚洲成av人在线观看| 国产91精品在线观看| 欧美亚洲动漫制服丝袜| 日韩小视频在线观看专区| 国产日韩三级在线| 亚洲综合免费观看高清在线观看| 秋霞国产午夜精品免费视频| 国产99久久精品| 欧美日韩精品是欧美日韩精品| 精品国精品国产尤物美女| 亚洲欧美自拍偷拍色图| 午夜精品免费在线| 国产高清无密码一区二区三区| 成人h动漫精品一区二区| 欧美日本一区二区三区四区| 久久久精品综合| 亚洲国产精品久久不卡毛片| 国产精品一二三四区| 欧美视频一区二区三区四区| 久久久久久9999| 亚洲福利视频三区| 成人激情免费电影网址| 欧美一级理论片| 亚洲精品大片www| 国产一区在线不卡| 欧美精品日日鲁夜夜添| 国产精品久久久久久久蜜臀| 青青草国产精品亚洲专区无| 91小视频免费观看| 久久久www免费人成精品| 亚洲小说春色综合另类电影| 国产91精品一区二区麻豆亚洲| 91精品国产91综合久久蜜臀| 樱桃视频在线观看一区| 国产精品一二二区| 日韩三级在线观看| 亚洲国产精品久久一线不卡| 99久久综合99久久综合网站| 国产亚洲欧美一级| 理论片日本一区| 欧美人狂配大交3d怪物一区| 亚洲精品视频免费看| 粉嫩aⅴ一区二区三区四区| 日韩一区二区三| 肉色丝袜一区二区| 欧美天堂一区二区三区| 亚洲欧美二区三区| k8久久久一区二区三区 | 26uuuu精品一区二区| 日日摸夜夜添夜夜添国产精品| 91蝌蚪国产九色| 国产精品国产三级国产专播品爱网| 国产曰批免费观看久久久| 欧美一区二区网站| 日本不卡的三区四区五区| 欧美日韩另类一区| 亚洲图片有声小说| 欧美四级电影在线观看| 亚洲美女免费视频| 99久久婷婷国产| 亚洲国产高清在线| 国产 欧美在线| 国产欧美日韩在线看| 国产成人免费9x9x人网站视频| 精品乱人伦一区二区三区| 久久福利资源站| 欧美www视频| 国模少妇一区二区三区| 国产亚洲一区二区在线观看| 国产做a爰片久久毛片| 欧美精品一区二| 国产ts人妖一区二区| 国产精品美女久久久久久久久 | 99天天综合性| 亚洲人成人一区二区在线观看| 91视频在线观看免费| 亚洲激情综合网| 欧美日韩国产乱码电影| 秋霞成人午夜伦在线观看| 久久综合久久综合久久| 高清成人在线观看| 日韩毛片视频在线看| 欧美日韩精品三区| 久久精品国产99国产| 国产偷国产偷亚洲高清人白洁| 成人永久aaa|