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

📄 main.cpp

📁 本程序是使用有限时域差分法计算模拟电磁波在光学薄膜中的传输
💻 CPP
字号:
/* FDTD_2.1.c FDTD simulation									*/
/* Simulation of a sinusoidal wave hitting a dielectric medium	*/
/* 1D FDTD simulation of a lossy dielectric medium				*/
/* Absorbing Boundary Condition added							*/
/* method : run "init.exe fileName"								*/

#include <QDebug>
#include <fdtd.h>

int main(int argc, char *argv[])
{
	QCoreApplication app(argc, argv);
	
	QStringList args = app.arguments();
	QString fileName;
	if (args.count() > 1)
		fileName = args[1];
	else {
		qDebug() << "error: No file to write!" << endl;
		return -1;
	}
	
	QDir dir;
	QFileInfoList list = dir.entryInfoList();
	for (int i = 0; i < list.size(); ++i) {
		QFileInfo fileInfo = list.at(i);
		if (fileInfo.fileName() == fileName) {
			QFile fileRead(fileName);
			if (!fileRead.open(QIODevice::ReadWrite | QIODevice::Text)) {
				qDebug() << "error: Cannot open the file named " << fileName << "." << endl;
				return -2;
			}
			
			QTextStream read(&fileRead);
			FDTD *fdtd = new FDTD;
			fdtd->readFile(read);
			fileRead.close();
			
			fdtd->simulate();
			
			QFile fileWrite(fileName);
			if (!fileWrite.open(QIODevice::WriteOnly | QIODevice::Text)) {
				qDebug() << "error: Cannot write the file named " << fileName << "." << endl;
				return -2;
			}
			QTextStream write(&fileWrite);
			fdtd->writeFile(write);
			fileWrite.close();
			
			delete fdtd;
			return 1;
		}
	}
	
	QFile file(fileName);
	if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
		qDebug() << "error: Cannot write the file named " << fileName << "." << endl;
		return -2;
	}
	
	QTextStream stream(&file);
	FDTD *fdtd = new FDTD;
	fdtd->initialize();
	fdtd->writeFile(stream);
	file.close();
	
	delete fdtd;
	return 0;
}

⌨️ 快捷键说明

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