/Users/huttone/Devel/sedflux-new/sedflux/trunk/ew/xshore/xshore.h

Go to the documentation of this file.
00001 //---
00002 //
00003 // This file is part of sedflux.
00004 //
00005 // sedflux is free software; you can redistribute it and/or modify
00006 // it under the terms of the GNU General Public License as published by
00007 // the Free Software Foundation; either version 2 of the License, or
00008 // (at your option) any later version.
00009 //
00010 // sedflux is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 // GNU General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with sedflux; if not, write to the Free Software
00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 //
00019 //---
00020 
00021 #ifndef _XSHORE_H_
00022 # define _XSHORE_H_
00023    
00024 # include <utils/utils.h>
00025 # include <sed/sed_sedflux.h>
00026 
00027 #define XSHORE_BRUUN_M ( 0.6 )
00028 
00029 typedef struct
00030 {
00031    Sed_cell added;
00032    Sed_cell lost;
00033    double bruun_a;
00034    double bruun_m;
00035    double bruun_b;
00036    double bruun_y_0;
00037    double bruun_y_b;
00038    double bruun_h_b;
00039    double z_0;
00040    gssize n_zones;
00041    double* dt;
00042 }
00043 Xshore_info;
00044 
00045 Xshore_info  xshore                      ( Sed_cube p                ,
00046                                            Sed_cell along_shore_cell ,
00047                                            double xshore_current     ,
00048                                            Sed_ocean_storm storm );
00049 double     get_breaking_wave_depth       ( Sed_wave deep_water );
00050 Sed_cube*  get_shelf_zones               ( Sed_cube p               ,
00051                                            double z_0               ,
00052                                            gssize** shelf_ind );
00053 Sed_cube*  get_bruun_zones               ( Sed_cube p               ,
00054                                            double y_0 );
00055 Sed_cube* get_zones                      ( Sed_cube p               ,
00056                                            double* z                ,
00057                                            gssize n_zones           ,
00058                                            Sed_grid_func f          ,
00059                                            gssize** ind );
00060 gssize     get_zone_indices              ( Sed_cube p               ,
00061                                            double z_0               ,
00062                                            double z_1               ,
00063                                            gssize i_0               ,
00064                                            Sed_grid_func get_val    ,
00065                                            gssize* ind );
00066 double     get_diffusion_constant        ( double z                 ,
00067                                            Sed_wave w              ,
00068                                            double settling_velocity ,
00069                                            double breaker_depth );
00070 double     get_advection_constant        ( double z                 ,
00071                                            Sed_wave w              ,
00072                                            double u_0               ,
00073                                            double settling_velocity ,
00074                                            double breaker_depth );
00075 void       add_suspended_sediment        ( Sed_column* col         , Sed_cell cell );
00076 double     get_bruun_depth               ( double y                , double y_0 ,
00077                                            double bruun_a          , double bruun_m );
00078 double     get_bruun_a                   ( Sed_cube p              , double bruun_m );
00079 double     get_bruun_y_0                 ( Sed_cube p );
00080 double     get_bruun_y_b                 ( Sed_cube p );
00081 double*    get_bruun_profile             ( double* y               , gssize len ,
00082                                            double bruun_a          , double bruun_m ,
00083                                            double y_0              , double y_b );
00084 void       fill_to_bruun                 ( Sed_cube p             ,
00085                                            double* h              ,
00086                                            Sed_cell fill_cell );
00087 void       fill_to_bruun_profile         ( Sed_cube p             ,
00088                                            Sed_wave deep_wave     ,
00089                                            double bruun_m          ,
00090                                            Sed_cell fill_cell     ,
00091                                            Sed_cell added_fill_cell );
00092 
00093 double*    get_max_erosion_profile       ( Sed_cube p             , Sed_wave w );
00094 double     get_near_bed_velocity         ( double water_depth ,
00095                                            Sed_wave w        ,
00096                                            double breaker_depth      );
00097 double     near_bed_velocity_func        ( double water_depth ,
00098                                            Sed_wave w        ,
00099                                            double breaker_depth      );
00100 double     near_bed_velocity_func_mean   ( double water_depth ,
00101                                            Sed_wave w        ,
00102                                            double breaker_depth      );
00103 double     near_bed_velocity_func_komar  ( double water_depth ,
00104                                            Sed_wave w        ,
00105                                            double breaker_depth      );
00106 double     near_bed_velocity_func_stokes ( double water_depth ,
00107                                            Sed_wave w        ,
00108                                            double breaker_depth      );
00109 double     get_grain_size_threshold      ( double orbital_velocity ,
00110                                            double wave_period        );
00111 #endif
00112 

Generated on Fri Jan 4 18:04:16 2008 for sedflux by  doxygen 1.5.2