Spots: Short Timescale Approximation

Simple relations for changes in stellar fundamental parameters resulting from the presence of spots under the short timescale approximation. Influence on the stellar bolometric luminosity relative to that of an unspotted star is \begin{equation} \zeta = 1 - \varrho (1 - \varpi^4). \end{equation} This leads to the relation between short timescale spots and changes in the average photospheric temperature of a star, \begin{equation} \frac{T_{\rm avg}}{T_{\rm eff}} = \zeta^{1/4}. \end{equation} We can now explore how luminosity variations change as a function of $\varrho$ and $\varpi$.


In [1]:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

In [11]:
# initialize some spot properties
varrho = np.arange(0.0, 1.0, 0.01)
varpi  = np.arange(0.0, 1.0, 0.01)
zetas  = np.arange(0.1, 1.0, 0.1)

First we can look at combinations of spot areal coverage and spot temperature contrast.


In [3]:
def arealCoverage(zeta, varpis):
    return (1. - zeta)/(1. - varpis**4)

In [22]:
fig, ax = plt.subplots(1, 1, figsize=(6., 6.))

for zeta in zetas:
    ax.plot(varpi, arealCoverage(zeta, varpi), '-', lw=3, c='#0094b2')

ax.grid(True)
ax.set_xlim(0.0, 1.0)
ax.set_ylim(0.0, 1.0)
ax.set_xlabel('Temperature Contrast $\\varpi$', fontsize=16., family='serif')
ax.set_ylabel('Areal Coverage $\\varrho$', fontsize=16., family='serif')
ax.tick_params(which='major', axis='both', length=15., labelsize=16.)


Moving on to the average surface temperature,


In [25]:
zetas  = np.arange(0.0, 1.0, 0.01)

fig, ax = plt.subplots(1, 1, figsize=(6., 6.))

ax.plot(zetas, zetas**0.25, '-', lw=3, c='#0094b2')

ax.grid(True)
ax.set_xlim(0.0, 1.0)
ax.set_ylim(0.0, 1.0)
ax.set_xlabel('Luminosity Ratio $\\zeta$', fontsize=16., family='serif')
ax.set_ylabel('Average Surface Temperature Ratio', fontsize=16., family='serif')
ax.tick_params(which='major', axis='both', length=15., labelsize=16.)



In [36]:
zetas = np.arange(0.1, 1.0, 0.1)
def arealCoverage(zeta, varpis):
    return (1. - zeta**0.25)/(1. - varpis**4)

In [37]:
fig, ax = plt.subplots(1, 1, figsize=(6., 6.))

for zeta in zetas:
    ax.plot(varpi, arealCoverage(zeta, varpi), '-', lw=3, c='#0094b2')

ax.grid(True)
ax.set_xlim(0.0, 1.0)
ax.set_ylim(0.0, 1.0)
ax.set_xlabel('Temperature Contrast $\\varpi$', fontsize=16., family='serif')
ax.set_ylabel('Areal Coverage $\\varrho$', fontsize=16., family='serif')
ax.tick_params(which='major', axis='both', length=15., labelsize=16.)


For a range of stellar effective temperatures, this results in an average surface temperature anomaly (in K).


In [34]:
Teffs = np.arange(3000., 7000.)

fig, ax = plt.subplots(1, 1, figsize=(8., 4.))

for zeta in zetas:
    ax.plot(Teffs, Teffs*(zeta**0.25 - 1.), '-', lw=3, c='#0094b2')

ax.grid(True)
#ax.set_xlim(0.0, 1.0)
#ax.set_ylim(0.0, 1.0)
ax.set_xlabel('Original Effective Temperature (K)', fontsize=16., family='serif')
ax.set_ylabel('Mean Temperature Anomaly (K)', fontsize=16., family='serif')
ax.tick_params(which='major', axis='both', length=15., labelsize=16.)



In [ ]: