fixed crashing "--debug-operator" option with sse-compressed engines

This commit is contained in:
Thorsten Liebig 2010-10-02 18:26:23 +02:00
parent 09a3a8ab27
commit 5e244bf7cb
4 changed files with 15 additions and 2 deletions

View File

@ -330,7 +330,7 @@ void Operator::DumpOperator2File(string filename)
return; return;
} }
cout << "Dumping FDTD operator information to vtk file: " << filename << " ..." << flush ; cout << "Operator::Dumping FDTD operator information to vtk file: " << filename << " ..." << flush ;
FDTD_FLOAT**** exc = Create_N_3DArray<FDTD_FLOAT>(numLines); FDTD_FLOAT**** exc = Create_N_3DArray<FDTD_FLOAT>(numLines);
if (Exc) { if (Exc) {

View File

@ -99,7 +99,7 @@ void Operator_sse::DumpOperator2File(string filename)
return; return;
} }
cout << "Dumping FDTD operator information to vtk file: " << filename << " ..." << flush ; cout << "Operator_sse::Dumping FDTD operator information to vtk file: " << filename << " ..." << flush ;
FDTD_FLOAT**** exc = Create_N_3DArray<FDTD_FLOAT>(numLines); FDTD_FLOAT**** exc = Create_N_3DArray<FDTD_FLOAT>(numLines);

View File

@ -54,6 +54,17 @@ Engine* Operator_SSE_Compressed::CreateEngine() const
return eng; return eng;
} }
void Operator_SSE_Compressed::DumpOperator2File(string filename)
{
if (m_Use_Compression)
{
cerr << "Operator_SSE_Compressed::DumpOperator2File: Warning: Operator dump not implemented for a compressed operator yet, try disabling operator compression." << endl;
return;
}
else
Operator_sse::DumpOperator2File(filename);
}
int Operator_SSE_Compressed::CalcECOperator() int Operator_SSE_Compressed::CalcECOperator()
{ {
Operator_sse::CalcECOperator(); Operator_sse::CalcECOperator();

View File

@ -45,6 +45,8 @@ public:
virtual Engine* CreateEngine() const; virtual Engine* CreateEngine() const;
virtual void DumpOperator2File(string filename);
virtual int CalcECOperator(); virtual int CalcECOperator();
inline virtual FDTD_FLOAT& GetVV( unsigned int n, unsigned int x, unsigned int y, unsigned int z ) { 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 ) { 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);}