{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "example = \"Quadratic\"" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "#############################################################################\n", "# Exact solution \n", "#############################################################################\n", "\n", "def exactSolution(x):\n", " \n", " if example == \"Cubic\":\n", " return x * x * x\n", " elif example == \"Quartic\":\n", " return x * x * x * x\n", " elif example == \"Quadratic\":\n", " return 1/9 * x * x\n", " elif example == \"Linear\":\n", " return x\n", " elif example == \"Linear-cubic\":\n", " return np.where(x < 1.5, x, x + (x-1.5) * (x-1.5) * (x-1.5) )\n", " else:\n", " print(\"Error: Either provide Linear, Quadratic, Quartic, or Cubic\")\n", " sys.exit()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "x = np.genfromtxt('x_16.csv',delimiter=',')\n", "u_mscm = np.genfromtxt('u_mscm_n_16_Quadratic.csv',delimiter=',')\n", "u_mdcm = np.genfromtxt('u_mdcm_n_16_Quadratic.csv',delimiter=',')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "markers = ['s','o','x','.']\n", "plt.plot(x,exactSolution(x),c=\"black\",label=\"Exact solution\")\n", "plt.plot(x,u_mdcm,c=\"black\",label=\"MDCM\",marker='s',markevery=8)\n", "plt.plot(x,u_mscm,c=\"black\",label=\"MSCM\",marker='o',markevery=8)\n", "plt.grid()\n", "plt.xlabel(\"$x$\")\n", "plt.ylabel(\"Displacement\")\n", "plt.title(\"Example with quadratic solution with $\\delta=1/8$ and $m=2$\")\n", "plt.legend()\n", "plt.savefig(\"quadratic-all-neumann.pdf\",bbox_inches='tight')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.11.3" } }, "nbformat": 4, "nbformat_minor": 4 }