extern_binary

Module

Description

This module contains routines relating to the computation

of a gravitational force/potential from a central binary system (adapted from a routine by Graham Wynn)

References:

None

Owner:

Daniel Price

Runtime parameters:
  • accradius1 : accretion radius of primary

  • accradius2 : accretion radius of secondary (if iexternalforce=binary)

  • eps_soft1 : Plummer softening of primary

  • eps_soft2 : Plummer softening of secondary

  • mass2 : m2 of central binary system (if iexternalforce=binary)

  • ramp : ramp up mass of secondary over first 5 orbits?

Dependencies:

dump_utils, infile_utils, io, physcon

Quick access

Variables:

a0, accradius1, accradius2, accretedmass1, accretedmass2, direction, eps_soft1, eps_soft2, mass1, mass2, mass2_temp, ramp, surface_force, x1, x2, y1, y2

Routines:

binary_accreted(), binary_force(), binary_posvel(), read_headeropts_externbinary(), read_options_externbinary(), update_binary(), write_headeropts_externbinary(), write_options_externbinary()

Variables

  • extern_binary/a0 [real,public/optional/default=0.0]
  • extern_binary/accradius1 [real,public/optional/default=0.5]
  • extern_binary/accradius2 [real,public/optional/default=0.5]
  • extern_binary/accretedmass1 [real,public/optional/default=0.0]
  • extern_binary/accretedmass2 [real,public/optional/default=0.0]
  • extern_binary/direction [real,public/optional/default=0.0]
  • extern_binary/eps_soft1 [real,public/optional/default=0.0]
  • extern_binary/eps_soft2 [real,public/optional/default=0.0]
  • extern_binary/mass1 [real,public/optional/default=1.0]
  • extern_binary/mass2 [real,public/optional/default=0.001]
  • extern_binary/mass2_temp [real,private]
  • extern_binary/ramp [logical,public/optional/default=.false.]
  • extern_binary/surface_force [logical,public/optional/default=.false.]
  • extern_binary/x1 [real,private]
  • extern_binary/x2 [real,private]
  • extern_binary/y1 [real,private]
  • extern_binary/y2 [real,private]

Subroutines and functions

subroutine  extern_binary/update_binary(ti)
Parameters:

ti [real,in]

Use :

physcon (pi())

subroutine  extern_binary/binary_force(xi, yi, zi, ti, fxi, fyi, fzi, phi)
Parameters:
  • xi [real,in]

  • yi [real,in]

  • zi [real,in]

  • ti [real,in]

  • fxi [real,out]

  • fyi [real,out]

  • fzi [real,out]

  • phi [real,out]

subroutine  extern_binary/binary_posvel(ti, posmh, vels)
Parameters:
  • ti [real,in]

  • posmh (10) [real,out]

  • vels (6) [real,out]

Called from:

write_headeropts_externbinary()

function  extern_binary/binary_accreted(xi, yi, zi, mi, ti)
Parameters:
  • xi [real,in]

  • yi [real,in]

  • zi [real,in]

  • mi [real,in]

  • ti [real,in]

Return:

binary_accreted [logical]

subroutine  extern_binary/write_options_externbinary(iunit)
Parameters:

iunit [integer,in]

Use :

infile_utils (write_inopt())

subroutine  extern_binary/read_options_externbinary(name, valstring, imatch, igotall, ierr)
Parameters:
  • name [character,in]

  • valstring [character,in]

  • imatch [logical,out]

  • igotall [logical,out]

  • ierr [integer,out]

Use :

io (fatal(), error())

subroutine  extern_binary/write_headeropts_externbinary(hdr, time, ierr)
Parameters:
  • hdr [dump_h,inout]

  • time [real,in]

  • ierr [integer,out]

Use :

dump_utils (lentag(), dump_h(), add_to_rheader())

Call to:

binary_posvel(), add_to_rheader()

subroutine  extern_binary/read_headeropts_externbinary(hdr, ierr)
Parameters:
  • hdr [dump_h,in]

  • ierr [integer,out]

Use :

dump_utils (dump_h(), extract())