anisotropy/data/analyze.ipynb

378 lines
76 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from anisotropy.database import Database, tables\n",
"import pathlib\n",
"import peewee as pw\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"db = Database(pathlib.Path(\"anisotropy.db\").resolve())\n",
"savefig = False\n",
"execution = 5"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def load_data(execution: int, field: str):\n",
" if not db.getExecution(execution):\n",
" print(\"Execution not found\")\n",
"\n",
" for model in db.tables:\n",
" try:\n",
" column = getattr(model, field)\n",
" \n",
" except AttributeError:\n",
" pass\n",
"\n",
" else:\n",
" break\n",
"\n",
" query = model.select(tables.Shape.alpha, column, tables.Shape.direction, tables.Shape.label)\n",
" idn = db.tables.index(model)\n",
"\n",
" for table in reversed(db.tables[ :idn]):\n",
" query = query.join(table, pw.JOIN.LEFT_OUTER)\n",
" \n",
" query = query.switch(tables.Shape)\n",
" query = query.where(\n",
" tables.Shape.exec_id == execution,\n",
" # tables.Shape.label == structure,\n",
" )\n",
" query = query.order_by(tables.Shape.label, tables.Shape.direction, tables.Shape.alpha)\n",
"\n",
" with db:\n",
" if query.exists():\n",
" table = []\n",
" for row in query.dicts():\n",
" for k in row.keys():\n",
" if type(row[k]) == list:\n",
" row[k] = str(row[k])\n",
"\n",
" table.append(row)\n",
" \n",
" else:\n",
" table = None\n",
"\n",
" if table is None:\n",
" print(\"Results not found\")\n",
"\n",
" else:\n",
" return pd.DataFrame(table)\n",
"\n",
"\n",
"def nanmean(arr):\n",
" temp = arr.copy()\n",
"\n",
" for n, item in enumerate(temp):\n",
" if np.all(np.isnan(item)):\n",
" \n",
" vals = temp[n - 1 : n + 2]\n",
"\n",
" if np.sum(~np.isnan(vals)) <= 1:\n",
" vals = temp[n - 2 : n + 3]\n",
"\n",
" temp[n] = vals[~np.isnan(vals)].mean()\n",
"\n",
" return temp\n",
"\n",
"def filter_group(arr, nan = True, qhigh = True):\n",
" temp = arr.copy()\n",
" check = True\n",
" quan = np.quantile(temp[~np.isnan(temp)], 0.97)\n",
" limit = 1000\n",
"\n",
" while check:\n",
" if nan and np.any(np.isnan(temp)):\n",
" temp = nanmean(temp)\n",
" check = True\n",
" \n",
" elif qhigh and np.any(quan < temp):\n",
" temp[quan < temp] = np.nan\n",
" check = True\n",
"\n",
" else:\n",
" check = False \n",
" \n",
" if limit <= 0:\n",
" break\n",
"\n",
" else:\n",
" limit -= 1\n",
"\n",
" return temp"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Porosity"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_53258/3263217096.py:3: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n",
" simple = df[df.label == \"simple\"][df.direction == \"[0.0, 0.0, 1.0]\"][\"porosity\"].to_numpy()\n",
"/tmp/ipykernel_53258/3263217096.py:4: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n",
" bodyCentered = df[df.label == \"bodyCentered\"][df.direction == \"[0.0, 0.0, 1.0]\"][\"porosity\"].to_numpy()\n",
"/tmp/ipykernel_53258/3263217096.py:5: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n",
" faceCentered = df[df.label == \"faceCentered\"][df.direction == \"[0.0, 0.0, 1.0]\"][\"porosity\"].to_numpy()\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df = load_data(execution, \"porosity\")\n",
"alpha = df[\"alpha\"].unique()\n",
"simple = df[df.label == \"simple\"][df.direction == \"[0.0, 0.0, 1.0]\"][\"porosity\"].to_numpy()\n",
"bodyCentered = df[df.label == \"bodyCentered\"][df.direction == \"[0.0, 0.0, 1.0]\"][\"porosity\"].to_numpy()\n",
"faceCentered = df[df.label == \"faceCentered\"][df.direction == \"[0.0, 0.0, 1.0]\"][\"porosity\"].to_numpy()\n",
"\n",
"fig, ax = plt.subplots(nrows = 1, ncols = 1)\n",
"ax.plot(alpha, np.pad(simple, (0, alpha.size - simple.size), 'constant', constant_values = np.nan), \":\", label = \"КП\")\n",
"ax.plot(alpha, np.pad(bodyCentered, (0, alpha.size - bodyCentered.size), 'constant', constant_values = np.nan), \"--\", label = \"КОП\")\n",
"ax.plot(alpha, np.pad(faceCentered, (0, alpha.size - faceCentered.size), 'constant', constant_values = np.nan), \"-.\", label = \"КГЦ\")\n",
"plt.legend()\n",
"plt.grid(True)\n",
"plt.xlabel(r\"$\\alpha$\")\n",
"plt.ylabel(r\"$m$\")\n",
"plt.show()\n",
"\n",
"if savefig:\n",
" fig.savefig(\"porosity-rounded.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Simple structure"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df = load_data(execution, \"flowRate\")\n",
"simple = df[df.label == \"simple\"].groupby(df.direction)\n",
"alpha = simple.get_group(\"[0.0, 0.0, 1.0]\")[\"alpha\"].to_numpy()\n",
"\n",
"anisotropy_21 = 2 * simple.get_group('[0.0, 0.0, 1.0]')[\"flowRate\"].to_numpy() / simple.get_group('[1.0, 0.0, 0.0]')[\"flowRate\"].to_numpy()\n",
"anisotropy_31 = 2 * simple.get_group('[1.0, 1.0, 1.0]')[\"flowRate\"].to_numpy() / simple.get_group('[1.0, 0.0, 0.0]')[\"flowRate\"].to_numpy()\n",
"#poly = np.polynomial.Polynomial.fit(alpha, anisotropy_21, 1)\n",
"\n",
"anisotropy_21 = filter_group(anisotropy_21, qhigh = False)\n",
"anisotropy_31 = filter_group(anisotropy_31, qhigh = False)\n",
"\n",
"fig, ax = plt.subplots(nrows = 1, ncols = 1)\n",
"ax.plot(alpha, anisotropy_21, \"s\", label = \"$k_2$ / $k_1$\")\n",
"ax.plot(alpha, anisotropy_31, \"^\", label = \"$k_3$ / $k_1$\")\n",
"#ax.plot(alpha, poly(alpha), \"-\")\n",
"plt.legend()\n",
"plt.grid(True)\n",
"plt.xlabel(r\"$\\alpha$\")\n",
"plt.ylabel(\"Анизотропия проницаемости\")\n",
"plt.title(\"Простая кубическая\")\n",
"plt.show()\n",
"\n",
"if savefig:\n",
" fig.savefig(\"anisotropy-simple.png\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Body-centered structure"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df = load_data(execution, \"flowRate\")\n",
"bodyCentered = df[df.label == \"bodyCentered\"].groupby(df.direction)\n",
"alpha = bodyCentered.get_group(\"[0.0, 0.0, 1.0]\")[\"alpha\"].to_numpy()\n",
"\n",
"anisotropy_21 = 2 * bodyCentered.get_group('[0.0, 0.0, 1.0]')[\"flowRate\"].to_numpy() / bodyCentered.get_group('[1.0, 0.0, 0.0]')[\"flowRate\"].to_numpy()\n",
"anisotropy_31 = 2 * bodyCentered.get_group('[1.0, 1.0, 1.0]')[\"flowRate\"].to_numpy() / bodyCentered.get_group('[1.0, 0.0, 0.0]')[\"flowRate\"].to_numpy()\n",
"\n",
"anisotropy_21 = filter_group(anisotropy_21)\n",
"anisotropy_31 = filter_group(anisotropy_31)\n",
"#poly = np.polynomial.Polynomial.fit(alpha, anisotropy_21, 10)\n",
"\n",
"fig, ax = plt.subplots(nrows = 1, ncols = 1)\n",
"ax.plot(alpha, anisotropy_21, \"s\", label = r\"$k_2$ / $k_1$\")\n",
"ax.plot(alpha, anisotropy_31, \"^\", label = r\"$k_3$ / $k_1$\")\n",
"ax.axvline(0.134, linestyle = \"-.\", color = \"green\")\n",
"#ax.plot(alpha, poly(alpha), \"-\")\n",
"plt.legend()\n",
"plt.grid(True)\n",
"plt.xlabel(r\"$\\alpha$\")\n",
"plt.ylabel(\"Анизотропия проницаемости\")\n",
"plt.title(\"Кубическая объемноцентрированная\")\n",
"\n",
"if savefig:\n",
" fig.savefig(\"anisotropy-bodycentered.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Face-centered structure"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df = load_data(execution, \"flowRate\")\n",
"faceCentered = df[df.label == \"faceCentered\"].groupby(df.direction)\n",
"alpha = faceCentered.get_group(\"[0.0, 0.0, 1.0]\")[\"alpha\"].to_numpy()\n",
"\n",
"anisotropy_21 = 2 * faceCentered.get_group('[0.0, 0.0, 1.0]')[\"flowRate\"].to_numpy() / faceCentered.get_group('[1.0, 0.0, 0.0]')[\"flowRate\"].to_numpy()\n",
"anisotropy_31 = 2 * faceCentered.get_group('[1.0, 1.0, 1.0]')[\"flowRate\"].to_numpy() / faceCentered.get_group('[1.0, 0.0, 0.0]')[\"flowRate\"].to_numpy()\n",
"\n",
"anisotropy_21 = filter_group(anisotropy_21)\n",
"anisotropy_31 = filter_group(anisotropy_31)\n",
"#poly = np.polynomial.Polynomial.fit(alpha, anisotropy_21, 10)\n",
"\n",
"fig, ax = plt.subplots(nrows = 1, ncols = 1)\n",
"ax.plot(alpha, anisotropy_21, \"s\", label = r\"$k_2$ / $k_1$\")\n",
"ax.plot(alpha, anisotropy_31, \"^\", label = r\"$k_3$ / $k_1$\")\n",
"#ax.plot(alpha, poly(alpha), \"-\")\n",
"plt.legend()\n",
"plt.grid(True)\n",
"plt.xlabel(r\"$\\alpha$\")\n",
"plt.ylabel(\"Анизотропия проницаемости\")\n",
"plt.title(\"Кубическая гранецентрированная\")\n",
"plt.show()\n",
"\n",
"if savefig:\n",
" fig.savefig(\"anisotropy-facecentered.png\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"interpreter": {
"hash": "19649669bd52b0be75e091dcf60d2128e4a347083ff474cfec5ff9275df3ceed"
},
"kernelspec": {
"display_name": "Python 3.9.9 64-bit ('anisotropy': conda)",
"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.9.10"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}