AdH Kraken 0.0.0
Next generation Adaptive Hydraulics
Loading...
Searching...
No Matches
fe.h
1#ifndef _H_FE_
2#define _H_FE_
3//1d segments
4void integrate_line_phi_h_h(double djac, double c, double h1, double h2, double *integral);
5void integrate_line_phi_h_h_g(double djac, double c, double h1, double h2, double g1, double g2, double *integral);
6double integrate_line_h_f(double djac, double c, double *h, double *f);
7void integrate_line_phi(double djac, double c, double *integral);
8void integrate_line_phi_f(double djac, double c, double *f, double *integral);
9void integrate_line_phi_h_v_dot_n(double djac, double c, double *h, SVECT2D *v, SVECT2D nrml, double *integral);
10void integrate_line_phi_f_g_h(double djac, double c, double f1, double f2, double g1, double g2, double h1, double h2, double *integral);
11//triangles
12double integrate_triangle_f(double djac, double c, double *f);
13double integrate_triangle_f_f(double djac, double c, double *f);
14void integrate_triangle_phi_f(double djac, double c, double *f, double *integral);
15void integrate_triangle_phi_f_lump(double djac, double c, double *f, double *integral);
16void integrate_triangle_gradPhi_dot_vbar(SVECT2D *grad_shp, double djac, double c, SVECT2D vbar, double *integral);
17void grad2d_phi_f(SVECT2D *grad_phi, double *f, SVECT2D *grad, int ndof);
18void grad2d_phi_dot_v(SVECT2D *grad_phi, SVECT2D *v, SVECT2D *grad_x, SVECT2D *grad_y, int ndof);
19double integrate_quadrilateral_area(SVECT *nd, double c);
20double integrate_quadrilateral_f(SVECT *nd, double c, double *f);
21SVECT2D integrate_quadrilateral_gradF(SVECT *nd, double c, double *f);
22void integrate_triangle_gradPhi_dot_f_v(SVECT2D *grad_shp, double djac, double c, double *f, SVECT2D *v, double *integral);
23void integrate_triangle_dphi_f_g_h(SVECT2D *grad_shp, double djac, double c, double *f, double *g, double *h, double *integral_x, double *integral_y);
24void integrate_triangle_dphi_f_f_h(SVECT2D *grad_shp, double djac, double c, double *f, double *h, double *integral_x, double *integral_y);
25void integrate_triangle_phi(double djac, double c, double *integral);
26void integrate_triangle_dphi_f_f(SVECT2D *grad_shp, double djac, double c, double *f, double *integral_x, double *integral_y);
27void integrate_triangle_phi_h_df(double djac, double c, double *h, SVECT2D df, double *integral_x, double *integral_y);
28void integrate_triangle_phi_h_g_df(double djac, double c, double *h, double *g, SVECT2D df, double *integral_x, double *integral_y);
29void integrate_triangle_phi_f_g(double djac, double c, double *f, double *g, double *integral);
30void integrate_triangle_gradPhi_dot_f_g_v(SVECT2D *grad_shp, double djac, double c, double *f, double *g, SVECT2D *v, double *integral) ;
31void integrate_triangle_gradPhi_dot_v(SVECT2D *grad_shp, double djac, double c, SVECT2D *v, double *integral);
32//quads
33void extractNodesQuad(SVECT *v, double *x1, double *x2, double *x3, double *x4, double *y1, double *y2, double *y3, double *y4);
34void extractVect2DQuad(SVECT2D *v, double *x1, double *x2, double *x3, double *x4, double *y1, double *y2, double *y3, double *y4) ;
35void extractFunctionQuad(double *f, double *f1, double *f2, double *f3, double *f4);
36void integrate_quadrilateral_gradPhi_dot_f_v(SVECT *nd, double c, double *f, SVECT2D *v, double *integral);
37void integrate_quadrilateral_phi_f(SVECT *nd, double c, double *f, double *integral);
38void integrate_quadrilateral_phi_f_lump(SVECT *nd, double c, double *f, double *integral);
39void integrate_quadrilateral_gradPhi_dot_Dv(SVECT *nd, SQUAD *quad, double c, STENSOR2DAI T, SVECT2D *v, double *integral_x, double *integral_y);
40void integrate_quadrilateral_phi_f_g(SVECT *nd, double c, double *f, double *g, double *integral);
41void integrate_quadrilateral_gradPhi_dot_f_g_v(SVECT *nd, double c, double *f, double *g, SVECT2D *v, double *integral);
42void integrate_quadrilateral_phi(SVECT *nd, double c, double *integral);
43void integrate_quadrilateral_dphi_f_f(SVECT *nd, double c, double *f, double *integral_x, double *integral_y);
44void integrate_quadrilateral_dphi_f_h_h(SVECT *nd, double c, double *f, double *h, double *integral_x, double *integral_y);
45void integrate_quadrilateral_phi_h_g_df(SVECT *nd, double c, double *df, double *h, double *g, double *integral_x, double *integral_y);
46void integrate_quadrilateral_gradPhi_dot_vbar(SVECT *nd, double c, SVECT2D vbar, double *integral);
47void integrate_quadrilateral_phi_h_df(SVECT *nd, double c, double *df, double *h, double *integral_x, double *integral_y);
48double get_quadrilateral_linear_djac2d(double xhat, double yhat, SVECT *nd);
49double get_quadrilateral_linear_djac_gradPhi(double xhat, double yhat, SVECT *nd, SVECT *grad_shp);
50//other
51double integrate_quadZ_f(SVECT *nd, double c, double *f);
52//wd integrations
53double fe_sw2_wet_dry_factor(SVECT *x, double *h, double djac);
54double fe_sw2_wet_dry_wrapper(double *elem_rhs, SVECT *x, double *h, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, int REDISTRIBUTE_FLAG, int DEBUG, double *, void (*fe_sw_func) (SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *elem_rhs));
55double fe_sw2_wet_dry_wrapper_1d(double *elem_rhs, SVECT *x, double *h, SVECT2D *nrml, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, int redistribute_flag, int DEBUG, double *vars, void (*fe_sw_func) (SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *elem_rhs));
56void fe_sw2_wd_convection_triangle(SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *elem_rhs);
57void fe_sw2_wd_average(SVECT *elem_nds, double *depth, SVECT2D *v_wd, double *f_wd, double djac, double *f_wd_avg, SVECT2D *v_wd_avg);
58void fe_sw2_wd_continuity_temporal_triangle(SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *rhs);
59void fe_sw2_wd_boundaryPressure_triangle(SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *elem_rhs);
60void fe_sw2_wd_densityPressure_triangle(SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *rhs);
61void fe_sw2_wd_densityBodyForce_triangle(SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *rhs);
62void fe_sw2_wd_densityBoundaryPressure_triangle(SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *rhs);
63void fe_sw2_wd_integrate_triangle_f(SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *rhs);
64void fe_sw2_wd_gls_convection_triangle(SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *rhs);
65void fe_sw2_wd_bodyForce_triangle(SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *rhs);
66void fe_sw2_wd_pressure_triangle(SVECT *elem_nds, double *elem_head, SVECT2D *grad_phi, SVECT2D *v, SVECT2D *v_wet_dry, double *f, double *f_wet_dry, double djac, double *vars, double *rhs);
67//sw2 boundary integrals
68void fe_sw2_1d_explicit_flow(double *elem_rhs, SELEM_1D elem1d, int ie, SVECT2D nrml, double djac, double dt, double flux, double h_avg, double *u, double *v, int DEBUG, int DEBUG_LOCAL);
69void fe_sw2_1d_implicit_flow(double *elem_rhs, SELEM_1D elem1d, int ie, SVECT2D nrml, double djac, double dt, SVECT2D *v, double *h, int DEBUG, int DEBUG_LOCAL);
70void fe_sw2_1d_wall_friction(double *elem_rhs, SELEM_1D elem1d, int ie, SVECT2D nrml, double djac, double dt, double *u, double *v, double *resistance, int DEBUG, int DEBUG_LOCAL);
71void fe_sw2_1d_pressure(double *elem_rhs, SELEM_1D elem1d, int ie, SVECT2D nrml, double djac, double dt, double *h, double g, int DEBUG, int DEBUG_LOCAL);
72void fe_sw2_1d_density_pressure(double *elem_rhs, SELEM_1D elem1d, int ie, SVECT2D nrml, double djac, double dt, double *h, double *d, double g, int DEBUG, int DEBUG_LOCAL);
73void fe_sw2_1d_hvel(double *elem_rhs, SELEM_1D elem1d, int ie, SVECT2D nrml, double djac, double dt, SVECT2D *v, SVECT2D user_velocity, double *h, int DEBUG, int DEBUG_LOCAL);
74
75
76#endif
77
Definition: selem_1d.h:17
Definition: squad.h:55
Definition: stensor.h:19
Definition: svect2d.h:4
Definition: svect.h:4