На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Друзья, соблюдайте, пожалуйста, правила форума и данного раздела:
Данный раздел не предназначен для вопросов и обсуждений, он содержит FAQ-заготовки для разных языков программирования. Любой желающий может разместить здесь свою статью. Вопросы же задавайте в тематических разделах!
• Если ваша статья может быть перенесена в FAQ соответствующего раздела, при условии, что она будет оформлена в соответствии с Требованиями к оформлению статей.
• Чтобы остальным было проще понять, указывайте в описании темы (подзаголовке) название языка в [квадратных скобках]!
Модераторы: Модераторы
  
> Новый код на основе метода Монте-Карло для решения уравнений лучистого переноса, Новый код на основе метода Монте-Карло для решения уравнений лучистого переноса
    Новый код на основе метода Монте-Карло для решения уравнений лучистого переноса

    В новом исследовании Сяолинь Ян (Yang Xiaolin) и его коллеги из Юньнаньской астрономической обсерватории Академии наук Китая разработали новый быстрый код под названием Lemon (Linear Integral Equations" Monte Carlo Solver Based on Neumann Solution), который предназначен для точного решения уравнений лучистого переноса. Схема построения этого кода основана на линейном интегральном уравнении и серии его решений, называемой серией Ньюмана.

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

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

    Для преодоления этого недостатка Сяолинь Ян и его коллеги предложили новую схему, в которой они предлагают использовать для решения уравнений лучистого переноса интегральное уравнение и его ньюмановское решение вместо отслеживания фотонов.

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

    Код Lemon разработан полностью на этих новых принципах и написан на языке FORTRAN 90. Он находится в открытом доступе и может быть скачан по ссылке: github.com/yangxiaolinyn/Lemon

    Исследование появилось на сервере предварительных научных публикаций arxiv.org.
      Цитата Programma_Boinc @
      метод может быть применен напрямую для решения любых дифференциально-интегральных уравнений с корректно указанными начальными или граничными условиями.

      В Кетае появилось своё Сколково™.

      Добавлено
      ExpandedWrap disabled
        !************************************************************
              module constants
        !********************************************************************
        !*    This module defines many constants often uesd in our code.
        !********************************************************************
                double precision, parameter :: zero = 0.D0, &
                      one = 1.D0, &
                      two = 2.D0, &
                      three = 3.D0, &
                      four = 4.D0, &
                      five = 5.D0, &
                      six = 6.D0, &
                      seven = 7.D0, &
                      eight = 8.D0, &
                      nine = 9.D0, &
                      ten = 10.D0, &
      Сообщение отредактировано: scrambrella -
      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0201 ]   [ 14 queries used ]   [ Generated: 28.09.21, 18:17 GMT ]