barbagroup / geoclaw

A fork of GeoClaw (http://www.clawpack.org/geoclaw) for hydrocarbon overland flow
BSD 3-Clause "New" or "Revised" License
3 stars 3 forks source link

Evaporation models #16

Closed piyueh closed 5 years ago

piyueh commented 5 years ago

Note: Docker image for this PR: use docker pull barbagroup/landspill:PR16

This PR enables the evaporation in land-spill simulations. Currently, there are only two models:

  1. Fingas' model of natural log law
  2. Fingas' model of square root law

Fingas' models treat the whole spill as a single continuous volume. This means, at an arbitrary time point, the evaporation happens at both on-field oil and remained oil in a pipeline. And the evaporation rate is the same regardless it's inside or outside the pipeline. Besides this assumption from Fingas' model, another assumption made by us is that the evaporation in a pipeline does not affect the spill rate at a rupture point. So the volume evaporated from inside the pipeline only shortens the period of the spilling from a rupture point.

The volume that has flown into water bodies, if there is any, also undergoes evaporation. However, the evaporation of this part won't affect the flow simulations on land. It only affects the output results of the removed volumes (the oil volumes in water bodies).

A result file, evaporated.dat, will be output at the end of a simulation. The file has a number indicating the total volume evaporated in the simulation. This provides a quick check to the conservation of volumes: total evaporated + total removed + volume remained on land = supposed spilled volume from the pipeline.

Settings of evaporation in setrun.py

Evaporation data set is a member under LandSpillData object. For example, assume that landspill is an instance of LandSpillData, then to access the evaporation data, use landspill.evaporation. There are two required setting in evaporation:

1. landspill.evaporation.type

2. landspill.evaporation.coefficients

Due to that we only have Fingas' model now, there should be two coefficients. So landspill.evaporation.coefficients should be a length-two list if the type is not 0.

In Fingas' models, another variable is ambient temperature. This temperature will be obtained from landspill.ambient_temperature automatically in the solver so that the ambient temperature can be the same across several different modules.

mandli commented 5 years ago

It kind of looks like the diff isn't working quite right as there appear to be some duplicate commits.

piyueh commented 5 years ago

Hi @mandli, thank you for reviewing. I forced the PR to do a refreshing. I think now this PR shows correct diff.

piyueh commented 5 years ago

Thank you @mandli !