XIAN-FEM-2026June/opticsfem-master/kernel/Assemble_Scatter_3D_Boundar...

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);
}