diff --git a/.gitignore b/.gitignore index 03750e18b2..42c76b7c55 100644 --- a/.gitignore +++ b/.gitignore @@ -14,8 +14,8 @@ !requirements* !LICENSE.txt !CMakeLists.txt -!pybamm/CITATIONS.bib -!pybamm/input/**/*.csv +!src/pybamm/CITATIONS.bib +!src/pybamm/input/**/*.csv !tests/unit/test_parameters/*.csv !benchmarks/benchmark_images/*.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 661f63457e..42ab10ee69 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,8 +48,8 @@ set(IDAKLU_EXPR_CASADI_SOURCE_FILES "") if(${PYBAMM_IDAKLU_EXPR_CASADI} STREQUAL "ON" ) add_compile_definitions(CASADI_ENABLE) set(IDAKLU_EXPR_CASADI_SOURCE_FILES - pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.cpp - pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.hpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.cpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.hpp ) endif() @@ -65,43 +65,43 @@ if(${PYBAMM_IDAKLU_EXPR_IREE} STREQUAL "ON" ) add_compile_definitions(IREE_ENABLE) # Source file list set(IDAKLU_EXPR_IREE_SOURCE_FILES - pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.cpp - pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.hpp - pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.cpp - pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.hpp - pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.cpp - pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.hpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.cpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.hpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.cpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.hpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.cpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.hpp ) endif() # The complete (all dependencies) sources list should be mirrored in setup.py pybind11_add_module(idaklu # pybind11 interface - pybamm/solvers/c_solvers/idaklu.cpp + src/pybamm/solvers/c_solvers/idaklu.cpp # IDAKLU solver (SUNDIALS) - pybamm/solvers/c_solvers/idaklu/idaklu_solver.hpp - pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.cpp - pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.hpp - pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.inl - pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.hpp - pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.cpp - pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.hpp - pybamm/solvers/c_solvers/idaklu/sundials_functions.inl - pybamm/solvers/c_solvers/idaklu/sundials_functions.hpp - pybamm/solvers/c_solvers/idaklu/IdakluJax.cpp - pybamm/solvers/c_solvers/idaklu/IdakluJax.hpp - pybamm/solvers/c_solvers/idaklu/common.hpp - pybamm/solvers/c_solvers/idaklu/python.hpp - pybamm/solvers/c_solvers/idaklu/python.cpp - pybamm/solvers/c_solvers/idaklu/Solution.cpp - pybamm/solvers/c_solvers/idaklu/Solution.hpp - pybamm/solvers/c_solvers/idaklu/Options.hpp - pybamm/solvers/c_solvers/idaklu/Options.cpp + src/pybamm/solvers/c_solvers/idaklu/idaklu_solver.hpp + src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.cpp + src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.hpp + src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.inl + src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.hpp + src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.cpp + src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.hpp + src/pybamm/solvers/c_solvers/idaklu/sundials_functions.inl + src/pybamm/solvers/c_solvers/idaklu/sundials_functions.hpp + src/pybamm/solvers/c_solvers/idaklu/IdakluJax.cpp + src/pybamm/solvers/c_solvers/idaklu/IdakluJax.hpp + src/pybamm/solvers/c_solvers/idaklu/common.hpp + src/pybamm/solvers/c_solvers/idaklu/python.hpp + src/pybamm/solvers/c_solvers/idaklu/python.cpp + src/pybamm/solvers/c_solvers/idaklu/Solution.cpp + src/pybamm/solvers/c_solvers/idaklu/Solution.hpp + src/pybamm/solvers/c_solvers/idaklu/Options.hpp + src/pybamm/solvers/c_solvers/idaklu/Options.cpp # IDAKLU expressions / function evaluation [abstract] - pybamm/solvers/c_solvers/idaklu/Expressions/Expressions.hpp - pybamm/solvers/c_solvers/idaklu/Expressions/Base/Expression.hpp - pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSet.hpp - pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionTypes.hpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/Expressions.hpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/Expression.hpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSet.hpp + src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionTypes.hpp # IDAKLU expressions - concrete implementations ${IDAKLU_EXPR_CASADI_SOURCE_FILES} ${IDAKLU_EXPR_IREE_SOURCE_FILES} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1a1b015c09..73977370b4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,7 +38,7 @@ We use [GIT](https://en.wikipedia.org/wiki/Git) and [GitHub](https://en.wikipedi 2. Create a [branch](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/) of this repo (ideally on your own [fork](https://help.github.com/articles/fork-a-repo/)), where all changes will be made 3. Download the source code onto your local system, by [cloning](https://help.github.com/articles/cloning-a-repository/) the repository (or your fork of the repository). 4. [Install](https://docs.pybamm.org/en/latest/source/user_guide/installation/install-from-source.html) PyBaMM with the developer options. -5. [Test](#testing) if your installation worked, using the test script: `$ python run-tests.py --unit`. +5. [Test](#testing) if your installation worked, using pytest: `$ pytest -m unit`. You now have everything you need to start making changes! @@ -405,7 +405,7 @@ pybamm.print_citations() to the end of a script will print all citations that were used by that script. This will print BibTeX information to the terminal; passing a filename to `print_citations` will print the BibTeX information to the specified file instead. -When you contribute code to PyBaMM, you can add your own papers that you would like to be cited if that code is used. First, add the BibTeX for your paper to [CITATIONS.bib](https://github.com/pybamm-team/PyBaMM/blob/develop/pybamm/CITATIONS.bib). Then, add the line +When you contribute code to PyBaMM, you can add your own papers that you would like to be cited if that code is used. First, add the BibTeX for your paper to [CITATIONS.bib](https://github.com/pybamm-team/PyBaMM/blob/develop/src/pybamm/CITATIONS.bib). Then, add the line ```python3 pybamm.citations.register("your_paper_bibtex_identifier") diff --git a/MANIFEST.in b/MANIFEST.in index 9481c2d875..6b0e944a4c 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ -graft pybamm +graft src include CITATION.cff prune tests diff --git a/README.md b/README.md index 961c2d5f71..1a0f8b4b9b 100644 --- a/README.md +++ b/README.md @@ -161,7 +161,7 @@ We would be grateful if you could also cite the relevant papers. These will chan pybamm.print_citations() ``` -to the end of your script. This will print BibTeX information to the terminal; passing a filename to `print_citations` will print the BibTeX information to the specified file instead. A list of all citations can also be found in the [citations file](https://github.com/pybamm-team/PyBaMM/blob/develop/pybamm/CITATIONS.bib). In particular, PyBaMM relies heavily on [CasADi](https://web.casadi.org/publications/). +to the end of your script. This will print BibTeX information to the terminal; passing a filename to `print_citations` will print the BibTeX information to the specified file instead. A list of all citations can also be found in the [citations file](https://github.com/pybamm-team/PyBaMM/blob/develop/src/pybamm/CITATIONS.bib). In particular, PyBaMM relies heavily on [CasADi](https://web.casadi.org/publications/). See [CONTRIBUTING.md](https://github.com/pybamm-team/PyBaMM/blob/develop/CONTRIBUTING.md#citations) for information on how to add your own citations when you contribute. ## 🛠️ Contributing to PyBaMM diff --git a/docs/conf.py b/docs/conf.py index a2a12bf04f..55a4ac3f61 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -288,7 +288,7 @@ # -- sphinxcontrib-bibtex configuration -------------------------------------- -bibtex_bibfiles = ["../pybamm/CITATIONS.bib"] +bibtex_bibfiles = ["../src/pybamm/CITATIONS.bib"] bibtex_style = "unsrt" bibtex_footbibliography_header = """.. rubric:: References""" bibtex_reference_style = "author_year" diff --git a/docs/source/examples/notebooks/models/SPM.ipynb b/docs/source/examples/notebooks/models/SPM.ipynb index 821580e3d7..2a247f4561 100644 --- a/docs/source/examples/notebooks/models/SPM.ipynb +++ b/docs/source/examples/notebooks/models/SPM.ipynb @@ -124,8 +124,7 @@ "variable = list(model.rhs.keys())[1]\n", "equation = list(model.rhs.values())[1]\n", "print(\"rhs equation for variable '\", variable, \"' is:\")\n", - "path = \"docs/source/examples/notebooks/models/\"\n", - "equation.visualise(path + \"spm1.png\")" + "equation.visualise(\"spm1.png\")" ] }, { @@ -383,7 +382,7 @@ "metadata": {}, "outputs": [], "source": [ - "model.concatenated_rhs.children[1].visualise(path + \"spm2.png\")" + "model.concatenated_rhs.children[1].visualise(\"spm2.png\")" ] }, { diff --git a/examples/scripts/drive_cycle.py b/examples/scripts/drive_cycle.py index e884aa679c..535d06f3e4 100644 --- a/examples/scripts/drive_cycle.py +++ b/examples/scripts/drive_cycle.py @@ -3,9 +3,7 @@ # import pybamm import pandas as pd -import os -os.chdir(pybamm.__path__[0] + "/..") pybamm.set_logging_level("INFO") diff --git a/examples/scripts/experiment_drive_cycle.py b/examples/scripts/experiment_drive_cycle.py index 9e0a9415a0..43db37b749 100644 --- a/examples/scripts/experiment_drive_cycle.py +++ b/examples/scripts/experiment_drive_cycle.py @@ -3,9 +3,7 @@ # import pybamm import pandas as pd -import os -os.chdir(pybamm.__path__[0] + "/..") pybamm.set_logging_level("INFO") diff --git a/noxfile.py b/noxfile.py index c1510379d1..0e9ebc1776 100644 --- a/noxfile.py +++ b/noxfile.py @@ -180,7 +180,7 @@ def run_doctests(session): "-m", "pytest", "--doctest-plus", - "pybamm", + "src", ) diff --git a/pyproject.toml b/pyproject.toml index c71ad237a7..5e9c891877 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -169,13 +169,12 @@ pybamm = [ "*.md", "*.csv", "*.py", - "pybamm/CITATIONS.bib", - "pybamm/plotting/mplstyle", + "src/pybamm/CITATIONS.bib", + "src/pybamm/plotting/mplstyle", ] [tool.setuptools.packages.find] -include = ["pybamm", "pybamm.*"] - +where = ["src"] [tool.ruff] extend-include = ["*.ipynb"] extend-exclude = ["__init__.py"] @@ -264,7 +263,7 @@ log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" log_date_format = "%Y-%m-%d %H:%M:%S" [tool.coverage.run] -source = ["pybamm"] +source = ["src/pybamm"] concurrency = ["multiprocessing"] [tool.repo-review] diff --git a/scripts/update_version.py b/scripts/update_version.py index dfc6b7f32e..3543f0b07b 100644 --- a/scripts/update_version.py +++ b/scripts/update_version.py @@ -24,7 +24,9 @@ def update_version(): ) # pybamm/version.py - with open(os.path.join(pybamm.root_dir(), "pybamm", "version.py"), "r+") as file: + with open( + os.path.join(pybamm.root_dir(), "src", "pybamm", "version.py"), "r+" + ) as file: output = file.read() replace_version = re.sub( '(?<=__version__ = ")(.+)(?=")', release_version, output diff --git a/setup.py b/setup.py index 21dabcebb2..95108454ed 100644 --- a/setup.py +++ b/setup.py @@ -295,40 +295,40 @@ def compile_KLU(): name="pybamm.solvers.idaklu", # The sources list should mirror the list in CMakeLists.txt sources=[ - "pybamm/solvers/c_solvers/idaklu/Expressions/Expressions.hpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/Base/Expression.hpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSet.hpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionTypes.hpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSparsity.hpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.cpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.hpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEBaseFunction.hpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunction.hpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.cpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.hpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.cpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.hpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.cpp", - "pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.hpp", - "pybamm/solvers/c_solvers/idaklu/idaklu_solver.hpp", - "pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.cpp", - "pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.hpp", - "pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.inl", - "pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.hpp", - "pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.cpp", - "pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.hpp", - "pybamm/solvers/c_solvers/idaklu/sundials_functions.inl", - "pybamm/solvers/c_solvers/idaklu/sundials_functions.hpp", - "pybamm/solvers/c_solvers/idaklu/IdakluJax.cpp", - "pybamm/solvers/c_solvers/idaklu/IdakluJax.hpp", - "pybamm/solvers/c_solvers/idaklu/common.hpp", - "pybamm/solvers/c_solvers/idaklu/python.hpp", - "pybamm/solvers/c_solvers/idaklu/python.cpp", - "pybamm/solvers/c_solvers/idaklu/Solution.cpp", - "pybamm/solvers/c_solvers/idaklu/Solution.hpp", - "pybamm/solvers/c_solvers/idaklu/Options.hpp", - "pybamm/solvers/c_solvers/idaklu/Options.cpp", - "pybamm/solvers/c_solvers/idaklu.cpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/Expressions.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/Expression.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSet.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionTypes.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSparsity.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.cpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEBaseFunction.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunction.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.cpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.cpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.cpp", + "src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.hpp", + "src/pybamm/solvers/c_solvers/idaklu/idaklu_solver.hpp", + "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.cpp", + "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.hpp", + "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.inl", + "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.hpp", + "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.cpp", + "src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.hpp", + "src/pybamm/solvers/c_solvers/idaklu/sundials_functions.inl", + "src/pybamm/solvers/c_solvers/idaklu/sundials_functions.hpp", + "src/pybamm/solvers/c_solvers/idaklu/IdakluJax.cpp", + "src/pybamm/solvers/c_solvers/idaklu/IdakluJax.hpp", + "src/pybamm/solvers/c_solvers/idaklu/common.hpp", + "src/pybamm/solvers/c_solvers/idaklu/python.hpp", + "src/pybamm/solvers/c_solvers/idaklu/python.cpp", + "src/pybamm/solvers/c_solvers/idaklu/Solution.cpp", + "src/pybamm/solvers/c_solvers/idaklu/Solution.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Options.hpp", + "src/pybamm/solvers/c_solvers/idaklu/Options.cpp", + "src/pybamm/solvers/c_solvers/idaklu.cpp", ], ) ext_modules = [idaklu_ext] if compile_KLU() else [] diff --git a/pybamm/CITATIONS.bib b/src/pybamm/CITATIONS.bib similarity index 100% rename from pybamm/CITATIONS.bib rename to src/pybamm/CITATIONS.bib diff --git a/pybamm/__init__.py b/src/pybamm/__init__.py similarity index 100% rename from pybamm/__init__.py rename to src/pybamm/__init__.py diff --git a/pybamm/batch_study.py b/src/pybamm/batch_study.py similarity index 100% rename from pybamm/batch_study.py rename to src/pybamm/batch_study.py diff --git a/pybamm/callbacks.py b/src/pybamm/callbacks.py similarity index 100% rename from pybamm/callbacks.py rename to src/pybamm/callbacks.py diff --git a/pybamm/citations.py b/src/pybamm/citations.py similarity index 99% rename from pybamm/citations.py rename to src/pybamm/citations.py index b76e9b5c83..9f036b9bfd 100644 --- a/pybamm/citations.py +++ b/src/pybamm/citations.py @@ -68,7 +68,7 @@ def read_citations(self): """ try: parse_file = import_optional_dependency("pybtex.database", "parse_file") - citations_file = os.path.join(pybamm.root_dir(), "pybamm", "CITATIONS.bib") + citations_file = os.path.join(pybamm.__path__[0], "CITATIONS.bib") bib_data = parse_file(citations_file, bib_format="bibtex") for key, entry in bib_data.entries.items(): self._add_citation(key, entry) diff --git a/pybamm/discretisations/__init__.py b/src/pybamm/discretisations/__init__.py similarity index 100% rename from pybamm/discretisations/__init__.py rename to src/pybamm/discretisations/__init__.py diff --git a/pybamm/discretisations/discretisation.py b/src/pybamm/discretisations/discretisation.py similarity index 100% rename from pybamm/discretisations/discretisation.py rename to src/pybamm/discretisations/discretisation.py diff --git a/pybamm/doc_utils.py b/src/pybamm/doc_utils.py similarity index 100% rename from pybamm/doc_utils.py rename to src/pybamm/doc_utils.py diff --git a/pybamm/experiment/__init__.py b/src/pybamm/experiment/__init__.py similarity index 100% rename from pybamm/experiment/__init__.py rename to src/pybamm/experiment/__init__.py diff --git a/pybamm/experiment/experiment.py b/src/pybamm/experiment/experiment.py similarity index 100% rename from pybamm/experiment/experiment.py rename to src/pybamm/experiment/experiment.py diff --git a/pybamm/experiment/step/__init__.py b/src/pybamm/experiment/step/__init__.py similarity index 100% rename from pybamm/experiment/step/__init__.py rename to src/pybamm/experiment/step/__init__.py diff --git a/pybamm/experiment/step/base_step.py b/src/pybamm/experiment/step/base_step.py similarity index 100% rename from pybamm/experiment/step/base_step.py rename to src/pybamm/experiment/step/base_step.py diff --git a/pybamm/experiment/step/step_termination.py b/src/pybamm/experiment/step/step_termination.py similarity index 100% rename from pybamm/experiment/step/step_termination.py rename to src/pybamm/experiment/step/step_termination.py diff --git a/pybamm/experiment/step/steps.py b/src/pybamm/experiment/step/steps.py similarity index 100% rename from pybamm/experiment/step/steps.py rename to src/pybamm/experiment/step/steps.py diff --git a/pybamm/expression_tree/__init__.py b/src/pybamm/expression_tree/__init__.py similarity index 100% rename from pybamm/expression_tree/__init__.py rename to src/pybamm/expression_tree/__init__.py diff --git a/pybamm/expression_tree/array.py b/src/pybamm/expression_tree/array.py similarity index 100% rename from pybamm/expression_tree/array.py rename to src/pybamm/expression_tree/array.py diff --git a/pybamm/expression_tree/averages.py b/src/pybamm/expression_tree/averages.py similarity index 100% rename from pybamm/expression_tree/averages.py rename to src/pybamm/expression_tree/averages.py diff --git a/pybamm/expression_tree/binary_operators.py b/src/pybamm/expression_tree/binary_operators.py similarity index 100% rename from pybamm/expression_tree/binary_operators.py rename to src/pybamm/expression_tree/binary_operators.py diff --git a/pybamm/expression_tree/broadcasts.py b/src/pybamm/expression_tree/broadcasts.py similarity index 100% rename from pybamm/expression_tree/broadcasts.py rename to src/pybamm/expression_tree/broadcasts.py diff --git a/pybamm/expression_tree/concatenations.py b/src/pybamm/expression_tree/concatenations.py similarity index 100% rename from pybamm/expression_tree/concatenations.py rename to src/pybamm/expression_tree/concatenations.py diff --git a/pybamm/expression_tree/exceptions.py b/src/pybamm/expression_tree/exceptions.py similarity index 100% rename from pybamm/expression_tree/exceptions.py rename to src/pybamm/expression_tree/exceptions.py diff --git a/pybamm/expression_tree/functions.py b/src/pybamm/expression_tree/functions.py similarity index 100% rename from pybamm/expression_tree/functions.py rename to src/pybamm/expression_tree/functions.py diff --git a/pybamm/expression_tree/independent_variable.py b/src/pybamm/expression_tree/independent_variable.py similarity index 100% rename from pybamm/expression_tree/independent_variable.py rename to src/pybamm/expression_tree/independent_variable.py diff --git a/pybamm/expression_tree/input_parameter.py b/src/pybamm/expression_tree/input_parameter.py similarity index 100% rename from pybamm/expression_tree/input_parameter.py rename to src/pybamm/expression_tree/input_parameter.py diff --git a/pybamm/expression_tree/interpolant.py b/src/pybamm/expression_tree/interpolant.py similarity index 100% rename from pybamm/expression_tree/interpolant.py rename to src/pybamm/expression_tree/interpolant.py diff --git a/pybamm/expression_tree/matrix.py b/src/pybamm/expression_tree/matrix.py similarity index 100% rename from pybamm/expression_tree/matrix.py rename to src/pybamm/expression_tree/matrix.py diff --git a/pybamm/expression_tree/operations/__init__.py b/src/pybamm/expression_tree/operations/__init__.py similarity index 100% rename from pybamm/expression_tree/operations/__init__.py rename to src/pybamm/expression_tree/operations/__init__.py diff --git a/pybamm/expression_tree/operations/convert_to_casadi.py b/src/pybamm/expression_tree/operations/convert_to_casadi.py similarity index 100% rename from pybamm/expression_tree/operations/convert_to_casadi.py rename to src/pybamm/expression_tree/operations/convert_to_casadi.py diff --git a/pybamm/expression_tree/operations/evaluate_python.py b/src/pybamm/expression_tree/operations/evaluate_python.py similarity index 100% rename from pybamm/expression_tree/operations/evaluate_python.py rename to src/pybamm/expression_tree/operations/evaluate_python.py diff --git a/pybamm/expression_tree/operations/jacobian.py b/src/pybamm/expression_tree/operations/jacobian.py similarity index 100% rename from pybamm/expression_tree/operations/jacobian.py rename to src/pybamm/expression_tree/operations/jacobian.py diff --git a/pybamm/expression_tree/operations/latexify.py b/src/pybamm/expression_tree/operations/latexify.py similarity index 100% rename from pybamm/expression_tree/operations/latexify.py rename to src/pybamm/expression_tree/operations/latexify.py diff --git a/pybamm/expression_tree/operations/serialise.py b/src/pybamm/expression_tree/operations/serialise.py similarity index 100% rename from pybamm/expression_tree/operations/serialise.py rename to src/pybamm/expression_tree/operations/serialise.py diff --git a/pybamm/expression_tree/operations/unpack_symbols.py b/src/pybamm/expression_tree/operations/unpack_symbols.py similarity index 100% rename from pybamm/expression_tree/operations/unpack_symbols.py rename to src/pybamm/expression_tree/operations/unpack_symbols.py diff --git a/pybamm/expression_tree/parameter.py b/src/pybamm/expression_tree/parameter.py similarity index 100% rename from pybamm/expression_tree/parameter.py rename to src/pybamm/expression_tree/parameter.py diff --git a/pybamm/expression_tree/printing/__init__.py b/src/pybamm/expression_tree/printing/__init__.py similarity index 100% rename from pybamm/expression_tree/printing/__init__.py rename to src/pybamm/expression_tree/printing/__init__.py diff --git a/pybamm/expression_tree/printing/print_name.py b/src/pybamm/expression_tree/printing/print_name.py similarity index 100% rename from pybamm/expression_tree/printing/print_name.py rename to src/pybamm/expression_tree/printing/print_name.py diff --git a/pybamm/expression_tree/printing/sympy_overrides.py b/src/pybamm/expression_tree/printing/sympy_overrides.py similarity index 100% rename from pybamm/expression_tree/printing/sympy_overrides.py rename to src/pybamm/expression_tree/printing/sympy_overrides.py diff --git a/pybamm/expression_tree/scalar.py b/src/pybamm/expression_tree/scalar.py similarity index 100% rename from pybamm/expression_tree/scalar.py rename to src/pybamm/expression_tree/scalar.py diff --git a/pybamm/expression_tree/state_vector.py b/src/pybamm/expression_tree/state_vector.py similarity index 100% rename from pybamm/expression_tree/state_vector.py rename to src/pybamm/expression_tree/state_vector.py diff --git a/pybamm/expression_tree/symbol.py b/src/pybamm/expression_tree/symbol.py similarity index 100% rename from pybamm/expression_tree/symbol.py rename to src/pybamm/expression_tree/symbol.py diff --git a/pybamm/expression_tree/unary_operators.py b/src/pybamm/expression_tree/unary_operators.py similarity index 100% rename from pybamm/expression_tree/unary_operators.py rename to src/pybamm/expression_tree/unary_operators.py diff --git a/pybamm/expression_tree/variable.py b/src/pybamm/expression_tree/variable.py similarity index 100% rename from pybamm/expression_tree/variable.py rename to src/pybamm/expression_tree/variable.py diff --git a/pybamm/expression_tree/vector.py b/src/pybamm/expression_tree/vector.py similarity index 100% rename from pybamm/expression_tree/vector.py rename to src/pybamm/expression_tree/vector.py diff --git a/pybamm/geometry/__init__.py b/src/pybamm/geometry/__init__.py similarity index 100% rename from pybamm/geometry/__init__.py rename to src/pybamm/geometry/__init__.py diff --git a/pybamm/geometry/battery_geometry.py b/src/pybamm/geometry/battery_geometry.py similarity index 100% rename from pybamm/geometry/battery_geometry.py rename to src/pybamm/geometry/battery_geometry.py diff --git a/pybamm/geometry/geometry.py b/src/pybamm/geometry/geometry.py similarity index 100% rename from pybamm/geometry/geometry.py rename to src/pybamm/geometry/geometry.py diff --git a/pybamm/geometry/standard_spatial_vars.py b/src/pybamm/geometry/standard_spatial_vars.py similarity index 100% rename from pybamm/geometry/standard_spatial_vars.py rename to src/pybamm/geometry/standard_spatial_vars.py diff --git a/pybamm/input/__init__.py b/src/pybamm/input/__init__.py similarity index 100% rename from pybamm/input/__init__.py rename to src/pybamm/input/__init__.py diff --git a/pybamm/input/parameters/__init__.py b/src/pybamm/input/parameters/__init__.py similarity index 100% rename from pybamm/input/parameters/__init__.py rename to src/pybamm/input/parameters/__init__.py diff --git a/pybamm/input/parameters/ecm/__init__.py b/src/pybamm/input/parameters/ecm/__init__.py similarity index 100% rename from pybamm/input/parameters/ecm/__init__.py rename to src/pybamm/input/parameters/ecm/__init__.py diff --git a/pybamm/input/parameters/ecm/data/ecm_example_c1.csv b/src/pybamm/input/parameters/ecm/data/ecm_example_c1.csv similarity index 100% rename from pybamm/input/parameters/ecm/data/ecm_example_c1.csv rename to src/pybamm/input/parameters/ecm/data/ecm_example_c1.csv diff --git a/pybamm/input/parameters/ecm/data/ecm_example_dudt.csv b/src/pybamm/input/parameters/ecm/data/ecm_example_dudt.csv similarity index 100% rename from pybamm/input/parameters/ecm/data/ecm_example_dudt.csv rename to src/pybamm/input/parameters/ecm/data/ecm_example_dudt.csv diff --git a/pybamm/input/parameters/ecm/data/ecm_example_ocv.csv b/src/pybamm/input/parameters/ecm/data/ecm_example_ocv.csv similarity index 100% rename from pybamm/input/parameters/ecm/data/ecm_example_ocv.csv rename to src/pybamm/input/parameters/ecm/data/ecm_example_ocv.csv diff --git a/pybamm/input/parameters/ecm/data/ecm_example_r0.csv b/src/pybamm/input/parameters/ecm/data/ecm_example_r0.csv similarity index 100% rename from pybamm/input/parameters/ecm/data/ecm_example_r0.csv rename to src/pybamm/input/parameters/ecm/data/ecm_example_r0.csv diff --git a/pybamm/input/parameters/ecm/data/ecm_example_r1.csv b/src/pybamm/input/parameters/ecm/data/ecm_example_r1.csv similarity index 100% rename from pybamm/input/parameters/ecm/data/ecm_example_r1.csv rename to src/pybamm/input/parameters/ecm/data/ecm_example_r1.csv diff --git a/pybamm/input/parameters/ecm/example_set.py b/src/pybamm/input/parameters/ecm/example_set.py similarity index 100% rename from pybamm/input/parameters/ecm/example_set.py rename to src/pybamm/input/parameters/ecm/example_set.py diff --git a/pybamm/input/parameters/lead_acid/Sulzer2019.py b/src/pybamm/input/parameters/lead_acid/Sulzer2019.py similarity index 100% rename from pybamm/input/parameters/lead_acid/Sulzer2019.py rename to src/pybamm/input/parameters/lead_acid/Sulzer2019.py diff --git a/pybamm/input/parameters/lead_acid/__init__.py b/src/pybamm/input/parameters/lead_acid/__init__.py similarity index 100% rename from pybamm/input/parameters/lead_acid/__init__.py rename to src/pybamm/input/parameters/lead_acid/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/Ai2020.py b/src/pybamm/input/parameters/lithium_ion/Ai2020.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/Ai2020.py rename to src/pybamm/input/parameters/lithium_ion/Ai2020.py diff --git a/pybamm/input/parameters/lithium_ion/Chen2020.py b/src/pybamm/input/parameters/lithium_ion/Chen2020.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/Chen2020.py rename to src/pybamm/input/parameters/lithium_ion/Chen2020.py diff --git a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py b/src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/Chen2020_composite.py rename to src/pybamm/input/parameters/lithium_ion/Chen2020_composite.py diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/src/pybamm/input/parameters/lithium_ion/Ecker2015.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/Ecker2015.py rename to src/pybamm/input/parameters/lithium_ion/Ecker2015.py diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015_graphite_halfcell.py b/src/pybamm/input/parameters/lithium_ion/Ecker2015_graphite_halfcell.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/Ecker2015_graphite_halfcell.py rename to src/pybamm/input/parameters/lithium_ion/Ecker2015_graphite_halfcell.py diff --git a/pybamm/input/parameters/lithium_ion/MSMR_example_set.py b/src/pybamm/input/parameters/lithium_ion/MSMR_example_set.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/MSMR_example_set.py rename to src/pybamm/input/parameters/lithium_ion/MSMR_example_set.py diff --git a/pybamm/input/parameters/lithium_ion/Marquis2019.py b/src/pybamm/input/parameters/lithium_ion/Marquis2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/Marquis2019.py rename to src/pybamm/input/parameters/lithium_ion/Marquis2019.py diff --git a/pybamm/input/parameters/lithium_ion/Mohtat2020.py b/src/pybamm/input/parameters/lithium_ion/Mohtat2020.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/Mohtat2020.py rename to src/pybamm/input/parameters/lithium_ion/Mohtat2020.py diff --git a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py b/src/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/NCA_Kim2011.py rename to src/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py diff --git a/pybamm/input/parameters/lithium_ion/OKane2022.py b/src/pybamm/input/parameters/lithium_ion/OKane2022.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/OKane2022.py rename to src/pybamm/input/parameters/lithium_ion/OKane2022.py diff --git a/pybamm/input/parameters/lithium_ion/OKane2022_graphite_SiOx_halfcell.py b/src/pybamm/input/parameters/lithium_ion/OKane2022_graphite_SiOx_halfcell.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/OKane2022_graphite_SiOx_halfcell.py rename to src/pybamm/input/parameters/lithium_ion/OKane2022_graphite_SiOx_halfcell.py diff --git a/pybamm/input/parameters/lithium_ion/ORegan2022.py b/src/pybamm/input/parameters/lithium_ion/ORegan2022.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/ORegan2022.py rename to src/pybamm/input/parameters/lithium_ion/ORegan2022.py diff --git a/pybamm/input/parameters/lithium_ion/Prada2013.py b/src/pybamm/input/parameters/lithium_ion/Prada2013.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/Prada2013.py rename to src/pybamm/input/parameters/lithium_ion/Prada2013.py diff --git a/pybamm/input/parameters/lithium_ion/Ramadass2004.py b/src/pybamm/input/parameters/lithium_ion/Ramadass2004.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/Ramadass2004.py rename to src/pybamm/input/parameters/lithium_ion/Ramadass2004.py diff --git a/pybamm/input/parameters/lithium_ion/Xu2019.py b/src/pybamm/input/parameters/lithium_ion/Xu2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/Xu2019.py rename to src/pybamm/input/parameters/lithium_ion/Xu2019.py diff --git a/pybamm/input/parameters/lithium_ion/__init__.py b/src/pybamm/input/parameters/lithium_ion/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/__init__.py rename to src/pybamm/input/parameters/lithium_ion/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/data/graphite_LGM50_ocp_Chen2020.csv b/src/pybamm/input/parameters/lithium_ion/data/graphite_LGM50_ocp_Chen2020.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/data/graphite_LGM50_ocp_Chen2020.csv rename to src/pybamm/input/parameters/lithium_ion/data/graphite_LGM50_ocp_Chen2020.csv diff --git a/pybamm/input/parameters/lithium_ion/data/graphite_ocp_Ecker2015.csv b/src/pybamm/input/parameters/lithium_ion/data/graphite_ocp_Ecker2015.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/data/graphite_ocp_Ecker2015.csv rename to src/pybamm/input/parameters/lithium_ion/data/graphite_ocp_Ecker2015.csv diff --git a/pybamm/input/parameters/lithium_ion/data/graphite_ocp_Enertech_Ai2020.csv b/src/pybamm/input/parameters/lithium_ion/data/graphite_ocp_Enertech_Ai2020.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/data/graphite_ocp_Enertech_Ai2020.csv rename to src/pybamm/input/parameters/lithium_ion/data/graphite_ocp_Enertech_Ai2020.csv diff --git a/pybamm/input/parameters/lithium_ion/data/lico2_ocp_Ai2020.csv b/src/pybamm/input/parameters/lithium_ion/data/lico2_ocp_Ai2020.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/data/lico2_ocp_Ai2020.csv rename to src/pybamm/input/parameters/lithium_ion/data/lico2_ocp_Ai2020.csv diff --git a/pybamm/input/parameters/lithium_ion/data/measured_graphite_diffusivity_Ecker2015.csv b/src/pybamm/input/parameters/lithium_ion/data/measured_graphite_diffusivity_Ecker2015.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/data/measured_graphite_diffusivity_Ecker2015.csv rename to src/pybamm/input/parameters/lithium_ion/data/measured_graphite_diffusivity_Ecker2015.csv diff --git a/pybamm/input/parameters/lithium_ion/data/measured_nco_diffusivity_Ecker2015.csv b/src/pybamm/input/parameters/lithium_ion/data/measured_nco_diffusivity_Ecker2015.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/data/measured_nco_diffusivity_Ecker2015.csv rename to src/pybamm/input/parameters/lithium_ion/data/measured_nco_diffusivity_Ecker2015.csv diff --git a/pybamm/input/parameters/lithium_ion/data/nca_ocp_Kim2011_data.csv b/src/pybamm/input/parameters/lithium_ion/data/nca_ocp_Kim2011_data.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/data/nca_ocp_Kim2011_data.csv rename to src/pybamm/input/parameters/lithium_ion/data/nca_ocp_Kim2011_data.csv diff --git a/pybamm/input/parameters/lithium_ion/data/nco_ocp_Ecker2015.csv b/src/pybamm/input/parameters/lithium_ion/data/nco_ocp_Ecker2015.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/data/nco_ocp_Ecker2015.csv rename to src/pybamm/input/parameters/lithium_ion/data/nco_ocp_Ecker2015.csv diff --git a/pybamm/input/parameters/lithium_ion/data/nmc_LGM50_ocp_Chen2020.csv b/src/pybamm/input/parameters/lithium_ion/data/nmc_LGM50_ocp_Chen2020.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/data/nmc_LGM50_ocp_Chen2020.csv rename to src/pybamm/input/parameters/lithium_ion/data/nmc_LGM50_ocp_Chen2020.csv diff --git a/pybamm/logger.py b/src/pybamm/logger.py similarity index 100% rename from pybamm/logger.py rename to src/pybamm/logger.py diff --git a/pybamm/meshes/__init__.py b/src/pybamm/meshes/__init__.py similarity index 100% rename from pybamm/meshes/__init__.py rename to src/pybamm/meshes/__init__.py diff --git a/pybamm/meshes/meshes.py b/src/pybamm/meshes/meshes.py similarity index 100% rename from pybamm/meshes/meshes.py rename to src/pybamm/meshes/meshes.py diff --git a/pybamm/meshes/one_dimensional_submeshes.py b/src/pybamm/meshes/one_dimensional_submeshes.py similarity index 100% rename from pybamm/meshes/one_dimensional_submeshes.py rename to src/pybamm/meshes/one_dimensional_submeshes.py diff --git a/pybamm/meshes/scikit_fem_submeshes.py b/src/pybamm/meshes/scikit_fem_submeshes.py similarity index 100% rename from pybamm/meshes/scikit_fem_submeshes.py rename to src/pybamm/meshes/scikit_fem_submeshes.py diff --git a/pybamm/meshes/zero_dimensional_submesh.py b/src/pybamm/meshes/zero_dimensional_submesh.py similarity index 100% rename from pybamm/meshes/zero_dimensional_submesh.py rename to src/pybamm/meshes/zero_dimensional_submesh.py diff --git a/pybamm/models/__init__.py b/src/pybamm/models/__init__.py similarity index 100% rename from pybamm/models/__init__.py rename to src/pybamm/models/__init__.py diff --git a/pybamm/models/base_model.py b/src/pybamm/models/base_model.py similarity index 100% rename from pybamm/models/base_model.py rename to src/pybamm/models/base_model.py diff --git a/pybamm/models/event.py b/src/pybamm/models/event.py similarity index 100% rename from pybamm/models/event.py rename to src/pybamm/models/event.py diff --git a/pybamm/models/full_battery_models/__init__.py b/src/pybamm/models/full_battery_models/__init__.py similarity index 100% rename from pybamm/models/full_battery_models/__init__.py rename to src/pybamm/models/full_battery_models/__init__.py diff --git a/pybamm/models/full_battery_models/base_battery_model.py b/src/pybamm/models/full_battery_models/base_battery_model.py similarity index 100% rename from pybamm/models/full_battery_models/base_battery_model.py rename to src/pybamm/models/full_battery_models/base_battery_model.py diff --git a/pybamm/models/full_battery_models/equivalent_circuit/__init__.py b/src/pybamm/models/full_battery_models/equivalent_circuit/__init__.py similarity index 100% rename from pybamm/models/full_battery_models/equivalent_circuit/__init__.py rename to src/pybamm/models/full_battery_models/equivalent_circuit/__init__.py diff --git a/pybamm/models/full_battery_models/equivalent_circuit/ecm_model_options.py b/src/pybamm/models/full_battery_models/equivalent_circuit/ecm_model_options.py similarity index 100% rename from pybamm/models/full_battery_models/equivalent_circuit/ecm_model_options.py rename to src/pybamm/models/full_battery_models/equivalent_circuit/ecm_model_options.py diff --git a/pybamm/models/full_battery_models/equivalent_circuit/thevenin.py b/src/pybamm/models/full_battery_models/equivalent_circuit/thevenin.py similarity index 100% rename from pybamm/models/full_battery_models/equivalent_circuit/thevenin.py rename to src/pybamm/models/full_battery_models/equivalent_circuit/thevenin.py diff --git a/pybamm/models/full_battery_models/lead_acid/__init__.py b/src/pybamm/models/full_battery_models/lead_acid/__init__.py similarity index 100% rename from pybamm/models/full_battery_models/lead_acid/__init__.py rename to src/pybamm/models/full_battery_models/lead_acid/__init__.py diff --git a/pybamm/models/full_battery_models/lead_acid/base_lead_acid_model.py b/src/pybamm/models/full_battery_models/lead_acid/base_lead_acid_model.py similarity index 100% rename from pybamm/models/full_battery_models/lead_acid/base_lead_acid_model.py rename to src/pybamm/models/full_battery_models/lead_acid/base_lead_acid_model.py diff --git a/pybamm/models/full_battery_models/lead_acid/basic_full.py b/src/pybamm/models/full_battery_models/lead_acid/basic_full.py similarity index 100% rename from pybamm/models/full_battery_models/lead_acid/basic_full.py rename to src/pybamm/models/full_battery_models/lead_acid/basic_full.py diff --git a/pybamm/models/full_battery_models/lead_acid/full.py b/src/pybamm/models/full_battery_models/lead_acid/full.py similarity index 100% rename from pybamm/models/full_battery_models/lead_acid/full.py rename to src/pybamm/models/full_battery_models/lead_acid/full.py diff --git a/pybamm/models/full_battery_models/lead_acid/loqs.py b/src/pybamm/models/full_battery_models/lead_acid/loqs.py similarity index 100% rename from pybamm/models/full_battery_models/lead_acid/loqs.py rename to src/pybamm/models/full_battery_models/lead_acid/loqs.py diff --git a/pybamm/models/full_battery_models/lithium_ion/Yang2017.py b/src/pybamm/models/full_battery_models/lithium_ion/Yang2017.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/Yang2017.py rename to src/pybamm/models/full_battery_models/lithium_ion/Yang2017.py diff --git a/pybamm/models/full_battery_models/lithium_ion/__init__.py b/src/pybamm/models/full_battery_models/lithium_ion/__init__.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/__init__.py rename to src/pybamm/models/full_battery_models/lithium_ion/__init__.py diff --git a/pybamm/models/full_battery_models/lithium_ion/base_lithium_ion_model.py b/src/pybamm/models/full_battery_models/lithium_ion/base_lithium_ion_model.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/base_lithium_ion_model.py rename to src/pybamm/models/full_battery_models/lithium_ion/base_lithium_ion_model.py diff --git a/pybamm/models/full_battery_models/lithium_ion/basic_dfn.py b/src/pybamm/models/full_battery_models/lithium_ion/basic_dfn.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/basic_dfn.py rename to src/pybamm/models/full_battery_models/lithium_ion/basic_dfn.py diff --git a/pybamm/models/full_battery_models/lithium_ion/basic_dfn_composite.py b/src/pybamm/models/full_battery_models/lithium_ion/basic_dfn_composite.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/basic_dfn_composite.py rename to src/pybamm/models/full_battery_models/lithium_ion/basic_dfn_composite.py diff --git a/pybamm/models/full_battery_models/lithium_ion/basic_dfn_half_cell.py b/src/pybamm/models/full_battery_models/lithium_ion/basic_dfn_half_cell.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/basic_dfn_half_cell.py rename to src/pybamm/models/full_battery_models/lithium_ion/basic_dfn_half_cell.py diff --git a/pybamm/models/full_battery_models/lithium_ion/basic_spm.py b/src/pybamm/models/full_battery_models/lithium_ion/basic_spm.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/basic_spm.py rename to src/pybamm/models/full_battery_models/lithium_ion/basic_spm.py diff --git a/pybamm/models/full_battery_models/lithium_ion/dfn.py b/src/pybamm/models/full_battery_models/lithium_ion/dfn.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/dfn.py rename to src/pybamm/models/full_battery_models/lithium_ion/dfn.py diff --git a/pybamm/models/full_battery_models/lithium_ion/electrode_soh.py b/src/pybamm/models/full_battery_models/lithium_ion/electrode_soh.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/electrode_soh.py rename to src/pybamm/models/full_battery_models/lithium_ion/electrode_soh.py diff --git a/pybamm/models/full_battery_models/lithium_ion/electrode_soh_half_cell.py b/src/pybamm/models/full_battery_models/lithium_ion/electrode_soh_half_cell.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/electrode_soh_half_cell.py rename to src/pybamm/models/full_battery_models/lithium_ion/electrode_soh_half_cell.py diff --git a/pybamm/models/full_battery_models/lithium_ion/mpm.py b/src/pybamm/models/full_battery_models/lithium_ion/mpm.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/mpm.py rename to src/pybamm/models/full_battery_models/lithium_ion/mpm.py diff --git a/pybamm/models/full_battery_models/lithium_ion/msmr.py b/src/pybamm/models/full_battery_models/lithium_ion/msmr.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/msmr.py rename to src/pybamm/models/full_battery_models/lithium_ion/msmr.py diff --git a/pybamm/models/full_battery_models/lithium_ion/newman_tobias.py b/src/pybamm/models/full_battery_models/lithium_ion/newman_tobias.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/newman_tobias.py rename to src/pybamm/models/full_battery_models/lithium_ion/newman_tobias.py diff --git a/pybamm/models/full_battery_models/lithium_ion/spm.py b/src/pybamm/models/full_battery_models/lithium_ion/spm.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/spm.py rename to src/pybamm/models/full_battery_models/lithium_ion/spm.py diff --git a/pybamm/models/full_battery_models/lithium_ion/spme.py b/src/pybamm/models/full_battery_models/lithium_ion/spme.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_ion/spme.py rename to src/pybamm/models/full_battery_models/lithium_ion/spme.py diff --git a/pybamm/models/full_battery_models/lithium_metal/dfn.py b/src/pybamm/models/full_battery_models/lithium_metal/dfn.py similarity index 100% rename from pybamm/models/full_battery_models/lithium_metal/dfn.py rename to src/pybamm/models/full_battery_models/lithium_metal/dfn.py diff --git a/pybamm/models/submodels/__init__.py b/src/pybamm/models/submodels/__init__.py similarity index 100% rename from pybamm/models/submodels/__init__.py rename to src/pybamm/models/submodels/__init__.py diff --git a/pybamm/models/submodels/active_material/__init__.py b/src/pybamm/models/submodels/active_material/__init__.py similarity index 100% rename from pybamm/models/submodels/active_material/__init__.py rename to src/pybamm/models/submodels/active_material/__init__.py diff --git a/pybamm/models/submodels/active_material/base_active_material.py b/src/pybamm/models/submodels/active_material/base_active_material.py similarity index 100% rename from pybamm/models/submodels/active_material/base_active_material.py rename to src/pybamm/models/submodels/active_material/base_active_material.py diff --git a/pybamm/models/submodels/active_material/constant_active_material.py b/src/pybamm/models/submodels/active_material/constant_active_material.py similarity index 100% rename from pybamm/models/submodels/active_material/constant_active_material.py rename to src/pybamm/models/submodels/active_material/constant_active_material.py diff --git a/pybamm/models/submodels/active_material/loss_active_material.py b/src/pybamm/models/submodels/active_material/loss_active_material.py similarity index 100% rename from pybamm/models/submodels/active_material/loss_active_material.py rename to src/pybamm/models/submodels/active_material/loss_active_material.py diff --git a/pybamm/models/submodels/active_material/total_active_material.py b/src/pybamm/models/submodels/active_material/total_active_material.py similarity index 100% rename from pybamm/models/submodels/active_material/total_active_material.py rename to src/pybamm/models/submodels/active_material/total_active_material.py diff --git a/pybamm/models/submodels/base_submodel.py b/src/pybamm/models/submodels/base_submodel.py similarity index 100% rename from pybamm/models/submodels/base_submodel.py rename to src/pybamm/models/submodels/base_submodel.py diff --git a/pybamm/models/submodels/convection/__init__.py b/src/pybamm/models/submodels/convection/__init__.py similarity index 100% rename from pybamm/models/submodels/convection/__init__.py rename to src/pybamm/models/submodels/convection/__init__.py diff --git a/pybamm/models/submodels/convection/base_convection.py b/src/pybamm/models/submodels/convection/base_convection.py similarity index 100% rename from pybamm/models/submodels/convection/base_convection.py rename to src/pybamm/models/submodels/convection/base_convection.py diff --git a/pybamm/models/submodels/convection/through_cell/__init__.py b/src/pybamm/models/submodels/convection/through_cell/__init__.py similarity index 100% rename from pybamm/models/submodels/convection/through_cell/__init__.py rename to src/pybamm/models/submodels/convection/through_cell/__init__.py diff --git a/pybamm/models/submodels/convection/through_cell/base_through_cell_convection.py b/src/pybamm/models/submodels/convection/through_cell/base_through_cell_convection.py similarity index 100% rename from pybamm/models/submodels/convection/through_cell/base_through_cell_convection.py rename to src/pybamm/models/submodels/convection/through_cell/base_through_cell_convection.py diff --git a/pybamm/models/submodels/convection/through_cell/explicit_convection.py b/src/pybamm/models/submodels/convection/through_cell/explicit_convection.py similarity index 100% rename from pybamm/models/submodels/convection/through_cell/explicit_convection.py rename to src/pybamm/models/submodels/convection/through_cell/explicit_convection.py diff --git a/pybamm/models/submodels/convection/through_cell/full_convection.py b/src/pybamm/models/submodels/convection/through_cell/full_convection.py similarity index 100% rename from pybamm/models/submodels/convection/through_cell/full_convection.py rename to src/pybamm/models/submodels/convection/through_cell/full_convection.py diff --git a/pybamm/models/submodels/convection/through_cell/no_convection.py b/src/pybamm/models/submodels/convection/through_cell/no_convection.py similarity index 100% rename from pybamm/models/submodels/convection/through_cell/no_convection.py rename to src/pybamm/models/submodels/convection/through_cell/no_convection.py diff --git a/pybamm/models/submodels/convection/transverse/__init__.py b/src/pybamm/models/submodels/convection/transverse/__init__.py similarity index 100% rename from pybamm/models/submodels/convection/transverse/__init__.py rename to src/pybamm/models/submodels/convection/transverse/__init__.py diff --git a/pybamm/models/submodels/convection/transverse/base_transverse_convection.py b/src/pybamm/models/submodels/convection/transverse/base_transverse_convection.py similarity index 100% rename from pybamm/models/submodels/convection/transverse/base_transverse_convection.py rename to src/pybamm/models/submodels/convection/transverse/base_transverse_convection.py diff --git a/pybamm/models/submodels/convection/transverse/full_convection.py b/src/pybamm/models/submodels/convection/transverse/full_convection.py similarity index 100% rename from pybamm/models/submodels/convection/transverse/full_convection.py rename to src/pybamm/models/submodels/convection/transverse/full_convection.py diff --git a/pybamm/models/submodels/convection/transverse/no_convection.py b/src/pybamm/models/submodels/convection/transverse/no_convection.py similarity index 100% rename from pybamm/models/submodels/convection/transverse/no_convection.py rename to src/pybamm/models/submodels/convection/transverse/no_convection.py diff --git a/pybamm/models/submodels/convection/transverse/uniform_convection.py b/src/pybamm/models/submodels/convection/transverse/uniform_convection.py similarity index 100% rename from pybamm/models/submodels/convection/transverse/uniform_convection.py rename to src/pybamm/models/submodels/convection/transverse/uniform_convection.py diff --git a/pybamm/models/submodels/current_collector/__init__.py b/src/pybamm/models/submodels/current_collector/__init__.py similarity index 100% rename from pybamm/models/submodels/current_collector/__init__.py rename to src/pybamm/models/submodels/current_collector/__init__.py diff --git a/pybamm/models/submodels/current_collector/base_current_collector.py b/src/pybamm/models/submodels/current_collector/base_current_collector.py similarity index 100% rename from pybamm/models/submodels/current_collector/base_current_collector.py rename to src/pybamm/models/submodels/current_collector/base_current_collector.py diff --git a/pybamm/models/submodels/current_collector/effective_resistance_current_collector.py b/src/pybamm/models/submodels/current_collector/effective_resistance_current_collector.py similarity index 100% rename from pybamm/models/submodels/current_collector/effective_resistance_current_collector.py rename to src/pybamm/models/submodels/current_collector/effective_resistance_current_collector.py diff --git a/pybamm/models/submodels/current_collector/homogeneous_current_collector.py b/src/pybamm/models/submodels/current_collector/homogeneous_current_collector.py similarity index 100% rename from pybamm/models/submodels/current_collector/homogeneous_current_collector.py rename to src/pybamm/models/submodels/current_collector/homogeneous_current_collector.py diff --git a/pybamm/models/submodels/current_collector/potential_pair.py b/src/pybamm/models/submodels/current_collector/potential_pair.py similarity index 100% rename from pybamm/models/submodels/current_collector/potential_pair.py rename to src/pybamm/models/submodels/current_collector/potential_pair.py diff --git a/pybamm/models/submodels/electrode/__init__.py b/src/pybamm/models/submodels/electrode/__init__.py similarity index 100% rename from pybamm/models/submodels/electrode/__init__.py rename to src/pybamm/models/submodels/electrode/__init__.py diff --git a/pybamm/models/submodels/electrode/base_electrode.py b/src/pybamm/models/submodels/electrode/base_electrode.py similarity index 100% rename from pybamm/models/submodels/electrode/base_electrode.py rename to src/pybamm/models/submodels/electrode/base_electrode.py diff --git a/pybamm/models/submodels/electrode/ohm/__init__.py b/src/pybamm/models/submodels/electrode/ohm/__init__.py similarity index 100% rename from pybamm/models/submodels/electrode/ohm/__init__.py rename to src/pybamm/models/submodels/electrode/ohm/__init__.py diff --git a/pybamm/models/submodels/electrode/ohm/base_ohm.py b/src/pybamm/models/submodels/electrode/ohm/base_ohm.py similarity index 100% rename from pybamm/models/submodels/electrode/ohm/base_ohm.py rename to src/pybamm/models/submodels/electrode/ohm/base_ohm.py diff --git a/pybamm/models/submodels/electrode/ohm/composite_ohm.py b/src/pybamm/models/submodels/electrode/ohm/composite_ohm.py similarity index 100% rename from pybamm/models/submodels/electrode/ohm/composite_ohm.py rename to src/pybamm/models/submodels/electrode/ohm/composite_ohm.py diff --git a/pybamm/models/submodels/electrode/ohm/full_ohm.py b/src/pybamm/models/submodels/electrode/ohm/full_ohm.py similarity index 100% rename from pybamm/models/submodels/electrode/ohm/full_ohm.py rename to src/pybamm/models/submodels/electrode/ohm/full_ohm.py diff --git a/pybamm/models/submodels/electrode/ohm/leading_ohm.py b/src/pybamm/models/submodels/electrode/ohm/leading_ohm.py similarity index 100% rename from pybamm/models/submodels/electrode/ohm/leading_ohm.py rename to src/pybamm/models/submodels/electrode/ohm/leading_ohm.py diff --git a/pybamm/models/submodels/electrode/ohm/li_metal.py b/src/pybamm/models/submodels/electrode/ohm/li_metal.py similarity index 100% rename from pybamm/models/submodels/electrode/ohm/li_metal.py rename to src/pybamm/models/submodels/electrode/ohm/li_metal.py diff --git a/pybamm/models/submodels/electrode/ohm/surface_form_ohm.py b/src/pybamm/models/submodels/electrode/ohm/surface_form_ohm.py similarity index 100% rename from pybamm/models/submodels/electrode/ohm/surface_form_ohm.py rename to src/pybamm/models/submodels/electrode/ohm/surface_form_ohm.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/__init__.py b/src/pybamm/models/submodels/electrolyte_conductivity/__init__.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/__init__.py rename to src/pybamm/models/submodels/electrolyte_conductivity/__init__.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.py b/src/pybamm/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.py rename to src/pybamm/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/composite_conductivity.py b/src/pybamm/models/submodels/electrolyte_conductivity/composite_conductivity.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/composite_conductivity.py rename to src/pybamm/models/submodels/electrolyte_conductivity/composite_conductivity.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py b/src/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py rename to src/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/integrated_conductivity.py b/src/pybamm/models/submodels/electrolyte_conductivity/integrated_conductivity.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/integrated_conductivity.py rename to src/pybamm/models/submodels/electrolyte_conductivity/integrated_conductivity.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/leading_order_conductivity.py b/src/pybamm/models/submodels/electrolyte_conductivity/leading_order_conductivity.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/leading_order_conductivity.py rename to src/pybamm/models/submodels/electrolyte_conductivity/leading_order_conductivity.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/__init__.py b/src/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/__init__.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/__init__.py rename to src/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/__init__.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/composite_surface_form_conductivity.py b/src/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/composite_surface_form_conductivity.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/composite_surface_form_conductivity.py rename to src/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/composite_surface_form_conductivity.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/explicit_surface_form_conductivity.py b/src/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/explicit_surface_form_conductivity.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/explicit_surface_form_conductivity.py rename to src/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/explicit_surface_form_conductivity.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_conductivity.py b/src/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_conductivity.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_conductivity.py rename to src/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_conductivity.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/leading_surface_form_conductivity.py b/src/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/leading_surface_form_conductivity.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/leading_surface_form_conductivity.py rename to src/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/leading_surface_form_conductivity.py diff --git a/pybamm/models/submodels/electrolyte_diffusion/__init__.py b/src/pybamm/models/submodels/electrolyte_diffusion/__init__.py similarity index 100% rename from pybamm/models/submodels/electrolyte_diffusion/__init__.py rename to src/pybamm/models/submodels/electrolyte_diffusion/__init__.py diff --git a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py b/src/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py similarity index 100% rename from pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py rename to src/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py diff --git a/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py b/src/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py similarity index 100% rename from pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py rename to src/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py diff --git a/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py b/src/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py similarity index 100% rename from pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py rename to src/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py diff --git a/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py b/src/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py similarity index 100% rename from pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py rename to src/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py diff --git a/pybamm/models/submodels/equivalent_circuit_elements/__init__.py b/src/pybamm/models/submodels/equivalent_circuit_elements/__init__.py similarity index 100% rename from pybamm/models/submodels/equivalent_circuit_elements/__init__.py rename to src/pybamm/models/submodels/equivalent_circuit_elements/__init__.py diff --git a/pybamm/models/submodels/equivalent_circuit_elements/diffusion_element.py b/src/pybamm/models/submodels/equivalent_circuit_elements/diffusion_element.py similarity index 100% rename from pybamm/models/submodels/equivalent_circuit_elements/diffusion_element.py rename to src/pybamm/models/submodels/equivalent_circuit_elements/diffusion_element.py diff --git a/pybamm/models/submodels/equivalent_circuit_elements/ocv_element.py b/src/pybamm/models/submodels/equivalent_circuit_elements/ocv_element.py similarity index 100% rename from pybamm/models/submodels/equivalent_circuit_elements/ocv_element.py rename to src/pybamm/models/submodels/equivalent_circuit_elements/ocv_element.py diff --git a/pybamm/models/submodels/equivalent_circuit_elements/rc_element.py b/src/pybamm/models/submodels/equivalent_circuit_elements/rc_element.py similarity index 100% rename from pybamm/models/submodels/equivalent_circuit_elements/rc_element.py rename to src/pybamm/models/submodels/equivalent_circuit_elements/rc_element.py diff --git a/pybamm/models/submodels/equivalent_circuit_elements/resistor_element.py b/src/pybamm/models/submodels/equivalent_circuit_elements/resistor_element.py similarity index 100% rename from pybamm/models/submodels/equivalent_circuit_elements/resistor_element.py rename to src/pybamm/models/submodels/equivalent_circuit_elements/resistor_element.py diff --git a/pybamm/models/submodels/equivalent_circuit_elements/thermal.py b/src/pybamm/models/submodels/equivalent_circuit_elements/thermal.py similarity index 100% rename from pybamm/models/submodels/equivalent_circuit_elements/thermal.py rename to src/pybamm/models/submodels/equivalent_circuit_elements/thermal.py diff --git a/pybamm/models/submodels/equivalent_circuit_elements/voltage_model.py b/src/pybamm/models/submodels/equivalent_circuit_elements/voltage_model.py similarity index 100% rename from pybamm/models/submodels/equivalent_circuit_elements/voltage_model.py rename to src/pybamm/models/submodels/equivalent_circuit_elements/voltage_model.py diff --git a/pybamm/models/submodels/external_circuit/__init__.py b/src/pybamm/models/submodels/external_circuit/__init__.py similarity index 100% rename from pybamm/models/submodels/external_circuit/__init__.py rename to src/pybamm/models/submodels/external_circuit/__init__.py diff --git a/pybamm/models/submodels/external_circuit/base_external_circuit.py b/src/pybamm/models/submodels/external_circuit/base_external_circuit.py similarity index 100% rename from pybamm/models/submodels/external_circuit/base_external_circuit.py rename to src/pybamm/models/submodels/external_circuit/base_external_circuit.py diff --git a/pybamm/models/submodels/external_circuit/discharge_throughput.py b/src/pybamm/models/submodels/external_circuit/discharge_throughput.py similarity index 100% rename from pybamm/models/submodels/external_circuit/discharge_throughput.py rename to src/pybamm/models/submodels/external_circuit/discharge_throughput.py diff --git a/pybamm/models/submodels/external_circuit/explicit_control_external_circuit.py b/src/pybamm/models/submodels/external_circuit/explicit_control_external_circuit.py similarity index 100% rename from pybamm/models/submodels/external_circuit/explicit_control_external_circuit.py rename to src/pybamm/models/submodels/external_circuit/explicit_control_external_circuit.py diff --git a/pybamm/models/submodels/external_circuit/function_control_external_circuit.py b/src/pybamm/models/submodels/external_circuit/function_control_external_circuit.py similarity index 100% rename from pybamm/models/submodels/external_circuit/function_control_external_circuit.py rename to src/pybamm/models/submodels/external_circuit/function_control_external_circuit.py diff --git a/pybamm/models/submodels/interface/__init__.py b/src/pybamm/models/submodels/interface/__init__.py similarity index 100% rename from pybamm/models/submodels/interface/__init__.py rename to src/pybamm/models/submodels/interface/__init__.py diff --git a/pybamm/models/submodels/interface/base_interface.py b/src/pybamm/models/submodels/interface/base_interface.py similarity index 100% rename from pybamm/models/submodels/interface/base_interface.py rename to src/pybamm/models/submodels/interface/base_interface.py diff --git a/pybamm/models/submodels/interface/interface_utilisation/__init__.py b/src/pybamm/models/submodels/interface/interface_utilisation/__init__.py similarity index 100% rename from pybamm/models/submodels/interface/interface_utilisation/__init__.py rename to src/pybamm/models/submodels/interface/interface_utilisation/__init__.py diff --git a/pybamm/models/submodels/interface/interface_utilisation/base_utilisation.py b/src/pybamm/models/submodels/interface/interface_utilisation/base_utilisation.py similarity index 100% rename from pybamm/models/submodels/interface/interface_utilisation/base_utilisation.py rename to src/pybamm/models/submodels/interface/interface_utilisation/base_utilisation.py diff --git a/pybamm/models/submodels/interface/interface_utilisation/constant_utilisation.py b/src/pybamm/models/submodels/interface/interface_utilisation/constant_utilisation.py similarity index 100% rename from pybamm/models/submodels/interface/interface_utilisation/constant_utilisation.py rename to src/pybamm/models/submodels/interface/interface_utilisation/constant_utilisation.py diff --git a/pybamm/models/submodels/interface/interface_utilisation/current_driven_utilisation.py b/src/pybamm/models/submodels/interface/interface_utilisation/current_driven_utilisation.py similarity index 100% rename from pybamm/models/submodels/interface/interface_utilisation/current_driven_utilisation.py rename to src/pybamm/models/submodels/interface/interface_utilisation/current_driven_utilisation.py diff --git a/pybamm/models/submodels/interface/interface_utilisation/full_utilisation.py b/src/pybamm/models/submodels/interface/interface_utilisation/full_utilisation.py similarity index 100% rename from pybamm/models/submodels/interface/interface_utilisation/full_utilisation.py rename to src/pybamm/models/submodels/interface/interface_utilisation/full_utilisation.py diff --git a/pybamm/models/submodels/interface/kinetics/__init__.py b/src/pybamm/models/submodels/interface/kinetics/__init__.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/__init__.py rename to src/pybamm/models/submodels/interface/kinetics/__init__.py diff --git a/pybamm/models/submodels/interface/kinetics/base_kinetics.py b/src/pybamm/models/submodels/interface/kinetics/base_kinetics.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/base_kinetics.py rename to src/pybamm/models/submodels/interface/kinetics/base_kinetics.py diff --git a/pybamm/models/submodels/interface/kinetics/butler_volmer.py b/src/pybamm/models/submodels/interface/kinetics/butler_volmer.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/butler_volmer.py rename to src/pybamm/models/submodels/interface/kinetics/butler_volmer.py diff --git a/pybamm/models/submodels/interface/kinetics/diffusion_limited.py b/src/pybamm/models/submodels/interface/kinetics/diffusion_limited.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/diffusion_limited.py rename to src/pybamm/models/submodels/interface/kinetics/diffusion_limited.py diff --git a/pybamm/models/submodels/interface/kinetics/inverse_kinetics/__init__.py b/src/pybamm/models/submodels/interface/kinetics/inverse_kinetics/__init__.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/inverse_kinetics/__init__.py rename to src/pybamm/models/submodels/interface/kinetics/inverse_kinetics/__init__.py diff --git a/pybamm/models/submodels/interface/kinetics/inverse_kinetics/inverse_butler_volmer.py b/src/pybamm/models/submodels/interface/kinetics/inverse_kinetics/inverse_butler_volmer.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/inverse_kinetics/inverse_butler_volmer.py rename to src/pybamm/models/submodels/interface/kinetics/inverse_kinetics/inverse_butler_volmer.py diff --git a/pybamm/models/submodels/interface/kinetics/linear.py b/src/pybamm/models/submodels/interface/kinetics/linear.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/linear.py rename to src/pybamm/models/submodels/interface/kinetics/linear.py diff --git a/pybamm/models/submodels/interface/kinetics/marcus.py b/src/pybamm/models/submodels/interface/kinetics/marcus.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/marcus.py rename to src/pybamm/models/submodels/interface/kinetics/marcus.py diff --git a/pybamm/models/submodels/interface/kinetics/msmr_butler_volmer.py b/src/pybamm/models/submodels/interface/kinetics/msmr_butler_volmer.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/msmr_butler_volmer.py rename to src/pybamm/models/submodels/interface/kinetics/msmr_butler_volmer.py diff --git a/pybamm/models/submodels/interface/kinetics/no_reaction.py b/src/pybamm/models/submodels/interface/kinetics/no_reaction.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/no_reaction.py rename to src/pybamm/models/submodels/interface/kinetics/no_reaction.py diff --git a/pybamm/models/submodels/interface/kinetics/tafel.py b/src/pybamm/models/submodels/interface/kinetics/tafel.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/tafel.py rename to src/pybamm/models/submodels/interface/kinetics/tafel.py diff --git a/pybamm/models/submodels/interface/kinetics/total_main_kinetics.py b/src/pybamm/models/submodels/interface/kinetics/total_main_kinetics.py similarity index 100% rename from pybamm/models/submodels/interface/kinetics/total_main_kinetics.py rename to src/pybamm/models/submodels/interface/kinetics/total_main_kinetics.py diff --git a/pybamm/models/submodels/interface/lithium_plating/__init__.py b/src/pybamm/models/submodels/interface/lithium_plating/__init__.py similarity index 100% rename from pybamm/models/submodels/interface/lithium_plating/__init__.py rename to src/pybamm/models/submodels/interface/lithium_plating/__init__.py diff --git a/pybamm/models/submodels/interface/lithium_plating/base_plating.py b/src/pybamm/models/submodels/interface/lithium_plating/base_plating.py similarity index 100% rename from pybamm/models/submodels/interface/lithium_plating/base_plating.py rename to src/pybamm/models/submodels/interface/lithium_plating/base_plating.py diff --git a/pybamm/models/submodels/interface/lithium_plating/no_plating.py b/src/pybamm/models/submodels/interface/lithium_plating/no_plating.py similarity index 100% rename from pybamm/models/submodels/interface/lithium_plating/no_plating.py rename to src/pybamm/models/submodels/interface/lithium_plating/no_plating.py diff --git a/pybamm/models/submodels/interface/lithium_plating/plating.py b/src/pybamm/models/submodels/interface/lithium_plating/plating.py similarity index 100% rename from pybamm/models/submodels/interface/lithium_plating/plating.py rename to src/pybamm/models/submodels/interface/lithium_plating/plating.py diff --git a/pybamm/models/submodels/interface/lithium_plating/total_lithium_plating.py b/src/pybamm/models/submodels/interface/lithium_plating/total_lithium_plating.py similarity index 100% rename from pybamm/models/submodels/interface/lithium_plating/total_lithium_plating.py rename to src/pybamm/models/submodels/interface/lithium_plating/total_lithium_plating.py diff --git a/pybamm/models/submodels/interface/open_circuit_potential/__init__.py b/src/pybamm/models/submodels/interface/open_circuit_potential/__init__.py similarity index 100% rename from pybamm/models/submodels/interface/open_circuit_potential/__init__.py rename to src/pybamm/models/submodels/interface/open_circuit_potential/__init__.py diff --git a/pybamm/models/submodels/interface/open_circuit_potential/base_ocp.py b/src/pybamm/models/submodels/interface/open_circuit_potential/base_ocp.py similarity index 100% rename from pybamm/models/submodels/interface/open_circuit_potential/base_ocp.py rename to src/pybamm/models/submodels/interface/open_circuit_potential/base_ocp.py diff --git a/pybamm/models/submodels/interface/open_circuit_potential/current_sigmoid_ocp.py b/src/pybamm/models/submodels/interface/open_circuit_potential/current_sigmoid_ocp.py similarity index 100% rename from pybamm/models/submodels/interface/open_circuit_potential/current_sigmoid_ocp.py rename to src/pybamm/models/submodels/interface/open_circuit_potential/current_sigmoid_ocp.py diff --git a/pybamm/models/submodels/interface/open_circuit_potential/msmr_ocp.py b/src/pybamm/models/submodels/interface/open_circuit_potential/msmr_ocp.py similarity index 100% rename from pybamm/models/submodels/interface/open_circuit_potential/msmr_ocp.py rename to src/pybamm/models/submodels/interface/open_circuit_potential/msmr_ocp.py diff --git a/pybamm/models/submodels/interface/open_circuit_potential/single_ocp.py b/src/pybamm/models/submodels/interface/open_circuit_potential/single_ocp.py similarity index 100% rename from pybamm/models/submodels/interface/open_circuit_potential/single_ocp.py rename to src/pybamm/models/submodels/interface/open_circuit_potential/single_ocp.py diff --git a/pybamm/models/submodels/interface/open_circuit_potential/wycisk_ocp.py b/src/pybamm/models/submodels/interface/open_circuit_potential/wycisk_ocp.py similarity index 100% rename from pybamm/models/submodels/interface/open_circuit_potential/wycisk_ocp.py rename to src/pybamm/models/submodels/interface/open_circuit_potential/wycisk_ocp.py diff --git a/pybamm/models/submodels/interface/sei/__init__.py b/src/pybamm/models/submodels/interface/sei/__init__.py similarity index 100% rename from pybamm/models/submodels/interface/sei/__init__.py rename to src/pybamm/models/submodels/interface/sei/__init__.py diff --git a/pybamm/models/submodels/interface/sei/base_sei.py b/src/pybamm/models/submodels/interface/sei/base_sei.py similarity index 100% rename from pybamm/models/submodels/interface/sei/base_sei.py rename to src/pybamm/models/submodels/interface/sei/base_sei.py diff --git a/pybamm/models/submodels/interface/sei/constant_sei.py b/src/pybamm/models/submodels/interface/sei/constant_sei.py similarity index 100% rename from pybamm/models/submodels/interface/sei/constant_sei.py rename to src/pybamm/models/submodels/interface/sei/constant_sei.py diff --git a/pybamm/models/submodels/interface/sei/no_sei.py b/src/pybamm/models/submodels/interface/sei/no_sei.py similarity index 100% rename from pybamm/models/submodels/interface/sei/no_sei.py rename to src/pybamm/models/submodels/interface/sei/no_sei.py diff --git a/pybamm/models/submodels/interface/sei/sei_growth.py b/src/pybamm/models/submodels/interface/sei/sei_growth.py similarity index 100% rename from pybamm/models/submodels/interface/sei/sei_growth.py rename to src/pybamm/models/submodels/interface/sei/sei_growth.py diff --git a/pybamm/models/submodels/interface/sei/total_sei.py b/src/pybamm/models/submodels/interface/sei/total_sei.py similarity index 100% rename from pybamm/models/submodels/interface/sei/total_sei.py rename to src/pybamm/models/submodels/interface/sei/total_sei.py diff --git a/pybamm/models/submodels/interface/total_interfacial_current.py b/src/pybamm/models/submodels/interface/total_interfacial_current.py similarity index 100% rename from pybamm/models/submodels/interface/total_interfacial_current.py rename to src/pybamm/models/submodels/interface/total_interfacial_current.py diff --git a/pybamm/models/submodels/oxygen_diffusion/__init__.py b/src/pybamm/models/submodels/oxygen_diffusion/__init__.py similarity index 100% rename from pybamm/models/submodels/oxygen_diffusion/__init__.py rename to src/pybamm/models/submodels/oxygen_diffusion/__init__.py diff --git a/pybamm/models/submodels/oxygen_diffusion/base_oxygen_diffusion.py b/src/pybamm/models/submodels/oxygen_diffusion/base_oxygen_diffusion.py similarity index 100% rename from pybamm/models/submodels/oxygen_diffusion/base_oxygen_diffusion.py rename to src/pybamm/models/submodels/oxygen_diffusion/base_oxygen_diffusion.py diff --git a/pybamm/models/submodels/oxygen_diffusion/full_oxygen_diffusion.py b/src/pybamm/models/submodels/oxygen_diffusion/full_oxygen_diffusion.py similarity index 100% rename from pybamm/models/submodels/oxygen_diffusion/full_oxygen_diffusion.py rename to src/pybamm/models/submodels/oxygen_diffusion/full_oxygen_diffusion.py diff --git a/pybamm/models/submodels/oxygen_diffusion/leading_oxygen_diffusion.py b/src/pybamm/models/submodels/oxygen_diffusion/leading_oxygen_diffusion.py similarity index 100% rename from pybamm/models/submodels/oxygen_diffusion/leading_oxygen_diffusion.py rename to src/pybamm/models/submodels/oxygen_diffusion/leading_oxygen_diffusion.py diff --git a/pybamm/models/submodels/oxygen_diffusion/no_oxygen.py b/src/pybamm/models/submodels/oxygen_diffusion/no_oxygen.py similarity index 100% rename from pybamm/models/submodels/oxygen_diffusion/no_oxygen.py rename to src/pybamm/models/submodels/oxygen_diffusion/no_oxygen.py diff --git a/pybamm/models/submodels/particle/__init__.py b/src/pybamm/models/submodels/particle/__init__.py similarity index 100% rename from pybamm/models/submodels/particle/__init__.py rename to src/pybamm/models/submodels/particle/__init__.py diff --git a/pybamm/models/submodels/particle/base_particle.py b/src/pybamm/models/submodels/particle/base_particle.py similarity index 100% rename from pybamm/models/submodels/particle/base_particle.py rename to src/pybamm/models/submodels/particle/base_particle.py diff --git a/pybamm/models/submodels/particle/fickian_diffusion.py b/src/pybamm/models/submodels/particle/fickian_diffusion.py similarity index 100% rename from pybamm/models/submodels/particle/fickian_diffusion.py rename to src/pybamm/models/submodels/particle/fickian_diffusion.py diff --git a/pybamm/models/submodels/particle/msmr_diffusion.py b/src/pybamm/models/submodels/particle/msmr_diffusion.py similarity index 100% rename from pybamm/models/submodels/particle/msmr_diffusion.py rename to src/pybamm/models/submodels/particle/msmr_diffusion.py diff --git a/pybamm/models/submodels/particle/polynomial_profile.py b/src/pybamm/models/submodels/particle/polynomial_profile.py similarity index 100% rename from pybamm/models/submodels/particle/polynomial_profile.py rename to src/pybamm/models/submodels/particle/polynomial_profile.py diff --git a/pybamm/models/submodels/particle/total_particle_concentration.py b/src/pybamm/models/submodels/particle/total_particle_concentration.py similarity index 100% rename from pybamm/models/submodels/particle/total_particle_concentration.py rename to src/pybamm/models/submodels/particle/total_particle_concentration.py diff --git a/pybamm/models/submodels/particle/x_averaged_polynomial_profile.py b/src/pybamm/models/submodels/particle/x_averaged_polynomial_profile.py similarity index 100% rename from pybamm/models/submodels/particle/x_averaged_polynomial_profile.py rename to src/pybamm/models/submodels/particle/x_averaged_polynomial_profile.py diff --git a/pybamm/models/submodels/particle_mechanics/__init__.py b/src/pybamm/models/submodels/particle_mechanics/__init__.py similarity index 100% rename from pybamm/models/submodels/particle_mechanics/__init__.py rename to src/pybamm/models/submodels/particle_mechanics/__init__.py diff --git a/pybamm/models/submodels/particle_mechanics/base_mechanics.py b/src/pybamm/models/submodels/particle_mechanics/base_mechanics.py similarity index 100% rename from pybamm/models/submodels/particle_mechanics/base_mechanics.py rename to src/pybamm/models/submodels/particle_mechanics/base_mechanics.py diff --git a/pybamm/models/submodels/particle_mechanics/crack_propagation.py b/src/pybamm/models/submodels/particle_mechanics/crack_propagation.py similarity index 100% rename from pybamm/models/submodels/particle_mechanics/crack_propagation.py rename to src/pybamm/models/submodels/particle_mechanics/crack_propagation.py diff --git a/pybamm/models/submodels/particle_mechanics/no_mechanics.py b/src/pybamm/models/submodels/particle_mechanics/no_mechanics.py similarity index 100% rename from pybamm/models/submodels/particle_mechanics/no_mechanics.py rename to src/pybamm/models/submodels/particle_mechanics/no_mechanics.py diff --git a/pybamm/models/submodels/particle_mechanics/swelling_only.py b/src/pybamm/models/submodels/particle_mechanics/swelling_only.py similarity index 100% rename from pybamm/models/submodels/particle_mechanics/swelling_only.py rename to src/pybamm/models/submodels/particle_mechanics/swelling_only.py diff --git a/pybamm/models/submodels/porosity/__init__.py b/src/pybamm/models/submodels/porosity/__init__.py similarity index 100% rename from pybamm/models/submodels/porosity/__init__.py rename to src/pybamm/models/submodels/porosity/__init__.py diff --git a/pybamm/models/submodels/porosity/base_porosity.py b/src/pybamm/models/submodels/porosity/base_porosity.py similarity index 100% rename from pybamm/models/submodels/porosity/base_porosity.py rename to src/pybamm/models/submodels/porosity/base_porosity.py diff --git a/pybamm/models/submodels/porosity/constant_porosity.py b/src/pybamm/models/submodels/porosity/constant_porosity.py similarity index 100% rename from pybamm/models/submodels/porosity/constant_porosity.py rename to src/pybamm/models/submodels/porosity/constant_porosity.py diff --git a/pybamm/models/submodels/porosity/reaction_driven_porosity.py b/src/pybamm/models/submodels/porosity/reaction_driven_porosity.py similarity index 100% rename from pybamm/models/submodels/porosity/reaction_driven_porosity.py rename to src/pybamm/models/submodels/porosity/reaction_driven_porosity.py diff --git a/pybamm/models/submodels/porosity/reaction_driven_porosity_ode.py b/src/pybamm/models/submodels/porosity/reaction_driven_porosity_ode.py similarity index 100% rename from pybamm/models/submodels/porosity/reaction_driven_porosity_ode.py rename to src/pybamm/models/submodels/porosity/reaction_driven_porosity_ode.py diff --git a/pybamm/models/submodels/thermal/__init__.py b/src/pybamm/models/submodels/thermal/__init__.py similarity index 100% rename from pybamm/models/submodels/thermal/__init__.py rename to src/pybamm/models/submodels/thermal/__init__.py diff --git a/pybamm/models/submodels/thermal/base_thermal.py b/src/pybamm/models/submodels/thermal/base_thermal.py similarity index 100% rename from pybamm/models/submodels/thermal/base_thermal.py rename to src/pybamm/models/submodels/thermal/base_thermal.py diff --git a/pybamm/models/submodels/thermal/isothermal.py b/src/pybamm/models/submodels/thermal/isothermal.py similarity index 100% rename from pybamm/models/submodels/thermal/isothermal.py rename to src/pybamm/models/submodels/thermal/isothermal.py diff --git a/pybamm/models/submodels/thermal/lumped.py b/src/pybamm/models/submodels/thermal/lumped.py similarity index 100% rename from pybamm/models/submodels/thermal/lumped.py rename to src/pybamm/models/submodels/thermal/lumped.py diff --git a/pybamm/models/submodels/thermal/pouch_cell/__init__.py b/src/pybamm/models/submodels/thermal/pouch_cell/__init__.py similarity index 100% rename from pybamm/models/submodels/thermal/pouch_cell/__init__.py rename to src/pybamm/models/submodels/thermal/pouch_cell/__init__.py diff --git a/pybamm/models/submodels/thermal/pouch_cell/pouch_cell_1D_current_collectors.py b/src/pybamm/models/submodels/thermal/pouch_cell/pouch_cell_1D_current_collectors.py similarity index 100% rename from pybamm/models/submodels/thermal/pouch_cell/pouch_cell_1D_current_collectors.py rename to src/pybamm/models/submodels/thermal/pouch_cell/pouch_cell_1D_current_collectors.py diff --git a/pybamm/models/submodels/thermal/pouch_cell/pouch_cell_2D_current_collectors.py b/src/pybamm/models/submodels/thermal/pouch_cell/pouch_cell_2D_current_collectors.py similarity index 100% rename from pybamm/models/submodels/thermal/pouch_cell/pouch_cell_2D_current_collectors.py rename to src/pybamm/models/submodels/thermal/pouch_cell/pouch_cell_2D_current_collectors.py diff --git a/pybamm/models/submodels/thermal/pouch_cell/x_full.py b/src/pybamm/models/submodels/thermal/pouch_cell/x_full.py similarity index 100% rename from pybamm/models/submodels/thermal/pouch_cell/x_full.py rename to src/pybamm/models/submodels/thermal/pouch_cell/x_full.py diff --git a/pybamm/models/submodels/transport_efficiency/__init__.py b/src/pybamm/models/submodels/transport_efficiency/__init__.py similarity index 100% rename from pybamm/models/submodels/transport_efficiency/__init__.py rename to src/pybamm/models/submodels/transport_efficiency/__init__.py diff --git a/pybamm/models/submodels/transport_efficiency/base_transport_efficiency.py b/src/pybamm/models/submodels/transport_efficiency/base_transport_efficiency.py similarity index 100% rename from pybamm/models/submodels/transport_efficiency/base_transport_efficiency.py rename to src/pybamm/models/submodels/transport_efficiency/base_transport_efficiency.py diff --git a/pybamm/models/submodels/transport_efficiency/bruggeman.py b/src/pybamm/models/submodels/transport_efficiency/bruggeman.py similarity index 100% rename from pybamm/models/submodels/transport_efficiency/bruggeman.py rename to src/pybamm/models/submodels/transport_efficiency/bruggeman.py diff --git a/pybamm/models/submodels/transport_efficiency/cation_exchange_membrane.py b/src/pybamm/models/submodels/transport_efficiency/cation_exchange_membrane.py similarity index 100% rename from pybamm/models/submodels/transport_efficiency/cation_exchange_membrane.py rename to src/pybamm/models/submodels/transport_efficiency/cation_exchange_membrane.py diff --git a/pybamm/models/submodels/transport_efficiency/heterogeneous_catalyst.py b/src/pybamm/models/submodels/transport_efficiency/heterogeneous_catalyst.py similarity index 100% rename from pybamm/models/submodels/transport_efficiency/heterogeneous_catalyst.py rename to src/pybamm/models/submodels/transport_efficiency/heterogeneous_catalyst.py diff --git a/pybamm/models/submodels/transport_efficiency/hyperbola_of_revolution.py b/src/pybamm/models/submodels/transport_efficiency/hyperbola_of_revolution.py similarity index 100% rename from pybamm/models/submodels/transport_efficiency/hyperbola_of_revolution.py rename to src/pybamm/models/submodels/transport_efficiency/hyperbola_of_revolution.py diff --git a/pybamm/models/submodels/transport_efficiency/ordered_packing.py b/src/pybamm/models/submodels/transport_efficiency/ordered_packing.py similarity index 100% rename from pybamm/models/submodels/transport_efficiency/ordered_packing.py rename to src/pybamm/models/submodels/transport_efficiency/ordered_packing.py diff --git a/pybamm/models/submodels/transport_efficiency/overlapping_spheres.py b/src/pybamm/models/submodels/transport_efficiency/overlapping_spheres.py similarity index 100% rename from pybamm/models/submodels/transport_efficiency/overlapping_spheres.py rename to src/pybamm/models/submodels/transport_efficiency/overlapping_spheres.py diff --git a/pybamm/models/submodels/transport_efficiency/random_overlapping_cylinders.py b/src/pybamm/models/submodels/transport_efficiency/random_overlapping_cylinders.py similarity index 100% rename from pybamm/models/submodels/transport_efficiency/random_overlapping_cylinders.py rename to src/pybamm/models/submodels/transport_efficiency/random_overlapping_cylinders.py diff --git a/pybamm/models/submodels/transport_efficiency/tortuosity_factor.py b/src/pybamm/models/submodels/transport_efficiency/tortuosity_factor.py similarity index 100% rename from pybamm/models/submodels/transport_efficiency/tortuosity_factor.py rename to src/pybamm/models/submodels/transport_efficiency/tortuosity_factor.py diff --git a/pybamm/parameters/__init__.py b/src/pybamm/parameters/__init__.py similarity index 100% rename from pybamm/parameters/__init__.py rename to src/pybamm/parameters/__init__.py diff --git a/pybamm/parameters/base_parameters.py b/src/pybamm/parameters/base_parameters.py similarity index 100% rename from pybamm/parameters/base_parameters.py rename to src/pybamm/parameters/base_parameters.py diff --git a/pybamm/parameters/bpx.py b/src/pybamm/parameters/bpx.py similarity index 100% rename from pybamm/parameters/bpx.py rename to src/pybamm/parameters/bpx.py diff --git a/pybamm/parameters/constants.py b/src/pybamm/parameters/constants.py similarity index 100% rename from pybamm/parameters/constants.py rename to src/pybamm/parameters/constants.py diff --git a/pybamm/parameters/ecm_parameters.py b/src/pybamm/parameters/ecm_parameters.py similarity index 100% rename from pybamm/parameters/ecm_parameters.py rename to src/pybamm/parameters/ecm_parameters.py diff --git a/pybamm/parameters/electrical_parameters.py b/src/pybamm/parameters/electrical_parameters.py similarity index 100% rename from pybamm/parameters/electrical_parameters.py rename to src/pybamm/parameters/electrical_parameters.py diff --git a/pybamm/parameters/geometric_parameters.py b/src/pybamm/parameters/geometric_parameters.py similarity index 100% rename from pybamm/parameters/geometric_parameters.py rename to src/pybamm/parameters/geometric_parameters.py diff --git a/pybamm/parameters/lead_acid_parameters.py b/src/pybamm/parameters/lead_acid_parameters.py similarity index 100% rename from pybamm/parameters/lead_acid_parameters.py rename to src/pybamm/parameters/lead_acid_parameters.py diff --git a/pybamm/parameters/lithium_ion_parameters.py b/src/pybamm/parameters/lithium_ion_parameters.py similarity index 100% rename from pybamm/parameters/lithium_ion_parameters.py rename to src/pybamm/parameters/lithium_ion_parameters.py diff --git a/pybamm/parameters/parameter_sets.py b/src/pybamm/parameters/parameter_sets.py similarity index 100% rename from pybamm/parameters/parameter_sets.py rename to src/pybamm/parameters/parameter_sets.py diff --git a/pybamm/parameters/parameter_values.py b/src/pybamm/parameters/parameter_values.py similarity index 100% rename from pybamm/parameters/parameter_values.py rename to src/pybamm/parameters/parameter_values.py diff --git a/pybamm/parameters/process_parameter_data.py b/src/pybamm/parameters/process_parameter_data.py similarity index 100% rename from pybamm/parameters/process_parameter_data.py rename to src/pybamm/parameters/process_parameter_data.py diff --git a/pybamm/parameters/size_distribution_parameters.py b/src/pybamm/parameters/size_distribution_parameters.py similarity index 100% rename from pybamm/parameters/size_distribution_parameters.py rename to src/pybamm/parameters/size_distribution_parameters.py diff --git a/pybamm/parameters/thermal_parameters.py b/src/pybamm/parameters/thermal_parameters.py similarity index 100% rename from pybamm/parameters/thermal_parameters.py rename to src/pybamm/parameters/thermal_parameters.py diff --git a/pybamm/plotting/__init__.py b/src/pybamm/plotting/__init__.py similarity index 100% rename from pybamm/plotting/__init__.py rename to src/pybamm/plotting/__init__.py diff --git a/pybamm/plotting/dynamic_plot.py b/src/pybamm/plotting/dynamic_plot.py similarity index 100% rename from pybamm/plotting/dynamic_plot.py rename to src/pybamm/plotting/dynamic_plot.py diff --git a/pybamm/plotting/plot.py b/src/pybamm/plotting/plot.py similarity index 100% rename from pybamm/plotting/plot.py rename to src/pybamm/plotting/plot.py diff --git a/pybamm/plotting/plot2D.py b/src/pybamm/plotting/plot2D.py similarity index 100% rename from pybamm/plotting/plot2D.py rename to src/pybamm/plotting/plot2D.py diff --git a/pybamm/plotting/plot_summary_variables.py b/src/pybamm/plotting/plot_summary_variables.py similarity index 100% rename from pybamm/plotting/plot_summary_variables.py rename to src/pybamm/plotting/plot_summary_variables.py diff --git a/pybamm/plotting/plot_thermal_components.py b/src/pybamm/plotting/plot_thermal_components.py similarity index 100% rename from pybamm/plotting/plot_thermal_components.py rename to src/pybamm/plotting/plot_thermal_components.py diff --git a/pybamm/plotting/plot_voltage_components.py b/src/pybamm/plotting/plot_voltage_components.py similarity index 100% rename from pybamm/plotting/plot_voltage_components.py rename to src/pybamm/plotting/plot_voltage_components.py diff --git a/pybamm/plotting/quick_plot.py b/src/pybamm/plotting/quick_plot.py similarity index 100% rename from pybamm/plotting/quick_plot.py rename to src/pybamm/plotting/quick_plot.py diff --git a/pybamm/pybamm_data.py b/src/pybamm/pybamm_data.py similarity index 100% rename from pybamm/pybamm_data.py rename to src/pybamm/pybamm_data.py diff --git a/pybamm/settings.py b/src/pybamm/settings.py similarity index 100% rename from pybamm/settings.py rename to src/pybamm/settings.py diff --git a/pybamm/simulation.py b/src/pybamm/simulation.py similarity index 100% rename from pybamm/simulation.py rename to src/pybamm/simulation.py diff --git a/pybamm/solvers/__init__.py b/src/pybamm/solvers/__init__.py similarity index 100% rename from pybamm/solvers/__init__.py rename to src/pybamm/solvers/__init__.py diff --git a/pybamm/solvers/algebraic_solver.py b/src/pybamm/solvers/algebraic_solver.py similarity index 100% rename from pybamm/solvers/algebraic_solver.py rename to src/pybamm/solvers/algebraic_solver.py diff --git a/pybamm/solvers/base_solver.py b/src/pybamm/solvers/base_solver.py similarity index 100% rename from pybamm/solvers/base_solver.py rename to src/pybamm/solvers/base_solver.py diff --git a/pybamm/solvers/c_solvers/__init__.py b/src/pybamm/solvers/c_solvers/__init__.py similarity index 100% rename from pybamm/solvers/c_solvers/__init__.py rename to src/pybamm/solvers/c_solvers/__init__.py diff --git a/pybamm/solvers/c_solvers/idaklu.cpp b/src/pybamm/solvers/c_solvers/idaklu.cpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu.cpp rename to src/pybamm/solvers/c_solvers/idaklu.cpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/Base/Expression.hpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/Expression.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/Base/Expression.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/Expression.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSet.hpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSet.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSet.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionSet.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionTypes.hpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionTypes.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionTypes.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/Base/ExpressionTypes.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.cpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.cpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.cpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.cpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.hpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/Casadi/CasadiFunctions.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/Expressions.hpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/Expressions.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/Expressions.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/Expressions.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEBaseFunction.hpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEBaseFunction.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEBaseFunction.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEBaseFunction.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunction.hpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunction.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunction.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunction.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.cpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.cpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.cpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.cpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.hpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/IREEFunctions.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.cpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.cpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.cpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.cpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.hpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/ModuleParser.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.cpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.cpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.cpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.cpp diff --git a/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.hpp b/src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Expressions/IREE/iree_jit.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.cpp b/src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.cpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.cpp rename to src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.cpp diff --git a/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.hpp b/src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.hpp rename to src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolver.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.hpp b/src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.hpp rename to src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.inl b/src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.inl similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.inl rename to src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP.inl diff --git a/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.cpp b/src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.cpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.cpp rename to src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.cpp diff --git a/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.hpp b/src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.hpp rename to src/pybamm/solvers/c_solvers/idaklu/IDAKLUSolverOpenMP_solvers.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/IdakluJax.cpp b/src/pybamm/solvers/c_solvers/idaklu/IdakluJax.cpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/IdakluJax.cpp rename to src/pybamm/solvers/c_solvers/idaklu/IdakluJax.cpp diff --git a/pybamm/solvers/c_solvers/idaklu/IdakluJax.hpp b/src/pybamm/solvers/c_solvers/idaklu/IdakluJax.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/IdakluJax.hpp rename to src/pybamm/solvers/c_solvers/idaklu/IdakluJax.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/Options.cpp b/src/pybamm/solvers/c_solvers/idaklu/Options.cpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Options.cpp rename to src/pybamm/solvers/c_solvers/idaklu/Options.cpp diff --git a/pybamm/solvers/c_solvers/idaklu/Options.hpp b/src/pybamm/solvers/c_solvers/idaklu/Options.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Options.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Options.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/Solution.cpp b/src/pybamm/solvers/c_solvers/idaklu/Solution.cpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Solution.cpp rename to src/pybamm/solvers/c_solvers/idaklu/Solution.cpp diff --git a/pybamm/solvers/c_solvers/idaklu/Solution.hpp b/src/pybamm/solvers/c_solvers/idaklu/Solution.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/Solution.hpp rename to src/pybamm/solvers/c_solvers/idaklu/Solution.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/common.hpp b/src/pybamm/solvers/c_solvers/idaklu/common.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/common.hpp rename to src/pybamm/solvers/c_solvers/idaklu/common.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/idaklu_solver.hpp b/src/pybamm/solvers/c_solvers/idaklu/idaklu_solver.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/idaklu_solver.hpp rename to src/pybamm/solvers/c_solvers/idaklu/idaklu_solver.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/python.cpp b/src/pybamm/solvers/c_solvers/idaklu/python.cpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/python.cpp rename to src/pybamm/solvers/c_solvers/idaklu/python.cpp diff --git a/pybamm/solvers/c_solvers/idaklu/python.hpp b/src/pybamm/solvers/c_solvers/idaklu/python.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/python.hpp rename to src/pybamm/solvers/c_solvers/idaklu/python.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/sundials_functions.hpp b/src/pybamm/solvers/c_solvers/idaklu/sundials_functions.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/sundials_functions.hpp rename to src/pybamm/solvers/c_solvers/idaklu/sundials_functions.hpp diff --git a/pybamm/solvers/c_solvers/idaklu/sundials_functions.inl b/src/pybamm/solvers/c_solvers/idaklu/sundials_functions.inl similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/sundials_functions.inl rename to src/pybamm/solvers/c_solvers/idaklu/sundials_functions.inl diff --git a/pybamm/solvers/c_solvers/idaklu/sundials_legacy_wrapper.hpp b/src/pybamm/solvers/c_solvers/idaklu/sundials_legacy_wrapper.hpp similarity index 100% rename from pybamm/solvers/c_solvers/idaklu/sundials_legacy_wrapper.hpp rename to src/pybamm/solvers/c_solvers/idaklu/sundials_legacy_wrapper.hpp diff --git a/pybamm/solvers/casadi_algebraic_solver.py b/src/pybamm/solvers/casadi_algebraic_solver.py similarity index 100% rename from pybamm/solvers/casadi_algebraic_solver.py rename to src/pybamm/solvers/casadi_algebraic_solver.py diff --git a/pybamm/solvers/casadi_solver.py b/src/pybamm/solvers/casadi_solver.py similarity index 100% rename from pybamm/solvers/casadi_solver.py rename to src/pybamm/solvers/casadi_solver.py diff --git a/pybamm/solvers/dummy_solver.py b/src/pybamm/solvers/dummy_solver.py similarity index 100% rename from pybamm/solvers/dummy_solver.py rename to src/pybamm/solvers/dummy_solver.py diff --git a/pybamm/solvers/idaklu_jax.py b/src/pybamm/solvers/idaklu_jax.py similarity index 100% rename from pybamm/solvers/idaklu_jax.py rename to src/pybamm/solvers/idaklu_jax.py diff --git a/pybamm/solvers/idaklu_solver.py b/src/pybamm/solvers/idaklu_solver.py similarity index 100% rename from pybamm/solvers/idaklu_solver.py rename to src/pybamm/solvers/idaklu_solver.py diff --git a/pybamm/solvers/jax_bdf_solver.py b/src/pybamm/solvers/jax_bdf_solver.py similarity index 100% rename from pybamm/solvers/jax_bdf_solver.py rename to src/pybamm/solvers/jax_bdf_solver.py diff --git a/pybamm/solvers/jax_solver.py b/src/pybamm/solvers/jax_solver.py similarity index 100% rename from pybamm/solvers/jax_solver.py rename to src/pybamm/solvers/jax_solver.py diff --git a/pybamm/solvers/lrudict.py b/src/pybamm/solvers/lrudict.py similarity index 100% rename from pybamm/solvers/lrudict.py rename to src/pybamm/solvers/lrudict.py diff --git a/pybamm/solvers/processed_variable.py b/src/pybamm/solvers/processed_variable.py similarity index 100% rename from pybamm/solvers/processed_variable.py rename to src/pybamm/solvers/processed_variable.py diff --git a/pybamm/solvers/processed_variable_computed.py b/src/pybamm/solvers/processed_variable_computed.py similarity index 100% rename from pybamm/solvers/processed_variable_computed.py rename to src/pybamm/solvers/processed_variable_computed.py diff --git a/pybamm/solvers/scipy_solver.py b/src/pybamm/solvers/scipy_solver.py similarity index 100% rename from pybamm/solvers/scipy_solver.py rename to src/pybamm/solvers/scipy_solver.py diff --git a/pybamm/solvers/solution.py b/src/pybamm/solvers/solution.py similarity index 100% rename from pybamm/solvers/solution.py rename to src/pybamm/solvers/solution.py diff --git a/pybamm/spatial_methods/__init__.py b/src/pybamm/spatial_methods/__init__.py similarity index 100% rename from pybamm/spatial_methods/__init__.py rename to src/pybamm/spatial_methods/__init__.py diff --git a/pybamm/spatial_methods/finite_volume.py b/src/pybamm/spatial_methods/finite_volume.py similarity index 100% rename from pybamm/spatial_methods/finite_volume.py rename to src/pybamm/spatial_methods/finite_volume.py diff --git a/pybamm/spatial_methods/scikit_finite_element.py b/src/pybamm/spatial_methods/scikit_finite_element.py similarity index 100% rename from pybamm/spatial_methods/scikit_finite_element.py rename to src/pybamm/spatial_methods/scikit_finite_element.py diff --git a/pybamm/spatial_methods/spatial_method.py b/src/pybamm/spatial_methods/spatial_method.py similarity index 100% rename from pybamm/spatial_methods/spatial_method.py rename to src/pybamm/spatial_methods/spatial_method.py diff --git a/pybamm/spatial_methods/spectral_volume.py b/src/pybamm/spatial_methods/spectral_volume.py similarity index 100% rename from pybamm/spatial_methods/spectral_volume.py rename to src/pybamm/spatial_methods/spectral_volume.py diff --git a/pybamm/spatial_methods/zero_dimensional_method.py b/src/pybamm/spatial_methods/zero_dimensional_method.py similarity index 100% rename from pybamm/spatial_methods/zero_dimensional_method.py rename to src/pybamm/spatial_methods/zero_dimensional_method.py diff --git a/pybamm/type_definitions.py b/src/pybamm/type_definitions.py similarity index 100% rename from pybamm/type_definitions.py rename to src/pybamm/type_definitions.py diff --git a/pybamm/util.py b/src/pybamm/util.py similarity index 99% rename from pybamm/util.py rename to src/pybamm/util.py index 130cb5ba48..ee1431ecb1 100644 --- a/pybamm/util.py +++ b/src/pybamm/util.py @@ -28,7 +28,7 @@ def root_dir(): """return the root directory of the PyBaMM install directory""" - return str(pathlib.Path(pybamm.__path__[0]).parent) + return str(pathlib.Path(pybamm.__path__[0]).parent.parent) def get_git_commit_info(): diff --git a/pybamm/version.py b/src/pybamm/version.py similarity index 100% rename from pybamm/version.py rename to src/pybamm/version.py diff --git a/tests/unit/test_experiments/test_simulation_with_experiment.py b/tests/unit/test_experiments/test_simulation_with_experiment.py index fb9e2b2f70..defca33b00 100644 --- a/tests/unit/test_experiments/test_simulation_with_experiment.py +++ b/tests/unit/test_experiments/test_simulation_with_experiment.py @@ -485,6 +485,7 @@ def test_cycle_summary_variables(self): # Load negative electrode OCP data filename = os.path.join( pybamm.root_dir(), + "src", "pybamm", "input", "parameters", @@ -499,6 +500,7 @@ def test_cycle_summary_variables(self): # Load positive electrode OCP data filename = os.path.join( pybamm.root_dir(), + "src", "pybamm", "input", "parameters", diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index 4826885f1c..eaeb4a5a42 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -674,8 +674,7 @@ def lico2_diffusivity_Dualfoil1998_2D(c_s, T): def test_process_interpolant_3D_from_csv(self): name = "data_for_testing_3D" - path = os.path.join(pybamm.root_dir(), "tests", "unit", "test_parameters") - + path = os.path.abspath(os.path.dirname(__file__)) processed = pybamm.parameters.process_3D_data_csv(name, path) parameter_values = pybamm.ParameterValues({"interpolation": processed}) @@ -719,8 +718,7 @@ def test_process_interpolant_3D_from_csv(self): def test_process_interpolant_2D_from_csv(self): name = "data_for_testing_2D" - path = os.path.join(pybamm.root_dir(), "tests", "unit", "test_parameters") - + path = os.path.abspath(os.path.dirname(__file__)) processed = pybamm.parameters.process_2D_data_csv(name, path) parameter_values = pybamm.ParameterValues({"interpolation": processed}) diff --git a/tests/unit/test_parameters/test_process_parameter_data.py b/tests/unit/test_parameters/test_process_parameter_data.py index bf27f71e4f..3230f374f2 100644 --- a/tests/unit/test_parameters/test_process_parameter_data.py +++ b/tests/unit/test_parameters/test_process_parameter_data.py @@ -13,7 +13,7 @@ class TestProcessParameterData(unittest.TestCase): def test_process_1D_data(self): name = "lico2_ocv_example" - path = os.path.join(pybamm.root_dir(), "tests", "unit", "test_parameters") + path = os.path.abspath(os.path.dirname(__file__)) processed = pybamm.parameters.process_1D_data(name, path) self.assertEqual(processed[0], name) self.assertIsInstance(processed[1], tuple) @@ -22,7 +22,7 @@ def test_process_1D_data(self): def test_process_2D_data(self): name = "lico2_diffusivity_Dualfoil1998_2D" - path = os.path.join(pybamm.root_dir(), "tests", "unit", "test_parameters") + path = os.path.abspath(os.path.dirname(__file__)) processed = pybamm.parameters.process_2D_data(name, path) self.assertEqual(processed[0], name) self.assertIsInstance(processed[1], tuple) @@ -32,7 +32,7 @@ def test_process_2D_data(self): def test_process_2D_data_csv(self): name = "data_for_testing_2D" - path = os.path.join(pybamm.root_dir(), "tests", "unit", "test_parameters") + path = os.path.abspath(os.path.dirname(__file__)) processed = pybamm.parameters.process_2D_data_csv(name, path) self.assertEqual(processed[0], name) @@ -43,7 +43,7 @@ def test_process_2D_data_csv(self): def test_process_3D_data_csv(self): name = "data_for_testing_3D" - path = os.path.join(pybamm.root_dir(), "tests", "unit", "test_parameters") + path = os.path.abspath(os.path.dirname(__file__)) processed = pybamm.parameters.process_3D_data_csv(name, path) self.assertEqual(processed[0], name) diff --git a/tests/unit/test_util.py b/tests/unit/test_util.py index c3f53f80be..1b621d98f0 100644 --- a/tests/unit/test_util.py +++ b/tests/unit/test_util.py @@ -83,7 +83,7 @@ def test_get_parameters_filepath(self): pybamm.get_parameters_filepath(tempfile_obj.name) == tempfile_obj.name ) - package_dir = os.path.join(pybamm.root_dir(), "pybamm") + package_dir = os.path.join(pybamm.root_dir(), "src", "pybamm") with tempfile.NamedTemporaryFile("w", dir=package_dir) as tempfile_obj: path = os.path.join(package_dir, tempfile_obj.name) assert pybamm.get_parameters_filepath(tempfile_obj.name) == path