# ifndef H_BVP_H # define H_BVP_H # include "ppc_mesh.h" # include "ppc_bvp_spec.h" # include "ppc_gauss_quad.h" # include "ppc_twb_quad.h" struct errors { double Linfty; double L2norm; }; void apply_dirichlet_bc ( struct elem *ep, double (*g)(double x, double y ), double k[3][4] ); void apply_neumann_bc ( struct elem *ep, double (*h)(double x, double y ), double k[3][4], int gauss_d, struct Gauss_qdat *gauss_data ); void bvp_solve ( struct problem_spec *spec, struct mesh *mesh, int twb_d, int gauss_d ); void compute_element_stiffness ( struct elem *ep, int twb_d, struct TWB_qdat *twb_data, double (*f)(double x, double y), double (*eta)(double x, double y), double k[3][4] ); void error_and_exit ( int status, const char *file, int line ); struct errors element_errors ( struct problem_spec *spec, int twb_d, struct TWB_qdat *twb_data, struct elem *ep ); struct errors eval_errors ( struct problem_spec *spec, struct mesh *mesh, int twb_d ); # endif