画布1
1
  本征模式
    FemType=0
ElectricType=0
      物理场
        int FemType;
int EletricType;
int NbrBoundary;
std::vector<int> BoundaryFlag;//边界对应边界条件 0为完美磁导体 1为完美电导体 2为散射边界条件 4为周期性边界条件
        std::vector<int> PBC [源边编号；目标边编号];
std::vector<int> PBCData [实部值；虚部值];
          BoundaryFlag = 4 ;含有周期性边界条件时
      求解器
        int NbrMode;//模式数目 默认为6
int searchType;//搜索方式 0为附近搜索，1为更大实部，2为更小实部，默认为0
double searchValue;//搜索值 本征模式时默认为1，本征频率时默认为3e8
int solverType;//求解器类型 0为Krylov schur，默认为0
int maxIterNum;//最大迭代次数 默认值40
double tol;//误差 默认为1e-6
int tolType;//误差类型 0为绝对值 1为相对值，默认为0
        double lambda0;//波长 默认为1.55e-6
          比本征频率多的变量
  本征频率
    FemType=1
ElectricType=0
      物理场
        int FemType;
int EletricType;
int NbrBoundary;
std::vector<int> BoundaryFlag;//边界对应边界条件 0为完美磁导体 1为完美电导体 2为散射边界条件 4为周期性边界条件
        std::vector<int> PBC [源边编号；目标边编号];
std::vector<int> PBCData [实部值；虚部值];
          BoundaryFlag = 4 ;含有周期性边界条件时
      求解器
        int NbrMode;//模式数目 默认为6
int searchType;//搜索方式 0为附近搜索，1为更大实部，2为更小实部，默认为0
double searchValue;//搜索值 本征模式时默认为1，本征频率时默认为3e8
int solverType;//求解器类型 0为Krylov schur，默认为0
int maxIterNum;//最大迭代次数 默认值40
double tol;//误差 默认为1e-6
int tolType;//误差类型 0为绝对值 1为相对值，默认为0
  激励问题
    FemType=2
      ElectricType=0
        物理场
          int FemType;
int EletricType;
int NbrBoundary;
std::vector<int> BoundaryFlag;//边界对应边界条件 0为完美磁导体 1为完美电导体 2为散射边界条件 3为电场，4为周期性边界条件 默认为0
std::vector<double> E0x; //边界条件-电场 x分量 FemType=2时才存在，默认为0
std::vector<double> E0y; //边界条件-电场 y分量 FemType=2时才存在，默认为0
std::vector<double> E0z; //边界条件-电场 z分量 FemType=2时才存在，默认为0
std::vector<double>Eincx; //边界条件-散射边界入射电场 x分量 FemType=2时才存在，默认为0
std::vector<double>Eincy; //边界条件-散射边界入射电场 y分量 FemType=2时才存在，默认为0
std::vector<double> Eincz; //边界条件-散射边界入射电场 z分量 FemType=2时才存在，默认为0
std::vector<double> nx;//边界条件-散射边界入射电场 x方向 FemType=2时才存在，默认为0
std::vector<double> ny;//边界条件-散射边界入射电场 y方向FemType=2时才存在，默认为0
          std::vector<int> PBC [源边编号；目标边编号];
std::vector<int> PBCData [实部值；虚部值];
            BoundaryFlag = 4 ;含有周期性边界条件时
      ElectricType=1
        物理场
          int FemType;
int EletricType;
int NbrBoundary;
std::vector<int> BoundaryFlag;//边界对应边界条件 0为完美磁导体 1为完美电导体 2为散射边界条件 3为电场，4为周期性边界条件 默认为0
std::vector<double> E0x; //边界条件-电场 x分量 FemType=2时才存在，默认为0
std::vector<double> E0y; //边界条件-电场 y分量 FemType=2时才存在，默认为0
std::vector<double> E0z; //边界条件-电场 z分量 FemType=2时才存在，默认为0
std::vector<double>Eincx; //边界条件-散射边界入射电场 x分量 FemType=2时才存在，默认为0
std::vector<double>Eincy; //边界条件-散射边界入射电场 y分量 FemType=2时才存在，默认为0
std::vector<double> Eincz; //边界条件-散射边界入射电场 z分量 FemType=2时才存在，默认为0
std::vector<double> nx;//边界条件-散射边界入射电场 x方向 FemType=2时才存在，默认为0
std::vector<double> ny;//边界条件-散射边界入射电场 y方向FemType=2时才存在，默认为0
          string Ebx; //背景场-电场 x分量 ElectricType=1时开启，默认为0
string Eby; //背景场-电场 y分量 ElectricType=1时开启，默认为0
string Ebz; //背景场-电场 z分量 ElectricType=1时开启，默认为0
int NbrDomainOfEb; //背景场-区域数目 ElectricType=1时开启，默认为总区域数目
std::vector<int> DomainOfEb; //背景场-区域 ElectricType=1时开启，默认为所有区域索引
            比ElectricType=0多的变量
          std::vector<int> PBC [源边编号；目标边编号];
std::vector<int> PBCData [实部值；虚部值];
            BoundaryFlag = 4 ;含有周期性边界条件时
      求解器
        double lambda;//波长 默认为1.55e-6
  相同
    材料
      int NbrDomain; //区域数目 由几何决定
std::vector<double> epsilonr;//相对介电常数 数值默认为1
std::vector<double> mur;//相对磁导率 数值默认为1
std::vector<double> sigma;//电导率 数值默认为0
    网格
      std::string MeshFile; //网格文件所在文件夹
    输出
      std::string OutFile; //有限元输出文件夹
  区域分解
    FemType=3
      ElectricType=1
        物理场
          int FemType;
int EletricType;
string E0x; //边界条件-电场 x分量 FemType=2时才存在，默认为0
string E0y; //边界条件-电场 y分量 FemType=2时才存在，默认为0
string E0z; //边界条件-电场 z分量 FemType=2时才存在，默认为0
string Eincx; //边界条件-散射边界入射电场 x分量 FemType=2时才存在，默认为0
string Eincy; //边界条件-散射边界入射电场 y分量 FemType=2时才存在，默认为0
string Eincz; //边界条件-散射边界入射电场 z分量 FemType=2时才存在，默认为0
double nx;//边界条件-散射边界入射电场 x方向 FemType=2时才存在，默认为0
double ny;//边界条件-散射边界入射电场 y方向FemType=2时才存在，默认为0
      求解器
        double lambda;//波长 默认为1.55e-6
      分区信息
        int NbrSubdomain; //子区域数目
        Subdomains
          int SubdomainID; //哪个子区域
          std::vector<int> DomainID; //包含哪几个区域
          std::map<int,std::vector<int>> Neighbor; //相邻子区域的ID，交界边
            int id;
            std::vector<int> Interface
          int NbrBoundary;
          std::vector<int> Boundary; //包含哪几条边界
          按顺序
        std::vector<int> BoundaryFlag;//边界对应边界条件 0为完美磁导体 1为完美电导体 2为散射边界条件 3为电场 4为Robin，默认为0