139 lines
3.7 KiB
C
139 lines
3.7 KiB
C
|
#pragma once
|
|||
|
|
|||
|
#ifndef FARFIELDFILECLASS_H
|
|||
|
#define FARFIELDFILECLASS_H
|
|||
|
#include "referenceHeader.h"
|
|||
|
#include "FEKOBaseToolClass.h"
|
|||
|
|
|||
|
|
|||
|
namespace FEKOBase {
|
|||
|
//
|
|||
|
// 参数 altair feko user guide 2018.1
|
|||
|
// 章节 A-10 summary of feko file formats
|
|||
|
//
|
|||
|
|
|||
|
const QString FEKOFARFIELDSPLITCHAT = u8" ";
|
|||
|
|
|||
|
enum FEKOFARFIELDRESULTTYPE {
|
|||
|
GAIN, // 增益
|
|||
|
DIRECTIVITY,// 电场
|
|||
|
RCS,// 后向散射系数
|
|||
|
FARFIELDVALUES,// 远场值
|
|||
|
FEKOFARFIELDRESULTTYPEUNKOWN
|
|||
|
};
|
|||
|
FEKOBase::FEKOFARFIELDRESULTTYPE FEKOFARFIELDRESULTTYPEString2Enum(QString str);
|
|||
|
QString QString2FEKOFARFIELDRESULTTYPE(FEKOBase::FEKOFARFIELDRESULTTYPE mode);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//==========================================================
|
|||
|
// FEKO 仿真结果文件 farfield 文件 ffe
|
|||
|
// 解析ffe 文件
|
|||
|
//==========================================================
|
|||
|
struct FEKOFarFieldFEKOFarFieldData // 仿真结果的数据项 ,行
|
|||
|
{
|
|||
|
double X=0;// cartesian coordinate system
|
|||
|
double Y=0;
|
|||
|
double Z=0;
|
|||
|
double U=0; // cartesian coordinate system
|
|||
|
double V=0;
|
|||
|
double radius=0; // nearfield
|
|||
|
double theta=0; // spherical coordinate system
|
|||
|
double phi=0;
|
|||
|
double re_Er=0;
|
|||
|
double im_Er=0;
|
|||
|
double re_Etheta=0; // theta
|
|||
|
double im_Etheta=0;
|
|||
|
double re_Ephi=0; // phi
|
|||
|
double im_Ephi=0;
|
|||
|
double re_Ex=0;// X
|
|||
|
double im_Ex=0;
|
|||
|
double re_Ey=0; //y
|
|||
|
double im_Ey=0;
|
|||
|
double re_Ez=0; //z
|
|||
|
double im_Ez=0;
|
|||
|
double gain_Theta=0; // gain in spherical coordinate system
|
|||
|
double gain_Phi=0;
|
|||
|
double gain_Total=0;
|
|||
|
double directivity_Theta=0; // directivity in spherical coordinate system
|
|||
|
double directivity_Phi = 0;
|
|||
|
double directivity_total = 0;
|
|||
|
double RCS_theta = 0;// RCS in spherical coordinate system
|
|||
|
double RCS_phi = 0;
|
|||
|
double RCS_total = 0;
|
|||
|
};
|
|||
|
|
|||
|
class FEKOFARFIELDFEKODATABLOCK { // 数据块
|
|||
|
public:
|
|||
|
FEKOFARFIELDFEKODATABLOCK();
|
|||
|
~FEKOFARFIELDFEKODATABLOCK();
|
|||
|
public: // 变量
|
|||
|
QString configurationName;
|
|||
|
QString requestName;
|
|||
|
double frequency;
|
|||
|
FEKOBase::FEKOCoordinateSystem coordinateSystem; //
|
|||
|
FEKOBase::FEKOFARFIELDRESULTTYPE resultType;
|
|||
|
long thetaSamples;
|
|||
|
long phiSamples;
|
|||
|
long USamples;
|
|||
|
long VSamples;
|
|||
|
CartesianCoordinates Origin; // 坐标系原点
|
|||
|
long headerLines;
|
|||
|
QList<FEKOBase::FEKOFarFieldFEKOFarFieldData> dataList;
|
|||
|
public: // 相关函数
|
|||
|
// 解析文件
|
|||
|
int paraseFEKOFarFieldDataBlock(const QString& blockstr); // 解析数据块
|
|||
|
int paraseFEKOFarFieldDataBlockFromList(QList<QString>& blockstr); // 解析数据块
|
|||
|
QString normalizationHeaderString(QString headerstr);// 对数据块头名称进行标准化
|
|||
|
|
|||
|
// 保存文件
|
|||
|
QString saveFEKOFarFieldDataBlock(); // 生成数据块字符串
|
|||
|
QString saveFEKOFarFieldDataBlock_Gain(); // 根据类型生成数据块字符串
|
|||
|
QString saveFEKOFarFieldDataBlock_Directivity();
|
|||
|
QString saveFEKOFarFieldDataBlock_RCS();
|
|||
|
QString saveFEKOFarFieldDataBlock_FarFieldValues();
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
class FEKOFarFieldFileClass: public QObject
|
|||
|
{
|
|||
|
// Q_OBJECT
|
|||
|
public:
|
|||
|
FEKOFarFieldFileClass();
|
|||
|
~FEKOFarFieldFileClass();
|
|||
|
|
|||
|
public:
|
|||
|
QString FileType;
|
|||
|
QString FileFormat;
|
|||
|
QString Sourcestr;
|
|||
|
QString Datestr;
|
|||
|
QList<FEKOBase::FEKOFARFIELDFEKODATABLOCK> dataBlockList;
|
|||
|
|
|||
|
|
|||
|
public:
|
|||
|
void parseFarFieldFile(const QString& fileName);
|
|||
|
void outputToFile(const QString& fileName);
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//==========================================================
|
|||
|
// FEKO 仿真结果文件 nearfield 文件 efe
|
|||
|
// 解析efe 文件,
|
|||
|
//==========================================================
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
#endif // ! FARFIELDFILECLASS_H
|
|||
|
|