import numpy from numpy import random import time as pytime import os.path from amuse.units import quantities from amuse.units import units from amuse.units import nbody_system from amuse.units.core import named_unit from amuse.units.optparse import OptionParser from amuse.datamodel import Particle, Particles from amuse.community.kepler.interface import Kepler from amuse.io import write_set_to_file MEarth = named_unit("MEarth", "MEarth", 5.97219e+24 * units.kg) def get_mass(a, surface_density_factor=1.0, mstar=1 | units.MSun): s = surface_density_factor * (10.0 | (units.g / units.cm**2)) z = 2 * numpy.pi * a * s * ((a / (5.0 | units.AU))**-(3.0 / 2.0)) * 4.0 * a return (2.0 * z**3 / (3.0 * mstar)).sqrt() def get_orbital_separation(mass, a, mstar=1 | units.MSun): return 10.0 * a * (2 * mass / (3.0 * mstar))**(1.0 / 3.0) def get_mass_and_orbital_separation(a, surface_density_factor=1.0, mstar=1 | units.MSun):
from amuse.units.units import * from amuse.units.core import named_unit from amuse.units.quantities import zero mm = milli(m) Celsius = named_unit("Celsius", "celsius", K)
from amuse.units.units import * from amuse.units.core import named_unit from amuse.units.quantities import zero Rearth = named('Earth radius', 'Rearth', 6371.0088 * km) Sv = named_unit("Sverdrup", "Sv", 1.e6 * m**3 / s) dyn = named_unit("Dyne", "dyn", 1.e-5 * N) bar = named_unit("Bar", "bar", 1.e5 * Pa) dbar = deci(bar) mbar = milli(bar) salt = named("absolute reference salinity", "Sr", g / kg) psu = named("practical salinity unit", "psu", (35.16504 / 35.) * salt) nautical_mile = named_unit("Nautical Mile", "nMile", 1852. * m) knot = named_unit("Knot", "knot", nautical_mile / hour) Celsius = named_unit("Celsius", "celsius", K) shu = named("specific humidity unit", "shu", kg / kg) ahu = named("absolute humidity unit", "ahu", kg / m**3) rhu = named("relative humidity unit", "rhu", percent) mfu = named("mass fraction unit", "mfu", kg / kg) ccu = named("cloud coverage unit", "ccu", m**2 / m**2) ppb = named("parts per billion", "ppb", 1.e-9 * none) vsmc = named("volumetric soil moisture content", "vsmc", m**3 / m**3)
Not all of the Amuse & Astropy quantities match exactly """ __author__ = "Nathaniel Starkman" __all__ = [] ############################################################################## # IMPORTS # GENERAL import amuse.units.units as _amu import amuse.units.core as _core from amuse.units.units import * # so this module is a drop-in for amuse units ############################################################################### # UNITS mas = _core.named_unit("milliarcsecond", "mas", _amu.arcsec / 1000) ############################################################################### # __ALL__ # __all__ += _amu.__all__ __all__ += ["mas"] ############################################################################## # END
import time as pytime import os.path from amuse.units import quantities from amuse.units import units from amuse.units import nbody_system from amuse.units.core import named_unit from amuse.units.optparse import OptionParser from amuse.datamodel import Particle, Particles from amuse.community.kepler.interface import Kepler from amuse.io import write_set_to_file MEarth = named_unit("MEarth", "MEarth", 5.97219e+24 * units.kg) def get_mass(a, surface_density_factor = 1.0, mstar = 1 | units.MSun): s = surface_density_factor * (10.0 | (units.g / units.cm**2)) z = 2 * numpy.pi * a * s * ((a / (5.0|units.AU) ) ** -(3.0/2.0)) * 4.0 * a return (2.0 * z ** 3 / (3.0 * mstar)).sqrt() def get_orbital_separation(mass, a, mstar = 1 | units.MSun): return 10.0 * a * (2*mass/(3.0 * mstar)) ** (1.0/3.0) def get_mass_and_orbital_separation(a, surface_density_factor = 1.0, mstar = 1 | units.MSun): mass = get_mass(a, surface_density_factor = surface_density_factor, mstar = mstar) orbital_separation = get_orbital_separation(mass, a, mstar = mstar) return mass, orbital_separation