46 const std::map<std::string, std::string> &pParams) :
49 if (pParams.find(
"OutputFile") == pParams.end())
55 ASSERTL0(!(pParams.find(
"OutputFile")->second.empty()),
56 "Missing parameter 'OutputFile'.");
60 if(pParams.find(
"SampleFrequency") == pParams.end())
69 if(pParams.find(
"OutputFrequency") == pParams.end())
92 for(
int n =0; n < pFields.num_elements(); ++n)
107 for(
int n = 0; n < pFields.num_elements(); ++n)
131 for(
int n = 0; n <
m_avgFields.num_elements(); ++n)
136 std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef
137 = pFields[0]->GetFieldDefinitions();
138 std::vector<std::vector<NekDouble> > FieldData(FieldDef.size());
141 int ncoeffs = pFields[0]->GetNcoeffs();
144 for(
int j = 0; j < pFields.num_elements(); ++j)
154 pFields[0]->ExtractCoeffsToCoeffs(pFields[j],
m_avgFields[j],fieldcoeffs);
157 for(
int i = 0; i < FieldDef.size(); ++i)
160 FieldDef[i]->m_fields.push_back(
m_session->GetVariable(j));
161 pFields[0]->AppendFieldData(FieldDef[i], FieldData[i], fieldcoeffs);
167 std::stringstream outname;
181 for(
int n = 0; n <
m_avgFields.num_elements(); ++n)
virtual void v_Finalise(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time)
#define ASSERTL0(condition, msg)
LibUtilities::FieldMetaDataMap m_avgFieldMetaData
static boost::shared_ptr< DataType > AllocateSharedPtr()
Allocate a shared pointer from the memory pool.
virtual void v_Initialise(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time)
static std::string className
Name of the class.
unsigned int m_numAverages
Array< OneD, Array< OneD, NekDouble > > m_avgFields
void OutputAvgField(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, int dump=-1)
boost::shared_ptr< SessionReader > SessionReaderSharedPtr
virtual void v_Update(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time)
void Smul(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Scalar multiply y = alpha*y.
static FilterSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const std::map< std::string, std::string > &pParams)
Creates an instance of this class.
virtual bool v_IsTimeDependent()
LibUtilities::SessionReaderSharedPtr m_session
unsigned int m_outputFrequency
SOLVER_UTILS_EXPORT FilterAverageFields(const LibUtilities::SessionReaderSharedPtr &pSession, const std::map< std::string, std::string > &pParams)
FilterFactory & GetFilterFactory()
unsigned int m_outputIndex
LibUtilities::FieldIOSharedPtr m_fld
void Vadd(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Add vector z = x+y.
virtual SOLVER_UTILS_EXPORT ~FilterAverageFields()
unsigned int m_sampleFrequency
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory.