Зависит от того, какие PDE вы хотите решить и как вы хотите к ним подойти.
Каждый известный мне подход требует линейной алгебры. Вы захотите найти хороший матричный пакет для .NET, лучший из всех, которые вы можете найти, и который может эффективно обрабатывать разреженные матрицы.
Линейные эллиптические (стационарная диффузия), параболические (переходная диффузия) и гиперболические (F = MA динамические) PDE требуют немного разных подходов.
Все три из этих PDE могут использовать классическую конечно-разностную, конечный элемент (взвешенный остаток) или граничный элемент (функции Грина) для создания системной матрицы, которую вы хотите решить. Обычные нелинейные PDE, вероятно, лучше всего атаковать с использованием метода конечных элементов / взвешенных невязок.
Но параболические и гиперболические PDF-файлы превратятся в связанные наборы ODE, как только вы их дискретизируете. Вы должны сделать кратковременную интеграцию, чтобы повторно решить эволюцию времени. Параболические ОДУ имеют первый порядок во времени; гиперболические ОДУ второго порядка по времени.
Я изучаю CUDA и NVIDIA. Возможно, вы захотите изучить привязки CUDA для вашего языка.
Все это большие темы для себя. Пожалуйста, Google для некоторых источников, потому что здесь невозможно дать более краткий обзор.
ОБНОВЛЕНИЕ: недавно я узнал о Microsoft Solver Foundation . Я сам не рассматривал это, но, возможно, это поможет разработчикам на C # решить эту проблему.