40 lines
1011 B
C++
40 lines
1011 B
C++
#include"Assemble_Base.h"
|
|
#include"../function/BF.h"
|
|
#include"../function/Gauss.h"
|
|
#include"../common/define.h"
|
|
#include "../parser/mpParser.h"
|
|
|
|
#include<cmath>
|
|
|
|
using namespace Eigen;
|
|
|
|
void OpticsFEM_3D_Scatter::Assemble_SBC()
|
|
{
|
|
//physic
|
|
double k0 = 2 * Pi / _mSolver->GetLda0();
|
|
|
|
|
|
}
|
|
|
|
void OpticsFEM_3D_Scatter::Assemble_PEC_ELE()
|
|
{
|
|
//find PEC index
|
|
int NbrPEC = _mPhy->GetNbrPEC();
|
|
Eigen::VectorXi PECDomain = Eigen::VectorXi::Zero(NbrPEC);
|
|
for (int i = 0; i < NbrPEC; i++)
|
|
PECDomain(i) = _mPhy->GetPECDomain(i);
|
|
Eigen::VectorXi edgeIndexOfPEC;
|
|
_mMesh->GetTriIndexOfDomain(PECDomain, edgeIndexOfPEC);
|
|
|
|
//find ELE index
|
|
int NbrELE = _mPhy->GetNbrElE();
|
|
Eigen::VectorXi ELEDomain = Eigen::VectorXi::Zero(NbrELE);
|
|
Eigen::VectorXi indexNum = Eigen::VectorXi::Zero(NbrELE);
|
|
for (int i = 0; i < NbrELE; i++)
|
|
{
|
|
ELEDomain(i) = _mPhy->GetELEDomain(i);
|
|
indexNum(i) = i;
|
|
}
|
|
Eigen::VectorXi triIndexOfELE, triNumOfELE;
|
|
_mMesh->GetTriIndexOfDomain2(ELEDomain, indexNum, triIndexOfELE, triNumOfELE);
|
|
} |