ProcessModeMatch: Now uses drawing units for its mode functions & docu update

pull/1/head
Thorsten Liebig 2010-12-06 14:35:12 +01:00
parent 9d3761b1d0
commit 5540e49090
2 changed files with 8 additions and 1 deletions

View File

@ -116,7 +116,7 @@ void ProcessModeMatch::InitProcess()
unsigned int pos[3] = {0,0,0}; unsigned int pos[3] = {0,0,0};
double discLine[3] = {0,0,0}; double discLine[3] = {0,0,0};
double gridDelta = Op->GetGridDelta(); double gridDelta = 1; // 1 -> mode-matching function is definied in drawing units...
double var[7]; double var[7];
pos[m_ny] = start[m_ny]; pos[m_ny] = start[m_ny];
discLine[m_ny] = Op->GetDiscLine(m_ny,pos[m_ny],m_dualMesh); discLine[m_ny] = Op->GetDiscLine(m_ny,pos[m_ny],m_dualMesh);

View File

@ -22,6 +22,11 @@
class CSFunctionParser; class CSFunctionParser;
//! Processing class to match a mode to a given analytic function and return the integral value.
/*!
The analytric function has to be definied in drawing units.
It will return the integral value and the mode purity as a secondary value.
*/
class ProcessModeMatch : public ProcessIntegral class ProcessModeMatch : public ProcessIntegral
{ {
public: public:
@ -31,7 +36,9 @@ public:
virtual void InitProcess(); virtual void InitProcess();
virtual void Reset(); virtual void Reset();
//! Set the field type (0 electric field, 1 magnetic field)
void SetFieldType(int type); void SetFieldType(int type);
//! Set the mode function in the given direction ny. For example: SetModeFunction(0,"cos(pi/1000*x)*sin(pi/500*y)");
void SetModeFunction(int ny, string function); void SetModeFunction(int ny, string function);
virtual int GetNumberOfIntegrals() const {return 2;} virtual int GetNumberOfIntegrals() const {return 2;}