VM2D  1.12
Vortex methods for 2D flows simulation
VM2D::Mechanics Class Referenceabstract

Абстрактный класс, определяющий вид механической системы More...

#include <Mechanics2D.h>

Inheritance diagram for VM2D::Mechanics:
Collaboration diagram for VM2D::Mechanics:

Public Member Functions

virtual void ReadSpecificParametersFromDictionary ()=0
 Чтение параметров конкретной механической системы More...
 
 Mechanics (const World2D &W_, size_t numberInPassport_, int degOfFreedom_, bool isMoves_, bool isDeform_, bool isRotate_)
 Конструктор More...
 
virtual ~Mechanics ()
 Деструктор More...
 
void Initialize (Point2D Vcm0_, Point2D Rcm0_, double Wcm0_, double Phi0_)
 Задание начального положения и начальной скорости More...
 
virtual void GetHydroDynamForce ()=0
 Вычисление гидродинамической силы, действующей на профиль More...
 
void GenerateForcesHeader ()
 Генерация заголовка файла нагрузок More...
 
void GeneratePositionHeader ()
 Генерация заголовка файла положения профиля More...
 
void GenerateForcesString ()
 Сохранение строки со статистикой в файл нагрузок More...
 
void GeneratePositionString ()
 Сохранение строки со статистикой в файл нагрузок More...
 
virtual Point2D VeloOfAirfoilRcm (double currTime)=0
 Вычисление скорости центра масс профиля More...
 
virtual Point2D PositionOfAirfoilRcm (double currTime)=0
 Вычисление положения центра масс профиля More...
 
virtual double AngularVelocityOfAirfoil (double currTime)=0
 Вычисление угловой скорости профиля More...
 
virtual double AngleOfAirfoil (double currTime)=0
 Вычисление угла поворота профиля More...
 
virtual void VeloOfAirfoilPanels (double currTime)=0
 Вычисление скоростей начал панелей More...
 
virtual void Move ()=0
 Перемещение профиля в соответствии с законом More...
 

Public Attributes

const bool isMoves
 Переменная, отвечающая за то, двигается профиль или нет More...
 
const bool isDeform
 Переменная, отвечающая за то, деформируется профиль или нет More...
 
const bool isRotate
 Переменная, отвечающая за то, может профиль вращаться или нет More...
 
const size_t degOfFreedom
 Количество степеней свободы More...
 
Point2D hydroDynamForce
 Вектор гидродинамической силы и момент, действующие на профиль More...
 
double hydroDynamMoment
 
Point2D viscousForce
 Вектор силы и момент вязкого трения, действующие на профиль More...
 
double viscousMoment
 

Protected Attributes

const World2DW
 Константная ссылка на решаемую задачу More...
 
const size_t numberInPassport
 Номер профиля в паспорте More...
 
Airfoilafl
 
const Boundaryboundary
 
const VortexesParamsvirtVortParams
 
std::unique_ptr< VMlib::StreamParsermechParamsParser
 Умный указатель на парсер параметров механической системы More...
 
Point2D Vcm0
 Начальная скорость центра и угловая скорость More...
 
double Wcm0
 
Point2D Rcm0
 Начальное положение профиля More...
 
double Phi0
 
Point2D Rcm
 Текущие положение профиля More...
 
double Phi
 
Point2D VcmOld
 Скорость и отклонение с предыдущего шага More...
 
double WcmOld
 
Point2D RcmOld
 Текущие положение профиля More...
 
double PhiOld
 

Private Member Functions

void ReadParametersFromDictionary ()
 Парсинг списка параметров механической системы More...
 

Detailed Description

Абстрактный класс, определяющий вид механической системы

Author
Марчевский Илья Константинович
Сокол Ксения Сергеевна
Рятина Евгения Павловна
Колганова Александра Олеговна
\Version 1.12
\date 14 января 2024 г.

Definition at line 71 of file Mechanics2D.h.

Constructor & Destructor Documentation

Mechanics::Mechanics ( const World2D W_,
size_t  numberInPassport_,
int  degOfFreedom_,
bool  isMoves_,
bool  isDeform_,
bool  isRotate_ 
)

Конструктор

Parameters
[in]W_константная ссылка на решаемую задачу
[in]numberInPassport_номер профиля в паспорте задачи
[in]degOfFreedom_количество степеней свободы
[in]isMoves_является ли профиль подвижным (1 - является, 0 - не является)
[in]isDeform_является ли профиль деформируемым (1 - является, 0 - не является)
[in]isRotate_является ли профиль вращающимся (1 - является, 0 - не является)

Definition at line 56 of file Mechanics2D.cpp.

57  :
58  W(W_),
59  numberInPassport(numberInPassport_),
60  afl(W_.getNonConstAirfoil(numberInPassport_)),
61  boundary(W_.getBoundary(numberInPassport_)),
62  virtVortParams(W_.getVelocity().virtualVortexesParams[numberInPassport_]),
63 
64  Vcm0({ 0.0, 0.0 }),
65  Wcm0(0.0),
66  Rcm0({ 0.0, 0.0 }),
67  Phi0(0.0),
68 
69  /*Vcm0(Vcm0_),
70  Wcm0(Wcm0_),
71  Rcm0(Rcm0_),
72  Phi0(Phi0_),*/
73 
74  isMoves(isMoves_),
75  isDeform(isDeform_),
76  isRotate(isRotate_),
77  degOfFreedom(degOfFreedom_),
78 
79  hydroDynamForce({0.0, 0.0}),
80  hydroDynamMoment(0.0),
81  viscousForce({ 0.0, 0.0 }),
82  viscousMoment(0.0)
83 
84 {
86 };
Point2D viscousForce
Вектор силы и момент вязкого трения, действующие на профиль
Definition: Mechanics2D.h:146
const Boundary & boundary
Definition: Mechanics2D.h:91
double hydroDynamMoment
Definition: Mechanics2D.h:143
const Velocity & getVelocity() const
Возврат константной ссылки на объект для вычисления скоростей
Definition: World2D.h:212
const size_t degOfFreedom
Количество степеней свободы
Definition: Mechanics2D.h:139
const bool isMoves
Переменная, отвечающая за то, двигается профиль или нет
Definition: Mechanics2D.h:130
Point2D Rcm0
Начальное положение профиля
Definition: Mechanics2D.h:104
std::vector< VortexesParams > virtualVortexesParams
Вектор струтур, определяющий параметры виртуальных вихрей для профилей
Definition: Velocity2D.h:108
const size_t numberInPassport
Номер профиля в паспорте
Definition: Mechanics2D.h:82
const Boundary & getBoundary(size_t i) const
Возврат константной ссылки на объект граничного условия
Definition: World2D.h:153
void ReadParametersFromDictionary()
Парсинг списка параметров механической системы
Airfoil & afl
Definition: Mechanics2D.h:87
const bool isRotate
Переменная, отвечающая за то, может профиль вращаться или нет
Definition: Mechanics2D.h:136
const World2D & W
Константная ссылка на решаемую задачу
Definition: Mechanics2D.h:79
const bool isDeform
Переменная, отвечающая за то, деформируется профиль или нет
Definition: Mechanics2D.h:133
double viscousMoment
Definition: Mechanics2D.h:147
const VortexesParams & virtVortParams
Definition: Mechanics2D.h:95
Point2D Vcm0
Начальная скорость центра и угловая скорость
Definition: Mechanics2D.h:101
Airfoil & getNonConstAirfoil(size_t i) const
Возврат неконстантной ссылки на объект профиля
Definition: World2D.h:142
Point2D hydroDynamForce
Вектор гидродинамической силы и момент, действующие на профиль
Definition: Mechanics2D.h:142

Here is the call graph for this function:

virtual VM2D::Mechanics::~Mechanics ( )
inlinevirtual

Деструктор

Definition at line 166 of file Mechanics2D.h.

166 { };

Member Function Documentation

virtual double VM2D::Mechanics::AngleOfAirfoil ( double  currTime)
pure virtual

Вычисление угла поворота профиля

Parameters
[in]currTimeтекущее время

Implemented in VM2D::MechanicsRigidOscillPart, VM2D::MechanicsRigidGivenLaw, VM2D::MechanicsRigidRotatePart, and VM2D::MechanicsRigidImmovable.

virtual double VM2D::Mechanics::AngularVelocityOfAirfoil ( double  currTime)
pure virtual

Вычисление угловой скорости профиля

Parameters
[in]currTimeтекущее время

Implemented in VM2D::MechanicsRigidOscillPart, VM2D::MechanicsRigidGivenLaw, VM2D::MechanicsRigidRotatePart, and VM2D::MechanicsRigidImmovable.

Here is the caller graph for this function:

void Mechanics::GenerateForcesHeader ( )

Генерация заголовка файла нагрузок

Definition at line 119 of file Mechanics2D.cpp.

120 {
121  std::stringstream forceFileName, forceFileNameCsv;
122  forceFileName << W.getPassport().dir << "forces-airfoil-" << numberInPassport;
123  forceFileNameCsv << W.getPassport().dir << "forces-airfoil-" << numberInPassport << ".csv";
124 
125  std::ofstream newForcesFile(forceFileName.str());
126  std::ofstream newForcesFileCsv(forceFileNameCsv.str());
127 
128  VMlib::PrintLogoToTextFile(newForcesFile, forceFileName.str(), "Hydrodynamic loads for the airfoil " + W.getPassport().airfoilParams[numberInPassport].fileAirfoil);
129 
131  VMlib::PrintHeaderToTextFile(newForcesFile, "currentStep currentTime Fx Fy Mz Ftaux Ftauy Mtau");
132  else
133  VMlib::PrintHeaderToTextFile(newForcesFile, "currentStep currentTime CFx CFy CMz CFtaux CFtauy CMtau");
134 
136  newForcesFileCsv << "step,t,Fx,Fy,Mz,Ftaux,Ftauy,Mtau";
137  else
138  newForcesFileCsv << "step,t,CFx,CFy,CMz,CFtaux,CFtauy,CMtau";
139 
140  newForcesFile.close();
141  newForcesFile.clear();
142 
143  newForcesFileCsv.close();
144  newForcesFileCsv.clear();
145 
146 }//GenerateForcesHeader()
std::string dir
Рабочий каталог задачи
Definition: PassportGen.h:118
bool calcCoefficients
Признак вычисления коэффициентов вместо сил
Definition: Passport2D.h:289
void PrintHeaderToTextFile(std::ofstream &str, const std::string &header)
Формирование подзаголовка в текстовом файле вывода программы VM2D/VM3D.
Definition: defs.cpp:172
const size_t numberInPassport
Номер профиля в паспорте
Definition: Mechanics2D.h:82
void PrintLogoToTextFile(std::ofstream &str, const std::string &fileName, const std::string &descr)
Формирование заголовка файла программы VM2D/VM3D.
Definition: defs.cpp:136
const World2D & W
Константная ссылка на решаемую задачу
Definition: Mechanics2D.h:79
const Passport & getPassport() const
Возврат константной ссылки на паспорт
Definition: World2D.h:222
std::vector< AirfoilParams > airfoilParams
Список структур с параметрами профилей
Definition: Passport2D.h:280

Here is the call graph for this function:

void Mechanics::GenerateForcesString ( )

Сохранение строки со статистикой в файл нагрузок

Definition at line 177 of file Mechanics2D.cpp.

178 {
179  W.getTimestat().timeOther.first += omp_get_wtime();
180 
181  std::stringstream forceFileName, forceFileNameCsv;
182  forceFileName << W.getPassport().dir << "forces-airfoil-" << numberInPassport;
183  forceFileNameCsv << W.getPassport().dir << "forces-airfoil-" << numberInPassport << ".csv";
184 
185  //double cShock = (W.getPassport().physicalProperties.getCurrTime() > W.getPassport().physicalProperties.timeAccel + 2.0 * W.getPassport().timeDiscretizationProperties.dt) ? 1.0 : 0.0;
186  double cShock = 1.0;
187 
188  Point2D cartesianHydroForce = cShock * hydroDynamForce;
189  Point2D cartesianViscoForce = cShock * viscousForce;
190 
191  double cartesianHydroMoment = cShock * hydroDynamMoment;
192  double cartesianViscoMoment = cShock * viscousMoment;
193 
194  double rotationAngle = W.getPassport().airfoilParams[numberInPassport].angle;
196  {
197  cartesianHydroForce = cartesianHydroForce.rotated(-0.5 * PI - W.getPassport().airfoilParams[numberInPassport].angle);
198  cartesianViscoForce = cartesianViscoForce.rotated(-0.5 * PI - W.getPassport().airfoilParams[numberInPassport].angle);
199  //rotationAngle += 0.5 * PI;
200  }
201 
202  //if (W.getPassport().rotateForces)
203  //{
204  // cartesianHydroForce = cartesianHydroForce.rotated(rotationAngle);
205  // cartesianViscoForce = cartesianViscoForce.rotated(rotationAngle);
206  //}
207 
208  double flowPress = 0.5 * W.getPassport().physicalProperties.rho * sqr(W.getPassport().physicalProperties.vRef);
210  {
211  const double& chord = W.getPassport().airfoilParams[numberInPassport].chord;
212  cartesianHydroForce /= (flowPress * chord);
213  cartesianViscoForce /= (flowPress * chord);
214 
215  cartesianHydroMoment /= (flowPress * sqr(chord));
216  cartesianViscoMoment /= (flowPress * sqr(chord));
217  }
218 
219 
220  std::ofstream forcesFile(forceFileName.str(), std::ios::app);
221  forcesFile << std::endl << W.getCurrentStep() << " " << W.getPassport().physicalProperties.getCurrTime() << " " << cartesianHydroForce[0] << " " << cartesianHydroForce[1] << " " << cartesianHydroMoment << " " << cartesianViscoForce[0] << " " << cartesianViscoForce[1] << " " << cartesianViscoMoment;
222  forcesFile.close();
223 
224  std::ofstream forcesFileCsv(forceFileNameCsv.str(), std::ios::app);
225  forcesFileCsv << std::endl << W.getCurrentStep() << "," << W.getPassport().physicalProperties.getCurrTime() << "," << cartesianHydroForce[0] << "," << cartesianHydroForce[1] << "," << cartesianHydroMoment << "," << cartesianViscoForce[0] << "," << cartesianViscoForce[1] << "," << cartesianViscoMoment;
226  forcesFileCsv.close();
227 
228  W.getTimestat().timeOther.second += omp_get_wtime();
229 }//GenerateForcesString()
Point2D viscousForce
Вектор силы и момент вязкого трения, действующие на профиль
Definition: Mechanics2D.h:146
Times & getTimestat() const
Возврат ссылки на временную статистику выполнения шага расчета по времени
Definition: World2D.h:242
bool geographicalAngles
Признак работы в "географической" системе координат
Definition: Passport2D.h:283
const double PI
Число .
Definition: defs.h:73
double vRef
Референсная скорость
Definition: Passport2D.h:81
double hydroDynamMoment
Definition: Mechanics2D.h:143
double getCurrTime() const
Возвращает текуще время
Definition: Passport2D.h:102
std::string dir
Рабочий каталог задачи
Definition: PassportGen.h:118
PhysicalProperties physicalProperties
Структура с физическими свойствами задачи
Definition: Passport2D.h:296
bool calcCoefficients
Признак вычисления коэффициентов вместо сил
Definition: Passport2D.h:289
const size_t numberInPassport
Номер профиля в паспорте
Definition: Mechanics2D.h:82
T sqr(T x)
Возведение числа в квадрат
Definition: defs.h:430
double rho
Плотность потока
Definition: Passport2D.h:75
Класс, опеделяющий двумерный вектор
Definition: Point2D.h:75
const World2D & W
Константная ссылка на решаемую задачу
Definition: Mechanics2D.h:79
const Passport & getPassport() const
Возврат константной ссылки на паспорт
Definition: World2D.h:222
double viscousMoment
Definition: Mechanics2D.h:147
size_t getCurrentStep() const
Возврат константной ссылки на параметры распараллеливания по MPI.
Definition: WorldGen.h:91
std::vector< AirfoilParams > airfoilParams
Список структур с параметрами профилей
Definition: Passport2D.h:280
Point2D hydroDynamForce
Вектор гидродинамической силы и момент, действующие на профиль
Definition: Mechanics2D.h:142
timePeriod timeOther
Все прочее
Definition: Times2D.h:113
Point2D rotated(const double angle=1.5707963267948966192313216916398) const
Поворот вектора на произвольный угол против часовой стрелки (по умолчанию 90 градусов) ...
Definition: Point2D.h:118

Here is the call graph for this function:

void Mechanics::GeneratePositionHeader ( )

Генерация заголовка файла положения профиля

Definition at line 150 of file Mechanics2D.cpp.

151 {
152  if (isMoves)
153  {
154  std::stringstream positionFileName, positionFileNameCsv;
155  positionFileName << W.getPassport().dir << "position-airfoil-" << numberInPassport;
156  positionFileNameCsv << W.getPassport().dir << "position-airfoil-" << numberInPassport << ".csv";
157 
158  std::ofstream newPositionFile(positionFileName.str());
159  std::ofstream newPositionFileCsv(positionFileNameCsv.str());
160 
161  VMlib::PrintLogoToTextFile(newPositionFile, positionFileName.str(), "Position of the airfoil " + W.getPassport().airfoilParams[numberInPassport].fileAirfoil);
162 
163  VMlib::PrintHeaderToTextFile(newPositionFile, "currentStep currentTime x y phi Vx Vy w");
164 
165  newPositionFileCsv << "step,t,x,y,phi,Vx,Vy,w";
166 
167  newPositionFile.close();
168  newPositionFile.clear();
169 
170  newPositionFileCsv.close();
171  newPositionFileCsv.clear();
172  }
173 }//GeneratePositionHeader()
std::string dir
Рабочий каталог задачи
Definition: PassportGen.h:118
const bool isMoves
Переменная, отвечающая за то, двигается профиль или нет
Definition: Mechanics2D.h:130
void PrintHeaderToTextFile(std::ofstream &str, const std::string &header)
Формирование подзаголовка в текстовом файле вывода программы VM2D/VM3D.
Definition: defs.cpp:172
const size_t numberInPassport
Номер профиля в паспорте
Definition: Mechanics2D.h:82
void PrintLogoToTextFile(std::ofstream &str, const std::string &fileName, const std::string &descr)
Формирование заголовка файла программы VM2D/VM3D.
Definition: defs.cpp:136
const World2D & W
Константная ссылка на решаемую задачу
Definition: Mechanics2D.h:79
const Passport & getPassport() const
Возврат константной ссылки на паспорт
Definition: World2D.h:222
std::vector< AirfoilParams > airfoilParams
Список структур с параметрами профилей
Definition: Passport2D.h:280

Here is the call graph for this function:

void Mechanics::GeneratePositionString ( )

Сохранение строки со статистикой в файл нагрузок

Definition at line 233 of file Mechanics2D.cpp.

234 {
235  W.getTimestat().timeOther.first += omp_get_wtime();
236 
237  if (isMoves)
238  {
239  std::stringstream positionFileName, positionFileNameCsv;
240  positionFileName << W.getPassport().dir << "position-airfoil-" << numberInPassport;
241  positionFileNameCsv << W.getPassport().dir << "position-airfoil-" << numberInPassport << ".csv";
242 
243  std::ofstream positionFile(positionFileName.str(), std::ios::app);
244  positionFile << std::endl << W.getCurrentStep() << " " << W.getPassport().physicalProperties.getCurrTime() << " " << afl.rcm[0] << " " << afl.rcm[1] << " " << Phi << " " << Vcm[0] << " " << Vcm[1] << " " << Wcm;
245  positionFile.close();
246 
247  std::ofstream positionFileCsv(positionFileNameCsv.str(), std::ios::app);
248  positionFileCsv << std::endl << W.getCurrentStep() << "," << W.getPassport().physicalProperties.getCurrTime() << "," << afl.rcm[0] << "," << afl.rcm[1] << "," << Phi << "," << Vcm[0] << "," << Vcm[1] << "," << Wcm;
249  positionFileCsv.close();
250  }
251 
252  W.getTimestat().timeOther.second += omp_get_wtime();
253 }
Times & getTimestat() const
Возврат ссылки на временную статистику выполнения шага расчета по времени
Definition: World2D.h:242
double getCurrTime() const
Возвращает текуще время
Definition: Passport2D.h:102
std::string dir
Рабочий каталог задачи
Definition: PassportGen.h:118
PhysicalProperties physicalProperties
Структура с физическими свойствами задачи
Definition: Passport2D.h:296
const bool isMoves
Переменная, отвечающая за то, двигается профиль или нет
Definition: Mechanics2D.h:130
const size_t numberInPassport
Номер профиля в паспорте
Definition: Mechanics2D.h:82
Airfoil & afl
Definition: Mechanics2D.h:87
const World2D & W
Константная ссылка на решаемую задачу
Definition: Mechanics2D.h:79
const Passport & getPassport() const
Возврат константной ссылки на паспорт
Definition: World2D.h:222
Point2D rcm
Положение центра масс профиля
Definition: Airfoil2D.h:77
size_t getCurrentStep() const
Возврат константной ссылки на параметры распараллеливания по MPI.
Definition: WorldGen.h:91
timePeriod timeOther
Все прочее
Definition: Times2D.h:113

Here is the call graph for this function:

virtual void VM2D::Mechanics::GetHydroDynamForce ( )
pure virtual

Вычисление гидродинамической силы, действующей на профиль

Implemented in VM2D::MechanicsRigidOscillPart, VM2D::MechanicsRigidGivenLaw, VM2D::MechanicsRigidRotatePart, and VM2D::MechanicsRigidImmovable.

void Mechanics::Initialize ( Point2D  Vcm0_,
Point2D  Rcm0_,
double  Wcm0_,
double  Phi0_ 
)

Задание начального положения и начальной скорости

Parameters
[in]Vcm0_- скорость центра масс
[in]Rcm0_- положение центра масс
[in]Wcm0_- угловая скорость центра масс
[in]Phi0_- угол поворота центра масс

Definition at line 89 of file Mechanics2D.cpp.

90 {
91  Vcm0 = Vcm0_;
92  Wcm0 = Wcm0_;
93  Rcm0 = Rcm0_;
94  Phi0 = Phi0_;
95 
96  Vcm = Vcm0;
97  Wcm = Wcm0;
98  Rcm = Rcm0;
99  Phi = Phi0;
100  VcmOld = Vcm0;
101  WcmOld = Wcm0;
102  RcmOld = Rcm0;
103  PhiOld = Phi0;
104 
107 }//Initialize(...)
Point2D Rcm
Текущие положение профиля
Definition: Mechanics2D.h:120
Point2D VcmOld
Скорость и отклонение с предыдущего шага
Definition: Mechanics2D.h:123
Point2D Rcm0
Начальное положение профиля
Definition: Mechanics2D.h:104
const size_t numberInPassport
Номер профиля в паспорте
Definition: Mechanics2D.h:82
Point2D RcmOld
Текущие положение профиля
Definition: Mechanics2D.h:126
Airfoil & afl
Definition: Mechanics2D.h:87
double phiAfl
Поворот профиля
Definition: Airfoil2D.h:80
const World2D & W
Константная ссылка на решаемую задачу
Definition: Mechanics2D.h:79
virtual void Rotate(double alpha)=0
Поворот профиля
Point2D rcm
Положение центра масс профиля
Definition: Airfoil2D.h:77
const Airfoil & getAirfoil(size_t i) const
Возврат константной ссылки на объект профиля
Definition: World2D.h:130
Point2D Vcm0
Начальная скорость центра и угловая скорость
Definition: Mechanics2D.h:101
virtual void Move(const Point2D &dr)=0
Перемещение профиля

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void VM2D::Mechanics::Move ( )
pure virtual

Перемещение профиля в соответствии с законом

Implemented in VM2D::MechanicsRigidGivenLaw, VM2D::MechanicsRigidOscillPart, VM2D::MechanicsRigidRotatePart, and VM2D::MechanicsRigidImmovable.

virtual Point2D VM2D::Mechanics::PositionOfAirfoilRcm ( double  currTime)
pure virtual

Вычисление положения центра масс профиля

Parameters
[in]currTimeтекущее время

Implemented in VM2D::MechanicsRigidOscillPart, VM2D::MechanicsRigidGivenLaw, VM2D::MechanicsRigidRotatePart, and VM2D::MechanicsRigidImmovable.

void Mechanics::ReadParametersFromDictionary ( )
private

Парсинг списка параметров механической системы

Definition at line 110 of file Mechanics2D.cpp.

111 {
112  std::stringstream ss(W.getPassport().airfoilParams[afl.numberInPassport].mechanicalSystemParameters);
113 
114  mechParamsParser.reset(new VMlib::StreamParser(W.getInfo(), "mechanical parser", ss));
115 }//ReadParametersFromDictionary()
const size_t numberInPassport
Номер профиля в паспорте
Definition: Airfoil2D.h:74
Airfoil & afl
Definition: Mechanics2D.h:87
std::unique_ptr< VMlib::StreamParser > mechParamsParser
Умный указатель на парсер параметров механической системы
Definition: Mechanics2D.h:98
VMlib::LogStream & getInfo() const
Возврат ссылки на объект LogStream Используется в техничеcких целях для организации вывода ...
Definition: WorldGen.h:74
const World2D & W
Константная ссылка на решаемую задачу
Definition: Mechanics2D.h:79
const Passport & getPassport() const
Возврат константной ссылки на паспорт
Definition: World2D.h:222
std::vector< AirfoilParams > airfoilParams
Список структур с параметрами профилей
Definition: Passport2D.h:280
Класс, позволяющий выполнять разбор файлов и строк с настройками и параметрами
Definition: StreamParser.h:151

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void VM2D::Mechanics::ReadSpecificParametersFromDictionary ( )
pure virtual

Чтение параметров конкретной механической системы

Implemented in VM2D::MechanicsRigidOscillPart, VM2D::MechanicsRigidGivenLaw, VM2D::MechanicsRigidRotatePart, and VM2D::MechanicsRigidImmovable.

virtual void VM2D::Mechanics::VeloOfAirfoilPanels ( double  currTime)
pure virtual

Вычисление скоростей начал панелей

Parameters
[in]currTimeтекущее время

Implemented in VM2D::MechanicsRigidOscillPart, VM2D::MechanicsRigidGivenLaw, VM2D::MechanicsRigidRotatePart, and VM2D::MechanicsRigidImmovable.

virtual Point2D VM2D::Mechanics::VeloOfAirfoilRcm ( double  currTime)
pure virtual

Вычисление скорости центра масс профиля

Parameters
[in]currTimeтекущее время

Implemented in VM2D::MechanicsRigidOscillPart, VM2D::MechanicsRigidGivenLaw, VM2D::MechanicsRigidRotatePart, and VM2D::MechanicsRigidImmovable.

Member Data Documentation

Airfoil& VM2D::Mechanics::afl
protected

Константная ссылка на профиль
инициализируется автоматом в конструкторе, при помощи const_cast

Warning
использует const_cast для получения неконстантной ссылки

Definition at line 87 of file Mechanics2D.h.

const Boundary& VM2D::Mechanics::boundary
protected

Константная ссылка на граничное условие
инициализируется автоматом в конструкторе

Definition at line 91 of file Mechanics2D.h.

const size_t VM2D::Mechanics::degOfFreedom

Количество степеней свободы

Definition at line 139 of file Mechanics2D.h.

Point2D VM2D::Mechanics::hydroDynamForce

Вектор гидродинамической силы и момент, действующие на профиль

Definition at line 142 of file Mechanics2D.h.

double VM2D::Mechanics::hydroDynamMoment

Definition at line 143 of file Mechanics2D.h.

const bool VM2D::Mechanics::isDeform

Переменная, отвечающая за то, деформируется профиль или нет

Definition at line 133 of file Mechanics2D.h.

const bool VM2D::Mechanics::isMoves

Переменная, отвечающая за то, двигается профиль или нет

Definition at line 130 of file Mechanics2D.h.

const bool VM2D::Mechanics::isRotate

Переменная, отвечающая за то, может профиль вращаться или нет

Definition at line 136 of file Mechanics2D.h.

std::unique_ptr<VMlib::StreamParser> VM2D::Mechanics::mechParamsParser
protected

Умный указатель на парсер параметров механической системы

Definition at line 98 of file Mechanics2D.h.

const size_t VM2D::Mechanics::numberInPassport
protected

Номер профиля в паспорте

Definition at line 82 of file Mechanics2D.h.

double VM2D::Mechanics::Phi
protected

Definition at line 120 of file Mechanics2D.h.

double VM2D::Mechanics::Phi0
protected

Definition at line 104 of file Mechanics2D.h.

double VM2D::Mechanics::PhiOld
protected

Definition at line 126 of file Mechanics2D.h.

Point2D VM2D::Mechanics::Rcm
protected

Текущие положение профиля

Definition at line 120 of file Mechanics2D.h.

Point2D VM2D::Mechanics::Rcm0
protected

Начальное положение профиля

Definition at line 104 of file Mechanics2D.h.

Point2D VM2D::Mechanics::RcmOld
protected

Текущие положение профиля

Definition at line 126 of file Mechanics2D.h.

Point2D VM2D::Mechanics::Vcm0
protected

Начальная скорость центра и угловая скорость

Definition at line 101 of file Mechanics2D.h.

Point2D VM2D::Mechanics::VcmOld
protected

Скорость и отклонение с предыдущего шага

Definition at line 123 of file Mechanics2D.h.

const VortexesParams& VM2D::Mechanics::virtVortParams
protected

Константная ссылка на структуру с параметрами виртуального вихревого слоя для профиля
инициализируется автоматом в конструкторе

Definition at line 95 of file Mechanics2D.h.

Point2D VM2D::Mechanics::viscousForce

Вектор силы и момент вязкого трения, действующие на профиль

Definition at line 146 of file Mechanics2D.h.

double VM2D::Mechanics::viscousMoment

Definition at line 147 of file Mechanics2D.h.

const World2D& VM2D::Mechanics::W
protected

Константная ссылка на решаемую задачу

Definition at line 79 of file Mechanics2D.h.

double VM2D::Mechanics::Wcm0
protected

Definition at line 101 of file Mechanics2D.h.

double VM2D::Mechanics::WcmOld
protected

Definition at line 123 of file Mechanics2D.h.


The documentation for this class was generated from the following files: