[Mesa-users] Modeling a sub-Saturn planet using MESA

Gao, Jiapeng jgao370 at gatech.edu
Tue Mar 12 18:47:00 UTC 2024


Hello,

My name is Jiapeng Gao, and I'm a first year graduate student. I'm
trying to simulate planet models using MESA, and I'm having the
following problems:


1. I am trying to use the "make_planets" test case in the MESA r23.05.1
test suite to model a planet of 0.2 Jupiter mass. However, I'm having
trouble creating the initial model. I get the following error message:
"failed in kap_get get_kap_from_rhoT, temp too low in integration". It
seems to work with MESA r11532, where I can create a 0.2 M_J planet with
1 Jupiter radius. I'm not sure how I could modify r23.05.1 to fix the
problem.


2. I noticed that for my simulation using MESA r11532, the planet radius
can only shrink to around 0.8 R_J at ~10Gyr, then the program stops and
reports: “dt 1.9D-23, min_timestep_limit 9.9 D-21, stopping because of
problems dt < min_timestep_limit, terminated evolution: cannot find
acceptable model, termination code: min_timestep_limit”. I'm not sure
what would be the best way to troubleshoot it.

I included my inlists below. Thank you very much for your guidance!

Sincerely,


Jiapeng Gao
———————————MESA r23.05.1 inlist_create———————————————————

! inlist_create

&star_job


      show_log_description_at_start = .false.

      save_model_when_terminate = .true.
      save_model_filename = "planet_create_0.9685_MJ_2.0_RJ.mod"
      required_termination_code_string = 'max_age'

      ! new adiabatic, contracting initial model
      create_initial_model = .true.
      radius_in_cm_for_create_initial_model = 6991100000.d0 ! in cm
      mass_in_gm_for_create_initial_model = 3.6778d29 ! in grams
      initial_model_relax_num_steps = 0
      set_initial_age = .true.
      initial_age = 0.d0 ! in years

      !pgstar_flag = .true.

/ !end of star_job


&eos
/ ! end of eos namelist


&kap
   Zbase = 0.02d0

      kap_file_prefix = 'gs98'
      kap_lowT_prefix = 'lowT_Freedman11'

/ ! end of kap namelist

&controls

   use_gold2_tolerances = .false. ! wait a few steps
   steps_before_use_gold2_tolerances = 31

   warning_limit_for_max_residual = 1d99 ! off until evolve
   warn_when_large_virial_thm_rel_err = 1d99 ! off until evolve

   limit_for_rel_error_in_energy_conservation = 1d-5
   hard_limit_for_rel_error_in_energy_conservation = 1d-3

   convergence_ignore_equL_residuals = .true.

      ! limit max_model_number as part of test_suite
   max_model_number = 200

! for create_initial_model
initial_Z = 0.02d0
initial_Y = 0.24d0


! when to stop
   max_age = 50

! knobs
T_mix_limit = 0d0

   max_resid_jump_limit = 1d18
   max_corr_jump_limit = 1d18

! output to files and terminal
max_num_profile_models=1000

photo_interval = 50
profile_interval = 50
history_interval = 1
terminal_interval = 10
write_header_frequency = 10

/


&pgstar

      ! top level controls

         !pause = .true.
            ! if true, the code waits for user to enter a RETURN on the command line



/ ! end of pgstar namelist

--------------------------MESA r11532 inlist_evolve -------------------------------

! inlist_evolve

&star_job

      mesa_dir = '/home/jiapeng/Downloads/mesa-r11532'

      show_log_description_at_start = .false.

      load_saved_model = .true.
      saved_model_name = "planet_core_1.0_MJ_10.0_ME_2.0_RJ.mod"

      save_model_when_terminate = .true.
      save_model_filename = "planet_evolve_1.0_MJ_10.0_ME_2.0_RJ.mod"
      required_termination_code_string = 'max_age'

      set_initial_cumulative_energy_error = .true.
      new_cumulative_energy_error = 0d0

      !relax_initial_L_center = .true.
      !new_L_center = 4.46863d28 ! ergs/sec
      !dlgL_per_step = 5d-3
      !relax_L_center_dt = 8.1558149984d1 ! secyer*1d-6

      eos_file_prefix = 'mesa'
      kappa_file_prefix = 'gs98'
      kappa_lowT_prefix = 'lowT_Freedman11'

      !set_tau_factor = .true.
      !set_to_this_tau_factor=100

      change_lnPgas_flag = .true.
      new_lnPgas_flag = .true.

      !pgstar_flag = .true.

/ !end of star_job

&controls
      use_gold_tolerances = .true.
      use_eosDT2 = .true.
      use_eosELM = .true.
      logQ_limit = 1d99

      min_timestep_limit = 1d-20

      warn_when_large_virial_thm_rel_err = 5d-2

      use_dedt_form_of_energy_eqn = .true.
      min_cell_energy_fraction_for_dedt_form = 1d-8

      num_trace_history_values = 2
      trace_history_value_name(1) = 'rel_E_err'
      trace_history_value_name(2) = 'log_rel_run_E_err'

      ! check for retries and backups as part of test_suite
         max_number_backups = 200
         max_number_retries = 200
         max_model_number = 3500


                ! surface heating
                ! column_depth_for_irradiation = 300.d0 ! 3.d2 cm^2/g
        ! irradiation_flux = 6.2d8 ! 1.d9 erg/cm^2/s ! day side flux!!! Bill puts in 1/4 by hand

                ! interior heating
                !inject_uniform_extra_heat = 0.00052
                !min_q_for_uniform_extra_heat = 0.0705882
                !max_q_for_uniform_extra_heat = 0.1
                !inject_extra_ergs_sec=4.46863d29
                !base_of_inject_extra_ergs_sec=0.0
                !total_mass_for_inject_extra_ergs_sec=0.00009

                ! when to stop
                max_age = 100000000000.d0 ! 1.d10
                Teff_lower_limit = 10.d0

                ! knobs
                !use_lnE_for_eps_grav = .false.
                T_mix_limit = 0


                ! output to files and terminal
                photo_interval = 50
                profile_interval = 50
                max_num_profile_models=1000
                history_interval = 2
                terminal_interval = 10
                write_header_frequency = 10


      !photo_interval = 10
      !profile_interval = 10
      !history_interval = 1
      !terminal_interval = 1


! FOR DEBUGGING

      !report_hydro_solver_progress = .true. ! set true to see info about newton iterations
      !report_ierr = .true. ! if true, produce terminal output when have some internal error
      !hydro_show_correction_info = .true.

      ! hydro debugging
      !hydro_check_everything = .true.
      !hydro_inspectB_flag = .true.
      !hydro_sizequ_flag = .true.

      !hydro_get_a_numerical_partial = 1d-4
      !hydro_test_partials_k = 1
      !hydro_numerical_jacobian = .true.
      !hydro_save_numjac_plot_data = .true.
      !hydro_dump_call_number = 195
      !hydro_dump_iter_number = 5
      !hydro_epsder_struct = 1d-6
      !hydro_epsder_chem = 1d-6

      !fill_arrays_with_NaNs = .true.
      !stop_for_NaNs = .true.

      !max_years_for_timestep = 3.67628942044319d-05

      !report_why_dt_limits = .true.
      !report_all_dt_limits = .true.
      !report_hydro_dt_info = .true.

      !show_mesh_changes = .true.
      !mesh_dump_call_number = 5189
      !okay_to_remesh = .false.

      !trace_evolve = .true.

      !trace_newton_bcyclic_solve_input = .true. ! input is "B" j k iter B(j,k)
      !trace_newton_bcyclic_solve_output = .true. ! output is "X" j k iter X(j,k)

      !trace_newton_bcyclic_matrix_input = .true.
      !trace_newton_bcyclic_matrix_output = .true.

      !trace_newton_bcyclic_steplo = 1 ! 1st model number to trace
      !trace_newton_bcyclic_stephi = 1 ! last model number to trace

      !trace_newton_bcyclic_iterlo = 2 ! 1st newton iter to trace
      !trace_newton_bcyclic_iterhi = 2 ! last newton iter to trace

      !trace_newton_bcyclic_nzlo = 1 ! 1st cell to trace
      !trace_newton_bcyclic_nzhi = 10000 ! last cell to trace; if < 0, then use nz as nzhi

      !trace_newton_bcyclic_jlo = 1 ! 1st var to trace
      !trace_newton_bcyclic_jhi = 100 ! last var to trace; if < 0, then use nvar as jhi

      !trace_k = 0

/


&pgstar

      ! top level controls

         !pause = .true.
            ! if true, the code waits for user to enter a RETURN on the command line



/ ! end of pgstar namelist


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mesastar.org/pipermail/mesa-users/attachments/20240312/961ad043/attachment.htm>


More information about the Mesa-users mailing list