opendrift.models.openoil.adios.util.estimations
Oil Properties Estimations.
These are primitive estimation algorithms to be used primarily for estimating oil properties based on known measured values.
Module Contents
Functions

Source: Adios2 

Source: Adios2 

Source: Adios2 

Calculate the volumetric expansion coefficient of a liquid 

Specific Gravity of Oil with respect to water at 15C (definition used 

Source: Definition of kinematic viscosity. 

Source: Adios2 









Source: Fingas empirical formulas that are based upon analysis 

Source: Fingas empirical formulas that are based upon analysis 

Source: Adios2 & Jones R. (1997), 

Generate distillation cut fractional masses from the 

Generate a flat distribution of N distillation cut fractional masses. 

Source: Dr. M. R. Riazi, 

Source: Dr. M. R. Riazi, 

Source: Recommendation from Bill Lehr 

Source: Recommendation from Bill Lehr 

Source: Dr. M. R. Riazi, 





Note: We pass in a boiling point to remain consistent with the other 

Note: We pass in a boiling point to remain consistent with the other 

Source: Dr. M. R. Riazi, 

Source: Dr. M. R. Riazi, 

Source: Dr. M. R. Riazi, 

Source: Dr. M. R. Riazi, 

Source: Adios2 

Source: Dr. M. R. Riazi, 

Source: Reference: Chang A., K. Pashakanti, and Y. Liu (2012), 

Source: Reference: Chang A., K. Pashakanti, and Y. Liu (2012), 

Source: Adios2 
Source: Adios2 
 opendrift.models.openoil.adios.util.estimations.density_from_api(api)[source]
Source: Adios2
API is a measure of how heavy an oil is compared to water. So it is a different unit for specific gravity
 opendrift.models.openoil.adios.util.estimations.density_at_temp(ref_density, ref_temp_k, temp_k, k_rho_t=0.0008)[source]
Source: Adios2
If we have an oil density at a reference temperature, then we can estimate what its density might be at another temperature.
NOTE: need a reference for the coefficient of expansion
 opendrift.models.openoil.adios.util.estimations.vol_expansion_coeff(rho_0, t_0, rho_1, t_1)[source]
Calculate the volumetric expansion coefficient of a liquid based on a set of two densities and their associated temperatures.
 opendrift.models.openoil.adios.util.estimations.specific_gravity(density)[source]
Specific Gravity of Oil with respect to water at 15C (definition used for API gravity)
 opendrift.models.openoil.adios.util.estimations.dvis_to_kvis(dvis, density)[source]
Source: Definition of kinematic viscosity.
Conversion from dynamic viscosity to kinematic viscosity.
 opendrift.models.openoil.adios.util.estimations.kvis_at_temp(ref_kvis, ref_temp_k, temp_k, k_v2=2416.0)[source]
Source: Adios2
If we have an oil kinematic viscosity at a reference temperature, then we can estimate what its viscosity might be at another temperature.
 Note: Bill’s most recent viscosity document, and an analysis of the
multiKVis oils in our oil library suggest that a value of 2416.0 (Abu Eishah 1999) would be a good default value for k_v2.
 opendrift.models.openoil.adios.util.estimations.resin_fraction(density, viscosity, f_other=0.0)[source]
 opendrift.models.openoil.adios.util.estimations.asphaltene_fraction(density, viscosity, f_other=0.0)[source]
 opendrift.models.openoil.adios.util.estimations.saturates_fraction(density, viscosity, f_other=0.0)[source]
 opendrift.models.openoil.adios.util.estimations._A_coeff(density)[source]
 Source: Fingas empirical formulas that are based upon analysis
of ESTC oil properties database.
This is an intermediate calculation for a coefficient to be used to generate the inert mass fractions of an oil.
 opendrift.models.openoil.adios.util.estimations._B_coeff(density, viscosity)[source]
 Source: Fingas empirical formulas that are based upon analysis
of ESTC oil properties database.
This is an intermediate calculation for a coefficient to be used to generate the inert mass fractions of an oil.
 opendrift.models.openoil.adios.util.estimations.cut_temps_from_api(api, N=5)[source]
 Source: Adios2 & Jones R. (1997),
A Simplified Pseudocomponent Oil Evaporation Model, Proceedings of the 20th Arctic and Marine Oil Spill Program, Vancouver, CA, Vol. 1, pp. 4362
Generate distillation cut temperatures from the oil’s API.
 opendrift.models.openoil.adios.util.estimations.fmasses_from_cuts(f_evap_i)[source]
Generate distillation cut fractional masses from the cumulative distillation fractions in the cut data.
 opendrift.models.openoil.adios.util.estimations.fmasses_flat_dist(f_res, f_asph, N=5)[source]
Generate a flat distribution of N distillation cut fractional masses.
 opendrift.models.openoil.adios.util.estimations.saturate_mol_wt(boiling_point)[source]
 Source: Dr. M. R. Riazi,
Characterization and Properties of Petroleum Fractions eq. 2.48 and table 2.6
 Note: for this to actually work in every case, we need to limit
our temperature to:  T_i < 1070.0  T_i >  T_i > 1070.0  exp(6.98291) (roughly about == 8.06)
 opendrift.models.openoil.adios.util.estimations.aromatic_mol_wt(boiling_point)[source]
 Source: Dr. M. R. Riazi,
Characterization and Properties of Petroleum Fractions eq. 2.48 and table 2.6
 Note: for this to actually work in every case, we need to limit
our temperature to:  T_i < 1015.0  T_i > 1015.0  exp(6.911) (roughly about == 11.76)
 opendrift.models.openoil.adios.util.estimations.resin_mol_wt(_boiling_point)[source]
Source: Recommendation from Bill Lehr
 Note: We pass in a boiling point to remain consistent with the other
molecular weight functions, even though it is not used.
 Note: We return a scalar in all cases. This should still work with
numpy array operations, but probably not with regular Python sequence types. We can fix this if the need arises.
 opendrift.models.openoil.adios.util.estimations.asphaltene_mol_wt(_boiling_point)[source]
Source: Recommendation from Bill Lehr
 Note: We pass in a boiling point to remain consistent with the other
molecular weight functions, even though it is not used.
 Note: We return a scalar in all cases. This should still work with
numpy array operations, but probably not with regular Python sequence types. We can fix this if the need arises.
 opendrift.models.openoil.adios.util.estimations.trial_densities(boiling_points, watson_factor)[source]
 Source: Dr. M. R. Riazi,
Characterization and Properties of Petroleum Fractions eq. 2.13 and table 9.6
Generate an initial estimate of volatile oil components based on boiling points and the Watson Characterization Factor. This is only good for estimating Aromatics & Saturates.
 opendrift.models.openoil.adios.util.estimations.resin_densities(_boiling_points)[source]
 Note: We pass in a boiling point to remain consistent with the other
molecular weight functions, even though it is not used.
 Note: We return a scalar in all cases. This should still work with
numpy array operations, but probably not with regular Python sequence types. We can fix this if the need arises.
 opendrift.models.openoil.adios.util.estimations.asphaltene_densities(_boiling_points)[source]
 Note: We pass in a boiling point to remain consistent with the other
molecular weight functions, even though it is not used.
 Note: We return a scalar in all cases. This should still work with
numpy array operations, but probably not with regular Python sequence types. We can fix this if the need arises.
 opendrift.models.openoil.adios.util.estimations._hydrocarbon_characterization_param(specific_gravity, temp_k)[source]
 Source: Dr. M. R. Riazi,
Characterization and Properties of Petroleum Fractions eq. 2.115
 Source: Huang, P. K. (1977),
Characterization and Thermodynamic Correlations for Undefined Hydrocarbon Mixtures, Ph.D. Dissertation Pennsylvania State University, University Park, PA,
This is a characterization parameter, designated as I, that was first used by Huang to correlate hydrocarbon properties
 opendrift.models.openoil.adios.util.estimations.refractive_index(hc_char_param)[source]
 Source: Dr. M. R. Riazi,
Characterization and Properties of Petroleum Fractions eq. 2.114
This is the refractive index of liquid hydrocarbons at 20C, correlated through parameter I
 opendrift.models.openoil.adios.util.estimations._hydrocarbon_grouping_param(mol_wt, specific_gravity, temp_k)[source]
 Source: Dr. M. R. Riazi,
Characterization and Properties of Petroleum Fractions eq. 3.50
This is a hydrocarbon grouping parameter correlated through the molecular weight and the refractive index. Riazi claims that it:  separates paraffins and aromatics  identifies various hydrocarbon types
 opendrift.models.openoil.adios.util.estimations.saturate_mass_fraction(fmass_i, mol_wt, specific_gravity, temp_k)[source]
 Source: Dr. M. R. Riazi,
Characterization and Properties of Petroleum Fractions eqs. 3.77 and 3.78
For a petroleum hydrocarbon fraction in which the molecular weight, specific gravity, and boiling point are known, we can estimate the fraction of that substance which contains saturate compounds. When forming his equations, Riazi deals with the PNA composition, which essentially means Paraffins, Naphthenes, and Aromatics. And for our purposes, the saturates include the paraffins and naphthenes.
 opendrift.models.openoil.adios.util.estimations.pour_point_from_kvis(ref_kvis, ref_temp_k)[source]
Source: Adios2
If we have an oil kinematic viscosity at a reference temperature, then we can estimate what its pour point might be.
 opendrift.models.openoil.adios.util.estimations.pour_point_from_sg_mw_kvis(specific_gravity, mol_wt, kvis)[source]
 Source: Dr. M. R. Riazi,
Characterization and Properties of Petroleum Fractions eq. 3.119
Another way of estimating pour point. These inputs may not be available for most imported oil records.
 opendrift.models.openoil.adios.util.estimations.flash_point_from_bp(temp_k)[source]
 Source: Reference: Chang A., K. Pashakanti, and Y. Liu (2012),
Integrated Process Modeling and Optimization, Wiley Verlag.
 opendrift.models.openoil.adios.util.estimations.flash_point_from_api(api)[source]
 Source: Reference: Chang A., K. Pashakanti, and Y. Liu (2012),
Integrated Process Modeling and Optimization, Wiley Verlag.