PHOEBE 2.1 Documentation

2.1 Docs



IPython Notebook | Python Script

Reflection and Heating

Setup

As always, let’s do imports and initialize a logger and a new bundle. See Building a System for more details.

%matplotlib inline
import phoebe
from phoebe import u # units
import numpy as np
import matplotlib.pyplot as plt

logger = phoebe.logger()

b = phoebe.default_binary()

Relevant Parameters

The parameters that define reflection and heating are all prefaced by “irrad_frac” (fraction of incident flux) and suffixed by “bol” to indicate that they all refer to a bolometric (rather than passband-dependent) process. For this reason, they are not stored in the dataset, but rather directly in the component.

Each of these parameters dictates how much incident flux will be handled by each of the available processes. For now these only include reflection (heating with immediate re-emission, without heat distribution) and lost flux. In the future, heating with distribution and scattering will also be supported.

For each component, these parameters must add up to exactly 1.0 - and this is handled by a constraint which by default constrains the “lost” parameter.

print b['irrad_frac_refl_bol']
ParameterSet: 2 parameters
  irrad_frac_refl_bol@primary...: 0.6
  irrad_frac_refl_bol@seconda...: 0.6
print b['irrad_frac_lost_bol']
ParameterSet: 4 parameters
* irrad_frac_lost_bol@primary...: 0.4
  irrad_frac_lost_bol@primary...: 1.000000 - {irrad_frac_refl_bol@primary@component}
* irrad_frac_lost_bol@seconda...: 0.4
  irrad_frac_lost_bol@seconda...: 1.000000 - {irrad_frac_refl_bol@secondary@component}
print b['irrad_frac_refl_bol@primary']
Parameter: irrad_frac_refl_bol@primary@component
                       Qualifier: irrad_frac_refl_bol
                     Description: ratio of incident bolometric light that is used for reflection (heating without redistribution)
                           Value: 0.6
                  Constrained by:
                      Constrains: irrad_frac_lost_bol@primary@component
                      Related to: irrad_frac_lost_bol@primary@component
print b['irrad_frac_lost_bol@primary@component']
Parameter: irrad_frac_lost_bol@primary@component
                       Qualifier: irrad_frac_lost_bol
                     Description: ratio of incident bolometric light that is lost/ignored
                           Value: 0.4
                  Constrained by: irrad_frac_refl_bol@primary@component
                      Constrains: None
                      Related to: irrad_frac_refl_bol@primary@component

In order to see the effect of reflection, let’s set “irrad_frac_refl_bol” of both of our stars to 0.3 - that is 30% of the incident flux will go towards reflection and 70% will be ignored.

b.set_value_all('irrad_frac_refl_bol', 0.3)
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.

Since reflection can be a computationally expensive process and in most cases is a low-order effect, there is a switch in the compute options that needs to be enabled in order for reflection to be taken into account. If this switch is False (which it is by default), the albedos are completely ignored and will be treated as if all incident light is lost/ignored.

print b['irrad_method@compute']
Parameter: irrad_method@phoebe01@compute
                       Qualifier: irrad_method
                     Description: Which method to use to handle all irradiation effects (reflection, redistribution)
                           Value: wilson
                         Choices: none, wilson, horvat

Reflection has the most noticeable effect when the two stars are close to each other and have a large temperature ratio.

b['sma@orbit'] = 4.0
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' has intermittent temperature (6600K<teff=6000K<8000K), irrad_frac_refl_bol might be better between 0.6-1.00 than irrad_frac_refl_bol=0.30.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
b['teff@primary'] = 10000
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
b['teff@secondary'] = 5000
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.

Influence on Light Curves (fluxes)

b.add_dataset('lc', times=np.linspace(0,1,101))
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Fri, 05 Oct 2018 13:56 PARAMETERS   WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
<ParameterSet: 15 parameters | contexts: compute, dataset>

Let’s run models with the reflection switch both turned on and off so that we can compare the two results. We’ll also override delta to be a larger number since the computation time required by delta depends largely on the number of surface elements.

b.run_compute(irrad_method='none', ntriangles=700, model='refl_false')
Fri, 05 Oct 2018 13:56 BUNDLE       WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.
<ParameterSet: 2 parameters | qualifiers: fluxes, times>
b.run_compute(irrad_method='wilson', ntriangles=700, model='refl_true')
Fri, 05 Oct 2018 13:57 BUNDLE       WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.
<ParameterSet: 2 parameters | qualifiers: fluxes, times>
afig, mplfig = b.plot(show=True, legend=True)
../../_images/reflection_heating_24_0.png
artists = plt.plot(b['value@times@refl_false'], b['value@fluxes@refl_true']-b['value@fluxes@refl_false'], 'r-')
../../_images/reflection_heating_25_0.png

Influence on Meshes (Intensities)

b.add_dataset('mesh', times=[0.2], columns=['intensities@lc01'])
Fri, 05 Oct 2018 13:57 PARAMETERS   WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.
Fri, 05 Oct 2018 13:57 PARAMETERS   WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.
Fri, 05 Oct 2018 13:57 PARAMETERS   WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.
Fri, 05 Oct 2018 13:57 PARAMETERS   WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
<ParameterSet: 4 parameters | contexts: compute, dataset>
b.run_compute(irrad_method='none', ntriangles=700, model='refl_false')
Fri, 05 Oct 2018 13:57 BUNDLE       WARNING overwriting model: refl_false
Fri, 05 Oct 2018 13:57 BUNDLE       WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.
<ParameterSet: 10 parameters | kinds: mesh, lc>
b.run_compute(irrad_method='wilson', ntriangles=700, model='refl_true')
Fri, 05 Oct 2018 13:57 BUNDLE       WARNING overwriting model: refl_true
Fri, 05 Oct 2018 13:57 BUNDLE       WARNING 'primary' probably has a radiative atm (teff=10000K>8000K), for which gravb_bol=1.00 might be a better approx than gravb_bol=0.32.
<ParameterSet: 10 parameters | kinds: mesh, lc>
afig, mplfig = b.plot(kind='mesh', model='refl_false', fc='intensities', ec='none', show=True)
../../_images/reflection_heating_30_0.png
afig, mplfig = b.plot(kind='mesh', model='refl_true', fc='intensities', ec='none', show=True)
../../_images/reflection_heating_31_0.png
Prev: Reddening and Extinction (not yet implemented) Next: Beaming and Boosting
.
Last update: 10/29/2018 9:20 a.m. (CET)