gnome.utilities.weathering

weathering package

This is where we keep a reasonably organized assortment of algorithms for calculating behavior due to weathering.

Submodules

Package Contents

Classes

LeeHuibers

The combination of correlations by Huibers and Katritzky (1998)

BanerjeeHuibers

The combination of correlations by Huibers and Katritzky (1998)

HuibersLehr

Using Huibers & Katrisky for solubility.

Riazi

Using Riazi (2005), aromatic properties are approximated

Stokes

PiersonMoskowitz

Pierson-Moskowitz spectrum for fully developed, wind induced,

DelvigneSweeney

Delvigne and Sweeney (1988) computes the fraction of

DingFarmer

ZhaoToba

Zhao and Toba (2001) percent whitecap coverage formula

Adios2

This is for any Adios 2 algorithms for which a scientific reference

LehrSimecek

This based on formulas by:

class gnome.utilities.weathering.LeeHuibers

Bases: object

The combination of correlations by Huibers and Katritzky (1998) and Lee et al (1992) to estimate the correlation between a specific aromatic hydrocarbon’s density and molecular weight with its partition coefficient.

rho_arom = density of aromatic

mol_wt = molecular weight

s = solubility

s = Huibers(rho_arom, mol_wt)

k_ow = Lee(s)

= Lee(Huibers(rho_arom, mol_wt))

We calibrate an empiric coefficient A with the measured values of Toluene.

A
classmethod partition_coeff(mol_wt, density)
Parameters:
  • mol_wt – Molecular weight in kg/kmole

  • density – Density in kg/m^3

class gnome.utilities.weathering.BanerjeeHuibers

Bases: object

The combination of correlations by Huibers and Katritzky (1998) and Banerjee et al (1980) to estimate the correlation between a specific aromatic hydrocarbon’s density and molecular weight with its partition coefficient.

rho_arom = density of aromatic

mol_wt = molecular weight

s = solubility

s = Huibers(rho_arom, mol_wt)

k_ow = Banerjee(s)

= Banerjee(Huibers(rho_arom, mol_wt))

classmethod partition_coeff(mol_wt, density)
Parameters:
  • mol_wt – Molecular weight in kg/kmole

  • density – Density in kg/m^3

class gnome.utilities.weathering.HuibersLehr

Bases: object

Using Huibers & Katrisky for solubility. Using EPA report (2012), and tweaking by Bill so that results better match measured values, to estimate the correlation between a specific aromatic hydrocarbon’s density and molecular weight with its partition coefficient.

rho_arom = density of aromatic mol_wt = molecular weight S_w = solubility

S_w = Huibers(rho_arom, mol_wt) k_ow = 5.45 * s**(-.89) (EPA) k_ow = 10 * s**(-.95) (Lehr)

classmethod partition_coeff(mol_wt, density)
Parameters:
  • mol_wt – Molecular weight in kg/kmole

  • density – Density in kg/m^3

class gnome.utilities.weathering.Riazi

Bases: object

Using Riazi (2005), aromatic properties are approximated from distillation cut temperature (degrees Kelvin)

classmethod mol_wt(temp)

returns molecular weight in kg/kmole

classmethod density(temp)

returns density in kg/m^3

classmethod molar_volume(temp)

returns molar_volume in m^3/kmole

class gnome.utilities.weathering.Stokes

Bases: object

static water_phase_xfer_velocity(oil_water_rho_delta, diameter)

water phase transfer velocity k_w (m/s)

This assumes spherical droplets with a diameter < 400 microns.

Bigger droplets will be distorted and rise more rapidly, and they are presumed to rise so quickly that little dissolution takes place for them except as part of the dissolution from the surface slick.

Parameters:
  • oil_water_rho_delta – density difference (unit-less)

  • diameter – droplet diameter (m)

Returns:

transfer velocity (m/s)

class gnome.utilities.weathering.PiersonMoskowitz

Bases: object

Pierson-Moskowitz spectrum for fully developed, wind induced, surface waves. This relates significant wave height to U_10 (m/s), which is the wind speed at 10m elevation.

classmethod significant_wave_height(wind_speed)

significant wave height H_13 (m)

classmethod peak_wave_period(wind_speed)

peak wave period T_w (s)

classmethod peak_wave_speed(wind_speed)

peak wave speed

classmethod peak_angular_frequency(wind_speed)

peak angular frequency (1/s)

class gnome.utilities.weathering.DelvigneSweeney

Bases: object

Delvigne and Sweeney (1988) computes the fraction of breaking waves f_bw. DS assumes no breaking waves for winds less than 10 knots.

static breaking_waves_frac(wind_speed, peak_wave_period)

Field observations of Holthuysen and Herbers (1986) and Toba et al. (1971) lead to a simple empirical relation for spilling breakers in deep water.

class gnome.utilities.weathering.DingFarmer

Bases: object

classmethod calm_between_wave_breaks(breaking_waves_frac, peak_wave_period)

The time available (calm period) for the droplets to re-float

D&F note that the duration of the breaking event is about half the wave period, presumably 0.5 * T_w, although this is unclear from their text.

classmethod refloat_time(significant_wave_height, water_phase_xfer_velocity)

Assuming that the ‘average’ droplet is inserted to a depth of 0.75 * H_13, calculate the average re-float time T_rfl for the droplet.

classmethod water_column_time_fraction(breaking_waves_frac, peak_wave_period, significant_wave_height, water_phase_xfer_velocity)

The time fraction that the droplet spends in the water column f_wc

class gnome.utilities.weathering.ZhaoToba

Bases: object

Zhao and Toba (2001) percent whitecap coverage formula They use a Reynolds-like dimensionless number rather than an integer power of the wind speed fits the data better

classmethod percent_whitecap_coverage(wind_speed)

percent whitecap coverage drag coefficient reduces linearly with wind speed for winds less than 2.4 m/s

class gnome.utilities.weathering.Adios2

Bases: object

This is for any Adios 2 algorithms for which a scientific reference is not documented.

Note: We should really try to look up the references for these and

move them to an appropriately referenced class.

static wave_height(U, fetch)

compute the wave height

Parameters:

U (floating point number in m/s units) – wind speed

Returns Hrms:

RMS wave height in meters

static wind_speed_from_height(H)

Compute the wind speed to use for the whitecap fraction This is the reverse of wave_height() - Used if the wave height is specified. - Unlimited fetch is assumed:

Parameters:

H – given wave height.

static mean_wave_period(U, wave_height, fetch)

Compute the mean wave period

fixme: check for discontinuity at large fetch..

Is this s bit low??? 32 m/s -> T=15.7 s

static dissipative_wave_energy(water_density, H)

Compute the dissipative wave energy

units? – should be: 1/s^3

i.e. energy disspiation rate per m^2 so water density is in there – but something else is up does the constant have units?

class gnome.utilities.weathering.LehrSimecek

Bases: object

This based on formulas by: Lehr and Simecek-Beatty

static whitecap_fraction(U, salinity)

compute the white capping fraction

This based on Lehr and Simecek-Beatty The Relation of Langmuir Circulation Processes to the Standard Oil Spill Spreading, Dispersion, and Transport Algorithms Spill Sci. and Tech. Bull, 6:247-253 (2000) (maybe typo – didn’t match)

Additionally: Ocean Waves Breaking and Marine Aerosol Fluxes

By Stanislaw R. Massel