:py:mod:`gnome.weatherers.natural_dispersion` ============================================= .. py:module:: gnome.weatherers.natural_dispersion .. autoapi-nested-parse:: model dispersion process Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: gnome.weatherers.natural_dispersion.NaturalDispersion Attributes ~~~~~~~~~~ .. autoapisummary:: gnome.weatherers.natural_dispersion.g .. py:data:: g .. py:class:: NaturalDispersion(waves=None, water=None, algorithm='D&S1988', **kwargs) Bases: :py:obj:`gnome.weatherers.Weatherer` Base Weathering agent. This is almost exactly like the base Mover in the way that it acts upon the model. It contains the same API as the mover as well. Not Serializable since it does is partial implementation :param conditions: gnome.environment.Conditions object which contains things like water temperature :param waves: waves object for obtaining wave_height, etc at given time .. py:attribute:: _schema .. py:attribute:: _ref_as :value: 'dispersion' .. py:attribute:: _req_refs :value: ['waves', 'water'] .. py:attribute:: _algorithms_opts .. py:method:: prepare_for_model_run(sc) add dispersion and sedimentation keys to mass_balance Assumes all spills have the same type of oil .. py:method:: prepare_for_model_step(sc, time_step, model_time) Set/update arrays used by dispersion module for this timestep: .. py:method:: weather_elements(sc, time_step, model_time) weather elements over time_step - sets 'natural_dispersion' and 'sedimentation' in sc.mass_balance .. py:method:: disperse_oil_Li(time_step, frac_water, mass, viscosity, density, area, disp_out, sed_out, droplet_avg_size, frac_breaking_waves, disp_wave_energy, wave_height, visc_w, rho_w, sediment, V_entrain, ka) Oil natural dispersion algorithm developed by Li et al., (2017) .. py:method:: disperse_oil_DS(time_step, frac_water, mass, viscosity, density, area, disp_out, sed_out, droplet_avg_size, frac_breaking_waves, disp_wave_energy, wave_height, visc_w, rho_w, sediment, V_entrain, ka) Oil natural dispersion model developed by Delvgine and Sweeney (1988) Right now we just want to recreate what the lib_gnome dispersion function is doing...but in python. This will allow us to more easily refactor, and we can always then put it back into lib_gnome if necessary. (TODO: Not quite finished with the function yet.)