Симулятор коалесценции капель воды в нефти под действием электрического поля
Это высокопроизводительный симулятор для моделирования электрокоалесценции - процесса слияния капель воды в нефтяной эмульсии под действием электрического поля. Проект разработан для:
- 🔬 Исследования физики коалесценции
- 📊 Сбора статистики для оптимизации промышленных дегидраторов
- 🚀 Симуляции миллионов капель с использованием эффективных алгоритмов
- 📈 Анализа динамики процесса осаждения воды из нефти
- ✅ Физически корректная модель: Диполь-дипольные взаимодействия в электрическом поле
- ✅ Эффективный алгоритм: Barnes-Hut Octree O(N log N) вместо O(N²)
- ✅ Периодические граничные условия: Корректная обработка бесконечных систем
- ✅ Автоматическое тестирование: Unit и интеграционные тесты с CI/CD
⚠️ В разработке: Полнофункциональная система сбора статистики и визуализации
Проект находится в активной разработке!
- ✅ Ядро физического движка (расчет сил, обновление позиций)
- ✅ Octree для ускорения вычислений
- ✅ Периодические граничные условия (PBC)
- ✅ Система инициализации капель
- ✅ Модульные тесты
- 🚧 Главный исполняемый файл (
main.cpp) - 🚧 Система сбора статистики
- 🚧 Методы
step()иsimulate() - 🚧 Экспорт результатов (VTK, CSV, JSON)
- 🚧 Документация пользователя
- Компилятор: GCC 9+, Clang 10+, MSVC 2019+
- C++ стандарт: C++17
- Система сборки: Meson >= 0.55
- Тесты: Google Test (подтягивается автоматически)
# Установить зависимости
sudo apt update
sudo apt install build-essential meson ninja-build git
# Клонировать репозиторий
git clone https://github.com/YOUR_USERNAME/electrocoalescence-simulator.git
cd electrocoalescence-simulator
# Сборка
meson setup build
meson compile -C build
# Запуск тестов
meson test -C build --verbose# Установить зависимости через Homebrew
brew install meson ninja
# Клонировать и собрать
git clone https://github.com/YOUR_USERNAME/electrocoalescence-simulator.git
cd electrocoalescence-simulator
meson setup build
meson compile -C build
meson test -C build# Установить Visual Studio 2019+
# Установить Python и Meson
pip install meson ninja
# Клонировать и собрать
git clone https://github.com/YOUR_USERNAME/electrocoalescence-simulator.git
cd electrocoalescence-simulator
meson setup build
meson compile -C build
meson test -C buildelectrocoalescence-simulator/
├── include/ # Заголовочные файлы
│ ├── core/ # Ядро: Droplet, DropletSystem
│ ├── acceleration/# Octree для O(N log N)
│ ├── solvers/ # Расчет сил (Naive, Octree)
│ ├── initializers/# Инициализация систем
│ ├── experiments/ # Научные эксперименты
│ ├── utils/ # 🚧 Утилиты
│ └── collision/ # 🚧 Коллизии
│
├── src/ # Реализация
│ ├── main.cpp # 🚧 Main фунция
│ └── ... # Реализации модулей
│
├── tests/ # Тестирование
│ ├── unit/ # Unit-тесты
│ ├── integration/ # 🚧 Интеграционные тесты
│ └── benchmarks/ # 🚧 Бенчмарки
│
├── scripts/ # Python утилиты
│ └── *.py # Визуализация и анализ
│
└── docs/ # Документация
└── *.md # Техническая документация
Эволюция системы описывается системой дифференциальных уравнений:
Сила взаимодействия между двумя диполями: $F(x,y,z) = M*(R_i^3R_j^3)/r^4x(4z^2-x^2-y^2)/r^3$ где:
- M - константа дипольной силы
- R - радиусы капель
- r - расстояние между каплями
В вязкой среде инерция капель незначительна:
Детали: См. документацию в include/core/PhysicsConstants.h