From fe483946d25cc18187541ff05556d91cbd334bc1 Mon Sep 17 00:00:00 2001 From: Thorsten Liebig Date: Mon, 3 May 2010 22:36:04 +0200 Subject: [PATCH] cylinder-operator: use operator.h EC calc --- FDTD/operator.cpp | 25 ++++++++++++++++++++----- FDTD/operator_cylinder.cpp | 26 -------------------------- FDTD/operator_cylinder.h | 2 -- 3 files changed, 20 insertions(+), 33 deletions(-) diff --git a/FDTD/operator.cpp b/FDTD/operator.cpp index 22b69c9..99250b6 100644 --- a/FDTD/operator.cpp +++ b/FDTD/operator.cpp @@ -414,11 +414,26 @@ void Operator::InitExcitation() void Operator::Calc_ECOperatorPos(int n, unsigned int* pos) { unsigned int i = MainOp->SetPos(pos[0],pos[1],pos[2]); - GetVV(n,pos[0],pos[1],pos[2]) = (1-dT*EC_G[n][i]/2/EC_C[n][i])/(1+dT*EC_G[n][i]/2/EC_C[n][i]); - GetVI(n,pos[0],pos[1],pos[2]) = (dT/EC_C[n][i])/(1+dT*EC_G[n][i]/2/EC_C[n][i]); - - GetII(n,pos[0],pos[1],pos[2]) = (1-dT*EC_R[n][i]/2/EC_L[n][i])/(1+dT*EC_R[n][i]/2/EC_L[n][i]); - GetIV(n,pos[0],pos[1],pos[2]) = (dT/EC_L[n][i])/(1+dT*EC_R[n][i]/2/EC_L[n][i]); + if (EC_C[n][i]>0) + { + GetVV(n,pos[0],pos[1],pos[2]) = (1-dT*EC_G[n][i]/2/EC_C[n][i])/(1+dT*EC_G[n][i]/2/EC_C[n][i]); + GetVI(n,pos[0],pos[1],pos[2]) = (dT/EC_C[n][i])/(1+dT*EC_G[n][i]/2/EC_C[n][i]); + } + else + { + GetVV(n,pos[0],pos[1],pos[2]) = 0; + GetVI(n,pos[0],pos[1],pos[2]) = 0; + } + if (EC_L[n][i]>0) + { + GetII(n,pos[0],pos[1],pos[2]) = (1-dT*EC_R[n][i]/2/EC_L[n][i])/(1+dT*EC_R[n][i]/2/EC_L[n][i]); + GetIV(n,pos[0],pos[1],pos[2]) = (dT/EC_L[n][i])/(1+dT*EC_R[n][i]/2/EC_L[n][i]); + } + else + { + GetII(n,pos[0],pos[1],pos[2]) = 0; + GetIV(n,pos[0],pos[1],pos[2]) = 0; + } } int Operator::CalcECOperator() diff --git a/FDTD/operator_cylinder.cpp b/FDTD/operator_cylinder.cpp index 02571c8..4ae3b16 100644 --- a/FDTD/operator_cylinder.cpp +++ b/FDTD/operator_cylinder.cpp @@ -159,32 +159,6 @@ int Operator_Cylinder::CalcECOperator() return 0; } -inline void Operator_Cylinder::Calc_ECOperatorPos(int n, unsigned int* pos) -{ - unsigned int i = MainOp->SetPos(pos[0],pos[1],pos[2]); - if (EC_C[n][i]>0) - { - vv[n][pos[0]][pos[1]][pos[2]] = (1-dT*EC_G[n][i]/2/EC_C[n][i])/(1+dT*EC_G[n][i]/2/EC_C[n][i]); - vi[n][pos[0]][pos[1]][pos[2]] = (dT/EC_C[n][i])/(1+dT*EC_G[n][i]/2/EC_C[n][i]); - } - else - { - vv[n][pos[0]][pos[1]][pos[2]] = 0; - vi[n][pos[0]][pos[1]][pos[2]] = 0; - } - - if (EC_L[n][i]>0) - { - ii[n][pos[0]][pos[1]][pos[2]] = (1-dT*EC_R[n][i]/2/EC_L[n][i])/(1+dT*EC_R[n][i]/2/EC_L[n][i]); - iv[n][pos[0]][pos[1]][pos[2]] = (dT/EC_L[n][i])/(1+dT*EC_R[n][i]/2/EC_L[n][i]); - } - else - { - ii[n][pos[0]][pos[1]][pos[2]] = 0; - iv[n][pos[0]][pos[1]][pos[2]] = 0; - } -} - void Operator_Cylinder::ApplyElectricBC(bool* dirs) { if (dirs==NULL) return; diff --git a/FDTD/operator_cylinder.h b/FDTD/operator_cylinder.h index 30af198..1d5564b 100644 --- a/FDTD/operator_cylinder.h +++ b/FDTD/operator_cylinder.h @@ -50,8 +50,6 @@ protected: virtual void InitOperator(); virtual void Reset(); - virtual inline void Calc_ECOperatorPos(int n, unsigned int* pos); - bool CC_closedAlpha; bool CC_R0_included;