73 #define VELOCITY_INITIALIZATION_VALUE -9999
86 double coef1=wet_vert_area;
93 printf(
"Error in F1_coefficient: divide by 0 function return 0! \n");
118 char *function_name=
"b_advection()";
123 if ((surface_water_velocity->
nh!=F1_wet_vert_area->
nh) || (surface_water_velocity->
nh!=dgrid->
coarse->
lines->
nh)) printf(
"Error in %s: velocity elements %ld F1_wet_area_elements %ld lines %ld \n",function_name,surface_water_velocity->
nh,F1_wet_vert_area->
nh,dgrid->
coarse->
lines->
nh);
130 printf(
"Error in %s: kp is equal to i (%ld) \n",function_name,i);
131 }
else if ((kp<dgrid->coarse->polygons->nl) || (kp>dgrid->
coarse->
polygons->
nh)) {
133 }
else if ((kl<dgrid->coarse->lines->nl) || (kl>dgrid->
coarse->
lines->
nh)) {
134 printf(
"Error in %s : line %ld (of polygon %ld) ( %ld %ld) does not exist \n",function_name,kl,i,dgrid->
coarse->
lines->
nl,dgrid->
coarse->
lines->
nh);
178 double forcing,val=0;
180 char *function_name=
"t_st_advection_operator_element";
181 double eta_previous,area_vert;
183 if (F1_wet_vert_area->
nh!=dgrid->
coarse->
lines->
nh) printf(
"Error in %s: F1_wet_area_elements %ld lines %ld \n",function_name,F1_wet_vert_area->
nh,dgrid->
coarse->
lines->
nh);
191 printf(
"Error in %s: kp is equal to i (%ld) \n",function_name,i);
192 }
else if ((kp<dgrid->coarse->polygons->nl) || (kp>dgrid->
coarse->
polygons->
nh)) {
194 }
else if ((kl<dgrid->coarse->lines->nl) || (kl>dgrid->
coarse->
lines->
nh)) {
195 printf(
"Error in %s : line %ld (of polygon %ld) ( %ld %ld) does not exist \n",function_name,kl,i,dgrid->
coarse->
lines->
nl,dgrid->
coarse->
lines->
nh);
196 }
else if (dirichlet->element[kp]<=cond_dirichlet){
227 double vel=-param->
gravity*param->
dt*F1_wet_vert_area->element[j]*forcing;
247 vel=F1_wet_vert_area->element[j]*surface_water_velocity->element[j];
265 double forcing,eta_previous;
266 double simm_vel,asimm_vel;
269 char *function_name=
"update_velocity";
275 for (j=surface_water_velocity->
nl;j<=surface_water_velocity->nh;j++) {
281 for (i=eta->
nl;i<=eta->nh;i++) {
288 printf(
"Error in %s: kp is equal to i (%ld) \n",function_name,i);
290 }
else if ((kp<dgrid->coarse->polygons->nl) || (kp>dgrid->
coarse->
polygons->
nh)) {
293 }
else if ((kl<dgrid->coarse->lines->nl) || (kl>dgrid->
coarse->
lines->
nh)) {
294 printf(
"Error in %s : line %ld (of polygon %ld) ( %ld %ld) does not exist \n",function_name,kl,i,dgrid->
coarse->
lines->
nl,dgrid->
coarse->
lines->
nh);
303 velocity_temp->element[kl]=simm_vel+asimm_vel;
307 velocity_temp->element[kl]=asimm_vel;
315 for (j=surface_water_velocity->
nl;j<=surface_water_velocity->nh;j++) {
316 surface_water_velocity->element[j]=velocity_temp->element[j];
318 printf(
"Error in %s: surface velocity (integrated on the vertical area) not calculated at line %ld (%ld %ld)function return -1 \n",function_name,j,surface_water_velocity->
nl,surface_water_velocity->
nh);
342 char *function_name=
"update_F1_wet_vert_area";
346 double eta_previous,area_vert,velocity;
350 if (water_surface_elevation->
nh!=dgrid->
coarse->
polygons->
nh) printf(
"Error in %s: inconsistent number of eta elements %ld (%ld cells) \n",function_name,water_surface_elevation->
nh,dgrid->
coarse->
polygons->
nh);
351 for (j=F1_wet_vert_area->
nl;j<=F1_wet_vert_area->nh;j++) {
356 for (i=water_surface_elevation->
nl;i<=water_surface_elevation->nh;i++) {
363 printf(
"Error in %s: kp is equal to i (%ld) \n",function_name,i);
365 }
else if ((kp<dgrid->coarse->polygons->nl) || (kp>dgrid->
coarse->
polygons->
nh)) {
368 }
else if ((kl<dgrid->coarse->lines->nl) || (kl>dgrid->
coarse->
lines->
nh)) {
369 printf(
"Error in %s : line %ld (of polygon %ld) ( %ld %ld) does not exist \n",function_name,kl,i,dgrid->
coarse->
lines->
nl,dgrid->
coarse->
lines->
nh);
382 velocity=surface_water_velocity->element[kl];
383 F1_wet_vert_area->element[kl]=
F1_coefficient(kl,velocity,area_vert);
392 velocity=surface_water_velocity->element[kl];
393 F1_wet_vert_area->element[kl]=
F1_coefficient(kl,velocity,area_vert);
401 for (j=F1_wet_vert_area->
nl;j<=F1_wet_vert_area->nh;j++) {
403 printf(
"Error in %s: F1 coefficient (integrated on the vertical area) not calculated at line %ld (%ld %ld)function return -1 \n",function_name,j,F1_wet_vert_area->
nl,F1_wet_vert_area->
nh);