**(Chosen.) Rewrite code to use barycentric coordinates on triangles.**Next, write code that allows you to specify the coefficients of elliptic problems as elements of the finite element space. This is a one-person project. If this is done properly then I will include it in the course project.**(Chosen) Rewrite the code for parabolic PDEs to be cleaner.**This is one-person project. Again, I would include this in the course project.**Rewrite the finite-element matrix operator, finite-element matrix operator construction, etc., to be blocked triangle by triangle.**I described this in class on February 27 in the context of arbitrary-order finite element methods on triangles with Lagrangian nodal elements. It is interesting even for linear elements; it will be slower than the current implementation, but then maybe later another student can extend it to arbitrary-order elements. This is a one-person project; if done very well will be included in the code base.**Solve an image segmentation problem.**Use 1 and 2 to compute solutions to "Threshold dynamics for the piecewise constant Mumford-Shah functional", by Selim Esedoglu and Yen-Hsi Richard Tsai,*J. Comput. Phys.***211**(2006), pp. 367--384. This is a three-person project if done together with (1) and (2) and a two-person project otherwise.**(Chosen) Apply domain decomposition techniques.**(Chosen) Block the matrix operator so that each triangle in the coarse triangulation leads to its own local operator. The object of this project is speed, not functionality---you should be able to cut the solution time by at least 1/3, and perhaps parallelize it. It's a one- or two-person project, depending on how much you want to achieve.**(Chosen) Add a reaction term to the parabolic code.**There is code in`mmoc.scm`to solve a convection-diffusion equation using the "modified method of characteristics" of Douglas and Russell; if you're interested in this kind of stuff you can add a reaction term (modelling chemistry, say) to this code.**(Chosen) Write time-stepping code for second-order hyperbolic problems.**This is a one-person project.**Write code to devise a triangulation given a list of boundary points.**This can be quite hard; choose this only if you have a real interest in geometrical algorithms and computing, and then make sure that you understand the real scope of this project.**Finite difference schemes.**This is a multi-step project. It would need to be coordinated among several people. Among the subprojects:- Find a way to describe the domains you want to handle; probably just rectangles or unions of rectangles. Discretize these domains; refine the discretizations.
- Calculate the finite difference spaces; build the matrix multiplication operator based on the coefficients.
- Build injection and projection operators for multigrid applied to the finite difference problems.