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


Public Member Functions | |
| Boundary (const World2D &W_, size_t numberInPassport_, int sheetDim_) | |
| Конструктор More... | |
| virtual | ~Boundary () |
| Деструктор More... | |
| virtual void | FillMatrixSelf (Eigen::MatrixXd &matr, Eigen::VectorXd &lastLine, Eigen::VectorXd &lactCol)=0 |
| Генерация блока матрицы More... | |
| virtual void | FillIQSelf (std::pair< Eigen::MatrixXd, Eigen::MatrixXd > &IQ)=0 |
| Генерация блока матрицы, состоящей из интегралов от (r-xi)/|r-xi|^2, влияние профиля самого на себя More... | |
| virtual void | FillMatrixFromOther (const Boundary &otherBoundary, Eigen::MatrixXd &matr)=0 |
| Генерация блока матрицы влияния от другого профиля того же типа More... | |
| virtual void | FillIQFromOther (const Boundary &otherBoundary, std::pair< Eigen::MatrixXd, Eigen::MatrixXd > &IQ)=0 |
| Генерация блока матрицы, состоящей из интегралов от (r-xi)/|r-xi|^2, влияние одного профиля на другой More... | |
| virtual void | CalcConvVelocityToSetOfPointsFromSheets (const WakeDataBase &pointsDb, std::vector< Point2D > &velo) const =0 |
| Вычисление конвективных скоростей в наборе точек, вызываемых наличием слоев вихрей и источников на профиле More... | |
| virtual void | CalcConvVelocityAtVirtualVortexes (std::vector< Point2D > &velo) const =0 |
| Вычисление конвективной скорости в точках расположения виртуальных вихрей More... | |
| size_t | GetUnknownsSize () const |
| Возврат размерности вектора решения More... | |
| virtual void | SolutionToFreeVortexSheetAndVirtualVortex (const Eigen::VectorXd &sol)=0 |
| Пересчет решения на интенсивность вихревого слоя и на рождаемые вихри на конкретном профиле More... | |
| virtual void | ComputeAttachedSheetsIntensity ()=0 |
| Вычисление интенсивностей присоединенного вихревого слоя и присоединенного слоя источников More... | |
| virtual void | GetInfluenceFromVorticesToRectPanel (size_t panel, const Vortex2D *ptr, ptrdiff_t count, std::vector< double > &wakeRhs) const =0 |
| Вычисление влияния части подряд идущих вихрей из вихревого следа на прямолинейную панель для правой части More... | |
| virtual void | GetInfluenceFromSourcesToRectPanel (size_t panel, const Vortex2D *ptr, ptrdiff_t count, std::vector< double > &wakeRhs) const =0 |
| Вычисление влияния части подряд источников из области течения на прямолинейную панель для правой части More... | |
| virtual void | GetInfluenceFromVortexSheetAtRectPanelToVortex (size_t panel, const Vortex2D &vtx, Point2D &vel) const =0 |
| Вычисление влияния вихревых слоев (свободный + присоединенный) конкретной прямолинейной панели на вихрь в области течения ///. More... | |
| virtual void | GetInfluenceFromSourceSheetAtRectPanelToVortex (size_t panel, const Vortex2D &vtx, Point2D &vel) const =0 |
| Вычисление влияния слоя источников конкретной прямолинейной панели на вихрь в области течения More... | |
| virtual void | GetInfluenceFromVInfToRectPanel (std::vector< double > &vInfRhs) const =0 |
| Вычисление влияния набегающего потока на прямолинейную панель для правой части More... | |
Public Attributes | |
| const Airfoil & | afl |
| int | minVortexPerPanel |
| Минимальное число вихрей, рождаемых на панели профиля и формирующих виртуальный вихревой след More... | |
| std::vector< std::pair< int, int > > | vortexBeginEnd |
| Номера первого и последнего вихрей, рождаемых на каждой панели профиля (формируется после решения СЛАУ) More... | |
| VirtualWake | virtualWake |
| Виртуальный вихревой след конкретного профиля More... | |
| size_t | sheetDim |
| Размерность параметров каждого из слоев на каждой из панелей More... | |
| Sheet | sheets |
| Слои на профиле More... | |
| Sheet | oldSheets |
| Слои на профиле с предыдущего шага More... | |
Protected Attributes | |
| const World2D & | W |
| Константная ссылка на решаемую задачу More... | |
| const size_t | numberInPassport |
| Номер профиля в паспорте More... | |
Абстрактный класс, определяющий способ удовлетворения граничного условия на обтекаемом профиле
Definition at line 63 of file Boundary2D.h.
| Boundary::Boundary | ( | const World2D & | W_, |
| size_t | numberInPassport_, | ||
| int | sheetDim_ | ||
| ) |
Конструктор
| [in] | W_ | константная ссылка на решаемую задачу |
| [in] | numberInPassport_ | номер профиля в паспорте задачи |
| [in] | sheetDim_ | размерность параметра слоя на каждой панели профиля (сколько чисел используется, чтобы описать слой на каждой панели); |
Definition at line 53 of file Boundary2D.cpp.

|
inlinevirtual |
|
pure virtual |
Вычисление конвективной скорости в точках расположения виртуальных вихрей
Вычисление производится в точках расположения виртуальных вихрей. Скорости находятся как скорости соответствующих точек профиля плюс половина интенсивности присоединенного вихревого слоя, умноженная на касательную к профилю на данной панели.
| [out] | velo | ссылка на заполняемый список скоростей |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

|
pure virtual |
Вычисление конвективных скоростей в наборе точек, вызываемых наличием слоев вихрей и источников на профиле
Вычисляет конвективные скорости в наборе точек, которые вызваны влиянием слоев вихрей и источников на профиле
| [in] | pointsDb | константная ссылка на базу данных вихрей, в точках которых вычисляются скорости |
| [out] | velo | ссылка на вектор скоростей, которые приобретают точки из-за влияния слоев вихрей и источников на профиле |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

|
pure virtual |
Вычисление интенсивностей присоединенного вихревого слоя и присоединенного слоя источников
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

|
pure virtual |
Генерация блока матрицы, состоящей из интегралов от (r-xi)/|r-xi|^2, влияние одного профиля на другой
Генерирует блок матрицы влияния от другого профиля того же типа
| [in] | otherBoundary | константная ссылка на граничное условие на втором профиле |
| [out] | IQ | ссылка на пару матриц, выражающих взаимные влияния (касательные и нормальные) панелей профиля |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

|
pure virtual |
Генерация блока матрицы, состоящей из интегралов от (r-xi)/|r-xi|^2, влияние профиля самого на себя
| [out] | IQ | ссылка на генерируемую матрицу |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

|
pure virtual |
Генерация блока матрицы влияния от другого профиля того же типа
Генерирует блок матрицы влияния от другого профиля того же типа
| [in] | otherBoundary | константная ссылка на граничное условие на втором профиле |
| [out] | matr | ссылка на генерируемый блок матрицы |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

|
pure virtual |
Генерация блока матрицы
Генерирует следующие компоненты матрицы:
| [out] | matr | ссылка на генерируемую матрицу |
| [out] | lastLine | ссылка на нижнюю строку |
| [out] | lactCol | ссылка на правый столбец |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

|
pure virtual |
Вычисление влияния слоя источников конкретной прямолинейной панели на вихрь в области течения
| [in] | panel | номер панели профиля, от которой считается влияние |
| [in] | vtx | ссылка на вихрь |
| [out] | vel | ссылка на вектор полученной скорости |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

|
pure virtual |
Вычисление влияния части подряд источников из области течения на прямолинейную панель для правой части
Вычисляет влияния части подряд идущих источников из области течения на прямолинейную панель для правой части
| [in] | panel | номер панели профиля, на которую считается влияние |
| [in] | ptr | указатель на начало диапазона источников |
| [in] | count | длина диапазона источников |
| [out] | wakeRhs | ссылка на вектор полученных влияние для правой части СЛАУ |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

|
pure virtual |
Вычисление влияния набегающего потока на прямолинейную панель для правой части
Вычисляет влияния набегающего потока на прямолинейную панель для правой части
| [out] | vInfRhs | ссылка на вектор полученных влияние для правой части СЛАУ |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

|
pure virtual |
Вычисление влияния вихревых слоев (свободный + присоединенный) конкретной прямолинейной панели на вихрь в области течения ///.
| [in] | panel | номер панели профиля, от которой считается влияние |
| [in] | vtx | ссылка на вихрь |
| [out] | vel | ссылка на вектор полученной скорости |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

|
pure virtual |
Вычисление влияния части подряд идущих вихрей из вихревого следа на прямолинейную панель для правой части
Вычисляет влияния части подряд идущих вихрей из вихревого следа на прямолинейную панель для правой части
| [in] | panel | номер панели профиля, на которую считается влияние |
| [in] | ptr | указатель на начало диапазона вихрей |
| [in] | count | длина диапазона вихрей |
| [out] | wakeRhs | ссылка на вектор полученных влияние для правой части СЛАУ |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

| size_t Boundary::GetUnknownsSize | ( | ) | const |
Возврат размерности вектора решения
(без учета регуляризирующей переменной)
Definition at line 71 of file Boundary2D.cpp.


|
pure virtual |
Пересчет решения на интенсивность вихревого слоя и на рождаемые вихри на конкретном профиле
1) Приводит решение к интенсивности вихревого слоя и записывает его в sheets.freeVortexSheet:
2) Приводит интенсивность вихревого слоя к рождаемым вихрям, а также вычисляет их положения
| [in] | sol | вектор решения СЛАУ |
Implemented in VM2D::BoundaryVortexCollocN, VM2D::BoundaryConstLayerAver, and VM2D::BoundaryLinLayerAver.

| const Airfoil& VM2D::Boundary::afl |
Константная ссылка на профиль
инициализируется автоматом в конструкторе
Definition at line 76 of file Boundary2D.h.
| int VM2D::Boundary::minVortexPerPanel |
Минимальное число вихрей, рождаемых на панели профиля и формирующих виртуальный вихревой след
Definition at line 79 of file Boundary2D.h.
|
protected |
Номер профиля в паспорте
Definition at line 70 of file Boundary2D.h.
| Sheet VM2D::Boundary::oldSheets |
Слои на профиле с предыдущего шага
Definition at line 98 of file Boundary2D.h.
| size_t VM2D::Boundary::sheetDim |
Размерность параметров каждого из слоев на каждой из панелей
Указывает, сколькими числами задается интенсивность каждого из слоев на каждой панели:
Definition at line 92 of file Boundary2D.h.
| Sheet VM2D::Boundary::sheets |
Слои на профиле
Definition at line 95 of file Boundary2D.h.
| VirtualWake VM2D::Boundary::virtualWake |
Виртуальный вихревой след конкретного профиля
Definition at line 85 of file Boundary2D.h.
| std::vector<std::pair<int, int> > VM2D::Boundary::vortexBeginEnd |
Номера первого и последнего вихрей, рождаемых на каждой панели профиля (формируется после решения СЛАУ)
Definition at line 82 of file Boundary2D.h.
|
protected |
Константная ссылка на решаемую задачу
Definition at line 67 of file Boundary2D.h.