/Users/huttone/Devel/sedflux-new/sedflux/trunk/ew/avulsion/avulsion.c File Reference

#include <math.h>
#include <glib.h>
#include "utils/utils.h"
#include "avulsion.h"

Go to the source code of this file.

Functions

GQuark avulsion_data_struct_quark (void)
Avulsion_stavulsion_new (GRand *rand, double std_dev)
Avulsion_stavulsion_dup (Avulsion_st *s)
Avulsion_stavulsion_destroy (Avulsion_st *data)
double get_std_dev_func (double angle, double std_dev)
double avulsion (GRand *rand, double last_angle, double std_dev)
double avulsion_scale_angle_down (double angle, double min_angle, double max_angle)
double avulsion_scale_angle_up (double angle, double min_angle, double max_angle)
double avulsion_scale_std_dev_up (double std_dev, double min_angle, double max_angle)
Sed_riv sed_river_set_avulsion_data (Sed_riv r, Avulsion_st *data)
Sed_riv sed_river_impart_avulsion_data (Sed_riv r)
Sed_riv sed_river_unset_avulsion_data (Sed_riv r)
Avulsion_stsed_river_avulsion_data (Sed_riv r)
Sed_riv sed_river_avulse (Sed_riv r)
Sed_cube sed_cube_avulse_river (Sed_cube c, Sed_riv r)
void sed_cube_avulse_river_helper (Sed_riv r, Sed_cube c)
Sed_cube sed_cube_avulse_all_rivers (Sed_cube c)


Function Documentation

double avulsion ( GRand *  rand,
double  last_angle,
double  std_dev 
)

Definition at line 76 of file avulsion.c.

References eh_rand_normal(), eh_reduce_angle(), and get_std_dev_func().

Referenced by avulsion_lite(), and sed_river_avulse().

GQuark avulsion_data_struct_quark ( void   ) 

Definition at line 27 of file avulsion.c.

Avulsion_st* avulsion_destroy ( Avulsion_st data  ) 

Definition at line 57 of file avulsion.c.

References eh_free, Avulsion_st::rand, and Avulsion_st::std_dev.

Referenced by sed_river_set_avulsion_data().

Avulsion_st* avulsion_dup ( Avulsion_st s  ) 

Definition at line 44 of file avulsion.c.

References avulsion_new(), Avulsion_st::rand, and Avulsion_st::std_dev.

Referenced by sed_river_impart_avulsion_data().

Avulsion_st* avulsion_new ( GRand *  rand,
double  std_dev 
)

Definition at line 33 of file avulsion.c.

References eh_new, Avulsion_st::rand, and Avulsion_st::std_dev.

Referenced by avulsion_dup(), avulsion_full(), and init_avulsion_data().

double avulsion_scale_angle_down ( double  angle,
double  min_angle,
double  max_angle 
)

Definition at line 95 of file avulsion.c.

Referenced by sed_river_avulse().

double avulsion_scale_angle_up ( double  angle,
double  min_angle,
double  max_angle 
)

Definition at line 101 of file avulsion.c.

Referenced by sed_river_avulse().

double avulsion_scale_std_dev_up ( double  std_dev,
double  min_angle,
double  max_angle 
)

Definition at line 107 of file avulsion.c.

Referenced by sed_river_avulse().

double get_std_dev_func ( double  angle,
double  std_dev 
)

Definition at line 70 of file avulsion.c.

Referenced by avulsion().

Sed_cube sed_cube_avulse_all_rivers ( Sed_cube  c  ) 

Definition at line 222 of file avulsion.c.

References sed_cube_avulse_river_helper(), and sed_cube_foreach_river().

Referenced by avulsion_full().

Sed_cube sed_cube_avulse_river ( Sed_cube  c,
Sed_riv  r 
)

Avulse all of the branches of a Sed_riv

Run the avulsion process for each branch of a Sed_riv. This will avulse all of the branches, not just the smallest branches. However, it is only the smallest branches that enter the ocean. We keep track of the location of the parent branches in case its child branches merge. In such a case the location of the merged river will be the that of the parent.

Parameters:
c A Sed_cube containing the river
r A Sed_riv to avulse
Returns:
The input Sed_cube

Definition at line 195 of file avulsion.c.

References eh_free, sed_cube_find_river_mouth(), sed_river_avulse(), and sed_river_branches().

Referenced by run_avulsion(), and sed_cube_avulse_river_helper().

void sed_cube_avulse_river_helper ( Sed_riv  r,
Sed_cube  c 
)

Definition at line 216 of file avulsion.c.

References sed_cube_avulse_river().

Referenced by sed_cube_avulse_all_rivers().

Sed_riv sed_river_avulse ( Sed_riv  r  ) 

Definition at line 149 of file avulsion.c.

References avulsion(), avulsion_scale_angle_down(), avulsion_scale_angle_up(), avulsion_scale_std_dev_up(), eh_require, Avulsion_st::rand, sed_river_angle(), sed_river_avulsion_data(), sed_river_max_angle(), sed_river_min_angle(), sed_river_set_angle(), and Avulsion_st::std_dev.

Referenced by sed_cube_avulse_river().

Avulsion_st* sed_river_avulsion_data ( Sed_riv  r  ) 

Definition at line 143 of file avulsion.c.

References AVULSION_DATA.

Referenced by run_avulsion(), sed_river_avulse(), and sed_river_impart_avulsion_data().

Sed_riv sed_river_impart_avulsion_data ( Sed_riv  r  ) 

Definition at line 120 of file avulsion.c.

References avulsion_dup(), sed_river_avulsion_data(), sed_river_left(), sed_river_right(), sed_river_set_avulsion_data(), and Avulsion_st::std_dev.

Referenced by run_avulsion().

Sed_riv sed_river_set_avulsion_data ( Sed_riv  r,
Avulsion_st data 
)

Definition at line 113 of file avulsion.c.

References AVULSION_DATA, and avulsion_destroy().

Referenced by avulsion_full(), init_avulsion_data(), and sed_river_impart_avulsion_data().

Sed_riv sed_river_unset_avulsion_data ( Sed_riv  r  ) 

Definition at line 136 of file avulsion.c.

References AVULSION_DATA.


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