set_binary

Module

Description

This module is contains utilities for setting up binaries

Our conventions for binary orbital parameters are consistent with those produced by the imorbel code (Pearce, Wyatt & Kennedy 2015) which can be used to produce orbits matching observed orbital arcs of binary companions on the sky

References:

Eggleton (1983) ApJ 268, 368-369 (ref:eggleton83) Lucy (2014), A&A 563, A126 Pearce, Wyatt & Kennedy (2015), MNRAS 448, 3679 https://en.wikipedia.org/wiki/Orbital_elements

Owner:

Daniel Price

Runtime parameters:

None

Dependencies:

binaryutils

Quick access

Variables:

get_cross_product, get_eccentricity_vector_sinks, ierr_hier1, ierr_hier2, ierr_missstar, ierr_omegasubst, ierr_semi, ierr_subststar, rotate

Routines:

get_a_from_period(), get_eccentricity_vector(), get_mean_angmom_vector(), l1_point(), rochelobe_estimate(), set_binary()

Variables

  • setbinary/get_cross_product [private]
  • setbinary/get_eccentricity_vector_sinks [private]
  • setbinary/ierr_ecc [integer,private/parameter/optional/default=3]
  • setbinary/ierr_hier1 [integer,private/parameter/optional/default=5]
  • setbinary/ierr_hier2 [integer,private/parameter/optional/default=6]
  • setbinary/ierr_m1 [integer,private/parameter/optional/default=1]
  • setbinary/ierr_m2 [integer,private/parameter/optional/default=2]
  • setbinary/ierr_missstar [integer,private/parameter/optional/default=9]
  • setbinary/ierr_omegasubst [integer,private/parameter/optional/default=8]
  • setbinary/ierr_semi [integer,private/parameter/optional/default=4]
  • setbinary/ierr_subststar [integer,private/parameter/optional/default=7]
  • setbinary/pi [real,private/parameter/optional/default=4.*atan(1.)]
  • setbinary/rotate [private]

Subroutines and functions

subroutine  setbinary/set_binary(m1, m2, semimajoraxis, eccentricity, accretion_radius1, accretion_radius2, xyzmh_ptmass, vxyz_ptmass, nptmass, ierr[, omega_corotate[, posang_ascnode[, arg_peri[, incl[, f[, mean_anomaly[, verbose]]]]]]])
Parameters:
  • m1 [real,in]

  • m2 [real,in]

  • semimajoraxis [real,in]

  • eccentricity [real,in]

  • accretion_radius1 [real,in]

  • accretion_radius2 [real,in]

  • xyzmh_ptmass (,) [real,inout]

  • vxyz_ptmass (,) [real,inout]

  • nptmass [integer,inout]

  • ierr [integer,out]

  • omega_corotate [real,out,]

  • posang_ascnode [real,in,]

  • arg_peri [real,in,]

  • incl [real,in,]

  • f [real,in,]

  • mean_anomaly [real,in,]

  • verbose [logical,in,]

Use :

binaryutils (get_e(), get_e_from_mean_anomaly(), get_e_from_true_anomaly())

Call to:

rochelobe_estimate(), get_e_from_true_anomaly(), get_e_from_mean_anomaly(), get_e()

function  setbinary/rochelobe_estimate(m1, m2, sep)
Parameters:
  • m1 [real,in]

  • m2 [real,in]

  • sep [real,in]

Return:

rochelobe_estimate [real]

Called from:

set_binary()

function  setbinary/l1_point(qinv)
Parameters:

qinv [real,in]

Return:

l1_point [real]

function  setbinary/get_a_from_period(m1, m2, period)
Parameters:
  • m1 [real,in]

  • m2 [real,in]

  • period [real,in]

Return:

a [real]

function  setbinary/get_eccentricity_vector(m1, m2, x1, x2, v1, v2)
Parameters:
  • m1 [real,in]

  • m2 [real,in] :: “standard gravitational parameter”

  • x1 (3) [real,in]

  • x2 (3) [real,in]

  • v1 (3) [real,in]

  • v2 (3) [real,in]

Return:

get_eccentricity_vector (3) [real]

Called from:

get_eccentricity_vector()

Call to:

get_eccentricity_vector()

function  setbinary/get_mean_angmom_vector(n, xyz, vxyz)
Parameters:
  • n [integer,in]

  • xyz (,) [real,in]

  • vxyz (,) [real,in]

Return:

l (3) [real]