![]() |
VM2D
1.12
Vortex methods for 2D flows simulation
|
Класс, определяющий тип обтекаемого профиля More...
#include <Airfoil2DRect.h>


Public Member Functions | |
| AirfoilRect (const World2D &W_, const size_t numberInPassport_) | |
| Конструктор More... | |
| AirfoilRect (const Airfoil &afl) | |
| virtual | ~AirfoilRect () |
| Деструктор More... | |
| void | CalcNrmTauLen () |
| Вычисление нормалей, касательных и длин панелей по текущему положению вершин More... | |
| virtual void | GetGabarits (double gap=0.02) override |
| Вычисляет габаритный прямоугольник профиля More... | |
| virtual void | ReadFromFile (const std::string &dir) override |
| Считывание профиля из файла More... | |
| virtual void | Rotate (double alpha) override |
| Поворот профиля More... | |
| virtual void | Scale (const Point2D &) override |
| Масштабирование профиля More... | |
| virtual void | Move (const Point2D &dr) override |
| Перемещение профиля More... | |
| virtual std::vector< double > | getA (size_t p, size_t i, const Airfoil &airfoil, size_t j) const override |
| Вычисление коэффициентов матрицы A для расчета влияния панели на панель More... | |
| virtual void | calcIQ (size_t p, const Airfoil &otherAirfoil, std::pair< Eigen::MatrixXd, Eigen::MatrixXd > &matrPair) const override |
| Вычисление коэффициентов матрицы, состоящей из интегралов от (r-xi)/|r-xi|^2. More... | |
| virtual bool | IsPointInAirfoil (const Point2D &point) const override |
| Определяет, находится ли точка с радиус-вектором \( \vec r \) внутри профиля More... | |
| virtual void | GetDiffVelocityI0I3ToSetOfPointsAndViscousStresses (const WakeDataBase &pointsDb, std::vector< double > &domainRadius, std::vector< double > &I0, std::vector< Point2D > &I3) override |
| Вычисление числителей и знаменателей диффузионных скоростей в заданном наборе точек, обусловленных геометрией профиля, и вычисление вязкого трения More... | |
| virtual void | GetDiffVelocityI0I3ToWakeAndViscousStresses (const WakeDataBase &pointsDb, std::vector< double > &domainRadius, std::vector< double > &I0, std::vector< Point2D > &I3) override |
| virtual void | GetInfluenceFromVorticesToPanel (size_t panel, const Vortex2D *ptr, ptrdiff_t count, std::vector< double > &panelRhs) const override |
| Вычисление влияния части подряд идущих вихрей из вихревого следа на панель для правой части More... | |
| virtual void | GetInfluenceFromSourcesToPanel (size_t panel, const Vortex2D *ptr, ptrdiff_t count, std::vector< double > &panelRhs) const override |
| Вычисление влияния части подряд идущих источников из области течения на панель для правой части More... | |
| virtual void | GetInfluenceFromSourceSheetToVortex (size_t panel, const Vortex2D &vtx, Point2D &vel) const override |
| Вычисление влияния слоя источников конкретной прямолинейной панели на вихрь в области течения More... | |
| virtual void | GetInfluenceFromVortexSheetToVortex (size_t panel, const Vortex2D &vtx, Point2D &vel) const override |
| Вычисление влияния вихревых слоев (свободный + присоединенный) конкретной прямолинейной панели на вихрь в области течения More... | |
| virtual void | GetInfluenceFromVInfToPanel (std::vector< double > &vInfRhs) const override |
| Вычисление влияния набегающего потока на панель для правой части More... | |
| const Point2D & | getR (size_t q) const |
| Возврат константной ссылки на вершину профиля More... | |
| const Point2D & | getV (size_t q) const |
| Возврат константной ссылки на скорость вершины профиля More... | |
| void | setV (const Point2D &vel) |
| Установка постоянной скорости всех вершин профиля More... | |
| void | setV (const std::vector< Point2D > &vel) |
| Установка скоростей всех вершин профиля More... | |
| size_t | getNumberOfPanels () const |
| Возврат количества панелей на профиле More... | |
| IFCUDA (mutable double *devRPtr) | |
| Указатель на девайсе, где хранятся вершины профиля More... | |
| IFCUDA (mutable double *devRhsPtr) | |
| Указатель на девайсе, где хранится правая часть (константная) матрицы More... | |
| IFCUDA (mutable double *devRhsLinPtr) | |
| Указатель на девайсе, где хранится правая часть (линейная) матрицы More... | |
| IFCUDA (mutable std::vector< double > tmpRhs) | |
| Указатель на хосте, где хранится временная часть матрицы, полученная с девайса More... | |
| IFCUDA (mutable double *devFreeVortexSheetPtr) | |
| Указатель на девайсе, где хранятся интенсивности свободного вихревого слоя на панелях More... | |
| IFCUDA (mutable double *devAttachedVortexSheetPtr) | |
| Указатель на девайсе, где хранятся интенсивности присоединенного вихревого слоя на панелях More... | |
| IFCUDA (mutable double *devAttachedSourceSheetPtr) | |
| Указатель на девайсе, где хранятся интенсивности присоединенного слоя источников на панелях More... | |
| IFCUDA (mutable double *devMeanEpsOverPanelPtr) | |
| Указатель на девайсе, где хранятся средние eps на панелях More... | |
| IFCUDA (mutable double *devViscousStressesPtr) | |
| Указатель на девайсе, где хранится вектор (по панелям) для силы вязкого трения More... | |
| IFCUDA (mutable std::vector< double > tmpViscousStresses) | |
| Указатель на хосте, где хранится временная часть вектора (по панелям) для силы вязкого трения More... | |
| bool | isAfter (size_t i, size_t j) const |
| Проверка, идет ли вершина i следом за вершиной j. More... | |
| bool | isInsideGabarits (const Point2D &r) const |
| Определяет, находится ли точка с радиус-вектором \( \vec r \) внутри габаритного прямоугольника профиля More... | |
| bool | isOutsideGabarits (const Point2D &r) const |
| Определяет, находится ли точка с радиус-вектором \( \vec r \) вне габаритного прямоугольника профиля More... | |
| void | calcMeanEpsOverPanel () |
| Вычисление средних значений eps на панелях More... | |
Public Attributes | |
| const World2D & | W |
| Константная ссылка на решаемую задачу More... | |
| const size_t | numberInPassport |
| Номер профиля в паспорте More... | |
| Point2D | rcm |
| Положение центра масс профиля More... | |
| double | phiAfl |
| Поворот профиля More... | |
| double | area |
| Площадь профиля More... | |
| double | m |
| Масса профиля More... | |
| double | J |
| Полярный момент инерции профиля относительно центра масс More... | |
| std::vector< double > | meanEpsOverPanel |
| Средние значения Eps на панелях More... | |
| bool | inverse |
| Признак разворота нормалей (для расчета внутренних течений) More... | |
| std::vector< Point2D > | nrm |
| Нормали к панелям профиля More... | |
| std::vector< Point2D > | tau |
| Касательные к панелям профиля More... | |
| std::vector< double > | len |
| Длины панелей профиля More... | |
| std::vector< double > | viscousStress |
| Касательные напряжения на панелях профиля More... | |
| Point2D | lowLeft |
| Левый нижний угол габаритного прямоугольника профиля More... | |
| Point2D | upRight |
| Правый верхний угол габаритного прямоугольника профиля More... | |
| std::vector< double > | gammaThrough |
| Суммарные циркуляции вихрей, пересекших панели профиля на прошлом шаге More... | |
Protected Attributes | |
| std::vector< Point2D > | r_ |
| Координаты начал панелей More... | |
| std::vector< Point2D > | v_ |
| Скорости начал панелей More... | |
Класс, определяющий тип обтекаемого профиля
Тип профиля:
Definition at line 64 of file Airfoil2DRect.h.
|
inline |
Конструктор
Definition at line 70 of file Airfoil2DRect.h.
|
inline |
Definition at line 74 of file Airfoil2DRect.h.
|
inlinevirtual |
|
overridevirtual |
Вычисление коэффициентов матрицы, состоящей из интегралов от (r-xi)/|r-xi|^2.
| [in] | p | размерность матрицы-результата |
| [in] | otherAirfoil | константная ссылка на профиль, от которого рассчитывается влияние |
| [out] | matrPair | ссылка на пару матриц, выражающих взаимные влияния (касательные и нормальные) панелей профиля return соответствующий блок матрицы СЛАУ, вытянутый в линию |
Implements VM2D::Airfoil.
Definition at line 708 of file Airfoil2DRect.cpp.


|
inherited |
Вычисление средних значений eps на панелях
Definition at line 82 of file Airfoil2D.cpp.


| void AirfoilRect::CalcNrmTauLen | ( | ) |
Вычисление нормалей, касательных и длин панелей по текущему положению вершин
Definition at line 616 of file Airfoil2DRect.cpp.


|
overridevirtual |
Вычисление коэффициентов матрицы A для расчета влияния панели на панель
| [in] | p | размерность матрицы - результата |
| [in] | i | номер панели, на которую оказывается влияние |
| [in] | airfoil | константная ссылка на профиль, от которого рассчитывается влияние |
| [in] | j | номер влияющей панели return соответствующий блок матрицы СЛАУ, вытянутый в линию |
Implements VM2D::Airfoil.
Definition at line 665 of file Airfoil2DRect.cpp.


|
overridevirtual |
Вычисление числителей и знаменателей диффузионных скоростей в заданном наборе точек, обусловленных геометрией профиля, и вычисление вязкого трения
Вычисляет диффузионные скорости в наборе точек, которые обусловленных геометрией профиля, и вычисляет вязкое трение
| [in] | pointsDb | константная ссылка на базу данных вихрей, в которых вычисляются скорости |
| [in] | domainRadius | ссылка на радиусы вихрей |
| [out] | I0 | ссылка на вектор знаменателей диффузионных скоростей, которые приобретают точки из-за влияния геометрии профиля |
| [out] | I3 | ссылка на вектор числителей диффузионных скоростей, которые приобретают точки из-за влияния геометрии профиля |
Implements VM2D::Airfoil.
Definition at line 303 of file Airfoil2DRect.cpp.


|
overridevirtual |
Implements VM2D::Airfoil.
Definition at line 442 of file Airfoil2DRect.cpp.


|
overridevirtual |
Вычисляет габаритный прямоугольник профиля
Implements VM2D::Airfoil.
Definition at line 643 of file Airfoil2DRect.cpp.

|
overridevirtual |
Вычисление влияния слоя источников конкретной прямолинейной панели на вихрь в области течения
| [in] | panel | номер панели профиля, от которой считается влияние |
| [in] | vtx | ссылка на вихрь |
| [out] | vel | ссылка на вектор полученной скорости |
Implements VM2D::Airfoil.
Definition at line 855 of file Airfoil2DRect.cpp.


|
overridevirtual |
Вычисление влияния части подряд идущих источников из области течения на панель для правой части
Вычисляет влияния части подряд идущих источников из области течения на панель для правой части
| [in] | panel | номер панели профиля, на которую считается влияние |
| [in] | ptr | указатель на начало диапазона источников |
| [in] | count | длина диапазона источников |
| [out] | panelRhs | ссылка на вектор полученного влияния для правой части СЛАУ для конкретной панели |
Implements VM2D::Airfoil.
Definition at line 849 of file Airfoil2DRect.cpp.


|
overridevirtual |
Вычисление влияния набегающего потока на панель для правой части
Вычисляет влияния набегающего потока на панель для правой части
| [out] | vInfRhs | ссылка на вектор полученного влияния для правой части СЛАУ для всех панелей профиля |
Implements VM2D::Airfoil.
Definition at line 866 of file Airfoil2DRect.cpp.


|
overridevirtual |
Вычисление влияния вихревых слоев (свободный + присоединенный) конкретной прямолинейной панели на вихрь в области течения
| [in] | panel | номер панели профиля, от которой считается влияние |
| [in] | vtx | ссылка на вихрь |
| [out] | vel | ссылка на вектор полученной скорости |
Implements VM2D::Airfoil.
Definition at line 861 of file Airfoil2DRect.cpp.


|
overridevirtual |
Вычисление влияния части подряд идущих вихрей из вихревого следа на панель для правой части
Вычисляет влияния части подряд идущих вихрей из вихревого следа на панель для правой части
| [in] | panel | номер панели профиля, на которую считается влияние |
| [in] | ptr | указатель на начало диапазона вихрей |
| [in] | count | длина диапазона вихрей |
| [out] | panelRhs | ссылка на вектор полученного влияния для правой части СЛАУ для конкретной панели |
Implements VM2D::Airfoil.
Definition at line 842 of file Airfoil2DRect.cpp.


|
inlineinherited |
Возврат количества панелей на профиле
Definition at line 139 of file Airfoil2D.h.

|
inlineinherited |
Возврат константной ссылки на вершину профиля
Организовано "зацикливание" в сторону увеличения индекса, т.е. getR[size()] = getR[0];
Это позволяет удобно обращаться к getR(i) и getR(i+1) как к началу и концу i-й панели
| [in] | q | номер вершины профиля return константную ссылку на вершину профиля |
Definition at line 101 of file Airfoil2D.h.

|
inlineinherited |
Возврат константной ссылки на скорость вершины профиля
Организовано "зацикливание" в сторону увеличения индекса, т.е. getV[size()] = getV[0];
Это позволяет удобно обращаться к getV(i) и getV(i+1) как к скоростям начала и конца i-й панели
| [in] | q | номер вершины профиля return константную ссылку на скорость вершины профиля |
Definition at line 113 of file Airfoil2D.h.

|
inherited |
Указатель на девайсе, где хранятся вершины профиля
|
inherited |
Указатель на девайсе, где хранится правая часть (константная) матрицы
|
inherited |
Указатель на девайсе, где хранится правая часть (линейная) матрицы
|
inherited |
Указатель на хосте, где хранится временная часть матрицы, полученная с девайса
|
inherited |
Указатель на девайсе, где хранятся интенсивности свободного вихревого слоя на панелях
|
inherited |
Указатель на девайсе, где хранятся интенсивности присоединенного вихревого слоя на панелях
|
inherited |
Указатель на девайсе, где хранятся интенсивности присоединенного слоя источников на панелях
|
inherited |
Указатель на девайсе, где хранятся средние eps на панелях
|
inherited |
Указатель на девайсе, где хранится вектор (по панелям) для силы вязкого трения
|
inherited |
Указатель на хосте, где хранится временная часть вектора (по панелям) для силы вязкого трения
|
inherited |
Проверка, идет ли вершина i следом за вершиной j.
| [in] | i | проверяемая вершина |
| [in] | j | контрольная вершина |
Definition at line 62 of file Airfoil2D.cpp.

|
inherited |
Определяет, находится ли точка с радиус-вектором \( \vec r \) внутри габаритного прямоугольника профиля
| [in] | r | константная ссылка на текущее положение точки |
Definition at line 69 of file Airfoil2D.cpp.

|
inherited |
Определяет, находится ли точка с радиус-вектором \( \vec r \) вне габаритного прямоугольника профиля
| [in] | r | константная ссылка на текущее положение точки |
Definition at line 76 of file Airfoil2D.cpp.

|
overridevirtual |
Определяет, находится ли точка с радиус-вектором \( \vec r \) внутри профиля
| [in] | point | константная ссылка на текущее положение точки |
Implements VM2D::Airfoil.
Definition at line 560 of file Airfoil2DRect.cpp.


|
overridevirtual |
Перемещение профиля
Плоскопараллельно перемещает профиль на вектор \( \overrightarrow{dr} \)
| [in] | dr | константная ссылка на вектор перемещения |
Implements VM2D::Airfoil.
Definition at line 580 of file Airfoil2DRect.cpp.


|
overridevirtual |
Считывание профиля из файла
Считывание геометрии профиля из файла, вычисление всех прочих параметров профиля
После загрузки из файла профиль поворачивается на нужный угол и масштабируется на нужный коэффициент
| [in] | dir | константная ссылка на строку — имя каталога, где лежит cчитываемый файл |
Implements VM2D::Airfoil.
Definition at line 59 of file Airfoil2DRect.cpp.


|
overridevirtual |
Поворот профиля
Поворачивает профиль на угол \( \alpha \) вокруг центра масс
| [in] | alpha | угол поворота против часовой стрелки в радианах |
Implements VM2D::Airfoil.
Definition at line 591 of file Airfoil2DRect.cpp.


|
overridevirtual |
Масштабирование профиля
Масштабирует профиль в factor раз относительно центра масс
| [in] | factor | масштабный коэффициент |
Implements VM2D::Airfoil.
Definition at line 606 of file Airfoil2DRect.cpp.


|
inlineinherited |
Установка постоянной скорости всех вершин профиля
| [in] | vel | константная ссылка на величину устанавливаемой скорости |
Definition at line 121 of file Airfoil2D.h.

|
inlineinherited |
Установка скоростей всех вершин профиля
| [in] | vel | константная ссылка на вектор величин скоростей вершин профиля |
Definition at line 130 of file Airfoil2D.h.
|
inherited |
Площадь профиля
Definition at line 83 of file Airfoil2D.h.
|
inherited |
Суммарные циркуляции вихрей, пересекших панели профиля на прошлом шаге
Используются в правой части системы, чтобы компенсировать вихри, проникшие в профиль
Definition at line 196 of file Airfoil2D.h.
|
inherited |
Признак разворота нормалей (для расчета внутренних течений)
Definition at line 139 of file Airfoil2D.h.
|
inherited |
Полярный момент инерции профиля относительно центра масс
Definition at line 89 of file Airfoil2D.h.
|
inherited |
Длины панелей профиля
Definition at line 185 of file Airfoil2D.h.
|
inherited |
Левый нижний угол габаритного прямоугольника профиля
Definition at line 190 of file Airfoil2D.h.
|
inherited |
Масса профиля
Definition at line 86 of file Airfoil2D.h.
|
inherited |
Средние значения Eps на панелях
Definition at line 92 of file Airfoil2D.h.
|
inherited |
Нормали к панелям профиля
Нормали задаются внешними, нормированными на единицу
Definition at line 177 of file Airfoil2D.h.
|
inherited |
Номер профиля в паспорте
Definition at line 74 of file Airfoil2D.h.
|
inherited |
Поворот профиля
Definition at line 80 of file Airfoil2D.h.
|
protectedinherited |
Координаты начал панелей
Definition at line 64 of file Airfoil2D.h.
|
inherited |
Положение центра масс профиля
Definition at line 77 of file Airfoil2D.h.
|
inherited |
Касательные к панелям профиля
Касательные соответствуют обходу профиля против часовой стрелки, задаются нормированными на единицу
Definition at line 182 of file Airfoil2D.h.
|
inherited |
Правый верхний угол габаритного прямоугольника профиля
Definition at line 191 of file Airfoil2D.h.
|
protectedinherited |
Скорости начал панелей
Definition at line 67 of file Airfoil2D.h.
|
inherited |
Касательные напряжения на панелях профиля
Definition at line 188 of file Airfoil2D.h.
|
inherited |
Константная ссылка на решаемую задачу
Definition at line 71 of file Airfoil2D.h.