default debug flag and update/fix for cylindrical coords

pull/1/head v0.0.15
Thorsten Liebig 2010-10-27 14:49:16 +02:00
parent d31b3ffbb2
commit 907ac3cff2
8 changed files with 21 additions and 6 deletions

View File

@ -45,7 +45,7 @@ public:
virtual bool SetGeometryCSX(ContinuousStructure* geo); virtual bool SetGeometryCSX(ContinuousStructure* geo);
virtual ContinuousStructure* GetGeometryCSX() {return CSX;} virtual ContinuousStructure* GetGeometryCSX() {return CSX;}
virtual int CalcECOperator( DebugFlags ); virtual int CalcECOperator( DebugFlags debugFlags = None );
//! Calculate the FDTD equivalent circuit parameter for the given position and direction ny. \sa Calc_EffMat_Pos //! Calculate the FDTD equivalent circuit parameter for the given position and direction ny. \sa Calc_EffMat_Pos
virtual bool Calc_ECPos(int ny, const unsigned int* pos, double* EC) const; virtual bool Calc_ECPos(int ny, const unsigned int* pos, double* EC) const;

View File

@ -57,6 +57,17 @@ void Operator_Cylinder::InitOperator()
Operator_Multithread::InitOperator(); Operator_Multithread::InitOperator();
} }
int Operator_Cylinder::CalcECOperator( DebugFlags debugFlags )
{
// debugs only work with the native vector dumps
bool natDump = g_settings.NativeFieldDumps();
g_settings.SetNativeFieldDumps(true);
int rc = Operator_Multithread::CalcECOperator(debugFlags);
// reset original settings
g_settings.SetNativeFieldDumps(natDump);
return rc;
}
inline unsigned int Operator_Cylinder::GetNumberOfLines(int ny) const inline unsigned int Operator_Cylinder::GetNumberOfLines(int ny) const
{ {
//this is necessary for a correct field processing... cylindrical engine has to reset this by adding +1 //this is necessary for a correct field processing... cylindrical engine has to reset this by adding +1

View File

@ -32,6 +32,8 @@ public:
static Operator_Cylinder* New(unsigned int numThreads = 0); static Operator_Cylinder* New(unsigned int numThreads = 0);
virtual ~Operator_Cylinder(); virtual ~Operator_Cylinder();
virtual int CalcECOperator( DebugFlags debugFlags = None );
virtual bool SetGeometryCSX(ContinuousStructure* geo); virtual bool SetGeometryCSX(ContinuousStructure* geo);
virtual void ApplyElectricBC(bool* dirs); virtual void ApplyElectricBC(bool* dirs);

View File

@ -153,7 +153,7 @@ int Operator_CylinderMultiGrid::CalcECOperator( DebugFlags debugFlags )
m_InnerOp->SetTimestep(dT); m_InnerOp->SetTimestep(dT);
//calc inner child first //calc inner child first
m_InnerOp->CalcECOperator( debugFlags ); m_InnerOp->CalcECOperator();
dT = m_InnerOp->GetTimestep(); dT = m_InnerOp->GetTimestep();
@ -163,7 +163,7 @@ int Operator_CylinderMultiGrid::CalcECOperator( DebugFlags debugFlags )
cerr << "Operator_CylinderMultiGrid::CalcECOperator(): Warning, timestep invalid... resetting..." << endl; cerr << "Operator_CylinderMultiGrid::CalcECOperator(): Warning, timestep invalid... resetting..." << endl;
dT = opt_dT; dT = opt_dT;
m_InnerOp->SetTimestep(dT); m_InnerOp->SetTimestep(dT);
m_InnerOp->CalcECOperator( debugFlags ); m_InnerOp->CalcECOperator();
return Operator_Cylinder::CalcECOperator( debugFlags ); return Operator_Cylinder::CalcECOperator( debugFlags );
} }

View File

@ -41,7 +41,7 @@ public:
virtual unsigned int GetSplitPos() const {return m_Split_Pos;} virtual unsigned int GetSplitPos() const {return m_Split_Pos;}
virtual int CalcECOperator( DebugFlags ); virtual int CalcECOperator( DebugFlags debugFlags = None );
virtual bool SetupExcitation(TiXmlElement* Excite, unsigned int maxTS); virtual bool SetupExcitation(TiXmlElement* Excite, unsigned int maxTS);

View File

@ -31,7 +31,7 @@ public:
static Operator_Multithread* New(unsigned int numThreads = 0); static Operator_Multithread* New(unsigned int numThreads = 0);
virtual ~Operator_Multithread(); virtual ~Operator_Multithread();
virtual int CalcECOperator( DebugFlags ); virtual int CalcECOperator( DebugFlags debugFlags = None );
virtual void setNumThreads( unsigned int numThreads ); virtual void setNumThreads( unsigned int numThreads );

View File

@ -45,7 +45,7 @@ public:
virtual Engine* CreateEngine() const; virtual Engine* CreateEngine() const;
virtual int CalcECOperator( DebugFlags ); virtual int CalcECOperator( DebugFlags debugFlags = None );
inline virtual FDTD_FLOAT GetVV( unsigned int n, unsigned int x, unsigned int y, unsigned int z ) const { if (m_Use_Compression) return f4_vv_Compressed[n][m_Op_index[x][y][z%numVectors]].f[z/numVectors]; else return Operator_sse::GetVV(n,x,y,z);} inline virtual FDTD_FLOAT GetVV( unsigned int n, unsigned int x, unsigned int y, unsigned int z ) const { if (m_Use_Compression) return f4_vv_Compressed[n][m_Op_index[x][y][z%numVectors]].f[z/numVectors]; else return Operator_sse::GetVV(n,x,y,z);}
inline virtual FDTD_FLOAT GetVI( unsigned int n, unsigned int x, unsigned int y, unsigned int z ) const { if (m_Use_Compression) return f4_vi_Compressed[n][m_Op_index[x][y][z%numVectors]].f[z/numVectors]; else return Operator_sse::GetVI(n,x,y,z);} inline virtual FDTD_FLOAT GetVI( unsigned int n, unsigned int x, unsigned int y, unsigned int z ) const { if (m_Use_Compression) return f4_vi_Compressed[n][m_Op_index[x][y][z%numVectors]].f[z/numVectors]; else return Operator_sse::GetVI(n,x,y,z);}

View File

@ -32,6 +32,8 @@ public:
//! Returns true if native field dumps are requested... //! Returns true if native field dumps are requested...
bool NativeFieldDumps() const {return m_nativeFieldDumps;} bool NativeFieldDumps() const {return m_nativeFieldDumps;}
//! Set dumps to use native fields.
void SetNativeFieldDumps(bool val) {m_nativeFieldDumps=val;}
void ShowArguments(std::ostream& ostr, std::string front=std::string()); void ShowArguments(std::ostream& ostr, std::string front=std::string());