[Mesa-users] Question about inject_until_reach_model_with_total_energy

Patrick Neunteufel neunteufel at astro.uni-bonn.de
Tue Dec 19 14:33:51 EST 2017


Hello everyone,

Relatively new mesa user here. While experimenting with injecting
(relatively small amounts of) heat into non-degenerate envelopes of WDs,
I came across a possible problem with the
inject_until_reach_model_with_total_energy setting, as well as,
relatedly, the inject_until_reach_delta_total_energy option.

Using the 10108 mesa release and the November 20th 2017 release of mesasdk.

-- inject_until_reach_model_with_total_energy --

The total energy of highly bound objects tends to be negative, as
correctly modeled by mesa. However, this option requires the user to
request an absolute positive target energy, as defined in the
check_for_extra_heat subroutine in evolve.f90, line 1225 (not mentioned
in the users guide, btw.). This makes it impossible to inject small
amounts of heat that would not, by themselves, unbind the object.

Is this the desired behavior?

Note: This option is used in the 30M_core_collapse_big_net test suite
with an absolute positive target energy.

-- inject_until_reach_delta_total_energy --

An alternative to defining absolute negative target energies would be to
use the inject_until_reach_delta_total_energy option. However, there
seems to be a problem with the built-in stopping condition, as the code
seems to simply keep adding energy until the model (deservedly) crashes
at total (positive) energies of around 10^59 ergs.

Best guess: I am doing something wrong.

Second best guess: The else-statement in the check_for_extra_heat
subroutine in evolve.f90, line 1232, does not yield the desired results.

Please see below for an example inlist.

Best wishes

Patrick Neunteufel


----------------------------------------------------------------------------

Inlist:

&star_job

      mesa_dir = '../../mesa-10108'
     
      show_log_description_at_start = .true.

      load_saved_model = .true.
      saved_model_name = 'initwdh.mod'
     
      change_initial_RTI_flag = .true.
      new_RTI_flag = .false.
     
      save_model_when_terminate = .true.
      save_model_filename = 'wdh.mod'

      pgstar_flag = .true.
     
      set_initial_model_number = .true.
      initial_model_number = 0
     
      change_initial_u_flag = .true.
      change_initial_v_flag = .true.
      new_v_flag = .false.
      new_u_flag = .true.
     
      set_initial_dt = .true.
      seconds_for_initial_dt = 1d-6
     
      set_initial_age = .true.
    initial_age = 0

/ ! end of star_job namelist


&controls

      inject_until_reach_model_with_total_energy = -1.004e50   ! Either
this (see above). Tried with different values.

                                                                       
                        ! All negative values yield the same result.

                                                                       
                        ! All positive values work as advertised

      inject_until_reach_model_with_total_energy = 1e48            ! Or
this. Tried with different values. All values yield the same result.


      total_mass_for_inject_extra_ergs_sec = 1d-3
      base_of_inject_extra_ergs_sec = 0.822 ! < 0 means at base of model
      start_time_for_inject_extra_ergs_sec = 0d0

    min_timestep_limit = -1
   
      Zbase = 0.02d0
     
      fe_core_infall_limit = 1d99 ! cm/sec
      max_age_in_seconds = 0.005 ! at least enough to finish injecting
energy


      mix_factor = 0d0
      dxdt_nuc_factor = 0d0     
      non_nuc_neu_factor = 0d0
      eps_nuc_factor = 0d0


      use_ODE_var_eqn_pairing = .true.     
      use_dPrad_dm_form_of_T_gradient_eqn = .true.
      use_dedt_form_of_energy_eqn = .true.
     
      !use_momentum_outer_BC = .true.
      use_fixed_vsurf_outer_BC = .true.
      fixed_vsurf = 0d0


      mixing_length_alpha = 1.0
      MLT_option = 'Henyey'
      thermohaline_coeff = 0
      min_T_for_acceleration_limited_conv_velocity = 0
      okay_to_reduce_gradT_excess = .false.
      min_dt_for_increases_in_convection_velocity = 1
      mlt_accel_g_theta = 1d-2


      okay_to_remesh = .true


      max_timestep = 1d-0

      newton_iterations_limit = 20 ! this is used for setting timesteps
      max_tries = 21
      iter_for_resid_tol2 = 20
      tol_residual_norm1 = 1d-7
      tol_max_residual1 = 1d-4
     
      xa_scale = 1d0

      tiny_corr_coeff_limit = 999999
      newton_itermin_until_reduce_min_corr_coeff = 999999
      max_resid_jump_limit = 1d99 ! turn this off until fix residuals


/ ! end of controls namelist



&pgstar
     


/ ! end of pgstar namelist




More information about the Mesa-users mailing list