**Note**: This form is for filling out answers for the 15-462/662 Fall 2020 final exam. _You must put all your answers in this form, and submit it via Autolab_. We will not accept photos/scans of written material, files sent via email, etc. The formatting of this file must be preserved (e.g., do not change lines starting with hashmarks, or remove lines consisting of three backticks). All code should be written in the provided (empty) functions. Please also write your AndrewID below. AndrewID: WHICH QUESTION ARE YOU SKIPPING? Mark one with an "X": [ ] Question 1 [ ] Question 2 [ ] Question 3 [ ] Question 4 (You will automatically receive full credit for the question you skip.) ## 1 (25 points) Warming up ### 1a (5 points) ### 1b (5 points) ### 1c (5 points) ### 1d (5 points) ### 1e (5 points) ## 2 (25 points) Mesh Optimization ### 2a (4 points) ### 2b (5 points) ``` void decreaseEnergy( HalfedgeMesh& mesh ) { } ``` ### 2c (4 points) ### 2d (4 points) ### 2e (4 points) ``` bool isDelaunay( Edge ij ) // returns false if this edge needs to be flipped; true otherwise { } ``` ### 2f (4 points) ## 3 (25 points) Walking on Spheres ### 3a (3 points) ### 3b (4 points) ``` void closestPointSegment( Vector2D a, Vector2D b, Vector2D x, Vector2D& xbar, double& t ) { } ``` ### 3c (4 points) ### 3d (3 points) ### 3e (5 points) ``` double estimateLaplace( Vector2 x, vector& boundary ) { const double epsilon = 0.0001; // stopping tolerance } ``` ### 3f (3 points) ### 3g (3 points) ## 4 (25 points) When Worlds Collide ### 4a (4 points) ### 4b (4 points) ### 4c (4 points) ``` void updateSystem( int n, // number of particles vector& q, // positions vector& p, // velocities double t ) // timestep // this method should take a single timestep of // size t, updating the positions q and velocities p // using the forward Euler method { } ``` ### 4d (4 points) ### 4e (4 points) ### 4f (5 points) ``` Vector2 approximateForce( Vector2 q, // location of force evaluation vector> centers, //centers[i] lists particle centers in cell i vector lumpedCenters, //lumped center for cell i int nx, int ny, // number of columns and rows (respectively) double W, double H // width and height of region covered by the grid ) { } ```