VM2D 1.14
Vortex methods for 2D flows simulation
Loading...
Searching...
No Matches
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

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

Macros

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

Typedefs

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

Enumerations

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

Functions

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

Variables

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

Detailed Description

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

Author
Марчевский Илья Константинович
Сокол Ксения Сергеевна
Рятина Евгения Павловна
Колганова Александра Олеговна \Version 1.14
Date
6 марта 2026 г.

Definition in file defs.h.

Macro Definition Documentation

◆ DYN_SCHEDULE

#define DYN_SCHEDULE   20

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

Definition at line 73 of file defs.h.

Typedef Documentation

◆ timePeriod

typedef std::pair<double, double> timePeriod

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

Definition at line 79 of file defs.h.

Enumeration Type Documentation

◆ PointType

enum class PointType
strong

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

Enumerator
wake 
wakeVP 
sheetGam 
sourceWake 
source 

Definition at line 76 of file defs.h.

Variable Documentation

◆ DPI

const double DPI = 6.2831853071795864769252867665590

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

Definition at line 88 of file defs.h.

◆ IDPI

const double IDPI = 0.1591549430918953357688837633725

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

Definition at line 85 of file defs.h.

◆ IQPI

const double IQPI = 0.07957747154594766788444188168626

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

Definition at line 91 of file defs.h.

◆ multipoleOrder

const int multipoleOrder = 12

Definition at line 65 of file defs.h.

◆ multipoleTheta

const double multipoleTheta = 1.2

Definition at line 68 of file defs.h.

◆ PI

const double PI = 3.1415926535897932384626433832795

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

Definition at line 82 of file defs.h.

◆ QPI

const double QPI = 12.566370614359172953850573533118

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

Definition at line 94 of file defs.h.