derived engines need access to special operator properties

pull/1/head
Sebastian Held 2010-03-26 11:28:54 +01:00
parent b4bf720466
commit 686cb3f4cb
1 changed files with 22 additions and 18 deletions

View File

@ -27,7 +27,6 @@
//! Abstract base-class for the FDTD-operator //! Abstract base-class for the FDTD-operator
class Operator class Operator
{ {
friend class Engine;
friend class ProcessFields; friend class ProcessFields;
friend class ProcessFieldsTD; friend class ProcessFieldsTD;
public: public:
@ -63,7 +62,7 @@ protected:
virtual void Init(); virtual void Init();
virtual void InitOperator(); virtual void InitOperator();
typedef struct Grid_Path struct Grid_Path
{ {
vector<unsigned int> posPath[3]; vector<unsigned int> posPath[3];
vector<unsigned short> dir; vector<unsigned short> dir;
@ -74,29 +73,13 @@ protected:
double gridDelta; double gridDelta;
double* discLines[3]; double* discLines[3];
unsigned int numLines[3];
AdrOp* MainOp; AdrOp* MainOp;
AdrOp* DualOp; AdrOp* DualOp;
//EC operator
FDTD_FLOAT**** vv; //calc new voltage from old voltage
FDTD_FLOAT**** vi; //calc new voltage from old current
FDTD_FLOAT**** ii; //calc new current from old current
FDTD_FLOAT**** iv; //calc new current from old voltage
//Excitation time-signal
unsigned int ExciteLength;
FDTD_FLOAT* ExciteSignal;
//E-Field Excitation //E-Field Excitation
//! Calc the electric field excitation. //! Calc the electric field excitation.
virtual bool CalcEFieldExcitation(); virtual bool CalcEFieldExcitation();
unsigned int E_Exc_Count;
unsigned int* E_Exc_index[3];
unsigned short* E_Exc_dir;
FDTD_FLOAT* E_Exc_amp; //represented as edge-voltages!!
unsigned int* E_Exc_delay;
virtual bool CalcPEC(); virtual bool CalcPEC();
@ -112,6 +95,27 @@ protected:
double* EC_G[3]; double* EC_G[3];
double* EC_L[3]; double* EC_L[3];
double* EC_R[3]; double* EC_R[3];
// engine needs access
public:
unsigned int numLines[3];
//EC operator
FDTD_FLOAT**** vv; //calc new voltage from old voltage
FDTD_FLOAT**** vi; //calc new voltage from old current
FDTD_FLOAT**** ii; //calc new current from old current
FDTD_FLOAT**** iv; //calc new current from old voltage
//Excitation time-signal
unsigned int ExciteLength;
FDTD_FLOAT* ExciteSignal;
//E-Field Excitation
unsigned int E_Exc_Count;
unsigned int* E_Exc_index[3];
unsigned short* E_Exc_dir;
FDTD_FLOAT* E_Exc_amp; //represented as edge-voltages!!
unsigned int* E_Exc_delay;
}; };
#endif // OPERATOR_H #endif // OPERATOR_H