Mesa学习笔记#1:Running MESA

Running MESA

关于如何使用MESA来演化一颗恒星。***$MESA_DIR***目录有许多子目录。这些子目录中的大多数都是模块(MESA中的“M”),它们提供一些特定的功能(例如,“kap”提供计算不透明度的例程)。最重要的模块是“star”,它包含一个模块,该模块知道如何将所有其他模块的功能放在一起,通过一个步骤推进一个star模型的状态,然后为下一步建立一个新的时间增量。基本上,这就是它的全部功能。

这里是为了一个可以用这些模块进行多步恒星演化的程序。这样的程序位于star/work目录中,我们将从那里开始。

1. Make a copy of the star/work directory

在主MESA目录之外的其他地方执行和存储工作。这将在将来的某个时候对新的MESA版本进行更新时简化工作。因此,每当启动一个新的MESA项目时,应该创建一个新的star/work目录副本。

cp -r $MESA_DIR/star/work tutorial

复制了工作副本,接下来开始编译其中的代码。

cd tutorial
./mk

2. Set up configuration files

工作目录已经包含了一组简单的配置文件,将从一个15太阳质量的恒星演化到零龄主序(核心氢点火)。现在,不需要编辑任何内容,查看一下这些文件。

2.1. inlist

这是MESA启动时读取的第一个内列表文件。文件inlist通常用于指示MESA读取一个或多个其他内链表文件。

恒星文件inlist包含五个部分 (technically fortran “namelists”) :

star_job - options for the program that evolves the star
eos -    options for the MESA eos module
kap - options for the MESA kap module
controls - options for the MESA star module
pgstar - options for    on-screen plotting

名称列表中定义都是这样的形式:

name = value ! comment

使用正常的fortran语法指定值。空行和注释行可以自由地包含在列表中。在包含名称-值对的行开始使用空格也是可以的,因此可以(也应该)缩进内容以使其更具可读性。
所有的控件在初始化时都有合理的默认值,因此只需要设置实际想要更改的那些。

! This is the first inlist file that MESA reads when it starts.! This file tells MESA to go look elsewhere for its configuration
! info. This makes changing between different inlists easier, by
! allowing you to easily change the name of the file that gets read.&star_jobread_extra_star_job_inlist1 = .true.extra_star_job_inlist1_name = 'inlist_project'/ ! end of star_job namelist&eosread_extra_eos_inlist1 = .true.extra_eos_inlist1_name = 'inlist_project'/ ! end of eos namelist&kapread_extra_kap_inlist1 = .true.extra_kap_inlist1_name = 'inlist_project'/ ! end of kap namelist&controlsread_extra_controls_inlist1 = .true.extra_controls_inlist1_name = 'inlist_project'/ ! end of controls namelist&pgstarread_extra_pgstar_inlist1 = .true.extra_pgstar_inlist1_name = 'inlist_pgstar'/ ! end of pgstar namelist

2.2. inlist_project

我们将使用这些选项从一个前主序模型构建一个15倍太阳质量的恒星,然后在到达零龄主序(ZAMS)时停止演化。

! inlist to evolve a 15 solar mass star! For the sake of future readers of this file (yourself included),
! ONLY include the controls you are actually using.  DO NOT include
! all of the other controls that simply have their default values.&star_job! see star/defaults/star_job.defaults! begin with a pre-main sequence modelcreate_pre_main_sequence_model = .true.! save a model at the end of the runsave_model_when_terminate = .false.save_model_filename = '15M_at_TAMS.mod'! display on-screen plotspgstar_flag = .true./ ! end of star_job namelist&eos! eos options! see eos/defaults/eos.defaults/ ! end of eos namelist&kap! kap options! see kap/defaults/kap.defaultsuse_Type2_opacities = .true.Zbase = 0.02/ ! end of kap namelist&controls! see star/defaults/controls.defaults! starting specificationsinitial_mass = 15 ! in Msun unitsinitial_z = 0.02! when to stop! stop when the star nears ZAMS (Lnuc/L > 0.99)Lnuc_div_L_zams_limit = 0.99d0stop_near_zams = .true.! stop when the center mass fraction of h1 drops below this limitxa_central_lower_limit_species(1) = 'h1'xa_central_lower_limit(1) = 1d-3! wind! atmosphere! rotation! element diffusion! mlt! mixing! timesteps! mesh! solver! options for energy conservation (see MESA V, Section 3)energy_eqn_option = 'dedt'use_gold_tolerances = .true.! output/ ! end of controls namelist

2.2. inlist_pgstar

这包含了屏幕上绘图的选项。

&pgstar! see star/defaults/pgstar.defaults! MESA uses PGPLOT for live plotting and gives the user a tremendous! amount of control of the presentation of the information.! show HR diagram! this plots the history of L,Teff over many timestepsHR_win_flag = .true.! set static plot boundsHR_logT_min = 3.5HR_logT_max = 4.6HR_logL_min = 2.0HR_logL_max = 6.0! set window size (aspect_ratio = height/width)HR_win_width = 6HR_win_aspect_ratio = 1.0! show temperature/density profile! this plots the internal structure at single timestepTRho_Profile_win_flag = .true.! add legend explaining colorsshow_TRho_Profile_legend = .true.! display numerical info about the starshow_TRho_Profile_text_info = .true.! set window size (aspect_ratio = height/width)TRho_Profile_win_width = 8TRho_Profile_win_aspect_ratio = 0.75/ ! end of pgstar namelist

3. Run MESA

现在运行代码就像输入一样简单:

./rn

MESA将通过终端输出保持更新:

     step    lg_Tmax     Teff     lg_LH      lg_Lnuc     Mass       H_rich     H_cntr     N_cntr     Y_surf   eta_cntr   zones  retrylg_dt_yr    lg_Tcntr    lg_R     lg_L3a     lg_Lneu     lg_Mdot    He_core    He_cntr    O_cntr     Z_surf   gam_cntr   itersage_yr    lg_Dcntr    lg_L     lg_LZ      lg_Lphoto   lg_Dsurf   C_core     C_cntr     Ne_cntr    Z_cntr   v_div_cs       dt_limit
__________________________________________________________________________________________________________________________________________________800   7.455602  2.821E+04   4.211546   4.211546  15.000000  15.000000   0.699864   0.001978   0.280000  -5.912231    873      02.364495   7.455602   0.837935 -33.599828   3.029214 -99.000000   0.000000   0.279998   0.009380   0.020000   0.014924      34.5570E+04   0.596891   4.432022 -11.138110 -99.000000  -9.090996   0.000000   0.002618   0.002085   0.020138  0.000E+00    varcontrol

MESA还将显示一些pgstar图,如下所示:


这应该运行大约850步,然后停止,并显示以下消息:

stop because Lnuc_div_L >= Lnuc_div_L_zams_limit

4. Resuming MESA

在整个运行过程中,并不局限于使用相同的参数设置。可以停止运行,编辑inlist文件,并使用新的设置重新启动。这种停止-重新启动机制经过精心构造,因此如果从中间状态重新启动而不更改任何控件,将得到完全相同的结果。要做到这一点,保存的信息必须是完整的,这意味着有很多信息。为了使其快速运行,重新启动信息被转储为二进制格式。这些二进制转储称为“照片”,并保存在具有相同名称的子目录中。
需要强调的是,照片不适合模特长期储存。特别是,当更新到新版本的MESA star时,应该预料到现有的照片文件将会过时。
如果在运行的终端输出中向后滚动,应该会发现如下一行(尽管MESA版本之间的数字可能略有不同):

save photos/x849 for model 849

指示在运行终止时自动保存其中一个快照。
在编辑器中打开inlist_project。可以看到有两个停止条件:

! stop when the star nears ZAMS (Lnuc/L > 0.99)
Lnuc_div_L_zams_limit = 0.99d0
stop_near_zams = .true.! stop when the center abundance by mass of h1 drops below this limit
xa_central_lower_limit_species(1) = 'h1'
xa_central_lower_limit(1) = 1d-3

正如MESA在终止消息中指出的那样,我们停止是因为第一个条件(ZAMS自然是在h耗尽之前)。通过编辑inlist来关闭这个停止条件:

stop_near_zams = .false.

并保存inlist文件。
现在可以使用照片和新设置重新启动。试一试。

./re x849

这将恢复849型的运行,但这一次,当我们的其他条件满足时,当中心氢降到1e-3以下时,运行将停止。这将发生在975型左右。

5. Saving a model

照片文件是机器可读的二进制文件,它不是为可移植到不同的机器甚至不同版本的MESA而设计的。因此,我们需要另一种方法来保存模型,以便我们以后使用它,可能作为以后运行的初始模型,或者发送给某人,让他们与自己的MESA副本一起使用。
在运行结束时保存一个模型文件。转到inlist的&star_job部分的以下行:

! save a model at the end of the run
save_model_when_terminate = .false.
save_model_filename = '15M_at_TAMS.mod'

告诉MESA想在最后保存一个模型文件,方法是编辑inlist并将save_model_when_terminate更改为true
保存文件,然后从与以前相同的位置重新启动MESA。

./re x849

这次当运行结束时,MESA将保存一个名为15M_at_TAMS.mod的模型。

6. Loading a model

现在可以开始研究恒星的后主序列演化,使用刚刚保存的模型开始一个新的MESA运行。为了做到这一点,列表可能是这样的:

&star_job! see star/defaults/star_job.defaults! start a run from a saved modelload_saved_model = .true.load_model_filename = '15M_at_TAMS.mod'! display on-screen plotspgstar_flag = .true./ !end of star_job namelist&eos! eos options! see eos/defaults/eos.defaults/ ! end of eos namelist&kap! kap options! see kap/defaults/kap.defaultsuse_Type2_opacities = .true.Zbase = 0.02/ ! end of kap namelist&controls! see star/defaults/controls.defaults! options for energy conservation (see MESA V, Section 3)energy_eqn_option = 'dedt'use_gold_tolerances = .true.! configure mass loss on RGB & AGBcool_wind_RGB_scheme = 'Dutch'cool_wind_AGB_scheme = 'Dutch'RGB_to_AGB_wind_switch = 1d-4Dutch_scaling_factor = 0.8/ ! end of controls namelist

如果想尝试一下,请将前面的文本保存为工作目录中名为inlist_load的文件。确保文件以一个空白的新行结束。然后编辑主inlist文件,使它在inlist中各处使用inlist_load而不是inlist_project(即extra_star_job_inlist1_nameextra_controls_inlist1_name)。
然后继续:

./rn

MESA将使用新保存的文件启动。与照片不同,保存的模型没有系统内部状态的完整快照。照片保证给出相同的结果;保存的模型则不是。当运行已保存的模型时,与在保存之前的运行中看到的模型相比,可能会有微小的差异。差异应该是很小的。

7. Learning about the many MESA options

看完前面的列表后,更迫切的问题可能是“这些选项是从哪里来的?”以及“如何找到适合的选项?”
包含所有MESA选项及其默认值的描述的文件位于该目录中:

$MESA_DIR/star/defaults

选项是按它们所属的名称列表组织的。因此,文件controls.defaults包含控件名称列表中选项的讨论。
假设我们想更多地了解这个“Dutch_wind”是什么。在controls.defaults中搜索单词“Dutch”,很快就会找到这些选项的以下摘要。

! Dutch_scaling_factor! ~~~~~~~~~~~~~~~~~~~~! The "Dutch" wind scheme for massive stars combines results from several papers,! all with authors mostly from the Netherlands.! The particular combination we use is based on! Glebbeek, E., et al, A&A 497, 255-264 (2009) [more Dutch authors!]! For Teff > 1e4 and surface H > 0.4 by mass, use Vink et al 2001! Vink, J.S., de Koter, A., & Lamers, H.J.G.L.M., 2001, A&A, 369, 574.! For Teff > 1e4 and surface H < 0.4 by mass, use Nugis & Lamers 2000! Nugis, T.,& Lamers, H.J.G.L.M., 2000, A&A, 360, 227! Some folks use 0.8 for non-rotating mdoels (Maeder & Meynet, 2001).! ::Dutch_scaling_factor = 0d0! Dutch_wind_lowT_scheme! ~~~~~~~~~~~~~~~~~~~~~~! For Teff < 1e4! Use de Jager if ``Dutch_wind_lowT_scheme = 'de Jager'``! de Jager, C., Nieuwenhuijzen, H., & van der Hucht, K. A. 1988, A&AS, 72, 259.! Use van Loon if ``Dutch_wind_lowT_scheme = 'van Loon'``! van Loon et al. 2005, A&A, 438, 273.! Use Nieuwenhuijzen if ``Dutch_wind_lowT_scheme = 'Nieuwenhuijzen'``! Nieuwenhuijzen, H.; de Jager, C. 1990, A&A, 231, 134! ::Dutch_wind_lowT_scheme = 'de Jager'

可以浏览.defaults文件,以熟悉可用的内容。选择的数量太多,可以使用test_suite

Mesa学习笔记#1:Running MESA相关推荐

  1. 网易视频云专家分享:Google Mesa论文笔记

    网易视频云是网易公司旗下的视频云服务产品,以Paas服务模式,向开发者提供音视频编解码SDK和开放API,助力APP接入音视频功能.现在,网易视频云的技术专家给大家分享一篇技术性文章:Google M ...

  2. oracle停止job任务视图,【学习笔记】Oracle dba_datapump_jobs中not running作业的清除方法...

    天萃荷净 Oracle研究中心学习笔记:分享一篇关于Oracle数据库JOBS作业控制的文章.关于dba_datapump_jobs中的not running的作业的清除的方法. not runnin ...

  3. MIT 6.s081学习笔记

    MIT 6.s081学习笔记 introduction 计算机组织结构: 最底部是一些硬件资源,包括了CPU,内存,磁盘,网卡 最上层会运行各种应用程序,比如vim,shell等,这些就是正在运行的所 ...

  4. OGG学习笔记04-OGG复制部署快速参考

    OGG学习笔记04-OGG复制部署快速参考 源端:Oracle 10.2.0.5 RAC + ASM 节点1 Public IP地址:192.168.1.27 目标端:Oracle 10.2.0.5 ...

  5. CCNP学习笔记(6)

    一.交换机 1.二层交换 特性: ①基于MAC地址转发数据帧 ②硬件工作 ③处理数据效率高,数据传输延时低 ④转发广播 2.三层交换 特性: ①提供路由功能 ②提高安全性 ③流量管理 3.网络方案中交 ...

  6. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记--使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  7. Java程序设计学习笔记(一)

    时间:2015-6-2 23:04 程序员,程序猿,程序媛,码农  ------------------------------------------------------- --Java的应用领 ...

  8. 好程序员web前端分享Nodejs学习笔记之Stream模块

    好程序员web前端分享Nodejs学习笔记之Stream模块 一,开篇分析 流是一个抽象接口,被 Node 中的很多对象所实现.比如对一个 HTTP 服务器的请求是一个流,stdout 也是一个流.流 ...

  9. Python学习笔记(六)

    1. IO编程 1.1 文件读写 1.2 StringIO和BytesIO 1.3 操作文件和目录 1.4 序列化 2. 进程和线程 2.1 多进程 2.2 多线程 2.3 ThreadLocal 2 ...

最新文章

  1. 知识点回顾-简单的TableView单组数据展示/多组数据展示
  2. vbs脚本在服务器上虚拟按键,iisvdir.vbs iis虚拟目录管理脚本使用介绍
  3. 查看LINUX进程内存占用情况 top pmap ps
  4. [Vani有约会]雨天的尾巴 (线段树合并)
  5. Microsoft Edge 83 稳定版发布
  6. css 样式(checkbox开关、css按钮)
  7. mysql数据库1129错误
  8. iostat 输出CPU、磁盘IO的使用情况统计信息
  9. 遗传算法(Genetic Algorithm)原理详解和matlab代码解析实现及对应gaot工具箱实现代码
  10. janusgraph 引入 java,janusgraph 默认server使用手记
  11. 《线性代数》学习之———第一章 矩阵与方程组(1.1线性方程组)
  12. 长时间看电脑,眼睛疼的原因和治疗方法
  13. 【数学模型】基于Matlab模拟超市排队系统
  14. stc12c5a单片机c语言adc,STC12C5A60S2单片机的ADC采样程序分享
  15. Vue3 源码阅读(3):响应式系统 —— 重置 effect 的依赖收集、嵌套的 effect、effect 调度执行
  16. 树莓派基于QT实现利用USB转485模块进行串口通讯
  17. 《Arduino与LabVIEW开发实战》第3章 如何连接Arduino与LabVIEW
  18. 消费金融加速内卷,地推要求硕士起步…
  19. 数据科学入门与细分数据领域盘点
  20. vs编译 error C2001: 常量中有换行符

热门文章

  1. Mac系统自带中文输入法英文标点
  2. React中文文档之Lifting State Up
  3. 扫地机器人返充原理_全自动智能扫地机器人的工作原理分析
  4. 随机搜索(Random Searching)算法
  5. OSINT 和 15 大开源情报工具
  6. 机器学习基石 5.3 Effective Number of Hypotheses
  7. 全国青少年软件编程(Scratch)一级2019考试测试卷最后一道编程题!
  8. Project-符合人类习惯的多元多项式计算器
  9. asp:DropDownList动态绑定数据,设置默认值
  10. VR/AR年度创投报告