97 lines
1.7 KiB
C++
97 lines
1.7 KiB
C++
#pragma once
|
|
#include"../material/Material_Base.h"
|
|
#include"../mesh/Mesh_Base.h"
|
|
#include"../solver/Solver_Base.h"
|
|
#include"../Eigen/Sparse"
|
|
#include"../Eigen/Dense"
|
|
#include <string>
|
|
#include "../phy/Phy_Base.h"
|
|
|
|
class Post_2D_EigenMode
|
|
{
|
|
public:
|
|
void GetMesh(Mesh_2D* mesh);
|
|
void GetSolver(Solver_EigenMode* solver);
|
|
void GetResult(Eigen::MatrixXcd* x, Eigen::VectorXcd* lambda);
|
|
|
|
void GetElectric();
|
|
double GetPower();
|
|
|
|
void OutputData(std::string str);
|
|
|
|
private:
|
|
Mesh_2D* _mMesh;
|
|
Solver_EigenMode* _mSolver;
|
|
|
|
Eigen::MatrixXcd* _mX;
|
|
|
|
Eigen::MatrixXcd _mEx, _mEy, _mEz;
|
|
Eigen::MatrixXd _mNormE;
|
|
Eigen::VectorXcd _mGamma;
|
|
Eigen::VectorXcd _mNeff;
|
|
|
|
};
|
|
|
|
class Post_2D_EigenFreq
|
|
{
|
|
public:
|
|
void GetMesh(Mesh_2D* mesh);
|
|
void GetSolver(Solver_EigenFreq* solver);
|
|
void GetResult(Eigen::MatrixXcd* x, Eigen::VectorXcd* lambda);
|
|
|
|
void GetElectric();
|
|
|
|
void OutputData(std::string str);
|
|
private:
|
|
Mesh_2D* _mMesh;
|
|
Solver_EigenFreq* _mSolver;
|
|
|
|
Eigen::MatrixXcd* _mX;
|
|
|
|
Eigen::MatrixXcd _mEx, _mEy, _mEz;
|
|
Eigen::MatrixXd _mNormE;
|
|
Eigen::VectorXcd _mFreq;
|
|
};
|
|
|
|
class Post_2D_Scatter
|
|
{
|
|
public:
|
|
void GetMesh(Mesh_2D* mesh);
|
|
void GetSolver(Solver_LdaDom* solver);
|
|
void GetResult(Eigen::VectorXcd* x);
|
|
void GetPhy(Phy_WaveOpticsModel* phy);
|
|
|
|
void GetElectric();
|
|
void GetEb();
|
|
void OutputData(std::string str);
|
|
|
|
private:
|
|
Mesh_2D* _mMesh;
|
|
Solver_LdaDom* _mSolver;
|
|
Phy_WaveOpticsModel* _mPhy;
|
|
|
|
Eigen::VectorXcd* _mX;
|
|
|
|
Eigen::VectorXcd _mEx, _mEy, _mEz;
|
|
Eigen::VectorXd _mNormE;
|
|
Eigen::VectorXcd _mRelEx, _mRelEy, _mRelEz;
|
|
Eigen::VectorXcd _mEbx, _mEby, _mEbz;
|
|
};
|
|
|
|
class Post_3D_EigenFreq
|
|
{
|
|
public:
|
|
void GetMesh(Mesh_3D* mesh);
|
|
|
|
private:
|
|
Mesh_3D* _mMesh;
|
|
};
|
|
|
|
class Post_3D_Scatter
|
|
{
|
|
public:
|
|
void GetMesh(Mesh_3D* mesh);
|
|
|
|
private:
|
|
Mesh_3D* _mMesh;
|
|
}; |