5.1 Общее описание

Trilinos – это набор свободно распространяемых библиотек, называемых пакетами (packages), предназначенных для использования в качестве строительных блоков при разработке приложений.

Библиотека Trilinos была разработана в Sandia National Laboratories на основной группе существующих алгоритмов и использует функциональность известных пакетов, таких как BLAS и LAPACK. А также предоставляет интерфейсы для Aztec, SuperLU, Mumps, Umfpack и т.д., и вскоре PETSc.

Каждый пакет Trilinos является самостоятельной, независимой частью программного обеспечения с собственным набором требований, и своей командой разработчиков и группой пользователей. Trilinos предлагает целый ряд способов для отдельного пакета и для взаимодействия с другими пакетами Trilinos. Он также предлагает набор инструментов, которые могут помочь разработчикам пакета строить на нескольких платформах.

На данный момент существуюцие пакеты позволяют решать следущие задачи:

Начиная с самого низкого программного уровня, Trilinos был разработан с учетом поддержки распределенной памяти и параллельных архитектур. Многие пакеты содержат как последовательные, так и параллельные интерфейсы с полностью совпадающей семантикой.

Библиотека предназначена для использования в проектах на C/C++ и Fortran, эти же языки применялись для ее разработки.

Trilinos является крупным проектом и в настоящее время в библиотеку включено около пятидесяти пакетов. Они охватывают широкий спектр алгоритмов и высокоэффективные технологии для решения крупномасштабных, сложных инженерных и научных задач, а также содержит большой набор утилит для облегчения разработки программного обеспечения для научных вычислений. Каждый пакет из библиотеки Trilinos разработан для решения конкретной задачи небольшой группой экспертов-разработчиков. Каждый пакет имеет свою собственную структуру, документацию, примеры и может быть доступен независимо от других пакетов библиотеки.





Задача Пакеты



Дискретизация
Разбиение и пространственная PhdMesh, Interpid,
дискретизация Phalanx, Shards,
Pamgen, Sundance


Интеграция времени Rhytmos



Оптимизация Оптимизация (SAND) MOOCHO, Aristos



Методы
Автоматическое Sacado
дифференцирование


Мортарные методы Moertel



Объекты линейной алгебры Epetra, Tpetra,
Jpetra


Абстрактные интерфейсы Thyra, Stratimicos,
RTOp


Основные Распределение нагрузки Zoltal, Isorropia


пакеты Оболочки PyTrilinos,
WebTrilinos,
Star-P, ForTrilinos,
C Trilinos


Утилиты С++, I/O Teuchos, EpetraExt,
Kokkos, Triutils



Многосеточные методы ML


Предобуслав- Методы разбиения области CLAPS, IFPACK


ливатели Методы типа ILU AztecOO, IFPACK


Пакетные предобуславливателиMeros



Решатели
Итерационные линейные AztecOO, Belos,
решатели (Крылов) Komplex


Прямые разреженные Amesos
линейные решатели


Прямые линейные решатели Epetra, Teuchos,
плотных систем Pliris


Нелинейные решатели NOX, LOCA


Итерационные решатели Anasazi
собственных значений


Стохастические PDE Stochos




Таблица 5.1: Список некоторых библиотек Trilinos

Стоит упомянуть пакет Didasko – руководство Trilinos. Предлагает быстрое ознакомление с несколькими пакетами Trilinos. Содержит документацию в формате pdf и множество примеров с комментариями, которые показывают как пользоваться Trilinos. Didasko содержит примеры для следующих пакетов Trilinos: Teuchos, Epetra, EpetraExt, TriUtils, Galeri, AztecOO, IFPACK, ML, NOX, Anasazi, TPetra.