#pragma once #include "PortModeData.h" #include "../Eigen/Dense" class Mesh_3D; class MaterialLib; // Solve numeric port modes on Mesh_3D boundary faces (MATLAB BoundaryEigenMode + GetPowerCoef). // Assumptions: ports nearly z=const; rim edges get PEC; Et scaled by edge length (MATLAB convention). bool ComputePortModesFromMesh( Mesh_3D* mesh, MaterialLib* matLib, const Eigen::VectorXi& domainsInc, const Eigen::VectorXi& domainsOut, double lambda0, double targetNeff, int modeNum, PortModeLibrary& outModes, bool normalizeInputPower = true); bool SavePortModesToFile(const PortModeLibrary& modes, const std::string& path);