54 :
Mechanics(W_, numberInPassport_, true, false)
83 Point2D hDFdelta = { 0.0, 0.0 };
87 double hDMdelta = 0.0;
101 double deltaGAtt = gAtt - gAttOld;
109 hDFdelta += deltaK *
Point2D({ -rK[1], rK[0] });
110 hDMdelta += 0.5 * deltaK * rK.
length2();
209 kk[1] = {
Wcm + 0.5 * dt * kk[0][1], (
hydroDynamMoment - 2.0 * bw * (
Wcm + 0.5 * dt * kk[0][1]) - kw * (
Phi + 0.5 * dt * kk[0][0]) - addMom) / Jeff };
210 kk[2] = {
Wcm + 0.5 * dt * kk[1][1], (
hydroDynamMoment - 2.0 * bw * (
Wcm + 0.5 * dt * kk[1][1]) - kw * (
Phi + 0.5 * dt * kk[1][0]) - addMom) / Jeff };
211 kk[3] = {
Wcm + dt * kk[2][1], (
hydroDynamMoment - 2.0 * bw * (
Wcm + dt * kk[2][1]) - kw * (
Phi + dt * kk[2][0]) - addMom) / Jeff };
213 dphi = dt * (kk[0][0] + 2. * kk[1][0] + 2. * kk[2][0] + kk[3][0]) / 6.0;
214 dw = dt * (kk[0][1] + 2. * kk[1][1] + 2. * kk[2][1] + kk[3][1]) / 6.0;
220 dphi = 0.5 * a * sqr(t) - 0.5 * a * sqr(t - dt);
244 W.
getInfo(
'i') <<
"moment of inertia " <<
"J = " <<
J << std::endl;
Заголовочный файл с описанием класса Airfoil.
Заголовочный файл с описанием класса Boundary.
Заголовочный файл с описанием класса MeasureVP.
Заголовочный файл с описанием класса MechanicsRigidRotatePart.
Заголовочный файл с описанием класса StreamParser.
Заголовочный файл с описанием класса Velocity.
Заголовочный файл с описанием класса Wake.
Заголовочный файл с описанием класса World2D.
double phiAfl
Поворот профиля
std::vector< double > len
Длины панелей профиля
void setV(const Point2D &vel)
Установка постоянной скорости всех вершин профиля
const Point2D & getR(size_t q) const
Возврат константной ссылки на вершину профиля
double area
Площадь профиля
const Point2D & getV(size_t q) const
Возврат константной ссылки на скорость вершины профиля
std::vector< Point2D > nrm
Нормали к панелям профиля
std::vector< Point2D > tau
Касательные к панелям профиля
Point2D rcm
Положение центра масс профиля
size_t getNumberOfPanels() const
Возврат количества панелей на профиле
std::vector< double > gammaThrough
Суммарные циркуляции вихрей, пересекших панели профиля на прошлом шаге
virtual void Move(const Point2D &dr)
Перемещение профиля
std::vector< double > viscousStress
Нейросеть для коэффициентов I0 и I3 диффузионной скорости
virtual void Rotate(double alpha)
Поворот профиля
Sheet sheets
Слои на профиле
Абстрактный класс, определяющий вид механической системы
std::unique_ptr< VMlib::StreamParser > mechParamsParser
Умный указатель на парсер параметров механической системы
Point2D hydroDynamForce
Вектор гидродинамической силы и момент, действующие на профиль
Point2D Vcm0
Начальная скорость центра и угловая скорость
Point2D RcmOld
Текущие положение профиля
Point2D VcmOld
Скорость и отклонение с предыдущего шага
const World2D & W
Константная ссылка на решаемую задачу
void Initialize(Point2D Vcm0_, Point2D Rcm0_, double Wcm0_, double Phi0_)
Задание начального положения и начальной скорости
Point2D Rcm
Текущие положение профиля
Point2D Rcm0
Начальное положение профиля
Point2D viscousForce
Вектор силы и момент вязкого трения, действующие на профиль
double circulationOld
Циркуляция скорости по границе профиля с предыдущего шага
Point2D Vcm
Текущие скорость центра и угловая скорость
double circulation
Текущая циркуляция скорости по границе профиля
const Boundary & boundary
virtual void Move() override
Перемещение профиля в соответствии с законом
virtual Point2D VeloOfAirfoilRcm(double currTime) override
Вычисление скорости центра масс профиля
virtual Point2D PositionOfAirfoilRcm(double currTime) override
Вычисление положения центра масс профиля
virtual void VeloOfAirfoilPanels(double currTime) override
Вычисление скоростей начал панелей
MechanicsRigidRotatePart(const World2D &W_, size_t numberInPassport_)
Конструктор
double externalTorque
внешний момент, который "снимается"
virtual double AngularVelocityOfAirfoil(double currTime) override
Вычисление угловой скорости профиля
double J
начальная угловая скорость профиля
virtual void ReadSpecificParametersFromDictionary() override
Чтение параметров конкретной механической системы
virtual double AngleOfAirfoil(double currTime) override
Вычисление угла поворота профиля
double tAccel
время, за которое профиль принудительно разгоняется
virtual void GetHydroDynamForce() override
Вычисление гидродинамической силы, действующей на профиль
double wAccel
скорость, до которой профиль принудительно разгоняется
PhysicalProperties physicalProperties
Структура с физическими свойствами задачи
const double & freeVortexSheet(size_t n, size_t moment) const
Класс, опеделяющий текущую решаемую задачу
const Airfoil & getAirfoil(size_t i) const
Возврат константной ссылки на объект профиля
VMlib::TimersGen & getTimers() const
Возврат ссылки на временную статистику выполнения шага расчета по времени
const Passport & getPassport() const
Возврат константной ссылки на паспорт
TimeDiscretizationProperties timeDiscretizationProperties
Структура с параметрами процесса интегрирования по времени
void stop(const std::string &timerLabel)
Останов счетчика
void start(const std::string &timerLabel)
Запуск счетчика
VMlib::LogStream & getInfo() const
Возврат ссылки на объект LogStream Используется в техничеcких целях для организации вывода
double getCurrentTime() const
numvector< T, 2 > kcross() const
Геометрический поворот двумерного вектора на 90 градусов
auto length2() const -> typename std::remove_const< typename std::remove_reference< decltype(this->data[0])>::type >::type
Вычисление квадрата нормы (длины) вектора
double nu
Коэффициент кинематической вязкости среды
double rho
Плотность потока