PHOEBE 2.1 Documentation

2.1 Docs



Prev: Minimal Contact Binary System Next: Single Star with Spots
.

IPython Notebook | Python Script

Comparing Contacts Binaries in PHOEBE 2 vs PHOEBE Legacy

NOTE: PHOEBE 1.0 legacy is an alternate backend and is not installed with PHOEBE 2. In order to run this backend, you’ll need to have PHOEBE 1.0 installed and manually install the python wrappers in the phoebe-py directory.

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
import numpy as np
import matplotlib.pyplot as plt

logger = phoebe.logger()

b = phoebe.default_binary(contact_binary=True)
b['q'] = 0.7

Adding Datasets and Compute Options

b.add_dataset('lc', times=np.linspace(0,1,101), dataset='lc01')
b.add_dataset('rv', times=np.linspace(0,1,101), dataset='rv01')
<ParameterSet: 15 parameters | contexts: compute, dataset>

Now we add compute options for the ‘legacy’ backend.

b.add_compute('legacy')
<ParameterSet: 11 parameters | datasets: lc01, rv01>

Let’s use the external atmospheres available for both phoebe1 and phoebe2

b.set_value_all('atm', 'extern_planckint')
Mon, 29 Oct 2018 10:10 PARAMETERS   WARNING ld_func='interp' only supported by atm='ck2004'.  Either change atm@primary or ld_func@primary@lc01  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Mon, 29 Oct 2018 10:10 PARAMETERS   WARNING ld_func='interp' only supported by atm='ck2004'.  Either change atm@primary or ld_func@primary@lc01  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Mon, 29 Oct 2018 10:10 PARAMETERS   WARNING ld_func='interp' only supported by atm='ck2004'.  Either change atm@primary or ld_func@primary@lc01  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Mon, 29 Oct 2018 10:10 PARAMETERS   WARNING ld_func='interp' only supported by atm='ck2004'.  Either change atm@primary or ld_func@primary@lc01  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Mon, 29 Oct 2018 10:10 PARAMETERS   WARNING ld_func='interp' only supported by atm='ck2004'.  Either change atm@primary or ld_func@primary@lc01  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Mon, 29 Oct 2018 10:10 PARAMETERS   WARNING ld_func='interp' only supported by atm='ck2004'.  Either change atm@primary or ld_func@primary@lc01  If not addressed, this warning will continue to be raised and will throw an error at run_compute.

Set value of gridsize for the trapezoidal (WD) mesh.

b.set_value_all('gridsize', 30)

Let’s also disable other special effect such as heating, gravity, and light-time effects.

b.set_value_all('ld_func', 'logarithmic')
b.set_value_all('ld_coeffs', [0.0, 0.0])

b.set_value_all('rv_grav', False)
b.set_value_all('ltte', False)
Mon, 29 Oct 2018 10:10 PARAMETERS   WARNING ld_func='interp' only supported by atm='ck2004'.  Either change atm@primary or ld_func@primary@lc01  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Mon, 29 Oct 2018 10:10 PARAMETERS   WARNING ld_func='interp' only supported by atm='ck2004'.  Either change atm@primary or ld_func@primary@rv01  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Mon, 29 Oct 2018 10:10 PARAMETERS   WARNING ld_func='interp' only supported by atm='ck2004'.  Either change atm@primary or ld_func@primary@rv01  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Mon, 29 Oct 2018 10:10 PARAMETERS   WARNING ld_func='interp' only supported by atm='ck2004'.  Either change atm@primary or ld_func@primary@rv01  If not addressed, this warning will continue to be raised and will throw an error at run_compute.
Mon, 29 Oct 2018 10:10 PARAMETERS   WARNING ld_func='interp' only supported by atm='ck2004'.  Either change atm@secondary or ld_func@secondary@rv01  If not addressed, this warning will continue to be raised and will throw an error at run_compute.

Finally, let’s compute our models

b.run_compute(kind='phoebe', model='phoebe2model', irrad_method='none')
<ParameterSet: 6 parameters | kinds: rv, lc>
b.run_compute(kind='legacy', model='phoebe1model', irrad_method='none')
Mon, 29 Oct 2018 10:10 IO           WARNING requiv_max@primary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING requiv_min@primary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING freq@primary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING pitch@primary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING yaw@primary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING long_an@primary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING irrad_frac_lost_bol@primary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING ld_func_bol@primary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING mass@primary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING requiv_max@secondary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING requiv_min@secondary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING freq@secondary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING pitch@secondary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING yaw@secondary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING long_an@secondary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING irrad_frac_lost_bol@secondary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING ld_func_bol@secondary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING mass@secondary@star@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING intens_weighting@lc01@lc_dep@dataset has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING lc_method@lc01@phoebe01@phoebe@compute has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING pblum_ref@secondary@lc01@lc_dep@dataset has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING fti_method@lc01@phoebe01@phoebe@compute has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING Finite integration Time is not fully supported and will be turned off by legacy wrapper before computation
Mon, 29 Oct 2018 10:10 IO           WARNING pblum_ref@primary@lc01@lc_dep@dataset has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING rv_grav@primary@rv01@phoebe01@phoebe@compute has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING intens_weighting@rv01@rv_dep@dataset has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING rv_method@primary@rv01@legacy01@legacy@compute has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING rv_method@primary@rv01@phoebe01@phoebe@compute has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING rv_grav@secondary@rv01@phoebe01@phoebe@compute has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING rv_method@secondary@rv01@phoebe01@phoebe@compute has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING intens_weighting@rv01@rv_dep@dataset has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING rv_method@secondary@rv01@legacy01@legacy@compute has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING freq@binary@orbit@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING t0_perpass@binary@orbit@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING t0_supconj@binary@orbit@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING mean_anom@binary@orbit@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING long_an@binary@orbit@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING asini@binary@orbit@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING ecosw@binary@orbit@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING esinw@binary@orbit@component has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING irrad_method@legacy01@legacy@compute has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING rv_method@primary@rv01@legacy01@legacy@compute has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING rv_method@secondary@rv01@legacy01@legacy@compute has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING t0@system has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING ra@system has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING dec@system has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING epoch@system has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING distance@system has no phoebe 1 corollary
Mon, 29 Oct 2018 10:10 IO           WARNING hierarchy@system has no phoebe 1 corollary
<ParameterSet: 6 parameters | kinds: rv, lc>

Plotting

Light Curve

afig, mplfig = b.filter(dataset='lc01').plot(c={'phoebe2model': 'g', 'phoebe1model': 'r'}, linestyle='solid',
                                             legend=True, show=True)
../../_images/legacy_contact_binary_20_0.png

Now let’s plot the residuals between these two models

artist, = plt.plot(b.get_value('fluxes@lc01@phoebe2model') - b.get_value('fluxes@lc01@phoebe1model'), 'g-')
artist = plt.axhline(0.0, linestyle='dashed', color='k')
../../_images/legacy_contact_binary_22_0.png

RVs

afig, mplfig = b['rv01'].plot(c={'phoebe2model': 'g', 'phoebe1model': 'r'}, linestyle='solid',
                              legend=True, show=True)
../../_images/legacy_contact_binary_24_0.png
artist, = plt.plot(b.get_value('rvs@primary@phoebe2model', ) - b.get_value('rvs@primary@phoebe1model'), color='g', ls=':')
artist, = plt.plot(b.get_value('rvs@secondary@phoebe2model') - b.get_value('rvs@secondary@phoebe1model'), color='g', ls='-.')
artist = plt.axhline(0.0, linestyle='dashed', color='k')
ylim = plt.ylim(-0.3, 0.3)
../../_images/legacy_contact_binary_25_0.png
Prev: Minimal Contact Binary System Next: Single Star with Spots
.
Last update: 10/29/2018 9:20 a.m. (CET)