VM2D  1.12
Vortex methods for 2D flows simulation
defs.h File Reference

Описание базовых вспомогательных функций More...

#include <fstream>
#include <sys/stat.h>
#include <sys/types.h>
#include <ctime>
#include <iostream>
#include <list>
#include "Eigen/Dense"
#include "Gpudefs.h"
#include "LogStream.h"
#include "Vortex2D.h"
#include "v3D.h"
#include "PairInt.h"
Include dependency graph for defs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 defaults
 Глобальные параметры по умолчанию
 
 VMlib
 

Macros

#define DYN_SCHEDULE   20
 параметр расписания для распараллеливания циклов по OpenMP. More...
 

Typedefs

typedef std::pair< double, double > timePeriod
 Тип для хранения начала и конца промежутка времени More...
 

Enumerations

enum  PointType {
  PointType::wake, PointType::wakeVP, PointType::sheetGam, PointType::sourceWake,
  PointType::source
}
 Класс перечисления для определения типа набора точек (пелена/виртуальные вихри/точки для вычисления скорости и давления) More...
 

Functions

const std::vector< std::string > defaults::defaultFileAirfoil ({})
 Список профилей More...
 
const std::vector< std::string > defaults::defaultFileBody ({})
 
const std::string defaults::defaultFileWake ("")
 Файл со следом More...
 
const std::string defaults::defaultFileSource ("")
 Файл с источниками More...
 
const std::vector< std::string > defaults::defaultAirfoil ({})
 Список профилей More...
 
const std::vector< std::string > defaults::defaultBody ({})
 
std::string VMlib::CurrentDataTime ()
 Формирование строки с текущем временем и датой More...
 
void VMlib::PrintLogoToStream (std::ostream &str)
 Передача в поток вывода шапки программы VM2D/VM3D. More...
 
void VMlib::PrintUniversalLogoToStream (std::ostream &str)
 Передача в поток вывода универсальной шапки программы VM2D/VM3D. More...
 
void VMlib::PrintLogoToTextFile (std::ofstream &str, const std::string &fileName, const std::string &descr)
 Формирование заголовка файла программы VM2D/VM3D. More...
 
void VMlib::PrintHeaderToTextFile (std::ofstream &str, const std::string &header)
 Формирование подзаголовка в текстовом файле вывода программы VM2D/VM3D. More...
 
template<typename T >
std::ostream & VMlib::operator<< (std::ostream &_stream, const std::vector< T > &_vec)
 Переопределение оператора "<<" для вывода в поток вектора std::vector. More...
 
std::ostream & VMlib::operator<< (std::ostream &_stream, const std::pair< std::pair< std::string, int >, std::string > &_pair)
 Переопределение оператора "<<" для вывода в поток пары ((строка, целое число), строка) More...
 
std::ostream & VMlib::operator<< (std::ostream &_stream, const std::pair< std::string, int > &_pair)
 Переопределение оператора "<<" для вывода в поток пары (строка, целое число) More...
 
bool VMlib::fileExistTest (std::string &fileName, LogStream &info, const std::list< std::string > &extList={})
 Проверка существования файла More...
 
std::string VMlib::fileNameStep (const std::string &name, int length, size_t number, const std::string &ext)
 Формирование имени файла More...
 
void VMlib::copyFile (const std::string &fileNameFrom, const std::string &fileNameTo)
 Копирование файла More...
 
void VMlib::CreateDirectory (const std::string &dir, const std::string &name)
 Создание каталога More...
 
template<typename T >
VMlib::sqr (T x)
 Возведение числа в квадрат More...
 
template<typename T >
double VMlib::macos (const T x)
 Усовершенствованный аркосинус More...
 
template<typename T >
int VMlib::sign (T x)
 Усовершенствованный сигнум More...
 
void VMlib::SaveToStream (const Eigen::MatrixXd &matr, std::ostream &str)
 Сохранение матрицы в поток More...
 
void VMlib::SaveToStream (const Eigen::MatrixXcd &matr, std::ostream &str)
 Сохранение комплекснозначной матрицы в поток More...
 
void VMlib::SaveToStream (const Eigen::VectorXd &vec, std::ostream &str)
 Сохранение вектора в поток More...
 
void VMlib::SaveToStream (const std::vector< Point2D > &vec, std::ostream &str)
 Сохранение списка из двумерных векторов (точек) в поток More...
 
double VMlib::M4 (double t)
 Ядро сглаживания (Монагана) More...
 
void VMlib::ModifyE2 (double *ee2, double dst2)
 Модифицирует массив квадратов расстояний до ближайших вихрей из wake. More...
 
double VMlib::Alpha (const Point2D &p, const Point2D &s)
 Вспомогательная функция вычисления угла между векторами More...
 
double VMlib::Lambda (const Point2D &p, const Point2D &s)
 Вспомогательная функция вычисления логарифма отношения норм векторов More...
 
Point2D VMlib::Omega (const Point2D &a, const Point2D &b, const Point2D &c)
 Вспомогательная функция вычисления величины \( (\vec a \cdot \vec b) \cdot \vec c + (\vec a \times \vec b) \times \vec c \). More...
 
template<typename T >
void VMlib::SwapEnd (T &var)
 Вспомогательная функция перестановки байт местами (нужно для сохранения бинарных VTK) More...
 
double VMlib::boundDenom (double r2, double eps2)
 Способ сглаживания скорости вихря (вихрь Рэнкина или вихрь Ламба) More...
 

Variables

const double PI = 3.1415926535897932384626433832795
 Число \( \pi \). More...
 
const double IDPI = 0.1591549430918953357688837633725
 Число \( \frac{1}{2\pi} \). More...
 
const double DPI = 6.2831853071795864769252867665590
 Число \( 2\pi \). More...
 
const double IQPI = 0.07957747154594766788444188168626
 Число \( \frac{1}{4\pi} \). More...
 
const double QPI = 12.566370614359172953850573533118
 Число \( 4\pi \). More...
 
const double defaults::defaultTimeStart = 0.0
 Начало расчета More...
 
const std::pair< std::pair< std::string, int >, std::string > defaults::defaultVelAccel = { {"RampLin", 1}, "" }
 Время разгона More...
 
const double defaults::defaultTimeAccel = 0.0
 
const std::pair< std::pair< std::string, int >, std::string > defaults::defaultSaveVP = { {"text", 0}, "" }
 Шаг подсчета поля скорости и давления More...
 
const int defaults::defaultSaveVPstep = 0
 
const std::pair< std::pair< std::string, int >, std::string > defaults::defaultSaveVtx = { {"text", 0}, "" }
 Шаг подсчета поля скорости и давления More...
 
const int defaults::defaultSaveVtxStep = 100
 
const int defaults::defaultSaveVisStress = 0
 Шаг подсчета поля скорости и давления More...
 
const int defaults::defaultNameLength = 5
 Число разрядов в имени файла More...
 
const double defaults::defaultDistFar = 10.0
 Радиус убивания дальнего следа More...
 
const double defaults::defaultDelta = 1.e-5
 Расстояние, на которое рождаемый вихрь отодвигается от профиля More...
 
const int defaults::defaultVortexPerPanel = 1
 Число вихрей, рождаемых на одной панели More...
 
const double defaults::defaultMaxGamma = 0.0
 Число вихрей, рождаемых на одной панели More...
 
const double defaults::defaultVRef = 0.0
 Референсная скорость, равная нулю, что означает ее равенство скорости набегающего потока More...
 
const size_t defaults::defaultRequiredNPanels = 0
 Желаемое число панелей для разбиения геометрии More...
 
const std::pair< std::string, int > defaults::defaultPanelsType = { "panelsRectilinear", 0 }
 Тип панелей More...
 
const std::pair< std::string, int > defaults::defaultBoundaryCondition = { "boundaryConstLayerAver", 0 }
 Способ удовлетворения граничного условия More...
 
const std::pair< std::string, int > defaults::defaultLinearSystemSolver = { "linearSystemGauss", 0 }
 Способ решения линейной системы More...
 
const std::pair< std::string, int > defaults::defaultVelocityComputation { "velocityBiotSavart", 0 }
 Способ вычисления скоростей вихрей More...
 
const bool defaults::defaultGeographicalAngles = false
 Признак работы в "географической" системе координат More...
 
const bool defaults::defaultRotateForces = false
 Признак поворота сил в профильную систему координат More...
 
const bool defaults::defaultCalcCoefficients = false
 Признак расчета безразмерных коэффициентов вместо сил More...
 
const double defaults::rotateAngleVpPoints = 0
 Угол поворота точек VP. More...
 
const std::string defaults::defaultAirfoilsDir = "../settings/airfoils/"
 Каталог с файлами профилей More...
 
const std::string defaults::defaultBodiesDir = "../settings/bodies/"
 
const std::string defaults::defaultWakesDir = "../settings/wakes/"
 Каталог с файлами вихревых следов More...
 
const VMlib::Point2D defaults::defaultBasePoint = { 0.0, 0.0 }
 Базовое смещение профиля More...
 
const VMlib::v3D defaults::defaultBasePoint3D = { 0.0, 0.0, 0.0 }
 
const Point2D defaults::defaultScale = { 1.0, 1.0 }
 Коэффициент масштабирования профиля More...
 
const double defaults::defaultAngle = 0.0
 Угол атаки More...
 
const double defaults::defaultChord = 1.0
 Хорда More...
 
const Point2D defaults::defaultAddedMass = { 0.0, 0.0 }
 Присоединенная масса More...
 
const bool defaults::defaultInverse = false
 Признак разворота нормалей (для расчета внутреннего течения) More...
 
const int defaults::defaultMechanicalSystemType = 0
 Тип механической системы More...
 
const std::string defaults::defaultMechanicalSystem = ""
 
const std::string defaults::defaultPspFile = "passport"
 Имя файла с паспортом задачи More...
 
const int defaults::defaultNp = 1
 Необходимое число процессоров для решения задачи More...
 
const std::string defaults::defaultCopyPath = ""
 Путь к каталогу с задачей для копирования в новые каталоги More...
 
static std::ostream * defaults::defaultQueueLogStream = &std::cout
 Поток вывода логов и ошибок очереди More...
 
static std::ostream * defaults::defaultWorld2DLogStream = &std::cout
 Поток вывода логов и ошибок задачи More...
 
static bool defaults::defaultAddMass = false
 Расчет присоединенной массы More...
 
static v3D defaults::defaultAddMassVcm = { 0.0, 0.0, 0.0 }
 
static v3D defaults::defaultAddMassWcm = { 0.0, 0.0, 0.0 }
 

Detailed Description

Описание базовых вспомогательных функций

Author
Марчевский Илья Константинович 1.12
Date
14 января 2024 г.

Definition in file defs.h.

Macro Definition Documentation

#define DYN_SCHEDULE   20

параметр расписания для распараллеливания циклов по OpenMP.

Definition at line 64 of file defs.h.

Typedef Documentation

typedef std::pair<double, double> timePeriod

Тип для хранения начала и конца промежутка времени

Definition at line 70 of file defs.h.

Enumeration Type Documentation

enum PointType
strong

Класс перечисления для определения типа набора точек (пелена/виртуальные вихри/точки для вычисления скорости и давления)

Enumerator
wake 
wakeVP 
sheetGam 
sourceWake 
source 

Definition at line 67 of file defs.h.

Variable Documentation

const double DPI = 6.2831853071795864769252867665590

Число \( 2\pi \).

Definition at line 79 of file defs.h.

const double IDPI = 0.1591549430918953357688837633725

Число \( \frac{1}{2\pi} \).

Definition at line 76 of file defs.h.

const double IQPI = 0.07957747154594766788444188168626

Число \( \frac{1}{4\pi} \).

Definition at line 82 of file defs.h.

const double PI = 3.1415926535897932384626433832795

Число \( \pi \).

Definition at line 73 of file defs.h.

const double QPI = 12.566370614359172953850573533118

Число \( 4\pi \).

Definition at line 85 of file defs.h.