49 const std::shared_ptr<EquationSystem> &pEquation,
51 :
Filter(pSession, pEquation), m_index(-1), m_homogeneous(false), m_planes()
54 std::string ext =
".avg";
58 auto it = pParams.find(
"OutputFrequency");
59 ASSERTL0(it != pParams.end(),
"Missing parameter 'OutputFrequency'.");
78 "1D expansion not supported for mean filter");
81 "Homogeneous 2D expansion not supported for mean filter");
84 auto equ =
m_equ.lock();
85 ASSERTL0(equ,
"Weak pointer expired");
87 auto fluidEqu = std::dynamic_pointer_cast<FluidInterface>(equ);
88 ASSERTL0(fluidEqu,
"Mean filter is incompatible with this solver.");
100 areaField = pFields[0]->GetPlane(0);
104 areaField = pFields[0];
108 m_area = areaField->Integral(inarray);
116 std::string volname[3] = {
"length",
"area",
"volume"};
118 if (vComm->GetRank() == 0)
125 for (
int i = 0; i < pFields.size(); ++i)
156 for (i = 0; i < pFields.size(); ++i)
163 for (i = 0; i < pFields.size(); ++i)
165 avg[i] = pFields[0]->GetPlane(0)->Integral(pFields[i]->GetPhys()) *
171 for (i = 0; i < pFields.size(); ++i)
173 avg[i] = pFields[0]->Integral(pFields[i]->GetPhys());
177 for (i = 0; i < pFields.size(); ++i)
182 if (vComm->GetRank() == 0)
185 for (
int i = 0; i < pFields.size(); ++i)
198 if (pFields[0]->GetComm()->GetRank() == 0)
#define ASSERTL0(condition, msg)
NekDouble Evaluate() const
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
SOLVER_UTILS_EXPORT std::string SetupOutput(const std::string ext, const ParamMap &pParams)
LibUtilities::SessionReaderSharedPtr m_session
const std::weak_ptr< EquationSystem > m_equ
std::map< std::string, std::string > ParamMap
bool m_updateOnInitialise
SOLVER_UTILS_EXPORT void v_Update(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pField, const NekDouble &time) override
SOLVER_UTILS_EXPORT void v_Finalise(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pField, const NekDouble &time) override
SOLVER_UTILS_EXPORT bool v_IsTimeDependent() override
SOLVER_UTILS_EXPORT void v_Initialise(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pField, const NekDouble &time) override
Array< OneD, unsigned int > m_planes
unsigned int m_outputFrequency
NekDouble m_homogeneousLength
static SolverUtils::FilterSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const std::shared_ptr< SolverUtils::EquationSystem > &pEquation, const ParamMap &pParams)
Creates an instance of this class.
std::ofstream m_outputStream
SOLVER_UTILS_EXPORT ~FilterMean() override
SOLVER_UTILS_EXPORT FilterMean(const LibUtilities::SessionReaderSharedPtr &pSession, const std::shared_ptr< EquationSystem > &pEquation, const ParamMap &pParams)
static std::string className
Name of the class.
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object.
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
FilterFactory & GetFilterFactory()