72 std::vector<std::unique_ptr<Airfoil>>
airfoil;
78 std::vector<std::unique_ptr<Boundary>>
boundary;
90 std::unique_ptr<Wake>
wake;
93 std::unique_ptr<WakeDataBase>
source;
105 std::vector<std::vector<std::pair<Eigen::MatrixXd, Eigen::MatrixXd>>>
IQ;
237 const std::pair<Eigen::MatrixXd, Eigen::MatrixXd>&
getIQ(
size_t i,
size_t j)
const {
return IQ[i][j]; };
292 void CheckInside(std::vector<Point2D>& newPos,
const std::vector<std::unique_ptr<Airfoil>>& oldAirfoil);
315 virtual void Step()
override;
const std::pair< Eigen::MatrixXd, Eigen::MatrixXd > & getIQ(size_t i, size_t j) const
Возврат константной ссылки на объект, связанный с матрицей интегралов от (r-xi)/|r-xi|^2.
std::unique_ptr< Velocity > velocity
Умный укзатель на объект, определяющий методику вычисления скоростей
Times & getTimestat() const
Возврат ссылки на временную статистику выполнения шага расчета по времени
Eigen::MatrixXd invMatr
Обратная матрица
void MoveVortexes(std::vector< Point2D > &newPos)
Вычисляем новые положения вихрей (в пелене и виртуальных)
Класс для сбора статистики времени исполнения основных шагов алгоритма и вывода ее в файл ...
Boundary & getNonConstBoundary(size_t i) const
Возврат неконстантной ссылки на объект граничного условия
Gpu & getNonConstCuda() const
Возврат неконстантной ссылки на объект, связанный с видеокартой (GPU)
Eigen::VectorXd rhs
Правая часть системы
size_t getNumberOfBoundary() const
Возврат количества граничных условий в задаче
Заголовочный файл с описанием класса WorldGen.
const Velocity & getVelocity() const
Возврат константной ссылки на объект для вычисления скоростей
Абстрактный класс, определяющий способ удовлетворения граничного условия на обтекаемом профиле ...
const Wake & getWake() const
Возврат константной ссылки на вихревой след
std::vector< std::unique_ptr< Airfoil > > oldAirfoil
Список умных указателей на обтекаемые профили для сохранения старого положения
Mechanics & getNonConstMechanics(size_t i) const
Возврат неконстантной ссылки на объект механики
std::unique_ptr< Wake > wake
Умный указатель на вихревой след
const Mechanics & getMechanics(size_t i) const
Возврат константной ссылки на объект механики
const WakeDataBase & getSource() const
Возврат константной ссылки на источники в области течения
Класс, опеделяющий паспорт двумерной задачи
Класс, обеспечивающий возможность выполнения вычислений на GPU по технологии Nvidia CUDA...
std::unique_ptr< WakeDataBase > source
Умный указатель на источники
Заголовочный файл с описанием класса Times.
const Airfoil & getOldAirfoil(size_t i) const
Возврат константной ссылки на объект старого профиля
Eigen::MatrixXd matr
Матрица системы
void GenerateMechanicsHeader(size_t mechanicsNumber)
bool ifDivisible(int val) const
std::vector< std::unique_ptr< Mechanics > > mechanics
Список умных указателей на типы механической системы для каждого профиля
std::unique_ptr< MeasureVP > measureVP
Умный указатель на алгоритм вычисления полей скоростей и давления (для сохранения в файл) ...
const Boundary & getBoundary(size_t i) const
Возврат константной ссылки на объект граничного условия
Класс, опеделяющий вихревой след (пелену)
World2D(const VMlib::PassportGen &passport_)
Конструктор
Wake & getNonConstWake() const
Возврат неконстантной ссылки на вихревой след
virtual void Step() override
Функция выполнения предварительного шага
Абстрактный класс, опеделяющий паспорт задачи
size_t getNumberOfAirfoil() const
Возврат количества профилей в задаче
void CheckInside(std::vector< Point2D > &newPos, const std::vector< std::unique_ptr< Airfoil >> &oldAirfoil)
Проверка проникновения вихрей внутрь профиля
const MeasureVP & getMeasureVP() const
Возврат константной ссылки на measureVP.
void ReserveMemoryForMatrixAndRhs()
Вычисляем размер матрицы и резервируем память под нее и под правую часть
Velocity & getNonConstVelocity() const
Возврат неконстантной ссылки на объект для вычисления скоростей
Gpu cuda
Объект, управляющий графическим ускорителем
Класс, отвечающий за вычисление поля скорости и давления в заданых точках для вывода ...
std::vector< std::unique_ptr< Airfoil > > airfoil
Список умных указателей на обтекаемые профили
const Passport & getPassport() const
Возврат константной ссылки на паспорт
const Gpu & getCuda() const
Возврат константной ссылки на объект, связанный с видеокартой (GPU)
bool useInverseMatrix
Признак использования обратной матрицы
std::vector< std::vector< std::pair< Eigen::MatrixXd, Eigen::MatrixXd > > > IQ
Матрица, состоящая из пар матриц, в которых хранятся касательные и нормальные компоненты интегралов о...
void CalcAndSolveLinearSystem()
Набор матрицы, правой части и решение СЛАУ
Класс, опеделяющий текущую решаемую задачу
Eigen::VectorXd sol
Решение системы
size_t currentStep
Текущий номер шага в решаемой задаче
MeasureVP & getNonConstMeasureVP() const
Возврат неконстантной ссылки на measureVP.
void CalcPanelsVeloAndAttachedSheets()
Вычисление скоростей панелей и интенсивностей присоединенных слоев вихрей и источников ...
Абстрактный класс, определяющий обтекаемый профиль
const Airfoil & getAirfoil(size_t i) const
Возврат константной ссылки на объект профиля
void FillIQ()
Заполнение матрицы, состоящей из интегралов от (r-xi) / |r-xi|^2.
Класс, опеделяющий текущую решаемую задачу
void CalcVortexVelo(bool shiftTime)
Вычисление скоростей (и конвективных, и диффузионных) вихрей (в пелене и виртуальных), а также в точках вычисления VP.
Абстрактный класс, определяющий способ вычисления скоростей
Класс, опеделяющий набор вихрей
void FillMatrixAndRhs()
Заполнение матрицы системы для всех профилей
size_t getDispBoundaryInSystem(size_t i) const
Возврат смещения в системе dispBoundaryInSystem.
std::vector< std::unique_ptr< Boundary > > boundary
Список умных указателей на формирователи граничных условий на профилях
void SolveLinearSystem()
Решение системы линейных алгебраических уравнений
const Passport & passport
Константная ссылка на паспорт конкретного расчета
Airfoil & getNonConstAirfoil(size_t i) const
Возврат неконстантной ссылки на объект профиля
Заголовочный файл с описанием класса Gpu.
std::vector< size_t > dispBoundaryInSystem
Список номеров, с которых начинаются элементы правой части (или матрицы) системы для профилей ...
void WakeAndAirfoilsMotion()
Перемещение вихрей и профилей на шаге
Абстрактный класс, определяющий вид механической системы