added virtual Pre- and PostProcessing methods to Processing-classes
parent
79c742ffc7
commit
ef65970246
|
@ -305,6 +305,11 @@ void ProcessingArray::DeleteAll()
|
||||||
ProcessArray.clear();
|
ProcessArray.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ProcessingArray::PreProcess()
|
||||||
|
{
|
||||||
|
for (size_t i=0; i<ProcessArray.size(); ++i) ProcessArray.at(i)->PreProcess();
|
||||||
|
}
|
||||||
|
|
||||||
int ProcessingArray::Process()
|
int ProcessingArray::Process()
|
||||||
{
|
{
|
||||||
int nextProcess=maxInterval;
|
int nextProcess=maxInterval;
|
||||||
|
@ -318,6 +323,11 @@ int ProcessingArray::Process()
|
||||||
return nextProcess;
|
return nextProcess;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ProcessingArray::PostProcess()
|
||||||
|
{
|
||||||
|
for (size_t i=0; i<ProcessArray.size(); ++i) ProcessArray.at(i)->PostProcess();
|
||||||
|
}
|
||||||
|
|
||||||
void ProcessingArray::DumpBoxes2File( string vtkfilenameprefix ) const
|
void ProcessingArray::DumpBoxes2File( string vtkfilenameprefix ) const
|
||||||
{
|
{
|
||||||
for (size_t i=0; i<ProcessArray.size(); ++i)
|
for (size_t i=0; i<ProcessArray.size(); ++i)
|
||||||
|
|
|
@ -64,8 +64,16 @@ public:
|
||||||
void AddFrequency(vector<double> *freqs);
|
void AddFrequency(vector<double> *freqs);
|
||||||
|
|
||||||
bool CheckTimestep();
|
bool CheckTimestep();
|
||||||
|
|
||||||
|
//! Process data prior to the simulation run.
|
||||||
|
virtual void PreProcess() {};
|
||||||
|
|
||||||
|
//! Process data during simulation run.
|
||||||
virtual int Process() {return GetNextInterval();}
|
virtual int Process() {return GetNextInterval();}
|
||||||
|
|
||||||
|
//! Process data after simulation has finished.
|
||||||
|
virtual void PostProcess() {};
|
||||||
|
|
||||||
//! If disabled, Process() will do nothing...
|
//! If disabled, Process() will do nothing...
|
||||||
virtual void SetEnable(bool val) {Enabled=val;}
|
virtual void SetEnable(bool val) {Enabled=val;}
|
||||||
//! If disabled, Process() will do nothing...
|
//! If disabled, Process() will do nothing...
|
||||||
|
@ -152,8 +160,15 @@ public:
|
||||||
//! Deletes all given processing's, can be helpful, but use carefull!!!
|
//! Deletes all given processing's, can be helpful, but use carefull!!!
|
||||||
void DeleteAll();
|
void DeleteAll();
|
||||||
|
|
||||||
|
//! Invoke PreProcess() on all Processings.
|
||||||
|
void PreProcess();
|
||||||
|
|
||||||
|
//! Invoke Process() on all Processings. Will return the smallest next iteration interval.
|
||||||
int Process();
|
int Process();
|
||||||
|
|
||||||
|
//! Invoke PostProcess() on all Processings.
|
||||||
|
void PostProcess();
|
||||||
|
|
||||||
void DumpBoxes2File( string vtkfilenameprefix ) const;
|
void DumpBoxes2File( string vtkfilenameprefix ) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -617,6 +617,7 @@ void openEMS::RunFDTD()
|
||||||
|
|
||||||
//*************** simulate ************//
|
//*************** simulate ************//
|
||||||
|
|
||||||
|
PA->PreProcess();
|
||||||
int step=PA->Process();
|
int step=PA->Process();
|
||||||
if ((step<0) || (step>(int)NrTS)) step=NrTS;
|
if ((step<0) || (step>(int)NrTS)) step=NrTS;
|
||||||
while ((FDTD_Eng->GetNumberOfTimesteps()<NrTS) && (change>endCrit) && !CheckAbortCond())
|
while ((FDTD_Eng->GetNumberOfTimesteps()<NrTS) && (change>endCrit) && !CheckAbortCond())
|
||||||
|
@ -654,6 +655,7 @@ void openEMS::RunFDTD()
|
||||||
PA->FlushNext();
|
PA->FlushNext();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
PA->PostProcess();
|
||||||
|
|
||||||
//*************** postproc ************//
|
//*************** postproc ************//
|
||||||
prevTime = currTime;
|
prevTime = currTime;
|
||||||
|
|
Loading…
Reference in New Issue