iNSE-ALE-Article/ALE Testing - Article.ipynb

385 lines
22 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
2020-12-11 16:09:54 +01:00
"execution_count": null,
"metadata": {
"scrolled": true
},
2020-12-11 16:09:54 +01:00
"outputs": [],
"source": [
"from main import testing_ALE, testing_defs_ALE, testing_defs_ALE_CT\n",
"#testing_defs_ALE(solver_to_use='LU')\n",
"#testing_defs_ALE_CT(solver_to_use='LU')\n",
"dict_mt, dict_ct = testing_ALE(solver_to_use='LU') # 'LU', 'Krylov'"
]
},
{
"cell_type": "code",
2020-12-11 16:09:54 +01:00
"execution_count": null,
"metadata": {},
2020-12-11 16:09:54 +01:00
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"def testing_comparative_plots(dict_fields_mt: dict, dict_fields_ct: dict, *args) -> None:\n",
" \"\"\"\n",
" Computes error figures between the schemes with Jacobian evaluation at times {n, n+1}, i.e.\n",
" with explicit and implicit treatment of the time-derivative term.\n",
" ...\n",
" \n",
" Input Parameters\n",
" ----------------\n",
" dict_fields_mt : tuple -> (dict, dict, dict)\n",
" tuple containing dictionaries of fields (def, vel, pre) from the iNSE ALE Monolithic solver.\n",
" \n",
" dict_fields_ct : tupel -> (dict, dict, dict)\n",
" tuple containing dictionaries of fields (def, vel, pre) from the iNSE ALE CT solver. \n",
" \"\"\"\n",
" print(\"\\nComputing error figures for both schemes...\\n\")\n",
" # Creates dictionaries for \"expanding\" and \"contracting\" functions\n",
" # Time dictionary\n",
" time_list = {\n",
" 'MT': {jac_name: [] for jac_name in dict_fields_mt.keys()},\n",
" 'CT': {jac_name: [] for jac_name in dict_fields_ct.keys()}\n",
" }\n",
" # Numerical dissipation dictionary --> int (| J^{n+1} u^{n+1} - J^{n} u^{n} |)\n",
" dis_value_exp = {\n",
" 'MT': {jac_name: [] for jac_name in dict_fields_mt.keys()},\n",
" 'CT': {jac_name: [] for jac_name in dict_fields_ct.keys()}\n",
" }\n",
" dis_value_con = {\n",
" 'MT': {jac_name: [] for jac_name in dict_fields_mt.keys()},\n",
" 'CT': {jac_name: [] for jac_name in dict_fields_ct.keys()}\n",
" }\n",
" # Physical dissipation dictionary --> int ( 2*mu* | eps(u) |^2 )\n",
" eps_value_exp = {\n",
" 'MT': {jac_name: [] for jac_name in dict_fields_mt.keys()},\n",
" 'CT': {jac_name: [] for jac_name in dict_fields_ct.keys()}\n",
" }\n",
" eps_value_con = {\n",
" 'MT': {jac_name: [] for jac_name in dict_fields_mt.keys()},\n",
" 'CT': {jac_name: [] for jac_name in dict_fields_ct.keys()}\n",
" }\n",
" # 'delta' values dictionary\n",
" delta_value_exp = {\n",
" 'MT': {jac_name: [] for jac_name in dict_fields_mt.keys()},\n",
" 'CT': {jac_name: [] for jac_name in dict_fields_ct.keys()}\n",
" }\n",
" delta_value_con = {\n",
" 'MT': {jac_name: [] for jac_name in dict_fields_mt.keys()},\n",
" 'CT': {jac_name: [] for jac_name in dict_fields_ct.keys()}\n",
" }\n",
" # Normalized 'delta' values dictionary (w.r.t physical dissipation)\n",
" delta_hat_value_exp = {\n",
" 'MT': {jac_name: [] for jac_name in dict_fields_mt.keys()},\n",
" 'CT': {jac_name: [] for jac_name in dict_fields_ct.keys()}\n",
" }\n",
" delta_hat_value_con = {\n",
" 'MT': {jac_name: [] for jac_name in dict_fields_mt.keys()},\n",
" 'CT': {jac_name: [] for jac_name in dict_fields_ct.keys()}\n",
" }\n",
" # Normalized 'delta' values dictionary (w.r.t numerical dissipation)\n",
" delta_hat_dis_exp = {\n",
" 'MT': {jac_name: [] for jac_name in dict_fields_mt.keys()},\n",
" 'CT': {jac_name: [] for jac_name in dict_fields_ct.keys()}\n",
" }\n",
" delta_hat_dis_con = {\n",
" 'MT': {jac_name: [] for jac_name in dict_fields_mt.keys()},\n",
" 'CT': {jac_name: [] for jac_name in dict_fields_ct.keys()}\n",
" }\n",
" # Iterate over the different cases in MT (Monolithic) and CT (Chorin-Temam) schemes\n",
" for scheme in ['MT', 'CT']: # 'MT', 'CT'\n",
" if scheme == 'MT':\n",
" dict_fields = dict_fields_mt\n",
" else:\n",
" dict_fields = dict_fields_ct\n",
" # Iterate over different cases 'j_implicit', 'j_explicit'\n",
" for jac_name in dict_fields.keys():\n",
" dict_vel = dict_fields[jac_name][1]\n",
" for i in range(len(dict_vel['High_Osc_exp'])):\n",
" # Saving time steps\n",
" time_list[scheme][jac_name].append(dict_vel['High_Osc_exp'][i][1])\n",
" # Add 'delta' values\n",
" delta_value_exp[scheme][jac_name].append(dict_vel['High_Osc_exp'][i][2])\n",
" #delta_value_con[scheme][jac_name].append(dict_vel['High_Osc_con'][i][2])\n",
" # Add physical dissipation\n",
" eps_value_exp[scheme][jac_name].append(dict_vel['High_Osc_exp'][i][3])\n",
" #eps_value_con[scheme][jac_name].append(dict_vel['High_Osc_con'][i][3])\n",
" # Add numerical dissipation\n",
" dis_value_exp[scheme][jac_name].append(dict_vel['High_Osc_exp'][i][4])\n",
" #dis_value_con[scheme][jac_name].append(dict_vel['High_Osc_con'][i][4])\n",
" # Compute normalized 'delta' values w.r.t the physical dissipation\n",
" delta_hat_value_exp[scheme][jac_name].append(dict_vel['High_Osc_exp'][i][2]/dict_vel['High_Osc_exp'][i][3])\n",
" #delta_hat_value_con[scheme][jac_name].append(dict_vel['High_Osc_con'][i][2]/dict_vel['High_Osc_con'][i][3])\n",
" # Compute normalized 'delta' values w.r.t the numerical dissipation\n",
" delta_hat_dis_exp[scheme][jac_name].append(dict_vel['High_Osc_exp'][i][2]/dict_vel['High_Osc_exp'][i][4])\n",
" #delta_hat_dis_con[scheme][jac_name].append(dict_vel['High_Osc_con'][i][2]/dict_vel['High_Osc_con'][i][4])\n",
"\n",
" # Auxiliary indexes for plotting\n",
" # TODO: Test this line and automatize the \"100\"!\n",
" init = 0\n",
" out = 101 #len(time_list['CT']['j_implicit']) # at tau = 0.01, T = 2 --> 200 time steps\n",
"\n",
" # ---------------------- #\n",
" # DELTA VALUE CASE\n",
" # ---------------------- #\n",
" # CASE CT\n",
" plt.subplots(figsize=(10, 4))\n",
" # Top \n",
" lf_ax = plt.subplot(1, 2, 2)\n",
" lf_j_exp, = lf_ax.plot(time_list['CT']['j_explicit'][init:out], delta_value_exp['CT']['j_explicit'][init:out], color='blue', ls='--')\n",
" lf_j_imp, = lf_ax.plot(time_list['CT']['j_implicit'][init:out], delta_value_exp['CT']['j_implicit'][init:out], color='blue')\n",
" lf_ax.set_xlabel(r\"Simulation time [t]\")\n",
" lf_ax.set_ylabel(r\"$\\delta_{CT}$\", color='blue')\n",
" lf_ax.set_title(r\"Residual Energy $\\delta_{CT}$\")\n",
" lf_ax.tick_params(axis='y', labelcolor='blue')\n",
" lf_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" #rh_ax = lf_ax.twinx()\n",
" #rh_j_exp, = rh_ax.plot(time_list['CT']['j_explicit'][init:out], delta_value_con['CT']['j_explicit'][init:out], color='red', ls='--')\n",
" #rh_j_imp, = rh_ax.plot(time_list['CT']['j_implicit'][init:out], delta_value_con['CT']['j_implicit'][init:out], color='red')\n",
" #rh_ax.set_ylabel(r\"$\\delta_{CT}$ def. II\", color='red')\n",
" #rh_ax.tick_params(axis='y', labelcolor='red')\n",
" #rh_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" plt.legend((lf_j_exp, lf_j_imp), (r'CT $\\bigstar\\bigstar = n$', r'CT $\\bigstar\\bigstar = n+1$'), loc='center right')\n",
" plt.grid(True)\n",
" # CASE M\n",
" # Bottom\n",
" lf_ax = plt.subplot(1, 2, 1)\n",
" lf_j_exp, = lf_ax.plot(time_list['MT']['j_explicit'][init:out], delta_value_exp['MT']['j_explicit'][init:out], color='blue', ls='--')\n",
" lf_j_imp, = lf_ax.plot(time_list['MT']['j_implicit'][init:out], delta_value_exp['MT']['j_implicit'][init:out], color='blue')\n",
" lf_ax.set_xlabel(r\"Simulation time [t]\")\n",
" lf_ax.set_ylabel(r\"$\\delta_{M}$\", color='blue')\n",
" lf_ax.set_title(r\"Residual Energy $\\delta_{M}$\")\n",
" lf_ax.tick_params(axis='y', labelcolor='blue')\n",
" lf_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" #rh_ax = lf_ax.twinx()\n",
" #rh_j_exp, = rh_ax.plot(time_list['MT']['j_explicit'][init:out], delta_value_con['MT']['j_explicit'][init:out], color='red', ls='--')\n",
" #rh_j_imp, = rh_ax.plot(time_list['MT']['j_implicit'][init:out], delta_value_con['MT']['j_implicit'][init:out], color='red')\n",
" #rh_ax.set_ylabel(r\"$\\delta_{M}$ def. II\", color='red')\n",
" #rh_ax.tick_params(axis='y', labelcolor='red')\n",
" #rh_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" plt.legend((lf_j_exp, lf_j_imp), (r'M $\\bigstar\\bigstar = n$', r'M $\\bigstar\\bigstar = n+1$'), loc='center right')\n",
" plt.grid(True)\n",
" plt.subplots_adjust(hspace=0.8)\n",
" plt.tight_layout()\n",
" plt.savefig('Comparison_Delta_Value_GCL_{}_Solver_{}.png'.format(args[0], args[1]), dpi=300)\n",
" plt.close()\n",
"\n",
" # ---------------------- #\n",
" # NORMALIZED DELTA CASE (w.r.t physical dissipation)\n",
" # ---------------------- #\n",
" plt.subplots(figsize=(10, 4))\n",
" # CASE CT\n",
" # Top\n",
" lf_ax = plt.subplot(1, 2, 2)\n",
" lf_j_exp, = lf_ax.plot(time_list['CT']['j_explicit'][init:out], delta_hat_value_exp['CT']['j_explicit'][init:out], color='blue', ls='--')\n",
" lf_j_imp, = lf_ax.plot(time_list['CT']['j_implicit'][init:out], delta_hat_value_exp['CT']['j_implicit'][init:out], color='blue')\n",
" lf_ax.set_xlabel(r\"Simulation time [t]\")\n",
" lf_ax.set_ylabel(r\"$\\hat{\\delta}_{CT}$\", color='blue')\n",
" lf_ax.set_title(r\"Normalized value $\\hat{\\delta}_{CT}$\")\n",
" lf_ax.tick_params(axis='y', labelcolor='blue')\n",
" lf_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" #rh_ax = lf_ax.twinx()\n",
" #rh_j_exp, = rh_ax.plot(time_list['CT']['j_explicit'][init:out], delta_hat_value_con['CT']['j_explicit'][init:out], color='red', ls='--')\n",
" #rh_j_imp, = rh_ax.plot(time_list['CT']['j_implicit'][init:out], delta_hat_value_con['CT']['j_implicit'][init:out], color='red')\n",
" #rh_ax.set_ylabel(r\"$\\hat{\\delta}_{CT}$ def. II\", color='red')\n",
" #rh_ax.tick_params(axis='y', labelcolor='red')\n",
" #rh_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" plt.legend((lf_j_exp, lf_j_imp), (r'CT $\\bigstar\\bigstar = n$', r'CT $\\bigstar\\bigstar = n+1$'), loc='lower right')\n",
" plt.grid(True)\n",
" # CASE M\n",
" # Bottom\n",
" lf_ax = plt.subplot(1, 2, 1)\n",
" lf_j_exp, = lf_ax.plot(time_list['MT']['j_explicit'][init:out], delta_hat_value_exp['MT']['j_explicit'][init:out], color='blue', ls='--')\n",
" lf_j_imp, = lf_ax.plot(time_list['MT']['j_implicit'][init:out], delta_hat_value_exp['MT']['j_implicit'][init:out], color='blue')\n",
" lf_ax.set_xlabel(r\"Simulation time [t]\")\n",
" lf_ax.set_ylabel(r\"$\\hat{\\delta}_{M}$\", color='blue')\n",
" lf_ax.set_title(r\"Normalized value $\\hat{\\delta}_{M}$\")\n",
" lf_ax.tick_params(axis='y', labelcolor='blue')\n",
" lf_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" #rh_ax = lf_ax.twinx()\n",
" #rh_j_exp, = rh_ax.plot(time_list['MT']['j_explicit'][init:out], delta_hat_value_con['MT']['j_explicit'][init:out], color='red', ls='--')\n",
" #rh_j_imp, = rh_ax.plot(time_list['MT']['j_implicit'][init:out], delta_hat_value_con['MT']['j_implicit'][init:out], color='red')\n",
" #rh_ax.set_ylabel(r\"$\\hat{\\delta}_{M}$ def. II\", color='red')\n",
" #rh_ax.tick_params(axis='y', labelcolor='red')\n",
" #rh_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" plt.legend((lf_j_exp, lf_j_imp), (r'M $\\bigstar\\bigstar = n$', r'M $\\bigstar\\bigstar = n+1$'), loc='upper right')\n",
" plt.grid(True)\n",
" plt.subplots_adjust(hspace=0.8)\n",
" plt.tight_layout()\n",
" plt.savefig('Comparison_Delta_Hat_Value_GCL_{}_solver_{}.png'.format(args[0], args[1]), dpi=300)\n",
" plt.close()\n",
"\n",
" # ---------------------- #\n",
" # NORMALIZED DELTA CASE (w.r.t numerical dissipation)\n",
" # ---------------------- #\n",
" plt.subplots(figsize=(10, 4))\n",
" # CASE CT\n",
" # Top\n",
" lf_ax = plt.subplot(1, 2, 2)\n",
" lf_j_exp, = lf_ax.plot(time_list['CT']['j_explicit'][init:out], delta_hat_dis_exp['CT']['j_explicit'][init:out], color='blue', ls='--')\n",
" lf_j_imp, = lf_ax.plot(time_list['CT']['j_implicit'][init:out], delta_hat_dis_exp['CT']['j_implicit'][init:out], color='blue')\n",
" lf_ax.set_xlabel(r\"Simulation time [t]\")\n",
" lf_ax.set_ylabel(r\"$\\hat{\\delta}_{CT}$ dis. \", color='blue')\n",
" lf_ax.set_title(r\"Normalized value $\\hat{\\delta}_{CT}$ (dis)\")\n",
" lf_ax.tick_params(axis='y', labelcolor='blue')\n",
" lf_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" #rh_ax = lf_ax.twinx()\n",
" #rh_j_exp, = rh_ax.plot(time_list['CT']['j_explicit'][init:out], delta_hat_dis_con['CT']['j_explicit'][init:out], color='red', ls='--')\n",
" #rh_j_imp, = rh_ax.plot(time_list['CT']['j_implicit'][init:out], delta_hat_dis_con['CT']['j_implicit'][init:out], color='red')\n",
" #rh_ax.set_ylabel(r\"$\\hat{\\delta}_{CT}$ def. II\", color='red')\n",
" #rh_ax.tick_params(axis='y', labelcolor='red')\n",
" #rh_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" plt.legend((lf_j_exp, lf_j_imp), (r'CT $\\bigstar\\bigstar = n$', r'CT $\\bigstar\\bigstar = n+1$'), loc='lower right')\n",
" plt.grid(True)\n",
" # CASE M\n",
" # Bottom\n",
" lf_ax = plt.subplot(1, 2, 1)\n",
" lf_j_exp, = lf_ax.plot(time_list['MT']['j_explicit'][init:out], delta_hat_dis_exp['MT']['j_explicit'][init:out], color='blue', ls='--')\n",
" lf_j_imp, = lf_ax.plot(time_list['MT']['j_implicit'][init:out], delta_hat_dis_exp['MT']['j_implicit'][init:out], color='blue')\n",
" lf_ax.set_xlabel(r\"Simulation time [t]\")\n",
" lf_ax.set_ylabel(r\"$\\hat{\\delta}_{M}$ dis.\", color='blue')\n",
" lf_ax.set_title(r\"Normalized value $\\hat{\\delta}_{M}$ (dis)\")\n",
" lf_ax.tick_params(axis='y', labelcolor='blue')\n",
" lf_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" #rh_ax = lf_ax.twinx()\n",
" #rh_j_exp, = rh_ax.plot(time_list['MT']['j_explicit'][init:out], delta_hat_dis_con['MT']['j_explicit'][init:out], color='red', ls='--')\n",
" #rh_j_imp, = rh_ax.plot(time_list['MT']['j_implicit'][init:out], delta_hat_dis_con['MT']['j_implicit'][init:out], color='red')\n",
" #rh_ax.set_ylabel(r\"$\\hat{\\delta}_{M}$ def. II\", color='red')\n",
" #rh_ax.tick_params(axis='y', labelcolor='red')\n",
" #rh_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" plt.legend((lf_j_exp, lf_j_imp), (r'M $\\bigstar\\bigstar = n$', r'M $\\bigstar\\bigstar = n+1$'), loc='lower right')\n",
" plt.grid(True)\n",
" plt.subplots_adjust(hspace=0.8)\n",
" plt.tight_layout()\n",
" plt.savefig('Comparison_Delta_Hat_Dis_Value_GCL_{}_solver_{}.png'.format(args[0], args[1]), dpi=300)\n",
" plt.close()\n",
"\n",
" # ---------------------- #\n",
" # PHYSICAL DISSIPATION PLOT\n",
" # ---------------------- #\n",
" plt.subplots(figsize=(10, 4))\n",
" # CASE CT\n",
" # Top\n",
" lf_ax = plt.subplot(1, 2, 2)\n",
" lf_j_exp, = lf_ax.plot(time_list['CT']['j_explicit'][init:out], eps_value_exp['CT']['j_explicit'][init:out], color='blue', ls='--')\n",
" lf_j_imp, = lf_ax.plot(time_list['CT']['j_implicit'][init:out], eps_value_exp['CT']['j_implicit'][init:out], color='blue')\n",
" lf_ax.set_xlabel(r\"Simulation time [t]\")\n",
" lf_ax.set_ylabel(r\"CT\", color='blue')\n",
" lf_ax.set_title(r\"Physical Dissipation (CT)\")\n",
" lf_ax.tick_params(axis='y', labelcolor='blue')\n",
" lf_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" #rh_ax = lf_ax.twinx()\n",
" #rh_j_exp, = rh_ax.plot(time_list['CT']['j_explicit'][init:out], eps_value_con['CT']['j_explicit'][init:out], color='red', ls='--')\n",
" #rh_j_imp, = rh_ax.plot(time_list['CT']['j_implicit'][init:out], eps_value_con['CT']['j_implicit'][init:out], color='red')\n",
" #rh_ax.set_ylabel(r\"On def. II\", color='red')\n",
" #rh_ax.tick_params(axis='y', labelcolor='red')\n",
" #rh_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" plt.legend((lf_j_exp, lf_j_imp), \\\n",
" (r'CT $\\star\\star = n$', r'CT $\\bigstar\\bigstar = n+1$'), loc='lower right')\n",
" plt.grid(True)\n",
" # CASE M\n",
" # Bottom\n",
" lf_ax = plt.subplot(1, 2, 1)\n",
" lf_j_exp, = lf_ax.plot(time_list['MT']['j_explicit'][init:out], eps_value_exp['MT']['j_explicit'][init:out], color='blue', ls='--')\n",
" lf_j_imp, = lf_ax.plot(time_list['MT']['j_implicit'][init:out], eps_value_exp['MT']['j_implicit'][init:out], color='blue')\n",
" lf_ax.set_xlabel(r\"Simulation time [t]\")\n",
" lf_ax.set_ylabel(r\"M\", color='blue')\n",
" lf_ax.set_title(r\"Physical Dissipation (M)\")\n",
" lf_ax.tick_params(axis='y', labelcolor='blue')\n",
" lf_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" #rh_ax = lf_ax.twinx()\n",
" #rh_j_exp, = rh_ax.plot(time_list['MT']['j_explicit'][init:out], eps_value_con['MT']['j_explicit'][init:out], color='red', ls='--')\n",
" #rh_j_imp, = rh_ax.plot(time_list['MT']['j_implicit'][init:out], eps_value_con['MT']['j_implicit'][init:out], color='red')\n",
" #rh_ax.set_ylabel(r\"On def. II\", color='red')\n",
" #rh_ax.tick_params(axis='y', labelcolor='red')\n",
" #rh_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" plt.legend((lf_j_exp, lf_j_imp), (r'M $\\bigstar\\bigstar = n$', r'M $\\bigstar\\bigstar = n+1$'), loc='lower right')\n",
" plt.grid(True)\n",
" plt.subplots_adjust(hspace=0.8)\n",
" plt.tight_layout()\n",
" plt.savefig('Comparison_Eps_Value_GCL_{}_solver_{}.png'.format(args[0], args[1]), dpi=300)\n",
" plt.close()\n",
"\n",
" # ---------------------- #\n",
" # NUMERICAL DISSIPATION PLOT\n",
" # ---------------------- #\n",
" plt.subplots(figsize=(10, 4))\n",
" # CASE CT\n",
" # Top\n",
" lf_ax = plt.subplot(1, 2, 2)\n",
" lf_j_exp, = lf_ax.plot(time_list['CT']['j_explicit'][init:out], dis_value_exp['CT']['j_explicit'][init:out], color='blue', ls='--')\n",
" lf_j_imp, = lf_ax.plot(time_list['CT']['j_implicit'][init:out], dis_value_exp['CT']['j_implicit'][init:out], color='blue')\n",
" lf_ax.set_xlabel(r\"Simulation time [t]\")\n",
" lf_ax.set_ylabel(r\"CT\", color='blue')\n",
" lf_ax.set_title(r\"Numerical Dissipation (CT)\")\n",
" lf_ax.tick_params(axis='y', labelcolor='blue')\n",
" lf_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" #rh_ax = lf_ax.twinx()\n",
" #rh_j_exp, = rh_ax.plot(time_list['CT']['j_explicit'][init:out], dis_value_con['CT']['j_explicit'][init:out], color='red', ls='--')\n",
" #rh_j_imp, = rh_ax.plot(time_list['CT']['j_implicit'][init:out], dis_value_con['CT']['j_implicit'][init:out], color='red')\n",
" #rh_ax.set_ylabel(r\"On def. II\", color='red')\n",
" #rh_ax.tick_params(axis='y', labelcolor='red')\n",
" #rh_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" plt.legend((lf_j_exp, lf_j_imp), (r'CT $\\bigstar\\bigstar = n$', r'CT $\\bigstar\\bigstar = n+1$'), loc='lower right')\n",
" plt.grid(True)\n",
" # CASE M\n",
" # Bottom\n",
" lf_ax = plt.subplot(1, 2, 1)\n",
" lf_j_exp, = lf_ax.plot(time_list['MT']['j_explicit'][init:out], dis_value_exp['MT']['j_explicit'][init:out], color='blue', ls='--')\n",
" lf_j_imp, = lf_ax.plot(time_list['MT']['j_implicit'][init:out], dis_value_exp['MT']['j_implicit'][init:out], color='blue')\n",
" lf_ax.set_xlabel(r\"Simulation time [t]\")\n",
" lf_ax.set_ylabel(r\"M\", color='blue')\n",
" lf_ax.set_title(r\"Numerical Dissipation (M)\")\n",
" lf_ax.tick_params(axis='y', labelcolor='blue')\n",
" lf_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" #rh_ax = lf_ax.twinx()\n",
" #rh_j_exp, = rh_ax.plot(time_list['MT']['j_explicit'][init:out], dis_value_con['MT']['j_explicit'][init:out], color='red', ls='--')\n",
" #rh_j_imp, = rh_ax.plot(time_list['MT']['j_implicit'][init:out], dis_value_con['MT']['j_implicit'][init:out], color='red')\n",
" #rh_ax.set_ylabel(r\"On def. II\", color='red')\n",
" #rh_ax.tick_params(axis='y', labelcolor='red')\n",
" #rh_ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))\n",
" plt.legend((lf_j_exp, lf_j_imp), (r'M $\\bigstar\\bigstar = n$', r'M $\\bigstar\\bigstar = n+1$'), loc='lower right')\n",
" plt.grid(True)\n",
" plt.subplots_adjust(hspace=0.8)\n",
" plt.tight_layout()\n",
" plt.savefig('Comparison_Num_Dis_Value_GCL_{}_solver_{}.png'.format(args[0], args[1]), dpi=300)\n",
" plt.close()\n",
" print(\"\\nAll computations done and figures saved...\\n\")\n",
" print(\"\\n------------------------------------------\\n\")\n",
" return None\n",
"\n",
"testing_comparative_plots(dict_mt, dict_ct, True, 'LU')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"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.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}