{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Summary of course learning goals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Final quiz learning goals -- Thursday April 17, Buch A104, 3:30pm to 5pm\n", "\n", "**Exam is written to take 60 minutes, you'll have 90 minutes so hopefully not rushed**\n", "\n", "**Note that the final quiz is comprehensive, and all learning goals from prior quizzes are fair game. \n", " Having said that,\n", " here are the set that we think are particularly high priority, study these first**\n", "\n", "### Math/numerics\n", " \n", "* Can write a mathematical model (i.e. the appropriate equations) that describes how a conserved quantity such as mass, volume (if the material in incompressible), energy, in a single, discrete control volume, (for example the TMF problem) changes through time.\n", "\n", "* Can represent fluxes, sources and sinks in the conservation equation with the correct dimensions (eg, stuff per mass per time, stuff per volume per time, stuff per time, etc).\n", " \n", "* Can represent a model for a discrete control volume (eg TMF) as either a difference equation or a differential equation.\n", "\n", "* Can approximate fluxes between finite volumes using finite-difference methods; \n", "\n", "* Can recognize how to create a linear system of equations from a finite-volume discretization of a conservation problem; \n", "\n", "* Can incorporate Dirichlet (first-type or specified dependent variable) and second type or flux boundary conditions into a finite-volume system of equations; can write the linear system of equations for a forward or backward Euler approximation of a transient finite-volume problem\n", "\n", "### Python/coding\n", "\n", "\n", "* Can define a simple class that contains class variables,\n", " instance variables and instance methods and use it to pass parameters\n", " into and out of a function.\n", "\n", "* Can write basic functions with default values \n", "\n", "* Can use the pandas apply method to execute a function on every\n", " row of a dataframe\n", " \n", "* Can add a column to a data frame and use groupby with\n", " that column to group dataframe rows into subset dataframes\n", " \n", "* Can do simple statistics (mean, median, max, min,\n", " summary) on pandas dataframes and pandas series objects\n", " \n", "* Can construct dataframes from lists of tuples, lists of\n", " dictionaries, or numpy arrays using from_records member\n", " function\n", "\n", "\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Quiz 1 learning goals\n", "\n", "On Tuesday, Feb. 5, we will have our first quiz of the\n", "course. The quiz will last 30 minutes and will be a traditional\n", "pen-and-paper format.\n", "\n", "The learning goals for this quiz are:\n", "\n", "### ODEs\n", "\n", " - Recognize an ordinary differential equation (ODE).\n", " - Recognize that the solutions to ODEs are FUNCTIONS, not single\n", " numbers.\n", " - Be able to determine the ORDER of an ODE.\n", " - Be able convert between the notations dy/dx, and y’.\n", " - Be able to recognize whether an ODE is linear or nonlinear.\n", " - Be able to write a simple differential equation model of a system,\n", " given the description of the system.\n", " - Identify information required to determine a particular solution\n", " (boundary and initial conditions) of an ODE.\n", " - Be able to confirm that a solution “solves” a given ODE.\n", "\n", "### Simulation / python\n", "\n", " - Be able to read a code fragment in python (to the level covered in\n", " the notebooks given in class up to January 24, 2019), and recognize\n", " syntax errors.\n", " - Be able to write the code to determine the type of a variable.\n", " - Be able to define a numpy array of a specified size in one or two\n", " dimensions\n", " - Be able write a simple loop over a specified range.\n", " - Be able to state the basic conservation principle (of mass)\n", " - Be able to take a conservation principle description in words (eg\n", " TMF) and convert it to a mathematical equation (algebraic or\n", " differential).\n", " - Be able to compute (by hand) the forward Euler approximation for one\n", " or two time steps, given a description of the conservation problem\n", " or ODE.\n", " - Be able to compute (by hand) the backward Euler approximation for\n", " one or two time steps, given a description of the conservation\n", " problem or ODE.\n", " - Be able to describe the relationship between time step and error in\n", " the Euler approximation.\n", " - Be able to compute the error in an Euler approximation, given the\n", " analytical solution to the problem.\n", "\n", "We expect to return your graded notebooks by Monday or Tuesday of next\n", "week. \n", "\n", "More resources are available on the course webpage at\n", "" ] }, { "cell_type": "markdown", "metadata": { "lines_to_next_cell": 0 }, "source": [ "## Quiz 2 learning goals\n", "\n", "Our second quiz is scheduled for Thursday, February 28. It will be 30\n", "minutes long in pen and paper format. Bring a calculator.\n", "\n", "\n", "The learning goals for this quiz are:\n", "\n", "### Finite Volume method\n", "\n", " - Be able to derive a general finite-volume stencil, either\n", " steady-state or transient, in one or two dimensions given the\n", " geometry of the gridblocks, expressions for fluxes (eg, Fick’s law).\n", " You will not be given the general stencil (N S E W) in a quiz.\n", " - Be able to determine the dimensions of terms in an expression from\n", " the dimensions of other variables and terms in the equation.\n", " - Be able to incorporate sources and sinks in a finite-volume stencil.\n", " - Be able to write discrete approximations for Fick’s law in porous\n", " media.\n", " - Be able to write the appropriate equations for a gridblock in a\n", " finite-volume mesh, including gridblocks on the boundary.\n", " - Be able to place the equations/coefficients in a system matrix A,\n", " and right-hand side vector b.\n", " - Be able to compute fluxes between gridblocks given the values of the\n", " dependent variable in the gridblocks.\n", " - Be able to formulate stencils for both explicit and implicit\n", " time-stepping.\n", " - Be able to describe the advantages and disadvantages of explicit and\n", " implicit time-stepping schemes.\n", "\n", "### Simulation / python\n", "\n", " - Be able to read a code fragment in python (to the level covered in\n", " the notebooks given in class up to February 26, 2019), and recognize\n", " syntax errors.\n", " - Can define a function and pass mandatory (args) and optional\n", " (kwargs) arguments in and return values out using python. For\n", " reference see for example\n", " \n", " and explanation in\n", " \n", " .\n", " - Can use python figure and axis objects to make a line plot with\n", " multiple lines, including a legend. See\n", " \n", " and\n", " " ] }, { "cell_type": "markdown", "metadata": { "lines_to_next_cell": 0 }, "source": [ "## Quiz 3 learning goals\n", "\n", "Our third quiz is scheduled for Thursday, March 14th. It will be 30\n", "minute in pen and paper format. Bring a calculator. The learning goals\n", "for this quiz are:\n", "\n", "### Differential equations\n", "\n", "1. Be able to take a discrete approximation to limit of infinitesimal\n", "volume size and time step to arrive at the partial differential\n", "equation. \n", "\n", "2. Partial differential equation: \n", "\n", "   - distinguish between terms that represent fluxes, sources and\n", " storage of quantities within the volume (infinitesimal point). \n", "   - recognize the order of the equation. \n", "   - recognize conservative forms\n", "   - be able to write the steady-state version of a PDE\n", "   - be able to understand the significance of the mathematical concept\n", " of divergence and its relationship to flux at a point\n", "   - be able to recognize a partial differential equation when written\n", " in vector form using divergence and gradient and “nabla” notation.\n", "   - be able to analyze units\n", "   - be able to predict the asymptotic solutions of simple boundary\n", " value problems\n", "   - give a physical interpretation of a PDE \n", "   - be able to simplify a partial differential equation when\n", " coefficients are constant.\n", "\n", "   \n", "3. Be able to set up boundary value problem: \n", "\n", "   - define domain of the problem. \n", "   - define the equations that govern the dependent variable. \n", "   - define the parameters of the equation, and if they are spatially\n", " homogeneous (do not vary in space) or heterogeneous.\n", "\n", "\n", "#### Math Details\n", "\n", "For the mathematical/physical/pde concepts, refer to the notebook\n", "\n", "\n", "- understand the conservation/continuity equation (equations\n", " 13,24,27,28,31). Be able to explain what it means, what are the\n", " different terms, ... If **provided** with certain fluxes, be able to\n", " know the units (diffusion coefficient, darcy-velocity, heat fluxes, ...\n", " for example).\n", "\n", "- be able to manipulate this equation (write it with nabla, divergence,\n", " gradient, ... be able to specify it in 1D, 2D, steady-state, ...) and\n", " simplify it if certain assumptions are given.\n", "\n", "- understand concepts of divergence, fluxes\n", "\n", "- understand the link between the PDE and the stencil (how to\n", " approximate the derivatives of the fluxes based on discrete\n", " approximation: west-center-east).\n", "\n", "- if given certain boundary conditions in certain problem, be able to\n", " conceptually draw the steady-state solution.\n", " \n", "For concrete examples to practise and understand the different\n", "influences of boundary conditions, solution profiles, the 1d transient\n", "assignment or the different notebooks we have covered should really help\n", "you. Run these programs, modify boundary conditions. You can do the same\n", "with the first part of the 2d transient assignement (it includes\n", "multiple types of boundary conditions, can deal with heterogeneities,\n", "source terms). You can play around to understand the link between\n", "boundary conditions and steady-state solutions and build your intuition.\n", "\n", "For the classes, the example given today in class (or in 2D assignment)\n", "can help you with that. For function practise, try to develop your own\n", "function. Look at the function \"harmonic averaging\" of the 2D transient\n", "assignement and modify it to a geometric or arithmetic averaging. You\n", "can take any simple problem you want and put it in a function (absolute\n", "value, square, opposite, ...) for good practise. We learn coding by\n", "coding!\n", "\n", "### Simulation / python\n", "\n", " \n", "1. Be able to read a code fragment in python (to the level covered in\n", " the notebooks given in class up to March 12, 2019), and recognize syntax\n", " errors, or predict the result of simple short functions.\n", "\n", "2. Be able to define a simple class that contains class variables,\n", " instance variables and instance methods and use it to pass parameters\n", " into and out of a function.\n", "\n", "3. Be able to write basic functions with default values (similar than\n", " quiz 2)\n", "\n", "\n", "\n", "For the Python questions:\n", "\n", "- check out last quiz: you should be able to do that question\n", "\n", "- the notebooks about classes today: you should be able to predict the\n", " value \"30\" which was asked in class. And to add a function(method) in\n", " the class.\n", "\n", " \n" ] }, { "cell_type": "markdown", "metadata": { "lines_to_next_cell": 2 }, "source": [ "## Quiz 4 learning goals\n", "\n", "Our last quiz is scheduled for Thursday, March 28. It will\n", "be 30 minutes in pen and paper format. Bring a calculator.\n", "\n", "\n", "The learning goals for this quiz are:\n", "\n", "### Computational methods\n", "\n", " - Be able to develop finite-difference approximations for first and\n", " second derivatives (total and partial).\n", " - Be able to determine the truncation error and order of a finite -\n", " difference approximation from Taylor-series analysis.\n", " - Can construction forwards, backwards and central finite difference\n", " approximation stencils.\n", " - Can distinguish truncation error from roundoff error.\n", " - Can identify the controls truncation error, and recognize\n", " pathological situations which lead to large truncation errors.\n", " - Using a finite-difference stencil, can construct the system of\n", " equations for a finite-difference approximation to an ordinary or\n", " partial differential equation, including defining the grid of nodes\n", " and applying first-type (Dirichlet) and second-type (Neumann)\n", " boundary conditions.\n", "\n", "### Mathematics\n", "\n", " - Be able to read a partial differential equation:\n", " - distinguish between terms that represent fluxes, sources and\n", " storage of quantities within the volume (infinitesimal point).\n", " - recognize the order of the equation.\n", " - recognize conservative forms\n", " - recognize flux terms\n", " - understand the physical meaning of terms in a partial\n", " differential conservation law equation\n", " - identify dimensions of terms in equations\n", " - Be able to simplify a partial differential equation when\n", " coefficients are constant.\n", "\n", "### Be able to set up boundary value problem:\n", "\n", " - define domain of the problem.\n", " - define the equations that govern the dependent variable.\n", " - define the parameters of the equation, and if they are spatially\n", " homogeneous (do not vary in space) or heterogeneous.\n", " - distinguish between the principal boundary conditions that prevail.\n", " - assign initial conditions (if a time dependent problem).\n", " - Determine that a solution satisfies the boundary value problem.\n", "\n", "### Simulation / python\n", "\n", " - Pandas\n", " - Be able to use the apply method to execute a function on every\n", " row of a dataframe\n", " - Be able to add a column to a data frame and use groupby with\n", " that column to group dataframe rows into subset dataframes\n", " - Be able to do simple statistics (mean, median, max, min,\n", " summary) on dataframes and dataframe series\n", " - Be able to construct dataframes from lists of tuples, lists of\n", " dictionaries, or numpy arrays using from_records member\n", " function" ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "toc,-all", "encoding": "# -*- coding: utf-8 -*-", "main_language": "python", "notebook_metadata_filter": "-all" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }