This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

OpenFlow FLOOD underwater oil spill

Hello.
I am new to OpenFlow and would like to simulate an underwater oil spill. I know that I can use the Lagrangian module, I would like to know what modules I should use for the process.
Thank you.

  • Hello Andrés,

    To simulate an underwater oil spill you'll need first to setup your 3D hydrodynamic model of the region around the spill. 

    After that you can setup the Lagrangian module, defining an "origin" (i.e. a source or emission of particles representing the oil spill). 

    In addition to basic Lagrangian configuration (see default configuration file setup for common options and this article for basic instructions) you will need to setup: 

    Type of emission (continuous point emission):  

    EMISSION_SPATIAL       : Point

    EMISSION_TEMPORAL : Continuous

    The flow in m3/s: 

    FLOW                      : 0.7

    Activate the initial spread method:  

    ACCIDENT_METHOD : 1

    Set the depth of the emission: 

    DEPTH_FROM_FREE_SURFACE   : 154

    Set the wind drag coefficient (once the oil reaches the surface, so it's transport accounts for wind)

    WINDCOEF                  : 0.03

    Then you will need to activate 3 properties (temperature, salinity and oil) inside the "origin" block as described below. 

    <<BeginProperty>>
    NAME                             : temperature
    UNITS                             : ºC
    CONCENTRATION         : 11
    EQUAL_TO_AMBIENT  : 1
    <<EndProperty>>

    <<BeginProperty>>
    NAME                             : salinity
    UNITS                             : psu
    CONCENTRATION         : 36
    EQUAL_TO_AMBIENT   : 1
    <<EndProperty>>

    <<BeginProperty>>
    NAME                               : oil
    UNITS                               : m3
    CONCENTRATION          : 1
    EQUAL_TO_AMBIENT   : 0
    AMBIENT_CONC : 0
    <<EndProperty>>

    And a block

    <<BeginOil>>

    [insert oil weathering compute options here (see this article for more details), e.g.:

    OILTYPE                          : Crude

    API                                   : 21

    POURPOINT                    : -30

    MAXVWATERCONTENT : 70

    But be sure to specify the ones below that control the droplet size (D50) and rise calculation method: 

    METHOD_FLOAT_VEL                             : 2

    DROPLETS_D50                                       : 0.5E-03

    METHOD_BW_DROPLETS_DIAMETER : 1

    <<EndOil>>


    Please let me know if you require any additional information. 

    Kind regards,
    Luis

  • Hi Luis.


    Thank you for your answer, it is a great help for me.
    I am in the process of configuring my 3D hydrodynamic model, I want to work with real conditions, for this I download Temperature, sea level and speed components from HYCOM, I converted the file to HDF5 and I am delivering it to OpenFlow.
    The model recognizes the sea level that is in the HDF5 file, but it does not accept the speed U and V. This error appears "velocity U
    miss match between the HDF5 input file and model domain. "I think it is because the file is 10 levels deep.
    I would like to know if I need to activate an element or why this error.


    I appreciate any suggestion.

  • Hello Andrés, 

    Do you want to use HYCOM as initial and open boundary conditions to your 3D local model or do you want to run the Lagrangian model by directly reading the HYCOM currents (U,V), sea level anomaly, temperature and salinity (and don't compute with a local MOHID Water model)? 

    If it's the first, then you can interpolate HYCOM to your computational grid (see this article) and then set the initial and boundary conditions. You may find more information here

    If you want to read the HYCOM solution to use it as forcing for the Lagrangian model (not simulating directly the currents), you have to configure the Hydrodynamic to read it as shown below: 

    However with this method, you'll have to create a Grid Data file representing the bathymetry of HYCOM and a Geometry file consistent with the HYCOM vertical geometry. Ideally you should interpolate the HYCOM solution to a computational grid defined by you and then use the resulting (interpolated) file as forcing in the Hydrodynamic setup options. 

    Kind regards,
    Luis

  • hola luis.

    This is Luis. I want to use the HYCOM solution as a force for the Lagrangian modulus, I think that would help me to reduce the computation time or am I wrong? I have loaded it like this..

    When converting the HYCOM file to HDF5 I have this bathymetry, I don't know if it works for me.

    The vertical geometry file is not clear to me. I could expand the answer a bit more.

    So at present if it is possible to use 3D imposed solutions?

    Thanks for everything Luis. I apologize if I am not clear in my questions. I am from Colombia and my English is regular

  • Hi Andrés,

    Yes, if you read the HYCOM solution directly from the HDF5 file you don't have to calculate the currents, you simply read them. Your Hydrodynamic input data file setup for reading looks OK. 

    Regarding the bathymetry, yes, that is the output of the conversion tool. As you are reading the HYCOM solution from a HDF5 file the bathymetry and vertical geometry file need to be consistent. Thus in your model setup, in the domain properties you can set the path to this HDF5 file. 

    For the geometry (module responsible for computing the vertical coordinates/discretization -  check details about it here) I am not sure what kind of vertical geometry HYCOM was setup with, so you'd have to adapt the Geometry file so that it matches the vertical geometry of HYCOM. 

    Alternatively, since you don't want to compute the hydrodynamics, you simply want to read the solution from the HDF5 file, you could use a different approach and configure the Lagrangian module to do it, instead of doing it from Hydrodynamic. 

    To do this you'll need to set this option in Hydrodynamic module:

    EVOLUTION                 : No_hydrodynamic

    And then add this block to your Lagrangian file, specifying the met-ocean conditions to be read. The model then will ignore all the Hydrodynamic, Geometry, etc.and will simply read everything directly from the HDF5 files. This setup assumes you have a HYCOM.hdf5 file, plus a Meteo.hdf5 (for meteorological conditions) and Waves.hdf5 for wave conditions (which you may or may not need depending on the model setup). I

    <BeginMeteoOcean>

    <<BeginProperty>>
    NAME : velocity U
    DESCRIPTION : velocity U
    UNITS : m/s
    MASK_DIM : -99

    <<<BeginMeteoOceanFiles>>>
    ..\General Data\Boundary Conditions\HYCOM.hdf5
    <<<EndMeteoOceanFiles>>>
    <<EndProperty>>

    <<BeginProperty>>
    NAME : velocity V
    DESCRIPTION : velocity V
    UNITS : m/s
    MASK_DIM : -99

    <<<BeginMeteoOceanFiles>>>
    ..\General Data\Boundary Conditions\HYCOM.hdf5
    <<<EndMeteoOceanFiles>>>
    <<EndProperty>>

    <<BeginProperty>>
    NAME : velocity W
    DESCRIPTION : velocity W
    UNITS : m/s
    MASK_DIM : -99

    <<<BeginMeteoOceanFiles>>>
    ..\General Data\Boundary Conditions\HYCOM.hdf5
    <<<EndMeteoOceanFiles>>>
    <<EndProperty>>

    <<BeginProperty>>
    NAME : wind velocity X
    DESCRIPTION : wind velocity X
    UNITS : m/s
    MASK_DIM : 2

    <<<BeginMeteoOceanFiles>>>
    ..\General Data\Boundary Conditions\Meteo.hdf5
    <<<EndMeteoOceanFiles>>>
    <<EndProperty>>

    <<BeginProperty>>
    NAME : wind velocity Y
    DESCRIPTION : wind velocity Y
    UNITS : m/s
    MASK_DIM : 2

    <<<BeginMeteoOceanFiles>>>
    ..\General Data\Boundary Conditions\Meteo.hdf5
    <<<EndMeteoOceanFiles>>>
    <<EndProperty>>

    <<BeginProperty>>
    NAME : air temperature
    DESCRIPTION : air temperature
    UNITS : ºC
    MASK_DIM : -99

    <<<BeginMeteoOceanFiles>>>
    ..\General Data\Boundary Conditions\Meteo.hdf5
    <<<EndMeteoOceanFiles>>>
    <<EndProperty>>

    <<BeginProperty>>
    NAME : atmospheric pressure
    FIELD_NAME : mean sea level pressure
    DESCRIPTION : atmospheric pressure
    UNITS : atm
    MASK_DIM : -99

    <<<BeginMeteoOceanFiles>>>
    ..\General Data\Boundary Conditions\Meteo.hdf5
    <<<EndMeteoOceanFiles>>>
    <<EndProperty>>

    <<BeginProperty>>
    NAME : wave amplitude
    FIELD_NAME : significant wave height
    DESCRIPTION : wave amplitude
    UNITS : m
    MASK_DIM : 2

    <<<BeginMeteoOceanFiles>>>
    ..\General Data\Boundary Conditions\Waves.hdf5
    <<<EndMeteoOceanFiles>>>
    <<EndProperty>>

    <<BeginProperty>>
    NAME : wave period
    FIELD_NAME : mean wave period
    DESCRIPTION : wave period
    UNITS : s
    MASK_DIM : 2

    <<<BeginMeteoOceanFiles>>>
    ..\General Data\Boundary Conditions\Waves.hdf5
    <<<EndMeteoOceanFiles>>>
    <<EndProperty>>

    <<BeginProperty>>
    NAME : wave direction
    FIELD_NAME : mean wave direction
    DESCRIPTION : wave direction
    UNITS : º
    MASK_DIM : 2

    <<<BeginMeteoOceanFiles>>>
    ..\General Data\Boundary Conditions\Waves.hdf5
    <<<EndMeteoOceanFiles>>>
    <<EndProperty>>
    <EndMeteoOcean>

    This setup allows also to use multiple files at once (i.e. if you have one HYCOM per day of simulation), simply add to the list of files, and the model will read them in the defined order. 

    <<<BeginMeteoOceanFiles>>>
    ..\General Data\Boundary Conditions\HYCOM_1.hdf5

    ..\General Data\Boundary Conditions\HYCOM_2.hdf5

    ..\General Data\Boundary Conditions\HYCOM_3.hdf5

    <<<EndMeteoOceanFiles>>>

    Kind regards,
    Luis