├── .gitignore
├── .travis.yml
├── 01_python.ipynb
├── 02_PDEs.ipynb
├── 03_finite_differences.ipynb
├── 04_BVP_problems.ipynb
├── 05_elliptic.ipynb
├── 06_iterative.ipynb
├── 07_ivp.ipynb
├── 08_convergence_IVP.ipynb
├── 09_parabolic.ipynb
├── 10_hyperbolic-1.ipynb
├── 11_hyperbolic-2.ipynb
├── 12_mixed.ipynb
├── 13_finite_volume.ipynb
├── 14_spectral.ipynb
├── 15_finite_element.ipynb
├── 16_performance.ipynb
├── LICENSE
├── MIT_LICENSE
├── README.md
├── images
├── 2d_grid.png
├── 2d_grid_red_black.png
├── FEM_projection_assembly.png
├── LWR-Velocity.png
├── P1LocalBases.png
├── P1_Hat_function_fig1.2LB.png
├── P1_function_annotated_fig1.1LB.png
├── ave_demo.png
├── characteristic_tracing_1.png
├── characteristic_tracing_2.png
├── characteristic_tracing_3.png
├── characteristics.png
├── characteristics_rarefaction.png
├── characteristics_regions_1.png
├── characteristics_regions_2.png
├── characteristics_shock.png
├── ellipses.png
├── ellipses_CG.png
├── entropy_condition_rarefaction.png
├── entropy_condition_shock.png
├── f_interpolation_P1_01.png
├── f_interpolation_P1_02.png
├── f_projection_P1_01.png
├── fd_basic.png
├── finite_volume.png
├── flux_stencil.png
├── fmg-cycle.png
├── ghost-cell.png
├── kepler_arch.pdf
├── kepler_arch.png
├── kepler_smx.pdf
├── kepler_smx.png
├── linear_reconstruction.png
├── memory_architecture.png
├── memory_single_core.png
├── moores_law.png
├── pipeline_1.png
├── pipeline_2.png
├── projection_figure.png
├── reconstruction_1.png
├── reconstruction_2.png
├── reconstruction_3.png
├── reconstruction_4.png
├── relationships.png
├── roofline.png
├── shock_diagram_traffic_a.png
├── shock_diagram_traffic_b.png
├── v-cycle.png
├── vonneumann_architecture.png
└── w-cycle.png
├── peer_review.ipynb
├── reaction-diffusion_demo.ipynb
├── requirements.txt
├── src
├── .gitignore
├── Makefile
├── coarse_grain.f90
├── compute_pi.f90
├── computing_pi.py
├── demo2.f90
├── fine_grain.f90
├── hello_world.py
├── hello_world_mpi.f90
├── hello_world_omp.f90
├── jacobi_mpi.f90
├── jacobi_omp1.f90
├── jacobi_omp2.f90
├── matrix_multiply.f90
├── matrix_multiply.py
├── mod_rand.f90
├── note_passing.f90
├── note_passing.py
└── yeval.f90
├── test.py
└── utils
├── __init__.py
└── animation.py
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | env/
12 | build/
13 | develop-eggs/
14 | dist/
15 | downloads/
16 | eggs/
17 | .eggs/
18 | lib/
19 | lib64/
20 | parts/
21 | sdist/
22 | var/
23 | *.egg-info/
24 | .installed.cfg
25 | *.egg
26 |
27 | # PyInstaller
28 | # Usually these files are written by a python script from a template
29 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
30 | *.manifest
31 | *.spec
32 |
33 | # Installer logs
34 | pip-log.txt
35 | pip-delete-this-directory.txt
36 |
37 | # Unit test / coverage reports
38 | htmlcov/
39 | .tox/
40 | .coverage
41 | .coverage.*
42 | .cache
43 | nosetests.xml
44 | coverage.xml
45 | *,cover
46 | .hypothesis/
47 |
48 | # Translations
49 | *.mo
50 | *.pot
51 |
52 | # Django stuff:
53 | *.log
54 |
55 | # Sphinx documentation
56 | docs/_build/
57 |
58 | # PyBuilder
59 | target/
60 |
61 | # IPython notebooks
62 | .ipynb_checkpoints
63 |
64 | # Image base
65 | images/*.afdesign
66 |
67 | # Jupyter Notebook Specific minutia
68 | *.slides.html
69 |
70 | # Course ignores
71 | *-template.ipynb
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: python
2 | sudo: true
3 |
4 | python:
5 | - "2.7"
6 | - "3.6"
7 |
8 | before_install:
9 | - sudo apt-get update -qq
10 |
11 | install:
12 | - pip install -U pip setuptools # Travis breaks without this
13 | - pip install -r requirements.txt
14 |
15 | script:
16 | - python test.py
--------------------------------------------------------------------------------
/01_python.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {
6 | "slideshow": {
7 | "slide_type": "skip"
8 | }
9 | },
10 | "source": [
11 | "
\n",
30 | " \n",
31 | " Criteria | \n",
32 | " 3 points | \n",
33 | " 2 points | \n",
34 | " 1 point | \n",
35 | "
\n",
36 | " \n",
37 | " Readability | \n",
38 | " \n",
39 | " - Doc-strings are clear and accurate
\n",
40 | " - Variables and functions are named descriptively when useful
\n",
41 | " - Comments are placed in appropriate places and are clear and accurate
\n",
42 | " \n",
43 | " | \n",
44 | " \n",
45 | " - Doc-strings are present but not completely descriptive
\n",
46 | " - Variables and functions are sometimes named helpfully
\n",
47 | " - Comments are present but not always accurate or in the most helpful of places
\n",
48 | " \n",
49 | " | \n",
50 | "\n",
51 | " \n",
52 | " - No doc-strings
\n",
53 | " - Variables and functions are named indecipherably
\n",
54 | " - No or inaccurate comments
\n",
55 | " \n",
56 | " | \n",
57 | "
\n",
58 | " \n",
59 | " Style | \n",
60 | " \n",
61 | " - PEP 8 or other style is consistent
\n",
62 | " - Indentation is clean and not mixed
\n",
63 | " \n",
64 | " | \n",
65 | " - Style is mostly consistent with something
\n",
66 | " \n",
67 | " | \n",
68 | " \n",
69 | " - Style is of a by-gone era but may come back someday (not today)
\n",
70 | " \n",
71 | " | \n",
72 | "
\n",
73 | " \n",
74 | " Code Awesome | \n",
75 | " \n",
76 | " - Code was succinct and clean
\n",
77 | " - Upon a glance you completely understood the code
\n",
78 | " - This code defines elegance
\n",
79 | " | \n",
80 | " \n",
81 | " - Code was overall clean but there were a couple spots
\n",
82 | " - Code was mostly clear except for a couple of spots
\n",
83 | " - Code worked but may have been a bit hard to follow
\n",
84 | " | \n",
85 | " \n",
86 | " - Code had large sections that did nothing
\n",
87 | " - Code was very hard to follow
\n",
88 | " - Code got the job done but no one would ever understand why
\n",
89 | " | \n",
90 | "
\n",
91 | "
\n"
92 | ]
93 | }
94 | ],
95 | "metadata": {
96 | "kernelspec": {
97 | "display_name": "Python 2",
98 | "language": "python",
99 | "name": "python2"
100 | },
101 | "language_info": {
102 | "codemirror_mode": {
103 | "name": "ipython",
104 | "version": 2
105 | },
106 | "file_extension": ".py",
107 | "mimetype": "text/x-python",
108 | "name": "python",
109 | "nbconvert_exporter": "python",
110 | "pygments_lexer": "ipython2",
111 | "version": "2.7.12"
112 | },
113 | "latex_envs": {
114 | "bibliofile": "biblio.bib",
115 | "cite_by": "apalike",
116 | "current_citInitial": 1,
117 | "eqLabelWithNumbers": true,
118 | "eqNumInitial": 0
119 | }
120 | },
121 | "nbformat": 4,
122 | "nbformat_minor": 1
123 | }
124 |
--------------------------------------------------------------------------------
/reaction-diffusion_demo.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "