Введение
Глава 1. Обзор работ, направленных на упрощение записи и облегчение переноса программ 12
1.1. Язык Норма 13
1.2. Система DVM 15
1.3. Язык Liszt 18
1.4. Библиотека Blitz++ 20
1.5. Библиотека PETSc 22
1.6. Пакет OpenFOAM 22
Глава 2. Общее описание подхода 24
2.1. Назначение сеточно-операторного подхода 24
2.2. Типы обрабатываемых данных 27
2.3. Поддержка автоматического дифференцирования 29
2.4. Сеточная функция 31
2.5. Вычисляемый объект 32
2.6. Сеточный оператор 32
2.7. Сеточный вычислитель 33
2.8. Исполнители 33
2.9. Индексаторы
2.10. Общий вид запуска вычислений 37
2.11. Примеры 39
Глава 3. Принципы реализации 40
3.1. Общая информация 40
3.2. Шаблонный полиморфизм 40
3.3. Метавычисления 42
3.4. Размерные величины 44
3.5. Объекты-заместители 47
3.6. Контекст исполнения 50
3.7. Исполнение на CUDA 52
3.8. Обмен данными между основным процессором и графическим ускорителем 54
3.9. Использование пула нитей. 55
Глава 4. Приложения и тесты, разработанные с использованием библиотеки gridmath
4.1. Многосеточный метод 57
4.2. Тест MG из набора тестов NAS Parallel Benchmarks 59
4.3. Система квазигазодинамических уравнений 60
4.4. Локально-адаптивная сетка 64
4.5. Задача теплопроводности 65
4.6. Разрывный метод Галёркина 70
4.7. Метод ENO 73
Заключение 73
Литература 74


