From 87c8cb081e76102c1604bc51a26bd3fa37437363 Mon Sep 17 00:00:00 2001
From: Jan H <Jan.Habscheid@web.de>
Date: Sun, 17 Nov 2024 14:58:26 +0100
Subject: [PATCH] Package structure 1, now correct commit

---
 BscElectrolyteModels.egg-info/SOURCES.txt     |  23 ----
 BscElectrolyteModels.egg-info/top_level.txt   |   1 -
 .../PKG-INFO                                  |  12 +-
 FENICSxDGM.egg-info/SOURCES.txt               |  23 ++++
 .../dependency_links.txt                      |   0
 .../entry_points.txt                          |   0
 .../requires.txt                              |   6 +-
 FENICSxDGM.egg-info/top_level.txt             |   1 +
 .../zip-safe                                  |   0
 build/lib/Bsc-ElectrolyteModels/__init__.py   |   0
 .../ElectrolyticDiode.py                      |   0
 .../Eq02.py                                   |   0
 .../Eq04.py                                   |   0
 .../EqN.py                                    |   0
 .../Helper_DoubleLayerCapacity.py             |   0
 build/lib/FENICSxDGM/__init__.py              |   5 +
 ...ny.whl => FENICSxDGM-1.0-py3-none-any.whl} | Bin 35361 -> 35203 bytes
 dist/fenicsxdgm-1.0.linux-x86_64.tar.gz       | Bin 0 -> 4097 bytes
 dist/fenicsxdgm-1.0.tar.gz                    | Bin 0 -> 31833 bytes
 setup.cfg                                     |  10 +-
 setup.py                                      |  13 +-
 src/FENICSxDGM.egg-info/PKG-INFO              | 117 ++++++++++++++++++
 src/FENICSxDGM.egg-info/SOURCES.txt           |  23 ++++
 src/FENICSxDGM.egg-info/dependency_links.txt  |   1 +
 src/FENICSxDGM.egg-info/entry_points.txt      |   2 +
 src/FENICSxDGM.egg-info/requires.txt          |  23 ++++
 src/FENICSxDGM.egg-info/top_level.txt         |   1 +
 src/FENICSxDGM.egg-info/zip-safe              |   1 +
 src/__init__.py                               |   5 +
 src/__pycache__/__init__.cpython-312.pyc      | Bin 158 -> 147 bytes
 test_install.ipynb                            |  84 +++++++++++++
 31 files changed, 308 insertions(+), 43 deletions(-)
 delete mode 100644 BscElectrolyteModels.egg-info/SOURCES.txt
 delete mode 100644 BscElectrolyteModels.egg-info/top_level.txt
 rename {BscElectrolyteModels.egg-info => FENICSxDGM.egg-info}/PKG-INFO (94%)
 create mode 100644 FENICSxDGM.egg-info/SOURCES.txt
 rename {BscElectrolyteModels.egg-info => FENICSxDGM.egg-info}/dependency_links.txt (100%)
 rename {BscElectrolyteModels.egg-info => FENICSxDGM.egg-info}/entry_points.txt (100%)
 rename {BscElectrolyteModels.egg-info => FENICSxDGM.egg-info}/requires.txt (72%)
 create mode 100644 FENICSxDGM.egg-info/top_level.txt
 rename {BscElectrolyteModels.egg-info => FENICSxDGM.egg-info}/zip-safe (100%)
 delete mode 100644 build/lib/Bsc-ElectrolyteModels/__init__.py
 rename build/lib/{Bsc-ElectrolyteModels => FENICSxDGM}/ElectrolyticDiode.py (100%)
 rename build/lib/{Bsc-ElectrolyteModels => FENICSxDGM}/Eq02.py (100%)
 rename build/lib/{Bsc-ElectrolyteModels => FENICSxDGM}/Eq04.py (100%)
 rename build/lib/{Bsc-ElectrolyteModels => FENICSxDGM}/EqN.py (100%)
 rename build/lib/{Bsc-ElectrolyteModels => FENICSxDGM}/Helper_DoubleLayerCapacity.py (100%)
 create mode 100644 build/lib/FENICSxDGM/__init__.py
 rename dist/{BscElectrolyteModels-1.0-py3-none-any.whl => FENICSxDGM-1.0-py3-none-any.whl} (77%)
 create mode 100644 dist/fenicsxdgm-1.0.linux-x86_64.tar.gz
 create mode 100644 dist/fenicsxdgm-1.0.tar.gz
 create mode 100644 src/FENICSxDGM.egg-info/PKG-INFO
 create mode 100644 src/FENICSxDGM.egg-info/SOURCES.txt
 create mode 100644 src/FENICSxDGM.egg-info/dependency_links.txt
 create mode 100644 src/FENICSxDGM.egg-info/entry_points.txt
 create mode 100644 src/FENICSxDGM.egg-info/requires.txt
 create mode 100644 src/FENICSxDGM.egg-info/top_level.txt
 create mode 100644 src/FENICSxDGM.egg-info/zip-safe
 create mode 100644 test_install.ipynb

diff --git a/BscElectrolyteModels.egg-info/SOURCES.txt b/BscElectrolyteModels.egg-info/SOURCES.txt
deleted file mode 100644
index ec989ab..0000000
--- a/BscElectrolyteModels.egg-info/SOURCES.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-LICENSE
-README.md
-pyproject.toml
-setup.cfg
-setup.py
-BscElectrolyteModels.egg-info/PKG-INFO
-BscElectrolyteModels.egg-info/SOURCES.txt
-BscElectrolyteModels.egg-info/dependency_links.txt
-BscElectrolyteModels.egg-info/entry_points.txt
-BscElectrolyteModels.egg-info/requires.txt
-BscElectrolyteModels.egg-info/top_level.txt
-BscElectrolyteModels.egg-info/zip-safe
-src/ElectrolyticDiode.py
-src/Eq02.py
-src/Eq04.py
-src/EqN.py
-src/Helper_DoubleLayerCapacity.py
-src/__init__.py
-tests/test_ElectrolyticDiode.py
-tests/test_Eq02.py
-tests/test_Eq04.py
-tests/test_EqN.py
-tests/test_Helper_DoubleLayerCapacity.py
\ No newline at end of file
diff --git a/BscElectrolyteModels.egg-info/top_level.txt b/BscElectrolyteModels.egg-info/top_level.txt
deleted file mode 100644
index eac2d36..0000000
--- a/BscElectrolyteModels.egg-info/top_level.txt
+++ /dev/null
@@ -1 +0,0 @@
-Bsc-ElectrolyteModels
diff --git a/BscElectrolyteModels.egg-info/PKG-INFO b/FENICSxDGM.egg-info/PKG-INFO
similarity index 94%
rename from BscElectrolyteModels.egg-info/PKG-INFO
rename to FENICSxDGM.egg-info/PKG-INFO
index 4600c3c..7e72ec7 100644
--- a/BscElectrolyteModels.egg-info/PKG-INFO
+++ b/FENICSxDGM.egg-info/PKG-INFO
@@ -1,5 +1,5 @@
 Metadata-Version: 2.1
-Name: BscElectrolyteModels
+Name: FENICSxDGM
 Version: 1.0
 Summary: A description is yet to follow
 Home-page: https://git.rwth-aachen.de/JanHab/Bsc-ElectrolyteModels
@@ -9,7 +9,7 @@ License: GNU General Public License v3.0 or later
 Keywords: fenics-project,Battery Simulation,finite element method
 Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
 Classifier: Programming Language :: Python :: 3
-Requires-Python: ==3.12.3
+Requires-Python: >=3.12.3
 Description-Content-Type: text/markdown
 License-File: LICENSE
 Requires-Dist: pyvista==0.43.10
@@ -27,9 +27,9 @@ Requires-Dist: sphinx_rtd_theme==3.0.1; extra == "docs"
 Provides-Extra: build
 Requires-Dist: build>=0.7.0; extra == "build"
 Provides-Extra: dev
-Requires-Dist: BScElectrolytemodels[tests]; extra == "dev"
-Requires-Dist: BScElectrolytemodels[docs]; extra == "dev"
-Requires-Dist: BScElectrolytemodels[build]; extra == "dev"
+Requires-Dist: FENICSxDGM[tests]; extra == "dev"
+Requires-Dist: FENICSxDGM[docs]; extra == "dev"
+Requires-Dist: FENICSxDGM[build]; extra == "dev"
 
 # Reproducibility Repository for Numerical Treatment of a Thermodynamically Consistent Electrolyte Model (B.Sc. Thesis - Jan Habscheid)
 
@@ -60,7 +60,7 @@ All the calculations were performed on a Linux machine. According to the documen
 ```
 conda create --name fenicsx-env python=3.12.3 -y
 conda activate fenicsx-env
-conda install -c conda-forge fenics-dolfinx=0.8.0 mpich=4.2.1 pyvista=0.43.10 matplotlib=3.8.4 numpy=1.26.4 scipy=1.14.0 pytest==8.3.3 -y
+conda install -c conda-forge fenics-dolfinx=0.8.0 mpich=4.2.1 pyvista=0.43.10 gcc=12.4.0 matplotlib=3.8.4 numpy=1.26.4 scipy=1.14.0 pytest==8.3.3 -y
 ```
 
 ### Alternative installation
diff --git a/FENICSxDGM.egg-info/SOURCES.txt b/FENICSxDGM.egg-info/SOURCES.txt
new file mode 100644
index 0000000..800bc67
--- /dev/null
+++ b/FENICSxDGM.egg-info/SOURCES.txt
@@ -0,0 +1,23 @@
+LICENSE
+README.md
+pyproject.toml
+setup.cfg
+setup.py
+FENICSxDGM.egg-info/PKG-INFO
+FENICSxDGM.egg-info/SOURCES.txt
+FENICSxDGM.egg-info/dependency_links.txt
+FENICSxDGM.egg-info/entry_points.txt
+FENICSxDGM.egg-info/requires.txt
+FENICSxDGM.egg-info/top_level.txt
+FENICSxDGM.egg-info/zip-safe
+src/ElectrolyticDiode.py
+src/Eq02.py
+src/Eq04.py
+src/EqN.py
+src/Helper_DoubleLayerCapacity.py
+src/__init__.py
+tests/test_ElectrolyticDiode.py
+tests/test_Eq02.py
+tests/test_Eq04.py
+tests/test_EqN.py
+tests/test_Helper_DoubleLayerCapacity.py
\ No newline at end of file
diff --git a/BscElectrolyteModels.egg-info/dependency_links.txt b/FENICSxDGM.egg-info/dependency_links.txt
similarity index 100%
rename from BscElectrolyteModels.egg-info/dependency_links.txt
rename to FENICSxDGM.egg-info/dependency_links.txt
diff --git a/BscElectrolyteModels.egg-info/entry_points.txt b/FENICSxDGM.egg-info/entry_points.txt
similarity index 100%
rename from BscElectrolyteModels.egg-info/entry_points.txt
rename to FENICSxDGM.egg-info/entry_points.txt
diff --git a/BscElectrolyteModels.egg-info/requires.txt b/FENICSxDGM.egg-info/requires.txt
similarity index 72%
rename from BscElectrolyteModels.egg-info/requires.txt
rename to FENICSxDGM.egg-info/requires.txt
index f08ddad..ef44023 100644
--- a/BscElectrolyteModels.egg-info/requires.txt
+++ b/FENICSxDGM.egg-info/requires.txt
@@ -6,9 +6,9 @@ scipy==1.14.0
 build>=0.7.0
 
 [dev]
-BScElectrolytemodels[tests]
-BScElectrolytemodels[docs]
-BScElectrolytemodels[build]
+FENICSxDGM[tests]
+FENICSxDGM[docs]
+FENICSxDGM[build]
 
 [docs]
 sphinx==7.3.7
diff --git a/FENICSxDGM.egg-info/top_level.txt b/FENICSxDGM.egg-info/top_level.txt
new file mode 100644
index 0000000..a0ebb6e
--- /dev/null
+++ b/FENICSxDGM.egg-info/top_level.txt
@@ -0,0 +1 @@
+FENICSxDGM
diff --git a/BscElectrolyteModels.egg-info/zip-safe b/FENICSxDGM.egg-info/zip-safe
similarity index 100%
rename from BscElectrolyteModels.egg-info/zip-safe
rename to FENICSxDGM.egg-info/zip-safe
diff --git a/build/lib/Bsc-ElectrolyteModels/__init__.py b/build/lib/Bsc-ElectrolyteModels/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/build/lib/Bsc-ElectrolyteModels/ElectrolyticDiode.py b/build/lib/FENICSxDGM/ElectrolyticDiode.py
similarity index 100%
rename from build/lib/Bsc-ElectrolyteModels/ElectrolyticDiode.py
rename to build/lib/FENICSxDGM/ElectrolyticDiode.py
diff --git a/build/lib/Bsc-ElectrolyteModels/Eq02.py b/build/lib/FENICSxDGM/Eq02.py
similarity index 100%
rename from build/lib/Bsc-ElectrolyteModels/Eq02.py
rename to build/lib/FENICSxDGM/Eq02.py
diff --git a/build/lib/Bsc-ElectrolyteModels/Eq04.py b/build/lib/FENICSxDGM/Eq04.py
similarity index 100%
rename from build/lib/Bsc-ElectrolyteModels/Eq04.py
rename to build/lib/FENICSxDGM/Eq04.py
diff --git a/build/lib/Bsc-ElectrolyteModels/EqN.py b/build/lib/FENICSxDGM/EqN.py
similarity index 100%
rename from build/lib/Bsc-ElectrolyteModels/EqN.py
rename to build/lib/FENICSxDGM/EqN.py
diff --git a/build/lib/Bsc-ElectrolyteModels/Helper_DoubleLayerCapacity.py b/build/lib/FENICSxDGM/Helper_DoubleLayerCapacity.py
similarity index 100%
rename from build/lib/Bsc-ElectrolyteModels/Helper_DoubleLayerCapacity.py
rename to build/lib/FENICSxDGM/Helper_DoubleLayerCapacity.py
diff --git a/build/lib/FENICSxDGM/__init__.py b/build/lib/FENICSxDGM/__init__.py
new file mode 100644
index 0000000..18742b0
--- /dev/null
+++ b/build/lib/FENICSxDGM/__init__.py
@@ -0,0 +1,5 @@
+from .ElectrolyticDiode import ElectrolyticDiode
+from .Eq02 import solve_System_2eq, create_refined_mesh
+from .Eq04 import solve_System_4eq
+from .EqN import solve_System_Neq
+from .Helper_DoubleLayerCapacity import *
\ No newline at end of file
diff --git a/dist/BscElectrolyteModels-1.0-py3-none-any.whl b/dist/FENICSxDGM-1.0-py3-none-any.whl
similarity index 77%
rename from dist/BscElectrolyteModels-1.0-py3-none-any.whl
rename to dist/FENICSxDGM-1.0-py3-none-any.whl
index fd17b699cfa34864d347290b3d90d59d0c1e2287..de6fbfd32a614c32ba7a13917281e11d70c97f32 100644
GIT binary patch
delta 4656
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

delta 4837
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

diff --git a/dist/fenicsxdgm-1.0.linux-x86_64.tar.gz b/dist/fenicsxdgm-1.0.linux-x86_64.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..8e3f717f7cefacf05580c1564c869962d5fdfbb6
GIT binary patch
literal 4097
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

literal 0
HcmV?d00001

diff --git a/dist/fenicsxdgm-1.0.tar.gz b/dist/fenicsxdgm-1.0.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..9e2fb5d7abd0441e5741e6b79817dc81ccab1327
GIT binary patch
literal 31833
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
T|D2o@!Emi}1NIOkP!RtGD}1Zw

literal 0
HcmV?d00001

diff --git a/setup.cfg b/setup.cfg
index d38a8f8..4a81424 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,5 @@
 [metadata]
-name = BScElectrolytemodels
+name = FENICSxDGM
 version = attr: 1.0
 author = Jan Habscheid, Manuel Torrilhon, Lambert Theisen
 author_email = Jan.Habscheid@rwth-aachen.de, lambert.theisen@rwth-aachen.de, mt@mathcces.rwth-aachen.de 
@@ -18,7 +18,7 @@ package_dir=
     =src
 packages = find:
 zip_safe = True
-python_requires == 3.12.3
+python_requires >= 3.12.3
 include_package_data = True
 install_requires =
     pyvista == 0.43.10 
@@ -42,6 +42,6 @@ docs =
     sphinx_rtd_theme == 3.0.1
 build = build >= 0.7.0
 dev = 
-    BScElectrolytemodels[tests]
-    BScElectrolytemodels[docs]
-    BScElectrolytemodels[build]
\ No newline at end of file
+    FENICSxDGM[tests]
+    FENICSxDGM[docs]
+    FENICSxDGM[build]
\ No newline at end of file
diff --git a/setup.py b/setup.py
index 5d16151..8ebf6ca 100644
--- a/setup.py
+++ b/setup.py
@@ -1,16 +1,19 @@
 from setuptools import setup, find_packages
 
 setup(
-    name="BscElectrolyteModels",
+    name="FENICSxDGM",
     version="1.0",
     description="A description is yet to follow",
     url="https://git.rwth-aachen.de/JanHab/Bsc-ElectrolyteModels",
     author="Jan Habscheid, Lambert Theisen, Manuel Torrilhon",
     author_email="Jan.Habscheid@rwth-aachen.de, lambert.theisen@rwth-aachen.de, mt@mathcces.rwth-aachen.de",
-    packages=["Bsc-ElectrolyteModels"],
-    package_dir={"Bsc-ElectrolyteModels":"src"},
-    package_data={"Bsc-ElectrolyteModels": ["tests/*"]},
-    python_requires="==3.12.3",
+    packages=["FENICSxDGM"],
+    # packages=find_packages("src"),
+    package_dir={"FENICSxDGM":"src"},
+    # package_dir={"": "src"},
+    package_data={"FENICSxDGM": ["tests/*"]},
+    # package_data={"": ["tests/*"]},
+    python_requires=">=3.12.3",
     install_requires=[
         "pyvista == 0.43.10",
         "numpy == 1.26.4",
diff --git a/src/FENICSxDGM.egg-info/PKG-INFO b/src/FENICSxDGM.egg-info/PKG-INFO
new file mode 100644
index 0000000..7e72ec7
--- /dev/null
+++ b/src/FENICSxDGM.egg-info/PKG-INFO
@@ -0,0 +1,117 @@
+Metadata-Version: 2.1
+Name: FENICSxDGM
+Version: 1.0
+Summary: A description is yet to follow
+Home-page: https://git.rwth-aachen.de/JanHab/Bsc-ElectrolyteModels
+Author: Jan Habscheid, Lambert Theisen, Manuel Torrilhon
+Author-email: Jan.Habscheid@rwth-aachen.de, lambert.theisen@rwth-aachen.de, mt@mathcces.rwth-aachen.de
+License: GNU General Public License v3.0 or later
+Keywords: fenics-project,Battery Simulation,finite element method
+Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
+Classifier: Programming Language :: Python :: 3
+Requires-Python: >=3.12.3
+Description-Content-Type: text/markdown
+License-File: LICENSE
+Requires-Dist: pyvista==0.43.10
+Requires-Dist: numpy==1.26.4
+Requires-Dist: scipy==1.14.0
+Provides-Extra: notebook
+Requires-Dist: jupyter>=1.0.0; extra == "notebook"
+Provides-Extra: tests
+Requires-Dist: pytest==8.3.3; extra == "tests"
+Provides-Extra: docs
+Requires-Dist: sphinx==7.3.7; extra == "docs"
+Requires-Dist: myst-parser==4.0.0; extra == "docs"
+Requires-Dist: sphinx-copybotton==0.5.2; extra == "docs"
+Requires-Dist: sphinx_rtd_theme==3.0.1; extra == "docs"
+Provides-Extra: build
+Requires-Dist: build>=0.7.0; extra == "build"
+Provides-Extra: dev
+Requires-Dist: FENICSxDGM[tests]; extra == "dev"
+Requires-Dist: FENICSxDGM[docs]; extra == "dev"
+Requires-Dist: FENICSxDGM[build]; extra == "dev"
+
+# Reproducibility Repository for Numerical Treatment of a Thermodynamically Consistent Electrolyte Model (B.Sc. Thesis - Jan Habscheid)
+
+[![Pipeline Status](https://git.rwth-aachen.de/Jan.Habscheid/bsc-electrolytemodels/badges/main/pipeline.svg)](https://git.rwth-aachen.de/Jan.Habscheid/bsc-electrolytemodels/pipelines)
+[![Documentation](https://img.shields.io/badge/docs-latest-blue)](https://janhab.pages.rwth-aachen.de/bsc-electrolytemodels/)
+[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13645296.svg)](https://doi.org/10.5281/zenodo.13645296)
+[![GitLab Version](https://img.shields.io/badge/version-1.0-blue.svg)](https://git.rwth-aachen.de/jan.habscheid/bsc-electrolytemodels/-/tags)
+[![License](https://img.shields.io/badge/license-GPLv3-blue)](https://git.rwth-aachen.de/Jan.Habscheid/bsc-electrolytemodels/-/blob/main/LICENSE?ref_type=heads)
+
+## Thesis
+
+This repository contains the code to reproduce the results presented in the bachelor thesis: Numerical Treatment of a Thermodynamically Consistent Electrolyte Model
+Find the thesis at [https://doi.org/10.18154/RWTH-2024-09837](https://doi.org/10.18154/RWTH-2024-09837)
+
+### Abstract
+
+Batteries play a crucial role in the energy transition. The production of green energy depends on external factors. Storing energy in batteries is necessary to access green energy at any time.
+
+Better optimized batteries are essential for the future. Lifetime, loading time, and energy loss are just some aspects that must be improved to prepare for a greener future. Numerical simulations are crucial to understanding and optimizing batteries' behavior. Those simulations enable researchers to test many different materials without considerable additional expenses to, for example, find the best combination of anions and cations.
+
+The classical Nernst-Planck model for the ion transport in an electrolyte fails to predict the correct concentration in the boundaries of the electrolyte. This work will present and analyze a thermodynamically consistent electrolyte model with dimensionless units under isothermal conditions. A simplified version of the system for the one-dimensional equilibrium of an ideal mixture and the incompressible limit will be considered. The numerical implementation of the model with the open-source software FEniCSx will be discussed. Furthermore, the influence of different boundary conditions, material parameters, solvation, and compressibility on the electric potential, pressure, and ion concentration will be investigated, and the model will be compared with the classical Nernst-Planck model. Examples of the double layer capacity and electrolytic diode will be considered.
+
+## Installation
+
+As a numerical solver, mainly FEniCSx was used and installed via conda.
+All the calculations were performed on a Linux machine. According to the documentation, everything should work well on macOS, but this was not tested. FEniCSx offers some beta versions for Windows support, but it is recommended to use WSL2 instead.
+
+```
+conda create --name fenicsx-env python=3.12.3 -y
+conda activate fenicsx-env
+conda install -c conda-forge fenics-dolfinx=0.8.0 mpich=4.2.1 pyvista=0.43.10 gcc=12.4.0 matplotlib=3.8.4 numpy=1.26.4 scipy=1.14.0 pytest==8.3.3 -y
+```
+
+### Alternative installation
+
+Use the "environment.yml" file to install all necessary environments
+
+```
+conda env create -f environment.yml
+```
+
+### macOS installation using Docker
+
+```
+docker compose build
+docker compose run solver
+```
+
+### Testing
+
+Use pytest with 
+```
+python -m pytest
+```
+
+to verify that everything was installed correctly.
+
+
+## Usage
+
+Find the visualizations from the thesis and some extra calculations in the "examples" folder.
+In the subfolder "ReproducableCode" is the code, to execute the calculations with some first visualizations.
+The subfolder "Data" stores the data for all the simulations in a *.npz file, which can be read with numpy `np.load(file.npz)`.
+"Visualizations" creates the necessary figures from the thesis and stores them in *.svg format in "Figures".
+
+In "src" there are the generic FEniCSx implementations, that were used to calculate the examples.
+
+
+## Contact
+
+**Author**
+- Jan Habscheid
+- Jan.Habscheid@rwth-aachen.de
+
+**Supervisor**
+- Dr. Lambert Theissen
+- ACoM - Applied and Computational Mathematics
+- RWTH Aachen University
+- theisen@acom.rwth-aachen.de
+
+**Supervisor**
+- Prof. Dr. Manuel Torrilhon
+- ACoM - Applied and Computational Mathematics
+- RWTH Aachen University
+- mt@acom.rwth-aachen.de
diff --git a/src/FENICSxDGM.egg-info/SOURCES.txt b/src/FENICSxDGM.egg-info/SOURCES.txt
new file mode 100644
index 0000000..d9be7a8
--- /dev/null
+++ b/src/FENICSxDGM.egg-info/SOURCES.txt
@@ -0,0 +1,23 @@
+LICENSE
+README.md
+pyproject.toml
+setup.cfg
+setup.py
+src/ElectrolyticDiode.py
+src/Eq02.py
+src/Eq04.py
+src/EqN.py
+src/Helper_DoubleLayerCapacity.py
+src/__init__.py
+src/FENICSxDGM.egg-info/PKG-INFO
+src/FENICSxDGM.egg-info/SOURCES.txt
+src/FENICSxDGM.egg-info/dependency_links.txt
+src/FENICSxDGM.egg-info/entry_points.txt
+src/FENICSxDGM.egg-info/requires.txt
+src/FENICSxDGM.egg-info/top_level.txt
+src/FENICSxDGM.egg-info/zip-safe
+tests/test_ElectrolyticDiode.py
+tests/test_Eq02.py
+tests/test_Eq04.py
+tests/test_EqN.py
+tests/test_Helper_DoubleLayerCapacity.py
\ No newline at end of file
diff --git a/src/FENICSxDGM.egg-info/dependency_links.txt b/src/FENICSxDGM.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/FENICSxDGM.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/src/FENICSxDGM.egg-info/entry_points.txt b/src/FENICSxDGM.egg-info/entry_points.txt
new file mode 100644
index 0000000..7bcc5d3
--- /dev/null
+++ b/src/FENICSxDGM.egg-info/entry_points.txt
@@ -0,0 +1,2 @@
+[console_scripts]
+my-example-utility = example.example_module:main
diff --git a/src/FENICSxDGM.egg-info/requires.txt b/src/FENICSxDGM.egg-info/requires.txt
new file mode 100644
index 0000000..ef44023
--- /dev/null
+++ b/src/FENICSxDGM.egg-info/requires.txt
@@ -0,0 +1,23 @@
+pyvista==0.43.10
+numpy==1.26.4
+scipy==1.14.0
+
+[build]
+build>=0.7.0
+
+[dev]
+FENICSxDGM[tests]
+FENICSxDGM[docs]
+FENICSxDGM[build]
+
+[docs]
+sphinx==7.3.7
+myst-parser==4.0.0
+sphinx-copybotton==0.5.2
+sphinx_rtd_theme==3.0.1
+
+[notebook]
+jupyter>=1.0.0
+
+[tests]
+pytest==8.3.3
diff --git a/src/FENICSxDGM.egg-info/top_level.txt b/src/FENICSxDGM.egg-info/top_level.txt
new file mode 100644
index 0000000..a0ebb6e
--- /dev/null
+++ b/src/FENICSxDGM.egg-info/top_level.txt
@@ -0,0 +1 @@
+FENICSxDGM
diff --git a/src/FENICSxDGM.egg-info/zip-safe b/src/FENICSxDGM.egg-info/zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/FENICSxDGM.egg-info/zip-safe
@@ -0,0 +1 @@
+
diff --git a/src/__init__.py b/src/__init__.py
index e69de29..bcc2039 100644
--- a/src/__init__.py
+++ b/src/__init__.py
@@ -0,0 +1,5 @@
+from .ElectrolyticDiode import ElectrolyticDiode
+from .Eq02 import solve_System_2eq
+from .Eq04 import solve_System_4eq, create_refined_mesh
+from .EqN import solve_System_Neq
+from .Helper_DoubleLayerCapacity import *
\ No newline at end of file
diff --git a/src/__pycache__/__init__.cpython-312.pyc b/src/__pycache__/__init__.cpython-312.pyc
index 19664c3690d8a063333fd239f1546b1f8295d536..9c87bd1f102a448ab968c971a61bb8e63da79017 100644
GIT binary patch
delta 38
scmbQoIGK_AG%qg~0}xDmV>yxAn9*pWy#$w=tDmQHaD|Jz@5CG<0JjYa6aWAK

delta 49
zcmbQtIFFJ0G%qg~0}y<gtTvI`n9+8ky@Y5|ak6e|PHJ*VQGQNkNosC>N@`B=#6%+i
DR7ww=

diff --git a/test_install.ipynb b/test_install.ipynb
new file mode 100644
index 0000000..dac775a
--- /dev/null
+++ b/test_install.ipynb
@@ -0,0 +1,84 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import FENICSxDGM as DGM"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "phi_left = 5.0\n",
+    "phi_right = 0.0\n",
+    "p_right = 0.0\n",
+    "y_A_R = 1/3\n",
+    "y_C_R = 1/3\n",
+    "z_A = -1.0\n",
+    "z_C = 1.0\n",
+    "K = 'incompressible'\n",
+    "Lambda2 = 8.553e-6\n",
+    "a2 = 7.5412e-4\n",
+    "number_cells = 1024\n",
+    "relax_param = .1\n",
+    "rtol = 1e-4\n",
+    "max_iter = 500"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "AttributeError",
+     "evalue": "module 'src' has no attribute 'solve_System_2eq'",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
+      "Cell \u001b[0;32mIn[5], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m y_A, y_C, phi, p, x \u001b[38;5;241m=\u001b[39m \u001b[43mDGM\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msolve_System_2eq\u001b[49m(phi_left, phi_right, p_right, z_A, z_C, y_A_R, y_C_R, K, Lambda2, a2, number_cells, relax_param\u001b[38;5;241m=\u001b[39mrelax_param, x0\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m, x1\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m, refinement_style\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124muniform\u001b[39m\u001b[38;5;124m'\u001b[39m, return_type\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mVector\u001b[39m\u001b[38;5;124m'\u001b[39m, max_iter\u001b[38;5;241m=\u001b[39mmax_iter, rtol\u001b[38;5;241m=\u001b[39mrtol)\n",
+      "\u001b[0;31mAttributeError\u001b[0m: module 'src' has no attribute 'solve_System_2eq'"
+     ]
+    }
+   ],
+   "source": [
+    "y_A, y_C, phi, p, x = DGM.solve_System_2eq(phi_left, phi_right, p_right, z_A, z_C, y_A_R, y_C_R, K, Lambda2, a2, number_cells, relax_param=relax_param, x0=0, x1=1, refinement_style='uniform', return_type='Vector', max_iter=max_iter, rtol=rtol)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "fenicsx-env",
+   "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.12.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
-- 
GitLab