Skip to content
Lionel Siess edited this page Jan 3, 2022 · 8 revisions

Running a simulation with stellar wind and dust formation

The wind and dust formation algorithms are described in Siess et al. (in prep).

Given the mass loss rate and particle's mass, spheres of particles are recurrently injected in the simulation. This means that the number of particle keeps increasing during the run.

.. important::

The dusty wind formalism can also be used with the common envelope setting

If you find a bug, please report it either on the phantom slack channel or by sending me an email at [email protected]

::

~/phantom/scripts/writemake.sh wind > Makefile make; make setup

When you make the setup file ./phantomsetup wind, dusty wind adds several option blocks in the .in file to control the wind parameters, dust prescription and radiation pressure on dust

::

options controlling particle injection

      wind_velocity =         15.    ! injection wind velocity (km/s, if sonic_type = 0)
 wind_inject_radius =       1.100    ! wind injection radius (au, if 0 take Rstar)
     wind_mass_rate =   1.000E-05    ! wind mass loss rate (Msun/yr)
   wind_temperature =       2500.    ! wind temperature at the injection point (K)
   iwind_resolution =          10    ! if<>0 set number of particles on the sphere, reset particle mass
       nfill_domain =           0    ! number of spheres used to set the background density profile
 wind_shell_spacing =       1.000    ! desired ratio of sphere spacing to particle spacing
  iboundary_spheres =           5    ! number of boundary spheres (integer)
         sonic_type =           0    ! find transonic solution (1=yes,0=no)
     outer_boundary =         50.    ! delete gas particles outside this radius (au)
              rkill =      -1.000    ! deactivate particles outside this radius (<0 is off)

Here’s a brief description of each of them (remember that technical details can be found in `Siess et al. (in prep)

::

         sonic_type =           0    ! find transonic solution (1=yes,0=no)

decides whether you impose the initial wind velocity (sonic_type = 0) or let the code find the trans-sonic solution. Note that in this later case you need a high wind temperature (coronal wind) so the pressure gradient can overcome the stellar gravity

::

      wind_velocity =         15.    ! injection wind velocity (km/s, if sonic_type = 0)

set the launching wind velocity (if sonic_type = 0)

::

 wind_inject_radius =       1.100    ! wind injection radius (au, if 0 take Rstar)

set the distance from the star's center where the wind is launched. If set to zero, the stellar surface is assumed

::

     wind_mass_rate =   1.000E-05    ! wind mass loss rate (Msun/yr)

set the mass loss rate

::

   wind_temperature =       2500.    ! wind temperature at the injection point (K)

set the wind temperature. For trans-sonic solution, this value needs to be high (> 10,000 K)

::

   iwind_resolution =          10    ! if<>0 set number of particles on the sphere, reset particle mass

set the number of particles to be launched and given the mass loss rate determines the particle's mass. If set to zero, the particle mass defined in the .setup file is used and the code finds the corresponding number of particles to be launched.

::

       nfill_domain =           0    ! number of spheres used to set the background density profile

set a background density profile. This option can limit the effect of boundary conditions. The larger nfill_domain, the bigger the domain

::

 wind_shell_spacing =       1.000    ! desired ratio of sphere spacing to particle spacing

This is an important parameter whose value should be kept close to unity that sets the resolution of the simulation. This parameters gives the ratio between the distance of 2 particles on an ejected sphere and the distance between 2 consecutive spheres.

  iboundary_spheres =           5    ! number of boundary spheres (integer)

::

set the number of shells that serve as inner boundary condition for the wind

:: outer_boundary = 50. ! delete gas particles outside this radius (au)

to limit the number of particles, delete from the memory the particles that reach the distance given by outer_boundary (in astronomical unit). This option is slightly different from rkill where the particles are declared as dead but are still allocated.

::

              rkill =      -1.000    ! deactivate particles outside this radius (<0 is off)

remove particle from the memory if its distance to the central star exceeds outer_boundary

::

options controlling dust

      idust_opacity =           2    ! compute dust opacity (0=off,1=on (bowen), 2 (Gail))
          kappa_gas =   2.000E-04    ! constant gas opacity (cm²/g)
      wind_CO_ratio =       2.000    ! wind initial C/O ratio

::

      idust_opacity =           2    ! compute dust opacity (0=off,1=on (bowen), 2 (Gail))

set the type of dust formalism. Nucleation is only available with idust_opacity = 2

::

          kappa_gas =   2.000E-04    ! constant gas opacity (cm²/g)

default gas opacity

::

      wind_CO_ratio =       2.000    ! wind initial C/O ratio

set the C/O ratio of the ejected wind material. For the moment only C-rich chemistry (C/O > 1) is implemented.

::

options controling radiation pressure from sink particles

    isink_radiation =           3    ! sink radiation pressure method (0=off,1=alpha,2=dust,3=alpha+dust)
          alpha_rad =       1.000    ! fraction of the gravitational acceleration imparted to the gas
         iget_tdust =           0    ! dust temperature (0:Tdust=Tgas 1:T(r) 2:Lucy (devel)

::

    isink_radiation =           3    ! sink radiation pressure method (0=off,1=alpha,2=dust,3=alpha+dust)

set how radiation pressure is accounted for. The star's effective gravity is given by

          g = Gm/r**2 *(1-alpha_rad-Gamma)

alpha is an ad-hoc parameter that allows the launching of the wind in case of a cool wind for example when dust is not accounted for. Gamma = is the Eddington factor that depends on the dust opacity. gamma is therefore <> 0 only when nucleation is activated (idust_opacity = 2)

::

          alpha_rad =       1.000    ! fraction of the gravitational acceleration imparted to the gas

parameter entering in the above equation for the effective gravity

::

         iget_tdust =           0    ! dust temperature (0:Tdust=Tgas 1:T(r) 2:Lucy (devel))

defines how the dust temperature is calculated. By default one assumes Tdust = Tgas but option (1, under development!) should be available soon.

Have fun :)