From be8fc11dd572569e952781a5b999503cbe73a1a7 Mon Sep 17 00:00:00 2001
From: JanHab <Jan.Habscheid@web.de>
Date: Fri, 16 Aug 2024 16:42:19 +0200
Subject: [PATCH] Added Ternary Electrolyte introduction

---
 examples/TernaryElectrolyte.py                | 111 ++++++++++++++++++
 examples/__init__.py                          |   0
 src/__init__.py                               |   0
 src/__pycache__/Eq04.cpython-312.pyc          | Bin 0 -> 17910 bytes
 src/__pycache__/__init__.cpython-312.pyc      | Bin 0 -> 179 bytes
 .../oneD_refined_mesh.cpython-312.pyc         | Bin 2838 -> 2888 bytes
 src/oneD_refined_mesh.py                      |   1 +
 7 files changed, 112 insertions(+)
 create mode 100644 examples/TernaryElectrolyte.py
 create mode 100644 examples/__init__.py
 create mode 100644 src/__init__.py
 create mode 100644 src/__pycache__/Eq04.cpython-312.pyc
 create mode 100644 src/__pycache__/__init__.cpython-312.pyc

diff --git a/examples/TernaryElectrolyte.py b/examples/TernaryElectrolyte.py
new file mode 100644
index 0000000..01a8da5
--- /dev/null
+++ b/examples/TernaryElectrolyte.py
@@ -0,0 +1,111 @@
+'''
+Jan Habscheid
+Jan.Habscheid@rwth-aachen.de
+'''
+
+# import the src file needed to solve the system of equations
+import sys
+import os
+
+# Add the src directory to the sys.path
+src_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'src')
+sys.path.insert(0, src_path)
+
+from Eq04 import solve_System_4eq
+
+# Remove the src directory from sys.path after import
+del sys.path[0]
+
+# Further imports
+import matplotlib.pyplot as plt
+import numpy as np
+
+# Define the parameters and boundary conditions
+phi_left = 4.0
+phi_right = 0.0
+p_right = 0.0
+y_A_L = 1/3
+y_C_L = 1/3
+z_A = -1.0
+z_C = 1.0
+K = 'incompressible'
+Lambda2 = 8.553e-6
+a2 = 7.5412e-4
+number_cells = 1024#*4
+refinement_style = 'log'
+rtol = 1e-8
+
+# solve the system
+y_A, y_C, phi, p, x = solve_System_4eq(phi_left, phi_right, p_right, z_A, z_C, y_A_L, y_C_L, K, Lambda2, a2, number_cells, relax_param=0.05, x0=0, x1=1, refinement_style='hard_log', return_type='Vector', max_iter=1_000, rtol=rtol)
+
+# Fine point, where space charge starts to diverge from zero
+index = 0
+nF = z_C * y_C + z_A * y_A
+for i, nF_ in enumerate(nF):
+    if np.isclose(nF_, 0, atol=1e-3):
+        index = i
+        break
+
+
+
+
+# Visualize the results
+fig, axs = plt.subplots(ncols=2, figsize=(30,10))
+labelsize = 30
+lw = 4
+ax1 = axs[0]
+color = 'tab:blue'
+ax1.set_xlabel('x [-]', fontsize=labelsize)
+ax1.set_ylabel('$\\varphi$  [-]', color=color, fontsize=labelsize)
+ax1.set_xlim(0,0.05)
+ax1.plot(x, phi, color=color, lw=lw, label='$\\varphi$')
+ax1.tick_params(axis='x', labelsize=labelsize)
+ax1.tick_params(axis='y', labelcolor=color, labelsize=labelsize)
+
+# Create a second y-axis
+ax2 = ax1.twinx()
+
+# Plot nF
+color = 'tab:red'
+ax2.set_ylabel('$p$ [-]', color=color, fontsize=labelsize)
+ax2.plot(x, p, color=color, lw=lw, label='$p$')
+ax2.set_xlim(0,0.05)
+ax2.tick_params(axis='y', labelcolor=color, labelsize=labelsize)
+
+# Add grid and save the figure
+ax1.grid()
+ax2.grid()
+
+ax1 = axs[1]
+# Plot y_alpha
+color = 'tab:blue'
+ax1.set_xlabel('x [-]', fontsize=labelsize)
+ax1.set_ylabel('$y_\\alpha$  [-]', color=color, fontsize=labelsize)
+ax1.plot(x, y_A, '--', color='tab:blue', lw=lw, label='$y_A$')
+ax1.plot(x, y_C, '-', color='tab:blue', lw=lw, label='$y_C$')
+ax1.plot(x, 1 - y_A - y_C, ':', color='tab:blue', lw=lw, label='$y_S$')
+ax1.set_xlim(0,0.05)
+ax1.axvline(x[index], color='green', lw=lw, linestyle='--')
+ax1.tick_params(axis='x', labelsize=labelsize)
+ax1.tick_params(axis='y', labelcolor=color, labelsize=labelsize)
+
+# Create a second y-axis
+ax2 = ax1.twinx()
+
+# Plot nF
+color = 'tab:red'
+ax2.set_ylabel('$n^F$ [-]', color=color, fontsize=labelsize)
+ax2.plot(x, z_A * y_A + z_C * y_C, '-.', color='tab:red', lw=lw, label='$n^F$')
+ax2.set_xlim(0,0.05)
+ax2.tick_params(axis='y', labelcolor=color, labelsize=labelsize)
+
+# Add grid and save the figure
+ax1.grid()
+ax2.grid()
+lines_labels = [ax.get_legend_handles_labels() for ax in fig.axes]
+lines, labels = [sum(lol, []) for lol in zip(*lines_labels)]
+
+fig.legend(lines, labels, bbox_to_anchor=(0.73,1.1), ncol=6, fontsize=labelsize)
+fig.tight_layout()
+
+fig.show()
\ No newline at end of file
diff --git a/examples/__init__.py b/examples/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/__init__.py b/src/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/__pycache__/Eq04.cpython-312.pyc b/src/__pycache__/Eq04.cpython-312.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..d115d2ed6ed42485613169199be3432cb7a86dc5
GIT binary patch
literal 17910
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
C)d-gW

literal 0
HcmV?d00001

diff --git a/src/__pycache__/__init__.cpython-312.pyc b/src/__pycache__/__init__.cpython-312.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a4c2f1275d9e6807ccc319935c53511bffbf67a2
GIT binary patch
literal 179
zcmX@j%ge<81W8Hz(?IlN5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!3ewNbE74EZ4=qkD
zD%Q_R%*#mBcgasK%}vcKDb^1t%1<v!%+1ZrOV>}&EYVLYPS#D$Nlh*(%Fn4RNzKhq
zNzEzNFD^>fkB`sH%PfhH*DI*}#bE=KD9uT=D`Ev&!3e~~AjU^#Mn=XWW*`dyCnzs2

literal 0
HcmV?d00001

diff --git a/src/__pycache__/oneD_refined_mesh.cpython-312.pyc b/src/__pycache__/oneD_refined_mesh.cpython-312.pyc
index 8bd99bacda254a65624f8611c0fba32b9248ffc7..a4daef0bf736fb8e56a7fa8085d94423836c6fb3 100644
GIT binary patch
delta 312
zcmbOxc0!EzG%qg~0}wQ%>`zOW$ScVhGEv=3nK6YehclNeii?pUg*}x!g(H<Gg)@~a
zjV*<%g(Zr&l1Y<$Vu>3EdumQ<Zfai1#_bYpj69Psuz7K^0nI961rn3h+4b1iK|GGh
z(d_YzB9nKsyE3LvX5?_@POV7HEyzhN*4NXU?95@z$hWzi;}>H+-!1m|_>}zQ`1o6_
zd8N4pl|`aJ{kPb13o=cB9A*%QJtaRUEi<p8hy}#sOiC=ytk5e>%K_VYiy6cMIpG#_
zaY<2;IFMDO10+^5d<K#XMcP2(7l%!5eoARhs$G#8kjn_f#il^w!{i5CV#>028ALvC
Zs4()c5dOdbq;?pCsRJfoK)fQ5LIBl%P^AC>

delta 256
zcmX>hHcgE8G%qg~0}y;q+@Iz&kynz@W1_m5I9n=b3VSM73P&nO8e0ly3riGtC6gxC
z#0IyG7e(0^xhFqo^WtR%YP-drnv<HFnpZN}id~P54JcB?J~@v)o>6%6Id)gZ=*c1+
z&Xbclj2L-0PviK-SkH5dJw84qKRG`B7HeK<Zb4;{2*?z++=5IKAcq-jWJ-QcT4r8F
z5etaNT$+|s1h$H~xTL5^3}l54kXXs^8Avh|X#<I095%W6DWy57c15N@E+Y^Z8v%(A
h%#4hTADNgLSw3?yFbdygm@LoDHd%vPhQ$OZ3jlZKK@I=_

diff --git a/src/oneD_refined_mesh.py b/src/oneD_refined_mesh.py
index a335934..d34bca8 100644
--- a/src/oneD_refined_mesh.py
+++ b/src/oneD_refined_mesh.py
@@ -6,6 +6,7 @@ Jan.Habscheid@rwth-aachen.de
 import numpy as np
 from mpi4py import MPI
 from dolfinx import mesh
+from basix.ufl import element
 from ufl import Mesh
 
 
-- 
GitLab