83 virtual void GetGabarits(
double gap = 0.02)
override;
86 virtual void ReadFromFile(
const std::string& dir)
override;
87 virtual void Rotate(
double alpha)
override;
91 virtual std::vector<double>
getA(
size_t p,
size_t i,
const Airfoil& airfoil,
size_t j)
const override;
92 virtual void calcIQ(
size_t p,
const Airfoil& otherAirfoil, std::pair<Eigen::MatrixXd, Eigen::MatrixXd>& matrPair)
const override;
98 virtual void GPUGetDiffVelocityI0I3ToSetOfPointsAndViscousStresses(
const WakeDataBase& pointsDb, std::vector<double>& domainRadius, std::vector<double>& I0, std::vector<Point2D>& I3)
override;
virtual void Rotate(double alpha) override
Поворот профиля
virtual void calcIQ(size_t p, const Airfoil &otherAirfoil, std::pair< Eigen::MatrixXd, Eigen::MatrixXd > &matrPair) const override
Вычисление коэффициентов матрицы, состоящей из интегралов от (r-xi)/|r-xi|^2.
virtual void GetGabarits(double gap=0.02) override
Вычисляет габаритный прямоугольник профиля
Заголовочный файл с описанием класса Airfoil.
void CalcNrmTauLen()
Вычисление нормалей, касательных и длин панелей по текущему положению вершин
virtual void ReadFromFile(const std::string &dir) override
Считывание профиля из файла
virtual void GetInfluenceFromVInfToPanel(std::vector< double > &vInfRhs) const override
Вычисление влияния набегающего потока на панель для правой части
virtual void GetInfluenceFromVorticesToPanel(size_t panel, const Vortex2D *ptr, ptrdiff_t count, std::vector< double > &panelRhs) const override
Вычисление влияния части подряд идущих вихрей из вихревого следа на панель для правой части ...
virtual void Scale(const Point2D &) override
Масштабирование профиля
virtual std::vector< double > getA(size_t p, size_t i, const Airfoil &airfoil, size_t j) const override
Вычисление коэффициентов матрицы A для расчета влияния панели на панель
virtual void GetDiffVelocityI0I3ToSetOfPointsAndViscousStresses(const WakeDataBase &pointsDb, std::vector< double > &domainRadius, std::vector< double > &I0, std::vector< Point2D > &I3) override
Вычисление числителей и знаменателей диффузионных скоростей в заданном наборе точек, обусловленных геометрией профиля, и вычисление вязкого трения
Класс, определяющий тип обтекаемого профиля
virtual void Move(const Point2D &dr) override
Перемещение профиля
virtual void GetInfluenceFromVortexSheetToVortex(size_t panel, const Vortex2D &vtx, Point2D &vel) const override
Вычисление влияния вихревых слоев (свободный + присоединенный) конкретной прямолинейной панели на вих...
virtual bool IsPointInAirfoil(const Point2D &point) const override
Определяет, находится ли точка с радиус-вектором внутри профиля
Класс, опеделяющий двумерный вектор
virtual void GetInfluenceFromSourceSheetToVortex(size_t panel, const Vortex2D &vtx, Point2D &vel) const override
Вычисление влияния слоя источников конкретной прямолинейной панели на вихрь в области течения ...
virtual void GetInfluenceFromSourcesToPanel(size_t panel, const Vortex2D *ptr, ptrdiff_t count, std::vector< double > &panelRhs) const override
Вычисление влияния части подряд идущих источников из области течения на панель для правой части ...
Класс, опеделяющий двумерный вихревой элемент
virtual ~AirfoilRect()
Деструктор
Абстрактный класс, определяющий обтекаемый профиль
AirfoilRect(const World2D &W_, const size_t numberInPassport_)
Конструктор
Класс, опеделяющий текущую решаемую задачу
Класс, опеделяющий набор вихрей
AirfoilRect(const Airfoil &afl)
virtual void GetDiffVelocityI0I3ToWakeAndViscousStresses(const WakeDataBase &pointsDb, std::vector< double > &domainRadius, std::vector< double > &I0, std::vector< Point2D > &I3) override