35#ifndef NEKTAR_SOLVERUTILS_FILTERS_FILTERFORCES_H
36#define NEKTAR_SOLVERUTILS_FILTERS_FILTERFORCES_H
42#include <boost/numeric/ublas/matrix.hpp>
43#include <boost/numeric/ublas/vector.hpp>
47namespace bnu = boost::numeric::ublas;
59 const std::weak_ptr<EquationSystem> &pEquation,
60 const std::map<std::string, std::string> &pParams)
63 pSession, pEquation, pParams);
72 const std::weak_ptr<EquationSystem> &pEquation,
73 const std::map<std::string, std::string> &pParams);
#define SOLVER_UTILS_EXPORT
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
void v_Finalise(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time) override
Array< OneD, int > m_planesID
Array< OneD, Array< OneD, NekDouble > > m_Fvplane
void v_Update(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time) override
void CalculateForces(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time)
Array< OneD, int > m_BCtoElmtID
int m_nPlanes
number of planes for homogeneous1D expansion
SOLVER_UTILS_EXPORT ~FilterAeroForces() override
Array< OneD, NekDouble > m_pivotPoint
Array< OneD, NekDouble > m_Mp
bool m_outputAllPlanes
if using a homogeneous1D expansion, determine if should output all planes or just the average
void CalculateForcesMapping(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time)
static FilterSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const std::weak_ptr< EquationSystem > &pEquation, const std::map< std::string, std::string > &pParams)
Creates an instance of this class.
std::vector< unsigned int > m_boundaryRegionsIdList
ID's of boundary regions where we want the forces.
Array< OneD, Array< OneD, NekDouble > > m_directions
Array< OneD, NekDouble > m_Fv
std::ofstream m_outputStream
std::vector< bool > m_boundaryRegionIsInList
Determines if a given Boundary Region is in m_boundaryRegionsIdList.
Array< OneD, NekDouble > m_Mv
std::string m_BoundaryString
static std::string className
Name of the class.
SOLVER_UTILS_EXPORT FilterAeroForces(const LibUtilities::SessionReaderSharedPtr &pSession, const std::weak_ptr< EquationSystem > &pEquation, const std::map< std::string, std::string > &pParams)
Array< OneD, int > m_BCtoTraceID
Array< OneD, Array< OneD, NekDouble > > m_Mpplane
bool v_IsTimeDependent() override
SOLVER_UTILS_EXPORT void GetMoments(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, Array< OneD, NekDouble > &moments, const NekDouble &time)
Array< OneD, Array< OneD, NekDouble > > m_directions0
GlobalMapping::MappingSharedPtr m_mapping
Array< OneD, Array< OneD, NekDouble > > m_Ftplane
unsigned int m_outputFrequency
void v_Initialise(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time) override
Array< OneD, NekDouble > m_Ft
LibUtilities::BasisSharedPtr m_homogeneousBasis
SOLVER_UTILS_EXPORT void GetForces(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, Array< OneD, NekDouble > &Aeroforces, const NekDouble &time)
Array< OneD, NekDouble > m_Fp
Array< OneD, Array< OneD, NekDouble > > m_Mtplane
Array< OneD, NekDouble > m_Mt
Array< OneD, Array< OneD, NekDouble > > m_Fpplane
Array< OneD, Array< OneD, NekDouble > > m_Mvplane
GLOBAL_MAPPING_EXPORT typedef std::shared_ptr< Mapping > MappingSharedPtr
A shared pointer to a Mapping object.
std::shared_ptr< Basis > BasisSharedPtr
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< Filter > FilterSharedPtr
A shared pointer to a Driver object.
std::shared_ptr< FilterAeroForces > FilterAeroForcesSharedPtr