From 05b168628ee904ac01254902be9a2ad793340476 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 22 Feb 2024 21:08:44 +0000 Subject: [PATCH 01/10] #57 adjust tutorial heading levels --- .../cell_based/tutorials/TestCellSortingTutorial.py | 6 +++--- .../TestMeshBasedCellSimulationsPythonTutorial.py | 8 ++++---- .../TestNodeBasedCellSimulationsPythonTutorial.py | 10 +++++----- .../TestPottsBasedCellSimulationsPythonTutorial.py | 10 +++++----- .../cell_based/tutorials/TestScratchAssayTutorial.py | 4 ++-- .../cell_based/tutorials/TestSpheroidTutorial.py | 6 +++--- .../cell_based/tutorials/TestTensileTestTutorial.py | 6 +++--- .../TestVertexBasedCellSimulationsPythonTutorial.py | 8 ++++---- 8 files changed, 29 insertions(+), 29 deletions(-) diff --git a/test/python/cell_based/tutorials/TestCellSortingTutorial.py b/test/python/cell_based/tutorials/TestCellSortingTutorial.py index 4b08fc67..00d11a38 100644 --- a/test/python/cell_based/tutorials/TestCellSortingTutorial.py +++ b/test/python/cell_based/tutorials/TestCellSortingTutorial.py @@ -33,13 +33,13 @@ #ifndef #define TRIGGER_WIKI -## # Introduction +## ## Introduction ## This test is a demonstration of cell sorting using a Cellular Potts based framework. ## It shows: ## * How to set up a Potts simulation ## * Working with labels ## -## ## The Test +## ### The Test import unittest # Python testing framework import matplotlib.pyplot as plt # Plotting @@ -52,7 +52,7 @@ class TestCellSortingTutorial(chaste.cell_based.AbstractCellBasedTestSuite): - ## ## Test 1 - Cell sorting + ## ### Test 1 - Cell sorting ## The next test generates a collection of cells, there are two types of cells, labelled ones and non labelled ones, ## there is differential adhesion between the cell types. For the parameters specified, the cells sort into separate types. diff --git a/test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py b/test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py index f227d29c..a2cc923b 100644 --- a/test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py +++ b/test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py @@ -33,11 +33,11 @@ #ifndef #define TRIGGER_WIKI -## # Introduction +## ## Introduction ## In this tutorial we show how Chaste can be used to create, run and visualize mesh-based simulations. ## Full details of the mathematical model can be found in van Leeuwen et al. (2009) [doi:10.1111/j.1365-2184.2009.00627.x]. ## -## ## Imports and Setup +## ### Imports and Setup import unittest # Python testing framework import matplotlib.pyplot as plt # Plotting @@ -51,7 +51,7 @@ class TestRunningMeshBasedSimulationsTutorial(chaste.cell_based.AbstractCellBasedTestSuite): - ## ## Test 1 - a basic mesh-based simulation + ## ### Test 1 - a basic mesh-based simulation ## In the first test, we run a simple mesh-based simulation, ## in which we create a monolayer of cells, using a mutable mesh. Each cell is assigned a stochastic cell-cycle model. @@ -136,7 +136,7 @@ def test_monolayer(self): ## Full results can be visualized in Paraview from the `file_handler.GetOutputDirectoryFullPath()` directory. - ## ## Test 2 - a basic mesh-based simulation with ghost nodes + ## ### Test 2 - a basic mesh-based simulation with ghost nodes ## In the second test, we run a simple mesh-based simulation with ghost nodes, in which we create a monolayer of cells, using a mutable mesh. ## Each cell is assigned a stochastic cell-cycle model. diff --git a/test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py b/test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py index 11f2c6a5..2482f07a 100644 --- a/test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py +++ b/test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py @@ -33,11 +33,11 @@ #ifndef #define TRIGGER_WIKI -## # Introduction +## ## Introduction ## In this tutorial we show how Chaste can be used to create, run and visualize node-based simulations. Full details of the mechanical model can be found in Pathamathan et ## al "A computational study of discrete mechanical tissue models", Physical Biology. Vol. 6. No. 3. 2009.. DOI (10.1088/1478-3975/6/3/036001). ## -## ## The Test +## ### The Test import unittest # Python testing framework import numpy as np # Matrix tools @@ -49,7 +49,7 @@ class TestRunningNodeBasedSimulationsTutorial(chaste.cell_based.AbstractCellBasedTestSuite): - ## ## Test 1 - A basic node-based simulation + ## ### Test 1 - A basic node-based simulation ## In the first test, we run a simple node-based simulation, in which we create a monolayer of cells, ## using a nodes only mesh. Each cell is assigned a uniform cell-cycle model. @@ -131,7 +131,7 @@ def test_monolayer(self): # JUPYTER_TEARDOWN - ## ## Test 2 - a basic node-based simulation in 3D + ## ### Test 2 - a basic node-based simulation in 3D ## In the second test we run a simple node-based simulation in 3D. This is very similar to the 2D test with the dimension changed from 2 to 3 and ## instead of using a mesh generator we generate the nodes directly. @@ -209,7 +209,7 @@ def test_spheroid(self): # JUPYTER_TEARDOWN - ## ## Test 3 - a node-based simulation on a restricted geometry + ## ### Test 3 - a node-based simulation on a restricted geometry ## In the second test we run a simple node-based simulation in 3D. This is very similar to the 2D test with the dimension changed from 2 to 3 and ## instead of using a mesh generator we generate the nodes directly. diff --git a/test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py b/test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py index 6c9df178..e6fd3bc1 100644 --- a/test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py +++ b/test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py @@ -33,11 +33,11 @@ #ifndef #define TRIGGER_WIKI -## # Introduction +## ## Introduction ## In this tutorial we show how Chaste can be used to create, run and visualize Potts-based simulations. ## Full details of the mathematical model can be found in Graner, F. and Glazier, J. A. (1992). ## -## ## The Test +## ### The Test import unittest # Python testing framework import chaste # The PyChaste module @@ -48,7 +48,7 @@ class TestRunningPottsBasedSimulationsTutorial(chaste.cell_based.AbstractCellBasedTestSuite): - ## ## Test 1 - A basic node-based simulation + ## ### Test 1 - A basic node-based simulation ## In the first test, we run a simple Potts-based simulation, in which we create a monolayer of cells, using a Potts mesh. ## Each cell is assigned a stochastic cell-cycle model. @@ -159,7 +159,7 @@ def test_monolayer(self): # JUPYTER_TEARDOWN - ## ## Test 2 - Cell sorting + ## ### Test 2 - Cell sorting ## The next test generates a collection of cells, there are two types of cells, labelled ones and non labelled ones, ## there is differential adhesion between the cell types. For the parameters specified, the cells sort into separate types. @@ -239,7 +239,7 @@ def test_potts_monolayer_cell_sorting(self): # JUPYTER_TEARDOWN - ## ## Test 3 - 3D Cell Sorting + ## ### Test 3 - 3D Cell Sorting ## The next test extends the previous example to three dimensions. def test_potts_spheroid_cell_sorting(self): diff --git a/test/python/cell_based/tutorials/TestScratchAssayTutorial.py b/test/python/cell_based/tutorials/TestScratchAssayTutorial.py index fc6f52f3..2b06bf73 100644 --- a/test/python/cell_based/tutorials/TestScratchAssayTutorial.py +++ b/test/python/cell_based/tutorials/TestScratchAssayTutorial.py @@ -33,7 +33,7 @@ #ifndef #define TRIGGER_WIKI -## # Introduction +## ## Introduction ## This tutorial is an example of modelling a scratch assay using a simple cellular automaton ## representation of cells. It will cover the following techniques: ## @@ -56,7 +56,7 @@ class TestScratchAssayTutorial(chaste.cell_based.AbstractCellBasedTestSuite): - ## ## Test 1 - Scratch Assay + ## ### Test 1 - Scratch Assay ## In this test we will create a scratch along the middle of a domain and quantify the migration ## of cells into the region. Cells will migrate by random walk on the their regular mesh (lattice). ## diff --git a/test/python/cell_based/tutorials/TestSpheroidTutorial.py b/test/python/cell_based/tutorials/TestSpheroidTutorial.py index 422b3993..e1284497 100644 --- a/test/python/cell_based/tutorials/TestSpheroidTutorial.py +++ b/test/python/cell_based/tutorials/TestSpheroidTutorial.py @@ -33,14 +33,14 @@ #ifndef #define TRIGGER_WIKI -## # Introduction +## ## Introduction ## This tutorial is an example of modelling spheroid growth with a nutrient. ## It covers: ## * Setting up an off-lattice cell population ## * Setting up a cell cycle model with oxygen dependence ## * Setting up and solving an oxygen transport PDE ## * Setting up a cell killer -## ## Imports and Setup +## ### Imports and Setup import unittest # Python testing framework import matplotlib.pyplot as plt # Plotting @@ -55,7 +55,7 @@ class TestSpheroidTutorial(chaste.cell_based.AbstractCellBasedTestSuite): - ## ## Test 1 - a 2D mesh-based spheroid + ## ### Test 1 - a 2D mesh-based spheroid ## In this test we set up a spheroid with a plentiful supply of oxygen on the boundary and watch it grow ## over time. Cells can gradually become apoptotic if the oxygen tension is too low. diff --git a/test/python/cell_based/tutorials/TestTensileTestTutorial.py b/test/python/cell_based/tutorials/TestTensileTestTutorial.py index 004f7ec8..f149f429 100644 --- a/test/python/cell_based/tutorials/TestTensileTestTutorial.py +++ b/test/python/cell_based/tutorials/TestTensileTestTutorial.py @@ -33,14 +33,14 @@ #ifndef #define TRIGGER_WIKI -## # Introduction +## ## Introduction ## In this tutorial we will demonstrate a simulated tensile test on an epithelial sheet. This test ## demonstrates: ## * Working with vertex based off lattice populations ## * Applying boundary conditions ## * Working with forces ## -## ## The Test +## ### The Test import unittest # Python testing framework import numpy as np # Matrix tools @@ -53,7 +53,7 @@ class TestTensileTestTutorial(chaste.cell_based.AbstractCellBasedTestSuite): - ## ## Test 1 - A 2d test + ## ### Test 1 - A 2D test def test_monolayer(self): diff --git a/test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py b/test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py index 1d93cc1a..31647bbf 100644 --- a/test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py +++ b/test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py @@ -33,12 +33,12 @@ #ifndef #define TRIGGER_WIKI -## # Introduction +## ## Introduction ## In this tutorial we show how Chaste can be used to create, run and visualize vertex-based simulations. ## Full details of the mechanical model proposed by T. Nagai and H. Honda ("A dynamic cell model for the formation of epithelial tissues", ## Philosophical Magazine Part B 81:699-719). ## -## ## The Test +## ### The Test import unittest # Python testing framework import matplotlib.pyplot as plt # Plotting @@ -50,7 +50,7 @@ chaste.init() # Set up MPI class TestRunningVertexBasedSimulationsTutorial(chaste.cell_based.AbstractCellBasedTestSuite): - ## ## Test 1 - A basic vertex-based simulation + ## ### Test 1 - A basic vertex-based simulation ## In the first test, we run a simple vertex-based simulation, in which we create a monolayer of cells, ## using a mutable vertex mesh. Each cell is assigned a stochastic cell-cycle model. @@ -140,7 +140,7 @@ def test_monolayer(self): # JUPYTER_TEARDOWN - ## ## Test 2 - introducing periodicity, boundaries and cell killers + ## ### Test 2 - introducing periodicity, boundaries and cell killers ## In the second test, we run a simple vertex-based simulation, in which we create a monolayer of cells in a periodic geometry, ## using a cylindrical vertex mesh. We also include a fixed boundary which cells can't pass through and a cell killer which removes ## cells once they leave a region. As before each cell is assigned a stochastic cell-cycle model. From ec27c7f871c5c754807870f2083ce18670a2b31d Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 22 Feb 2024 22:01:58 +0000 Subject: [PATCH 02/10] #57 add revision to tutorial markdown generator --- infra/CreateMarkdownTutorial.py | 13 ++++++++----- infra/GenerateWikiPages.py | 5 ++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/infra/CreateMarkdownTutorial.py b/infra/CreateMarkdownTutorial.py index 2565bb16..ec266d56 100755 --- a/infra/CreateMarkdownTutorial.py +++ b/infra/CreateMarkdownTutorial.py @@ -192,7 +192,7 @@ def CodeBlockOpener(file_name): return '```' + highlight_code def AddCodeOutput(file_name, code, output): - output.append('\n\n## File name `%s` \n\n' % file_name) + output.append('\n\n### File name %s \n\n' % file_name) output.append(CodeBlockOpener(file_name)) output.append('\n'.join(code)) output.append('\n```\n\n') @@ -207,13 +207,17 @@ def ConvertTutorialToMarkdownText(test_file_path, test_file, other_files, revisi the contents as for test_file. """ if revision: - revision = ' at revision r' + str(revision) + revision_text = f' at revision [{revision[:8]}](https://github.com/Chaste/PyChaste/commit/{revision})' + else: + revision_text = '' + output = [] # Header regex = re.compile(r'(?!^)(?=[A-Z])', re.MULTILINE) ugly_file_name = os.path.splitext(os.path.basename(test_file_path))[0] nice_file_name = re.sub(regex, " ", ugly_file_name) + link_path = f"https://github.com/Chaste/PyChaste/blob/develop/test/tutorials/{ugly_file_name}.py" page_header = f""" --- title : "{nice_file_name}" @@ -224,10 +228,9 @@ def ConvertTutorialToMarkdownText(test_file_path, test_file, other_files, revisi layout: "single" --- -This tutorial is automatically generated from the file {test_file_path} {revision}. +This tutorial is automatically generated from [{ugly_file_name}]({link_path}){revision_text}. Note that the code is given in full at the bottom of the page. - """ output.append(page_header) @@ -244,7 +247,7 @@ def ConvertTutorialToMarkdownText(test_file_path, test_file, other_files, revisi if file_code: other_code[other_file[0]] = file_code # Now output the C++ code for all files - output.append('\n\n# Code \nThe full code is given below\n') + output.append('\n\n## Code \nThe full code is given below\n') AddCodeOutput(os.path.basename(test_file_path), test_code, output) for filename, code in other_code.items(): AddCodeOutput(filename, code, output) diff --git a/infra/GenerateWikiPages.py b/infra/GenerateWikiPages.py index ec2ca546..c6d18fe9 100755 --- a/infra/GenerateWikiPages.py +++ b/infra/GenerateWikiPages.py @@ -66,6 +66,9 @@ if not fnmatch.fnmatch(file, "*.pyc"): tutorial_files.append([root, file]) + # Get git revision + revision = subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode('ascii').strip() + if args.format == "markdown": # Generate the markdown for each for eachFile in tutorial_files: @@ -75,7 +78,7 @@ + ".md" ) inputfile = eachFile[0] + "/" + eachFile[1] - launch_string = f"../infra/CreateMarkdownTutorial.py {inputfile} {outfile}" + launch_string = f"../infra/CreateMarkdownTutorial.py {inputfile} {outfile} --revision {revision}" os.system(launch_string) elif args.format == "jupyter": From be59762fe3e4709aa796fb442199fd23cadfd269 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 23 Feb 2024 11:14:26 +0000 Subject: [PATCH 03/10] #57 fix tutorial gen script paths --- infra/CreateMarkdownTutorial.py | 8 +++- infra/GenerateWikiPages.py | 65 ++++++++++++++++++++------------- 2 files changed, 47 insertions(+), 26 deletions(-) diff --git a/infra/CreateMarkdownTutorial.py b/infra/CreateMarkdownTutorial.py index ec266d56..f212cf88 100755 --- a/infra/CreateMarkdownTutorial.py +++ b/infra/CreateMarkdownTutorial.py @@ -60,6 +60,7 @@ import os import sys import re +import subprocess # This had better match GenerateHowTo.py! HOWTO_TAG = "HOW_TO_TAG" @@ -217,7 +218,12 @@ def ConvertTutorialToMarkdownText(test_file_path, test_file, other_files, revisi ugly_file_name = os.path.splitext(os.path.basename(test_file_path))[0] nice_file_name = re.sub(regex, " ", ugly_file_name) - link_path = f"https://github.com/Chaste/PyChaste/blob/develop/test/tutorials/{ugly_file_name}.py" + root_dir = ( + subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("ascii").strip() + ) + link_path = os.path.relpath(os.path.abspath(test_file_path), root_dir) + link_path = f"https://github.com/Chaste/PyChaste/blob/develop/{link_path}" + page_header = f""" --- title : "{nice_file_name}" diff --git a/infra/GenerateWikiPages.py b/infra/GenerateWikiPages.py index c6d18fe9..58cd1311 100755 --- a/infra/GenerateWikiPages.py +++ b/infra/GenerateWikiPages.py @@ -37,6 +37,7 @@ This script converts Python tutorials to markdown and jupyter notebook formats for use on the PyChaste website. """ + import argparse import fnmatch import ntpath @@ -56,43 +57,57 @@ ) args = parser.parse_args() + # Get the repository root directory + root_dir = ( + subprocess.check_output(["git", "rev-parse", "--show-toplevel"]) + .decode("ascii") + .strip() + ) + # Find all the tutorial files. tutorial_files = [] - for root, dirs, files in os.walk("../test"): + for root, dirs, files in os.walk(os.path.join(root_dir, "test")): for file in files: - if fnmatch.fnmatch(file, "Test*LiteratePaper*") or fnmatch.fnmatch( - file, "Test*Tutorial*" + if fnmatch.fnmatch(file, "Test*LiteratePaper*.py") or fnmatch.fnmatch( + file, "Test*Tutorial*.py" ): - if not fnmatch.fnmatch(file, "*.pyc"): - tutorial_files.append([root, file]) + tutorial_files.append((root, file)) - # Get git revision - revision = subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode('ascii').strip() + # Get the git revision + revision = ( + subprocess.check_output(["git", "rev-parse", "HEAD"]).decode("ascii").strip() + ) if args.format == "markdown": - # Generate the markdown for each - for eachFile in tutorial_files: - outfile = ( - "../doc/tutorials/" - + os.path.splitext(ntpath.basename(eachFile[1]))[0] - + ".md" + # Generate a markdown file for each tutorial + for tutorial_file in tutorial_files: + input_filepath = os.path.join(tutorial_file[0], tutorial_file[1]) + + output_filename = ( + os.path.splitext(os.path.basename(tutorial_file[1]))[0] + ".md" ) - inputfile = eachFile[0] + "/" + eachFile[1] - launch_string = f"../infra/CreateMarkdownTutorial.py {inputfile} {outfile} --revision {revision}" + output_filepath = os.path.join( + root_dir, "doc", "tutorials", output_filename + ) + + launch_string = f"{root_dir}/infra/CreateMarkdownTutorial.py {input_filepath} {output_filepath} --revision {revision}" os.system(launch_string) elif args.format == "jupyter": - # Generate the jupyter notebooks for each - for eachFile in tutorial_files: - outfile = ( - "../doc/tutorials/" - + os.path.splitext(ntpath.basename(eachFile[1]))[0] - + ".ipynb" + # Generate a jupyter notebook for each tutorial + for tutorial_file in tutorial_files: + input_filepath = os.path.join(tutorial_file[0], tutorial_file[1]) + + output_filename = ( + os.path.splitext(os.path.basename(tutorial_file[1]))[0] + ".ipynb" ) - inputfile = eachFile[0] + "/" + eachFile[1] - launch_string = ( - f"../infra/CreateJupyterNotebookTutorial.py {inputfile} {outfile}" + output_filepath = os.path.join( + root_dir, "doc", "tutorials", output_filename ) + + launch_string = f"{root_dir}/infra/CreateJupyterNotebookTutorial.py {input_filepath} {output_filepath}" os.system(launch_string) - subprocess.call(f"jupyter nbconvert --to notebook {outfile}", shell=True) + subprocess.call( + f"jupyter nbconvert --to notebook {output_filepath}", shell=True + ) From 9e7a612594d17b44e33845aca421e09cd8103453 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 23 Feb 2024 11:23:28 +0000 Subject: [PATCH 04/10] #57 update generated markdown tutorials --- doc/tutorials/TestCellSortingTutorial.md | 13 ++++++------- ...estMeshBasedCellSimulationsPythonTutorial.md | 15 +++++++-------- ...estNodeBasedCellSimulationsPythonTutorial.md | 17 ++++++++--------- ...stPottsBasedCellSimulationsPythonTutorial.md | 17 ++++++++--------- doc/tutorials/TestScratchAssayTutorial.md | 11 +++++------ doc/tutorials/TestSpheroidTutorial.md | 13 ++++++------- doc/tutorials/TestTensileTestTutorial.md | 13 ++++++------- ...tVertexBasedCellSimulationsPythonTutorial.md | 15 +++++++-------- 8 files changed, 53 insertions(+), 61 deletions(-) diff --git a/doc/tutorials/TestCellSortingTutorial.md b/doc/tutorials/TestCellSortingTutorial.md index e73f6d08..9d0be802 100644 --- a/doc/tutorials/TestCellSortingTutorial.md +++ b/doc/tutorials/TestCellSortingTutorial.md @@ -8,18 +8,17 @@ toc: true layout: "single" --- -This tutorial is automatically generated from the file ../test/python/cell_based/tutorials/TestCellSortingTutorial.py . +This tutorial is automatically generated from [TestCellSortingTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestCellSortingTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). Note that the code is given in full at the bottom of the page. - -# Introduction +## Introduction This test is a demonstration of cell sorting using a Cellular Potts based framework. It shows: * How to set up a Potts simulation * Working with labels -## The Test +### The Test ```python import unittest # Python testing framework @@ -34,7 +33,7 @@ import chaste.visualization # Visualization tools class TestCellSortingTutorial(chaste.cell_based.AbstractCellBasedTestSuite): ``` -## Test 1 - Cell sorting +### Test 1 - Cell sorting The next test generates a collection of cells, there are two types of cells, labelled ones and non labelled ones, there is differential adhesion between the cell types. For the parameters specified, the cells sort into separate types. @@ -150,11 +149,11 @@ if __name__ == '__main__': ``` -# Code +## Code The full code is given below -## File name `TestCellSortingTutorial.py` +### File name TestCellSortingTutorial.py ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestMeshBasedCellSimulationsPythonTutorial.md b/doc/tutorials/TestMeshBasedCellSimulationsPythonTutorial.md index e54cd5b9..699b5f9f 100644 --- a/doc/tutorials/TestMeshBasedCellSimulationsPythonTutorial.md +++ b/doc/tutorials/TestMeshBasedCellSimulationsPythonTutorial.md @@ -8,16 +8,15 @@ toc: true layout: "single" --- -This tutorial is automatically generated from the file ../test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py . +This tutorial is automatically generated from [TestMeshBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). Note that the code is given in full at the bottom of the page. - -# Introduction +## Introduction In this tutorial we show how Chaste can be used to create, run and visualize mesh-based simulations. Full details of the mathematical model can be found in van Leeuwen et al. (2009) [doi:10.1111/j.1365-2184.2009.00627.x]. -## Imports and Setup +### Imports and Setup ```python import unittest # Python testing framework @@ -32,7 +31,7 @@ import chaste.visualization # Visualization tools class TestRunningMeshBasedSimulationsTutorial(chaste.cell_based.AbstractCellBasedTestSuite): ``` -## Test 1 - a basic mesh-based simulation +### Test 1 - a basic mesh-based simulation In the first test, we run a simple mesh-based simulation, in which we create a monolayer of cells, using a mutable mesh. Each cell is assigned a stochastic cell-cycle model. @@ -139,7 +138,7 @@ To run the simulation, we call `Solve()`. We can again do a quick rendering of t ``` Full results can be visualized in Paraview from the `file_handler.GetOutputDirectoryFullPath()` directory. -## Test 2 - a basic mesh-based simulation with ghost nodes +### Test 2 - a basic mesh-based simulation with ghost nodes In the second test, we run a simple mesh-based simulation with ghost nodes, in which we create a monolayer of cells, using a mutable mesh. Each cell is assigned a stochastic cell-cycle model. @@ -256,11 +255,11 @@ if __name__ == '__main__': ``` -# Code +## Code The full code is given below -## File name `TestMeshBasedCellSimulationsPythonTutorial.py` +### File name TestMeshBasedCellSimulationsPythonTutorial.py ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestNodeBasedCellSimulationsPythonTutorial.md b/doc/tutorials/TestNodeBasedCellSimulationsPythonTutorial.md index 510fc1de..da230cba 100644 --- a/doc/tutorials/TestNodeBasedCellSimulationsPythonTutorial.md +++ b/doc/tutorials/TestNodeBasedCellSimulationsPythonTutorial.md @@ -8,16 +8,15 @@ toc: true layout: "single" --- -This tutorial is automatically generated from the file ../test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py . +This tutorial is automatically generated from [TestNodeBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). Note that the code is given in full at the bottom of the page. - -# Introduction +## Introduction In this tutorial we show how Chaste can be used to create, run and visualize node-based simulations. Full details of the mechanical model can be found in Pathamathan et al "A computational study of discrete mechanical tissue models", Physical Biology. Vol. 6. No. 3. 2009.. DOI (10.1088/1478-3975/6/3/036001). -## The Test +### The Test ```python import unittest # Python testing framework @@ -30,7 +29,7 @@ chaste.init() # Set up MPI class TestRunningNodeBasedSimulationsTutorial(chaste.cell_based.AbstractCellBasedTestSuite): ``` -## Test 1 - A basic node-based simulation +### Test 1 - A basic node-based simulation In the first test, we run a simple node-based simulation, in which we create a monolayer of cells, using a nodes only mesh. Each cell is assigned a uniform cell-cycle model. @@ -136,7 +135,7 @@ If different simulation input parameters are being explored the lines should be # JUPYTER_TEARDOWN ``` -## Test 2 - a basic node-based simulation in 3D +### Test 2 - a basic node-based simulation in 3D In the second test we run a simple node-based simulation in 3D. This is very similar to the 2D test with the dimension changed from 2 to 3 and instead of using a mesh generator we generate the nodes directly. @@ -238,7 +237,7 @@ If different simulation input parameters are being explored the lines should be # JUPYTER_TEARDOWN ``` -## Test 3 - a node-based simulation on a restricted geometry +### Test 3 - a node-based simulation on a restricted geometry In the second test we run a simple node-based simulation in 3D. This is very similar to the 2D test with the dimension changed from 2 to 3 and instead of using a mesh generator we generate the nodes directly. @@ -339,11 +338,11 @@ if __name__ == '__main__': ``` -# Code +## Code The full code is given below -## File name `TestNodeBasedCellSimulationsPythonTutorial.py` +### File name TestNodeBasedCellSimulationsPythonTutorial.py ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestPottsBasedCellSimulationsPythonTutorial.md b/doc/tutorials/TestPottsBasedCellSimulationsPythonTutorial.md index b14a20ba..9ceec1dc 100644 --- a/doc/tutorials/TestPottsBasedCellSimulationsPythonTutorial.md +++ b/doc/tutorials/TestPottsBasedCellSimulationsPythonTutorial.md @@ -8,16 +8,15 @@ toc: true layout: "single" --- -This tutorial is automatically generated from the file ../test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py . +This tutorial is automatically generated from [TestPottsBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). Note that the code is given in full at the bottom of the page. - -# Introduction +## Introduction In this tutorial we show how Chaste can be used to create, run and visualize Potts-based simulations. Full details of the mathematical model can be found in Graner, F. and Glazier, J. A. (1992). -## The Test +### The Test ```python import unittest # Python testing framework @@ -29,7 +28,7 @@ chaste.init() # Set up MPI class TestRunningPottsBasedSimulationsTutorial(chaste.cell_based.AbstractCellBasedTestSuite): ``` -## Test 1 - A basic node-based simulation +### Test 1 - A basic node-based simulation In the first test, we run a simple Potts-based simulation, in which we create a monolayer of cells, using a Potts mesh. Each cell is assigned a stochastic cell-cycle model. @@ -174,7 +173,7 @@ If different simulation input parameters are being explored the lines should be # JUPYTER_TEARDOWN ``` -## Test 2 - Cell sorting +### Test 2 - Cell sorting The next test generates a collection of cells, there are two types of cells, labelled ones and non labelled ones, there is differential adhesion between the cell types. For the parameters specified, the cells sort into separate types. @@ -276,7 +275,7 @@ If different simulation input parameters are being explored the lines should be # JUPYTER_TEARDOWN ``` -## Test 3 - 3D Cell Sorting +### Test 3 - 3D Cell Sorting The next test extends the previous example to three dimensions. ```python @@ -384,11 +383,11 @@ if __name__ == '__main__': ``` -# Code +## Code The full code is given below -## File name `TestPottsBasedCellSimulationsPythonTutorial.py` +### File name TestPottsBasedCellSimulationsPythonTutorial.py ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestScratchAssayTutorial.md b/doc/tutorials/TestScratchAssayTutorial.md index ad6c0727..4a806926 100644 --- a/doc/tutorials/TestScratchAssayTutorial.md +++ b/doc/tutorials/TestScratchAssayTutorial.md @@ -8,12 +8,11 @@ toc: true layout: "single" --- -This tutorial is automatically generated from the file ../test/python/cell_based/tutorials/TestScratchAssayTutorial.py . +This tutorial is automatically generated from [TestScratchAssayTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestScratchAssayTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). Note that the code is given in full at the bottom of the page. - -# Introduction +## Introduction This tutorial is an example of modelling a scratch assay using a simple cellular automaton representation of cells. It will cover the following techniques: @@ -37,7 +36,7 @@ import chaste.visualization # Visualization tools class TestScratchAssayTutorial(chaste.cell_based.AbstractCellBasedTestSuite): ``` -## Test 1 - Scratch Assay +### Test 1 - Scratch Assay In this test we will create a scratch along the middle of a domain and quantify the migration of cells into the region. Cells will migrate by random walk on the their regular mesh (lattice). @@ -227,11 +226,11 @@ if __name__ == '__main__': ``` -# Code +## Code The full code is given below -## File name `TestScratchAssayTutorial.py` +### File name TestScratchAssayTutorial.py ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestSpheroidTutorial.md b/doc/tutorials/TestSpheroidTutorial.md index e3fa4b8e..d6617fcf 100644 --- a/doc/tutorials/TestSpheroidTutorial.md +++ b/doc/tutorials/TestSpheroidTutorial.md @@ -8,19 +8,18 @@ toc: true layout: "single" --- -This tutorial is automatically generated from the file ../test/python/cell_based/tutorials/TestSpheroidTutorial.py . +This tutorial is automatically generated from [TestSpheroidTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestSpheroidTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). Note that the code is given in full at the bottom of the page. - -# Introduction +## Introduction This tutorial is an example of modelling spheroid growth with a nutrient. It covers: * Setting up an off-lattice cell population * Setting up a cell cycle model with oxygen dependence * Setting up and solving an oxygen transport PDE * Setting up a cell killer - ## Imports and Setup + ### Imports and Setup ```python import unittest # Python testing framework @@ -36,7 +35,7 @@ chaste.init() # Set up MPI class TestSpheroidTutorial(chaste.cell_based.AbstractCellBasedTestSuite): ``` -## Test 1 - a 2D mesh-based spheroid +### Test 1 - a 2D mesh-based spheroid In this test we set up a spheroid with a plentiful supply of oxygen on the boundary and watch it grow over time. Cells can gradually become apoptotic if the oxygen tension is too low. @@ -184,11 +183,11 @@ if __name__ == '__main__': ``` -# Code +## Code The full code is given below -## File name `TestSpheroidTutorial.py` +### File name TestSpheroidTutorial.py ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestTensileTestTutorial.md b/doc/tutorials/TestTensileTestTutorial.md index cd17c550..b4bb3fde 100644 --- a/doc/tutorials/TestTensileTestTutorial.md +++ b/doc/tutorials/TestTensileTestTutorial.md @@ -8,19 +8,18 @@ toc: true layout: "single" --- -This tutorial is automatically generated from the file ../test/python/cell_based/tutorials/TestTensileTestTutorial.py . +This tutorial is automatically generated from [TestTensileTestTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestTensileTestTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). Note that the code is given in full at the bottom of the page. - -# Introduction +## Introduction In this tutorial we will demonstrate a simulated tensile test on an epithelial sheet. This test demonstrates: * Working with vertex based off lattice populations * Applying boundary conditions * Working with forces -## The Test +### The Test ```python import unittest # Python testing framework @@ -34,7 +33,7 @@ chaste.init() # Set up MPI class TestTensileTestTutorial(chaste.cell_based.AbstractCellBasedTestSuite): ``` -## Test 1 - A 2d test +### Test 1 - A 2D test ```python def test_monolayer(self): @@ -169,11 +168,11 @@ if __name__ == '__main__': ``` -# Code +## Code The full code is given below -## File name `TestTensileTestTutorial.py` +### File name TestTensileTestTutorial.py ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestVertexBasedCellSimulationsPythonTutorial.md b/doc/tutorials/TestVertexBasedCellSimulationsPythonTutorial.md index 69459502..c4d43587 100644 --- a/doc/tutorials/TestVertexBasedCellSimulationsPythonTutorial.md +++ b/doc/tutorials/TestVertexBasedCellSimulationsPythonTutorial.md @@ -8,17 +8,16 @@ toc: true layout: "single" --- -This tutorial is automatically generated from the file ../test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py . +This tutorial is automatically generated from [TestVertexBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). Note that the code is given in full at the bottom of the page. - -# Introduction +## Introduction In this tutorial we show how Chaste can be used to create, run and visualize vertex-based simulations. Full details of the mechanical model proposed by T. Nagai and H. Honda ("A dynamic cell model for the formation of epithelial tissues", Philosophical Magazine Part B 81:699-719). -## The Test +### The Test ```python import unittest # Python testing framework @@ -32,7 +31,7 @@ chaste.init() # Set up MPI class TestRunningVertexBasedSimulationsTutorial(chaste.cell_based.AbstractCellBasedTestSuite): ``` -## Test 1 - A basic vertex-based simulation +### Test 1 - A basic vertex-based simulation In the first test, we run a simple vertex-based simulation, in which we create a monolayer of cells, using a mutable vertex mesh. Each cell is assigned a stochastic cell-cycle model. @@ -146,7 +145,7 @@ If different simulation input parameters are being explored the lines should be # JUPYTER_TEARDOWN ``` -## Test 2 - introducing periodicity, boundaries and cell killers +### Test 2 - introducing periodicity, boundaries and cell killers In the second test, we run a simple vertex-based simulation, in which we create a monolayer of cells in a periodic geometry, using a cylindrical vertex mesh. We also include a fixed boundary which cells can't pass through and a cell killer which removes cells once they leave a region. As before each cell is assigned a stochastic cell-cycle model. @@ -256,11 +255,11 @@ if __name__ == '__main__': ``` -# Code +## Code The full code is given below -## File name `TestVertexBasedCellSimulationsPythonTutorial.py` +### File name TestVertexBasedCellSimulationsPythonTutorial.py ```python import unittest # Python testing framework From dfba4359373058241dfd79f2975ba6696a461a1c Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 23 Feb 2024 11:41:26 +0000 Subject: [PATCH 05/10] #57 modify markdown full code heading --- infra/CreateMarkdownTutorial.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/infra/CreateMarkdownTutorial.py b/infra/CreateMarkdownTutorial.py index f212cf88..c7537065 100755 --- a/infra/CreateMarkdownTutorial.py +++ b/infra/CreateMarkdownTutorial.py @@ -193,7 +193,7 @@ def CodeBlockOpener(file_name): return '```' + highlight_code def AddCodeOutput(file_name, code, output): - output.append('\n\n### File name %s \n\n' % file_name) + output.append('\n\n**File name:** `%s` \n\n' % file_name) output.append(CodeBlockOpener(file_name)) output.append('\n'.join(code)) output.append('\n```\n\n') @@ -253,7 +253,7 @@ def ConvertTutorialToMarkdownText(test_file_path, test_file, other_files, revisi if file_code: other_code[other_file[0]] = file_code # Now output the C++ code for all files - output.append('\n\n## Code \nThe full code is given below\n') + output.append('\n\n## Full code \n') AddCodeOutput(os.path.basename(test_file_path), test_code, output) for filename, code in other_code.items(): AddCodeOutput(filename, code, output) From f810861afe376ba19bd791e14e85f29583993205 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 23 Feb 2024 11:51:23 +0000 Subject: [PATCH 06/10] #57 consistent headings for tutorials --- test/python/cell_based/tutorials/TestCellSortingTutorial.py | 2 +- .../tutorials/TestMeshBasedCellSimulationsPythonTutorial.py | 2 +- .../tutorials/TestNodeBasedCellSimulationsPythonTutorial.py | 2 +- .../tutorials/TestPottsBasedCellSimulationsPythonTutorial.py | 2 +- test/python/cell_based/tutorials/TestScratchAssayTutorial.py | 1 + test/python/cell_based/tutorials/TestSpheroidTutorial.py | 3 ++- test/python/cell_based/tutorials/TestTensileTestTutorial.py | 2 +- .../tutorials/TestVertexBasedCellSimulationsPythonTutorial.py | 2 +- 8 files changed, 9 insertions(+), 7 deletions(-) diff --git a/test/python/cell_based/tutorials/TestCellSortingTutorial.py b/test/python/cell_based/tutorials/TestCellSortingTutorial.py index 00d11a38..827a5910 100644 --- a/test/python/cell_based/tutorials/TestCellSortingTutorial.py +++ b/test/python/cell_based/tutorials/TestCellSortingTutorial.py @@ -39,7 +39,7 @@ ## * How to set up a Potts simulation ## * Working with labels ## -## ### The Test +## ## The Test import unittest # Python testing framework import matplotlib.pyplot as plt # Plotting diff --git a/test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py b/test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py index a2cc923b..0b52301a 100644 --- a/test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py +++ b/test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py @@ -37,7 +37,7 @@ ## In this tutorial we show how Chaste can be used to create, run and visualize mesh-based simulations. ## Full details of the mathematical model can be found in van Leeuwen et al. (2009) [doi:10.1111/j.1365-2184.2009.00627.x]. ## -## ### Imports and Setup +## ## The Test import unittest # Python testing framework import matplotlib.pyplot as plt # Plotting diff --git a/test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py b/test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py index 2482f07a..2f0ebf14 100644 --- a/test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py +++ b/test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py @@ -37,7 +37,7 @@ ## In this tutorial we show how Chaste can be used to create, run and visualize node-based simulations. Full details of the mechanical model can be found in Pathamathan et ## al "A computational study of discrete mechanical tissue models", Physical Biology. Vol. 6. No. 3. 2009.. DOI (10.1088/1478-3975/6/3/036001). ## -## ### The Test +## ## The Test import unittest # Python testing framework import numpy as np # Matrix tools diff --git a/test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py b/test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py index e6fd3bc1..64473932 100644 --- a/test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py +++ b/test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py @@ -37,7 +37,7 @@ ## In this tutorial we show how Chaste can be used to create, run and visualize Potts-based simulations. ## Full details of the mathematical model can be found in Graner, F. and Glazier, J. A. (1992). ## -## ### The Test +## ## The Test import unittest # Python testing framework import chaste # The PyChaste module diff --git a/test/python/cell_based/tutorials/TestScratchAssayTutorial.py b/test/python/cell_based/tutorials/TestScratchAssayTutorial.py index 2b06bf73..69cc5482 100644 --- a/test/python/cell_based/tutorials/TestScratchAssayTutorial.py +++ b/test/python/cell_based/tutorials/TestScratchAssayTutorial.py @@ -44,6 +44,7 @@ ## * Simulating cell migration on the mesh ## * Real-time visualization of the cell population and plotting of population statistics ## +## ## The Test import unittest # Python testing framework import matplotlib.pyplot as plt # Plotting diff --git a/test/python/cell_based/tutorials/TestSpheroidTutorial.py b/test/python/cell_based/tutorials/TestSpheroidTutorial.py index e1284497..f7adf646 100644 --- a/test/python/cell_based/tutorials/TestSpheroidTutorial.py +++ b/test/python/cell_based/tutorials/TestSpheroidTutorial.py @@ -40,7 +40,8 @@ ## * Setting up a cell cycle model with oxygen dependence ## * Setting up and solving an oxygen transport PDE ## * Setting up a cell killer -## ### Imports and Setup +## +## ## The Test import unittest # Python testing framework import matplotlib.pyplot as plt # Plotting diff --git a/test/python/cell_based/tutorials/TestTensileTestTutorial.py b/test/python/cell_based/tutorials/TestTensileTestTutorial.py index f149f429..0170c2f9 100644 --- a/test/python/cell_based/tutorials/TestTensileTestTutorial.py +++ b/test/python/cell_based/tutorials/TestTensileTestTutorial.py @@ -40,7 +40,7 @@ ## * Applying boundary conditions ## * Working with forces ## -## ### The Test +## ## The Test import unittest # Python testing framework import numpy as np # Matrix tools diff --git a/test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py b/test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py index 31647bbf..7cd1d19c 100644 --- a/test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py +++ b/test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py @@ -38,7 +38,7 @@ ## Full details of the mechanical model proposed by T. Nagai and H. Honda ("A dynamic cell model for the formation of epithelial tissues", ## Philosophical Magazine Part B 81:699-719). ## -## ### The Test +## ## The Test import unittest # Python testing framework import matplotlib.pyplot as plt # Plotting From 650bfd8e2176786f2a5cf2fc2d5fee57d486250c Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 23 Feb 2024 11:52:30 +0000 Subject: [PATCH 07/10] #57 update generated tutorials --- doc/tutorials/TestCellSortingTutorial.md | 9 ++++----- .../TestMeshBasedCellSimulationsPythonTutorial.md | 9 ++++----- .../TestNodeBasedCellSimulationsPythonTutorial.md | 9 ++++----- .../TestPottsBasedCellSimulationsPythonTutorial.md | 9 ++++----- doc/tutorials/TestScratchAssayTutorial.md | 9 +++++---- doc/tutorials/TestSpheroidTutorial.md | 10 +++++----- doc/tutorials/TestTensileTestTutorial.md | 9 ++++----- .../TestVertexBasedCellSimulationsPythonTutorial.md | 9 ++++----- 8 files changed, 34 insertions(+), 39 deletions(-) diff --git a/doc/tutorials/TestCellSortingTutorial.md b/doc/tutorials/TestCellSortingTutorial.md index 9d0be802..15a839a1 100644 --- a/doc/tutorials/TestCellSortingTutorial.md +++ b/doc/tutorials/TestCellSortingTutorial.md @@ -8,7 +8,7 @@ toc: true layout: "single" --- -This tutorial is automatically generated from [TestCellSortingTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestCellSortingTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). +This tutorial is automatically generated from [TestCellSortingTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestCellSortingTutorial.py) at revision [f810861a](https://github.com/Chaste/PyChaste/commit/f810861afe376ba19bd791e14e85f29583993205). Note that the code is given in full at the bottom of the page. @@ -18,7 +18,7 @@ It shows: * How to set up a Potts simulation * Working with labels -### The Test +## The Test ```python import unittest # Python testing framework @@ -149,11 +149,10 @@ if __name__ == '__main__': ``` -## Code -The full code is given below +## Full code -### File name TestCellSortingTutorial.py +**File name:** `TestCellSortingTutorial.py` ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestMeshBasedCellSimulationsPythonTutorial.md b/doc/tutorials/TestMeshBasedCellSimulationsPythonTutorial.md index 699b5f9f..b1df1b93 100644 --- a/doc/tutorials/TestMeshBasedCellSimulationsPythonTutorial.md +++ b/doc/tutorials/TestMeshBasedCellSimulationsPythonTutorial.md @@ -8,7 +8,7 @@ toc: true layout: "single" --- -This tutorial is automatically generated from [TestMeshBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). +This tutorial is automatically generated from [TestMeshBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestMeshBasedCellSimulationsPythonTutorial.py) at revision [f810861a](https://github.com/Chaste/PyChaste/commit/f810861afe376ba19bd791e14e85f29583993205). Note that the code is given in full at the bottom of the page. @@ -16,7 +16,7 @@ Note that the code is given in full at the bottom of the page. In this tutorial we show how Chaste can be used to create, run and visualize mesh-based simulations. Full details of the mathematical model can be found in van Leeuwen et al. (2009) [doi:10.1111/j.1365-2184.2009.00627.x]. -### Imports and Setup +## The Test ```python import unittest # Python testing framework @@ -255,11 +255,10 @@ if __name__ == '__main__': ``` -## Code -The full code is given below +## Full code -### File name TestMeshBasedCellSimulationsPythonTutorial.py +**File name:** `TestMeshBasedCellSimulationsPythonTutorial.py` ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestNodeBasedCellSimulationsPythonTutorial.md b/doc/tutorials/TestNodeBasedCellSimulationsPythonTutorial.md index da230cba..e65fc7d5 100644 --- a/doc/tutorials/TestNodeBasedCellSimulationsPythonTutorial.md +++ b/doc/tutorials/TestNodeBasedCellSimulationsPythonTutorial.md @@ -8,7 +8,7 @@ toc: true layout: "single" --- -This tutorial is automatically generated from [TestNodeBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). +This tutorial is automatically generated from [TestNodeBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestNodeBasedCellSimulationsPythonTutorial.py) at revision [f810861a](https://github.com/Chaste/PyChaste/commit/f810861afe376ba19bd791e14e85f29583993205). Note that the code is given in full at the bottom of the page. @@ -16,7 +16,7 @@ Note that the code is given in full at the bottom of the page. In this tutorial we show how Chaste can be used to create, run and visualize node-based simulations. Full details of the mechanical model can be found in Pathamathan et al "A computational study of discrete mechanical tissue models", Physical Biology. Vol. 6. No. 3. 2009.. DOI (10.1088/1478-3975/6/3/036001). -### The Test +## The Test ```python import unittest # Python testing framework @@ -338,11 +338,10 @@ if __name__ == '__main__': ``` -## Code -The full code is given below +## Full code -### File name TestNodeBasedCellSimulationsPythonTutorial.py +**File name:** `TestNodeBasedCellSimulationsPythonTutorial.py` ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestPottsBasedCellSimulationsPythonTutorial.md b/doc/tutorials/TestPottsBasedCellSimulationsPythonTutorial.md index 9ceec1dc..4bdd838c 100644 --- a/doc/tutorials/TestPottsBasedCellSimulationsPythonTutorial.md +++ b/doc/tutorials/TestPottsBasedCellSimulationsPythonTutorial.md @@ -8,7 +8,7 @@ toc: true layout: "single" --- -This tutorial is automatically generated from [TestPottsBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). +This tutorial is automatically generated from [TestPottsBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestPottsBasedCellSimulationsPythonTutorial.py) at revision [f810861a](https://github.com/Chaste/PyChaste/commit/f810861afe376ba19bd791e14e85f29583993205). Note that the code is given in full at the bottom of the page. @@ -16,7 +16,7 @@ Note that the code is given in full at the bottom of the page. In this tutorial we show how Chaste can be used to create, run and visualize Potts-based simulations. Full details of the mathematical model can be found in Graner, F. and Glazier, J. A. (1992). -### The Test +## The Test ```python import unittest # Python testing framework @@ -383,11 +383,10 @@ if __name__ == '__main__': ``` -## Code -The full code is given below +## Full code -### File name TestPottsBasedCellSimulationsPythonTutorial.py +**File name:** `TestPottsBasedCellSimulationsPythonTutorial.py` ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestScratchAssayTutorial.md b/doc/tutorials/TestScratchAssayTutorial.md index 4a806926..3e4aed82 100644 --- a/doc/tutorials/TestScratchAssayTutorial.md +++ b/doc/tutorials/TestScratchAssayTutorial.md @@ -8,7 +8,7 @@ toc: true layout: "single" --- -This tutorial is automatically generated from [TestScratchAssayTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestScratchAssayTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). +This tutorial is automatically generated from [TestScratchAssayTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestScratchAssayTutorial.py) at revision [f810861a](https://github.com/Chaste/PyChaste/commit/f810861afe376ba19bd791e14e85f29583993205). Note that the code is given in full at the bottom of the page. @@ -23,6 +23,8 @@ representation of cells. It will cover the following techniques: * Simulating cell migration on the mesh * Real-time visualization of the cell population and plotting of population statistics +## The Test + ```python import unittest # Python testing framework import matplotlib.pyplot as plt # Plotting @@ -226,11 +228,10 @@ if __name__ == '__main__': ``` -## Code -The full code is given below +## Full code -### File name TestScratchAssayTutorial.py +**File name:** `TestScratchAssayTutorial.py` ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestSpheroidTutorial.md b/doc/tutorials/TestSpheroidTutorial.md index d6617fcf..ad00742e 100644 --- a/doc/tutorials/TestSpheroidTutorial.md +++ b/doc/tutorials/TestSpheroidTutorial.md @@ -8,7 +8,7 @@ toc: true layout: "single" --- -This tutorial is automatically generated from [TestSpheroidTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestSpheroidTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). +This tutorial is automatically generated from [TestSpheroidTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestSpheroidTutorial.py) at revision [f810861a](https://github.com/Chaste/PyChaste/commit/f810861afe376ba19bd791e14e85f29583993205). Note that the code is given in full at the bottom of the page. @@ -19,7 +19,8 @@ It covers: * Setting up a cell cycle model with oxygen dependence * Setting up and solving an oxygen transport PDE * Setting up a cell killer - ### Imports and Setup + +## The Test ```python import unittest # Python testing framework @@ -183,11 +184,10 @@ if __name__ == '__main__': ``` -## Code -The full code is given below +## Full code -### File name TestSpheroidTutorial.py +**File name:** `TestSpheroidTutorial.py` ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestTensileTestTutorial.md b/doc/tutorials/TestTensileTestTutorial.md index b4bb3fde..b1400970 100644 --- a/doc/tutorials/TestTensileTestTutorial.md +++ b/doc/tutorials/TestTensileTestTutorial.md @@ -8,7 +8,7 @@ toc: true layout: "single" --- -This tutorial is automatically generated from [TestTensileTestTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestTensileTestTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). +This tutorial is automatically generated from [TestTensileTestTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestTensileTestTutorial.py) at revision [f810861a](https://github.com/Chaste/PyChaste/commit/f810861afe376ba19bd791e14e85f29583993205). Note that the code is given in full at the bottom of the page. @@ -19,7 +19,7 @@ demonstrates: * Applying boundary conditions * Working with forces -### The Test +## The Test ```python import unittest # Python testing framework @@ -168,11 +168,10 @@ if __name__ == '__main__': ``` -## Code -The full code is given below +## Full code -### File name TestTensileTestTutorial.py +**File name:** `TestTensileTestTutorial.py` ```python import unittest # Python testing framework diff --git a/doc/tutorials/TestVertexBasedCellSimulationsPythonTutorial.md b/doc/tutorials/TestVertexBasedCellSimulationsPythonTutorial.md index c4d43587..1e6c8a92 100644 --- a/doc/tutorials/TestVertexBasedCellSimulationsPythonTutorial.md +++ b/doc/tutorials/TestVertexBasedCellSimulationsPythonTutorial.md @@ -8,7 +8,7 @@ toc: true layout: "single" --- -This tutorial is automatically generated from [TestVertexBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py) at revision [be59762f](https://github.com/Chaste/PyChaste/commit/be59762fe3e4709aa796fb442199fd23cadfd269). +This tutorial is automatically generated from [TestVertexBasedCellSimulationsPythonTutorial](https://github.com/Chaste/PyChaste/blob/develop/test/python/cell_based/tutorials/TestVertexBasedCellSimulationsPythonTutorial.py) at revision [f810861a](https://github.com/Chaste/PyChaste/commit/f810861afe376ba19bd791e14e85f29583993205). Note that the code is given in full at the bottom of the page. @@ -17,7 +17,7 @@ In this tutorial we show how Chaste can be used to create, run and visualize ver Full details of the mechanical model proposed by T. Nagai and H. Honda ("A dynamic cell model for the formation of epithelial tissues", Philosophical Magazine Part B 81:699-719). -### The Test +## The Test ```python import unittest # Python testing framework @@ -255,11 +255,10 @@ if __name__ == '__main__': ``` -## Code -The full code is given below +## Full code -### File name TestVertexBasedCellSimulationsPythonTutorial.py +**File name:** `TestVertexBasedCellSimulationsPythonTutorial.py` ```python import unittest # Python testing framework From fc03f6edf0a9878677d9797c9a8a41d8b1d19fba Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Wed, 28 Feb 2024 12:40:41 +0000 Subject: [PATCH 08/10] #62 Visit ImmersedBoundaryCellPopulation in writers --- .../AbstractCellPopulationCountWriter2_2.cppwg.cpp | 12 ++++++++++++ .../AbstractCellPopulationCountWriter3_3.cppwg.cpp | 12 ++++++++++++ .../AbstractCellPopulationEventWriter2_2.cppwg.cpp | 12 ++++++++++++ .../AbstractCellPopulationEventWriter3_3.cppwg.cpp | 12 ++++++++++++ .../AbstractCellPopulationWriter2_2.cppwg.cpp | 12 ++++++++++++ .../AbstractCellPopulationWriter3_3.cppwg.cpp | 12 ++++++++++++ .../cell_based/BoundaryNodeWriter2_2.cppwg.cpp | 12 ++++++++++++ .../cell_based/BoundaryNodeWriter3_3.cppwg.cpp | 12 ++++++++++++ .../CellDivisionLocationsWriter2_2.cppwg.cpp | 12 ++++++++++++ .../CellDivisionLocationsWriter3_3.cppwg.cpp | 12 ++++++++++++ .../CellMutationStatesCountWriter2_2.cppwg.cpp | 12 ++++++++++++ .../CellMutationStatesCountWriter3_3.cppwg.cpp | 12 ++++++++++++ .../CellPopulationAdjacencyMatrixWriter2_2.cppwg.cpp | 12 ++++++++++++ .../CellPopulationAdjacencyMatrixWriter3_3.cppwg.cpp | 12 ++++++++++++ .../cell_based/CellPopulationAreaWriter2_2.cppwg.cpp | 12 ++++++++++++ .../cell_based/CellPopulationAreaWriter3_3.cppwg.cpp | 12 ++++++++++++ .../CellPopulationElementWriter2_2.cppwg.cpp | 12 ++++++++++++ .../CellPopulationElementWriter3_3.cppwg.cpp | 12 ++++++++++++ .../CellProliferativePhasesCountWriter2_2.cppwg.cpp | 12 ++++++++++++ .../CellProliferativePhasesCountWriter3_3.cppwg.cpp | 12 ++++++++++++ .../CellProliferativeTypesCountWriter2_2.cppwg.cpp | 12 ++++++++++++ .../CellProliferativeTypesCountWriter3_3.cppwg.cpp | 12 ++++++++++++ .../CellRemovalLocationsWriter2_2.cppwg.cpp | 12 ++++++++++++ .../CellRemovalLocationsWriter3_3.cppwg.cpp | 12 ++++++++++++ .../HeterotypicBoundaryLengthWriter2_2.cppwg.cpp | 12 ++++++++++++ .../HeterotypicBoundaryLengthWriter3_3.cppwg.cpp | 12 ++++++++++++ .../cell_based/NodeLocationWriter2_2.cppwg.cpp | 12 ++++++++++++ .../cell_based/NodeLocationWriter3_3.cppwg.cpp | 12 ++++++++++++ .../cell_based/NodeVelocityWriter2_2.cppwg.cpp | 12 ++++++++++++ .../cell_based/NodeVelocityWriter3_3.cppwg.cpp | 12 ++++++++++++ .../RadialCellDataDistributionWriter2_2.cppwg.cpp | 12 ++++++++++++ .../RadialCellDataDistributionWriter3_3.cppwg.cpp | 12 ++++++++++++ ...ertexIntersectionSwapLocationsWriter2_2.cppwg.cpp | 12 ++++++++++++ ...ertexIntersectionSwapLocationsWriter3_3.cppwg.cpp | 12 ++++++++++++ .../VertexT1SwapLocationsWriter2_2.cppwg.cpp | 12 ++++++++++++ .../VertexT1SwapLocationsWriter3_3.cppwg.cpp | 12 ++++++++++++ .../VertexT2SwapLocationsWriter2_2.cppwg.cpp | 12 ++++++++++++ .../VertexT2SwapLocationsWriter3_3.cppwg.cpp | 12 ++++++++++++ .../VertexT3SwapLocationsWriter2_2.cppwg.cpp | 12 ++++++++++++ .../VertexT3SwapLocationsWriter3_3.cppwg.cpp | 12 ++++++++++++ .../cell_based/VoronoiDataWriter2_2.cppwg.cpp | 12 ++++++++++++ .../cell_based/VoronoiDataWriter3_3.cppwg.cpp | 12 ++++++++++++ 42 files changed, 504 insertions(+) diff --git a/dynamic/wrappers/cell_based/AbstractCellPopulationCountWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/AbstractCellPopulationCountWriter2_2.cppwg.cpp index 88d6176a..4cc6fc54 100644 --- a/dynamic/wrappers/cell_based/AbstractCellPopulationCountWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/AbstractCellPopulationCountWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -65,6 +66,13 @@ class AbstractCellPopulationCountWriter2_2_Overloads : public AbstractCellPopula Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE_PURE( + void, + AbstractCellPopulationCountWriter2_2, + Visit, + pCellPopulation); + } }; void register_AbstractCellPopulationCountWriter2_2_class(py::module &m){ @@ -94,5 +102,9 @@ py::class_ *)) &AbstractCellPopulationCountWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(AbstractCellPopulationCountWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &AbstractCellPopulationCountWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/AbstractCellPopulationCountWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/AbstractCellPopulationCountWriter3_3.cppwg.cpp index eb20d8de..3d186c25 100644 --- a/dynamic/wrappers/cell_based/AbstractCellPopulationCountWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/AbstractCellPopulationCountWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -65,6 +66,13 @@ class AbstractCellPopulationCountWriter3_3_Overloads : public AbstractCellPopula Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE_PURE( + void, + AbstractCellPopulationCountWriter3_3, + Visit, + pCellPopulation); + } }; void register_AbstractCellPopulationCountWriter3_3_class(py::module &m){ @@ -94,5 +102,9 @@ py::class_ *)) &AbstractCellPopulationCountWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(AbstractCellPopulationCountWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &AbstractCellPopulationCountWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/AbstractCellPopulationEventWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/AbstractCellPopulationEventWriter2_2.cppwg.cpp index d5cdcd04..a150bc79 100644 --- a/dynamic/wrappers/cell_based/AbstractCellPopulationEventWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/AbstractCellPopulationEventWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -65,6 +66,13 @@ class AbstractCellPopulationEventWriter2_2_Overloads : public AbstractCellPopula Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE_PURE( + void, + AbstractCellPopulationEventWriter2_2, + Visit, + pCellPopulation); + } }; void register_AbstractCellPopulationEventWriter2_2_class(py::module &m){ @@ -94,5 +102,9 @@ py::class_ *)) &AbstractCellPopulationEventWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(AbstractCellPopulationEventWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &AbstractCellPopulationEventWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/AbstractCellPopulationEventWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/AbstractCellPopulationEventWriter3_3.cppwg.cpp index 2452aa19..2686ad79 100644 --- a/dynamic/wrappers/cell_based/AbstractCellPopulationEventWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/AbstractCellPopulationEventWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -65,6 +66,13 @@ class AbstractCellPopulationEventWriter3_3_Overloads : public AbstractCellPopula Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE_PURE( + void, + AbstractCellPopulationEventWriter3_3, + Visit, + pCellPopulation); + } }; void register_AbstractCellPopulationEventWriter3_3_class(py::module &m){ @@ -94,5 +102,9 @@ py::class_ *)) &AbstractCellPopulationEventWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(AbstractCellPopulationEventWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &AbstractCellPopulationEventWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/AbstractCellPopulationWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/AbstractCellPopulationWriter2_2.cppwg.cpp index 27806e9a..c659850d 100644 --- a/dynamic/wrappers/cell_based/AbstractCellPopulationWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/AbstractCellPopulationWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -65,6 +66,13 @@ class AbstractCellPopulationWriter2_2_Overloads : public AbstractCellPopulationW Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE_PURE( + void, + AbstractCellPopulationWriter2_2, + Visit, + pCellPopulation); + } }; void register_AbstractCellPopulationWriter2_2_class(py::module &m){ @@ -94,5 +102,9 @@ py::class_ *)) &AbstractCellPopulationWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(AbstractCellPopulationWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &AbstractCellPopulationWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/AbstractCellPopulationWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/AbstractCellPopulationWriter3_3.cppwg.cpp index cc9ff83a..443149ce 100644 --- a/dynamic/wrappers/cell_based/AbstractCellPopulationWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/AbstractCellPopulationWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -65,6 +66,13 @@ class AbstractCellPopulationWriter3_3_Overloads : public AbstractCellPopulationW Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE_PURE( + void, + AbstractCellPopulationWriter3_3, + Visit, + pCellPopulation); + } }; void register_AbstractCellPopulationWriter3_3_class(py::module &m){ @@ -94,5 +102,9 @@ py::class_ *)) &AbstractCellPopulationWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(AbstractCellPopulationWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &AbstractCellPopulationWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/BoundaryNodeWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/BoundaryNodeWriter2_2.cppwg.cpp index 27c784b3..6bf333f0 100644 --- a/dynamic/wrappers/cell_based/BoundaryNodeWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/BoundaryNodeWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class BoundaryNodeWriter2_2_Overloads : public BoundaryNodeWriter2_2{ Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + BoundaryNodeWriter2_2, + Visit, + pCellPopulation); + } }; void register_BoundaryNodeWriter2_2_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &BoundaryNodeWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(BoundaryNodeWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &BoundaryNodeWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/BoundaryNodeWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/BoundaryNodeWriter3_3.cppwg.cpp index 8fcd5d16..000cd40d 100644 --- a/dynamic/wrappers/cell_based/BoundaryNodeWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/BoundaryNodeWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class BoundaryNodeWriter3_3_Overloads : public BoundaryNodeWriter3_3{ Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + BoundaryNodeWriter3_3, + Visit, + pCellPopulation); + } }; void register_BoundaryNodeWriter3_3_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &BoundaryNodeWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(BoundaryNodeWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &BoundaryNodeWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellDivisionLocationsWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/CellDivisionLocationsWriter2_2.cppwg.cpp index 72531b55..853cc872 100644 --- a/dynamic/wrappers/cell_based/CellDivisionLocationsWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellDivisionLocationsWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellDivisionLocationsWriter2_2_Overloads : public CellDivisionLocationsWri Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellDivisionLocationsWriter2_2, + Visit, + pCellPopulation); + } }; void register_CellDivisionLocationsWriter2_2_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &CellDivisionLocationsWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellDivisionLocationsWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &CellDivisionLocationsWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellDivisionLocationsWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/CellDivisionLocationsWriter3_3.cppwg.cpp index 7a97548f..eb46677d 100644 --- a/dynamic/wrappers/cell_based/CellDivisionLocationsWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellDivisionLocationsWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellDivisionLocationsWriter3_3_Overloads : public CellDivisionLocationsWri Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellDivisionLocationsWriter3_3, + Visit, + pCellPopulation); + } }; void register_CellDivisionLocationsWriter3_3_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &CellDivisionLocationsWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellDivisionLocationsWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &CellDivisionLocationsWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellMutationStatesCountWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/CellMutationStatesCountWriter2_2.cppwg.cpp index 41bf7967..51232565 100644 --- a/dynamic/wrappers/cell_based/CellMutationStatesCountWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellMutationStatesCountWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -65,6 +66,13 @@ class CellMutationStatesCountWriter2_2_Overloads : public CellMutationStatesCoun Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellMutationStatesCountWriter2_2, + Visit, + pCellPopulation); + } }; void register_CellMutationStatesCountWriter2_2_class(py::module &m){ @@ -98,5 +106,9 @@ py::class_ *)) &CellMutationStatesCountWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellMutationStatesCountWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &CellMutationStatesCountWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellMutationStatesCountWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/CellMutationStatesCountWriter3_3.cppwg.cpp index f2586890..80a2f0c0 100644 --- a/dynamic/wrappers/cell_based/CellMutationStatesCountWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellMutationStatesCountWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -65,6 +66,13 @@ class CellMutationStatesCountWriter3_3_Overloads : public CellMutationStatesCoun Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellMutationStatesCountWriter3_3, + Visit, + pCellPopulation); + } }; void register_CellMutationStatesCountWriter3_3_class(py::module &m){ @@ -98,5 +106,9 @@ py::class_ *)) &CellMutationStatesCountWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellMutationStatesCountWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &CellMutationStatesCountWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellPopulationAdjacencyMatrixWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/CellPopulationAdjacencyMatrixWriter2_2.cppwg.cpp index 8f0805c9..0bf1cc95 100644 --- a/dynamic/wrappers/cell_based/CellPopulationAdjacencyMatrixWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellPopulationAdjacencyMatrixWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellPopulationAdjacencyMatrixWriter2_2_Overloads : public CellPopulationAd Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellPopulationAdjacencyMatrixWriter2_2, + Visit, + pCellPopulation); + } }; void register_CellPopulationAdjacencyMatrixWriter2_2_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &CellPopulationAdjacencyMatrixWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellPopulationAdjacencyMatrixWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &CellPopulationAdjacencyMatrixWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellPopulationAdjacencyMatrixWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/CellPopulationAdjacencyMatrixWriter3_3.cppwg.cpp index 76e01b66..8f834f50 100644 --- a/dynamic/wrappers/cell_based/CellPopulationAdjacencyMatrixWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellPopulationAdjacencyMatrixWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellPopulationAdjacencyMatrixWriter3_3_Overloads : public CellPopulationAd Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellPopulationAdjacencyMatrixWriter3_3, + Visit, + pCellPopulation); + } }; void register_CellPopulationAdjacencyMatrixWriter3_3_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &CellPopulationAdjacencyMatrixWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellPopulationAdjacencyMatrixWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &CellPopulationAdjacencyMatrixWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellPopulationAreaWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/CellPopulationAreaWriter2_2.cppwg.cpp index a58d48af..6e7ca4a4 100644 --- a/dynamic/wrappers/cell_based/CellPopulationAreaWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellPopulationAreaWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellPopulationAreaWriter2_2_Overloads : public CellPopulationAreaWriter2_2 Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellPopulationAreaWriter2_2, + Visit, + pCellPopulation); + } }; void register_CellPopulationAreaWriter2_2_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &CellPopulationAreaWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellPopulationAreaWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &CellPopulationAreaWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellPopulationAreaWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/CellPopulationAreaWriter3_3.cppwg.cpp index c58f4a7e..e0088487 100644 --- a/dynamic/wrappers/cell_based/CellPopulationAreaWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellPopulationAreaWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellPopulationAreaWriter3_3_Overloads : public CellPopulationAreaWriter3_3 Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellPopulationAreaWriter3_3, + Visit, + pCellPopulation); + } }; void register_CellPopulationAreaWriter3_3_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &CellPopulationAreaWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellPopulationAreaWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &CellPopulationAreaWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellPopulationElementWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/CellPopulationElementWriter2_2.cppwg.cpp index 9d559c58..0cceee2f 100644 --- a/dynamic/wrappers/cell_based/CellPopulationElementWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellPopulationElementWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellPopulationElementWriter2_2_Overloads : public CellPopulationElementWri Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellPopulationElementWriter2_2, + Visit, + pCellPopulation); + } }; void register_CellPopulationElementWriter2_2_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &CellPopulationElementWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellPopulationElementWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &CellPopulationElementWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellPopulationElementWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/CellPopulationElementWriter3_3.cppwg.cpp index 8bc6b583..245ca82e 100644 --- a/dynamic/wrappers/cell_based/CellPopulationElementWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellPopulationElementWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellPopulationElementWriter3_3_Overloads : public CellPopulationElementWri Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellPopulationElementWriter3_3, + Visit, + pCellPopulation); + } }; void register_CellPopulationElementWriter3_3_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &CellPopulationElementWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellPopulationElementWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &CellPopulationElementWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellProliferativePhasesCountWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/CellProliferativePhasesCountWriter2_2.cppwg.cpp index 3b88ef3c..9fed2df7 100644 --- a/dynamic/wrappers/cell_based/CellProliferativePhasesCountWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellProliferativePhasesCountWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellProliferativePhasesCountWriter2_2_Overloads : public CellProliferative Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellProliferativePhasesCountWriter2_2, + Visit, + pCellPopulation); + } }; void register_CellProliferativePhasesCountWriter2_2_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &CellProliferativePhasesCountWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellProliferativePhasesCountWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &CellProliferativePhasesCountWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellProliferativePhasesCountWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/CellProliferativePhasesCountWriter3_3.cppwg.cpp index 9177113a..27e3d745 100644 --- a/dynamic/wrappers/cell_based/CellProliferativePhasesCountWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellProliferativePhasesCountWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellProliferativePhasesCountWriter3_3_Overloads : public CellProliferative Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellProliferativePhasesCountWriter3_3, + Visit, + pCellPopulation); + } }; void register_CellProliferativePhasesCountWriter3_3_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &CellProliferativePhasesCountWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellProliferativePhasesCountWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &CellProliferativePhasesCountWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellProliferativeTypesCountWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/CellProliferativeTypesCountWriter2_2.cppwg.cpp index 362d5aaf..3757a0bc 100644 --- a/dynamic/wrappers/cell_based/CellProliferativeTypesCountWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellProliferativeTypesCountWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellProliferativeTypesCountWriter2_2_Overloads : public CellProliferativeT Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellProliferativeTypesCountWriter2_2, + Visit, + pCellPopulation); + } }; void register_CellProliferativeTypesCountWriter2_2_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &CellProliferativeTypesCountWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellProliferativeTypesCountWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &CellProliferativeTypesCountWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellProliferativeTypesCountWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/CellProliferativeTypesCountWriter3_3.cppwg.cpp index fbd41012..f73bd91c 100644 --- a/dynamic/wrappers/cell_based/CellProliferativeTypesCountWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellProliferativeTypesCountWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellProliferativeTypesCountWriter3_3_Overloads : public CellProliferativeT Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellProliferativeTypesCountWriter3_3, + Visit, + pCellPopulation); + } }; void register_CellProliferativeTypesCountWriter3_3_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &CellProliferativeTypesCountWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellProliferativeTypesCountWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &CellProliferativeTypesCountWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellRemovalLocationsWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/CellRemovalLocationsWriter2_2.cppwg.cpp index 3eba9521..316e82cc 100644 --- a/dynamic/wrappers/cell_based/CellRemovalLocationsWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellRemovalLocationsWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellRemovalLocationsWriter2_2_Overloads : public CellRemovalLocationsWrite Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellRemovalLocationsWriter2_2, + Visit, + pCellPopulation); + } }; void register_CellRemovalLocationsWriter2_2_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &CellRemovalLocationsWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellRemovalLocationsWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &CellRemovalLocationsWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/CellRemovalLocationsWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/CellRemovalLocationsWriter3_3.cppwg.cpp index f6d19b3c..9b2bd0f6 100644 --- a/dynamic/wrappers/cell_based/CellRemovalLocationsWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/CellRemovalLocationsWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class CellRemovalLocationsWriter3_3_Overloads : public CellRemovalLocationsWrite Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + CellRemovalLocationsWriter3_3, + Visit, + pCellPopulation); + } }; void register_CellRemovalLocationsWriter3_3_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &CellRemovalLocationsWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(CellRemovalLocationsWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &CellRemovalLocationsWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/HeterotypicBoundaryLengthWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/HeterotypicBoundaryLengthWriter2_2.cppwg.cpp index 1cc2599c..ba3b953e 100644 --- a/dynamic/wrappers/cell_based/HeterotypicBoundaryLengthWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/HeterotypicBoundaryLengthWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class HeterotypicBoundaryLengthWriter2_2_Overloads : public HeterotypicBoundaryL Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + HeterotypicBoundaryLengthWriter2_2, + Visit, + pCellPopulation); + } }; void register_HeterotypicBoundaryLengthWriter2_2_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &HeterotypicBoundaryLengthWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(HeterotypicBoundaryLengthWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &HeterotypicBoundaryLengthWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/HeterotypicBoundaryLengthWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/HeterotypicBoundaryLengthWriter3_3.cppwg.cpp index 029fcfd8..6b995518 100644 --- a/dynamic/wrappers/cell_based/HeterotypicBoundaryLengthWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/HeterotypicBoundaryLengthWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class HeterotypicBoundaryLengthWriter3_3_Overloads : public HeterotypicBoundaryL Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + HeterotypicBoundaryLengthWriter3_3, + Visit, + pCellPopulation); + } }; void register_HeterotypicBoundaryLengthWriter3_3_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &HeterotypicBoundaryLengthWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(HeterotypicBoundaryLengthWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &HeterotypicBoundaryLengthWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/NodeLocationWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/NodeLocationWriter2_2.cppwg.cpp index 6225e5d3..545dd09b 100644 --- a/dynamic/wrappers/cell_based/NodeLocationWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/NodeLocationWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class NodeLocationWriter2_2_Overloads : public NodeLocationWriter2_2{ Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + NodeLocationWriter2_2, + Visit, + pCellPopulation); + } }; void register_NodeLocationWriter2_2_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &NodeLocationWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(NodeLocationWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &NodeLocationWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/NodeLocationWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/NodeLocationWriter3_3.cppwg.cpp index f44dcc24..c65cf1ce 100644 --- a/dynamic/wrappers/cell_based/NodeLocationWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/NodeLocationWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class NodeLocationWriter3_3_Overloads : public NodeLocationWriter3_3{ Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + NodeLocationWriter3_3, + Visit, + pCellPopulation); + } }; void register_NodeLocationWriter3_3_class(py::module &m){ @@ -87,5 +95,9 @@ py::class_ *)) &NodeLocationWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(NodeLocationWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &NodeLocationWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/NodeVelocityWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/NodeVelocityWriter2_2.cppwg.cpp index 20621768..e07695ed 100644 --- a/dynamic/wrappers/cell_based/NodeVelocityWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/NodeVelocityWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class NodeVelocityWriter2_2_Overloads : public NodeVelocityWriter2_2{ Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + NodeVelocityWriter2_2, + Visit, + pCellPopulation); + } }; void register_NodeVelocityWriter2_2_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &NodeVelocityWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(NodeVelocityWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &NodeVelocityWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/NodeVelocityWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/NodeVelocityWriter3_3.cppwg.cpp index 93b703de..ec9faa7b 100644 --- a/dynamic/wrappers/cell_based/NodeVelocityWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/NodeVelocityWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class NodeVelocityWriter3_3_Overloads : public NodeVelocityWriter3_3{ Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + NodeVelocityWriter3_3, + Visit, + pCellPopulation); + } }; void register_NodeVelocityWriter3_3_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &NodeVelocityWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(NodeVelocityWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &NodeVelocityWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/RadialCellDataDistributionWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/RadialCellDataDistributionWriter2_2.cppwg.cpp index 64c47f22..e83389a2 100644 --- a/dynamic/wrappers/cell_based/RadialCellDataDistributionWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/RadialCellDataDistributionWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class RadialCellDataDistributionWriter2_2_Overloads : public RadialCellDataDistr Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + RadialCellDataDistributionWriter2_2, + Visit, + pCellPopulation); + } }; void register_RadialCellDataDistributionWriter2_2_class(py::module &m){ @@ -87,6 +95,10 @@ py::class_ *)) &RadialCellDataDistributionWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(RadialCellDataDistributionWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &RadialCellDataDistributionWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) .def( "SetVariableName", (void(RadialCellDataDistributionWriter2_2::*)(::std::string)) &RadialCellDataDistributionWriter2_2::SetVariableName, diff --git a/dynamic/wrappers/cell_based/RadialCellDataDistributionWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/RadialCellDataDistributionWriter3_3.cppwg.cpp index f5f0ff11..943a71cc 100644 --- a/dynamic/wrappers/cell_based/RadialCellDataDistributionWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/RadialCellDataDistributionWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class RadialCellDataDistributionWriter3_3_Overloads : public RadialCellDataDistr Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + RadialCellDataDistributionWriter3_3, + Visit, + pCellPopulation); + } }; void register_RadialCellDataDistributionWriter3_3_class(py::module &m){ @@ -87,6 +95,10 @@ py::class_ *)) &RadialCellDataDistributionWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(RadialCellDataDistributionWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &RadialCellDataDistributionWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) .def( "SetVariableName", (void(RadialCellDataDistributionWriter3_3::*)(::std::string)) &RadialCellDataDistributionWriter3_3::SetVariableName, diff --git a/dynamic/wrappers/cell_based/VertexIntersectionSwapLocationsWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/VertexIntersectionSwapLocationsWriter2_2.cppwg.cpp index 05838c64..fe1c97b8 100644 --- a/dynamic/wrappers/cell_based/VertexIntersectionSwapLocationsWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/VertexIntersectionSwapLocationsWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class VertexIntersectionSwapLocationsWriter2_2_Overloads : public VertexIntersec Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + VertexIntersectionSwapLocationsWriter2_2, + Visit, + pCellPopulation); + } }; void register_VertexIntersectionSwapLocationsWriter2_2_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &VertexIntersectionSwapLocationsWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(VertexIntersectionSwapLocationsWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &VertexIntersectionSwapLocationsWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/VertexIntersectionSwapLocationsWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/VertexIntersectionSwapLocationsWriter3_3.cppwg.cpp index 06d3e44f..84f97edf 100644 --- a/dynamic/wrappers/cell_based/VertexIntersectionSwapLocationsWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/VertexIntersectionSwapLocationsWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class VertexIntersectionSwapLocationsWriter3_3_Overloads : public VertexIntersec Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + VertexIntersectionSwapLocationsWriter3_3, + Visit, + pCellPopulation); + } }; void register_VertexIntersectionSwapLocationsWriter3_3_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &VertexIntersectionSwapLocationsWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(VertexIntersectionSwapLocationsWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &VertexIntersectionSwapLocationsWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/VertexT1SwapLocationsWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/VertexT1SwapLocationsWriter2_2.cppwg.cpp index 564593b8..17e9a856 100644 --- a/dynamic/wrappers/cell_based/VertexT1SwapLocationsWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/VertexT1SwapLocationsWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class VertexT1SwapLocationsWriter2_2_Overloads : public VertexT1SwapLocationsWri Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + VertexT1SwapLocationsWriter2_2, + Visit, + pCellPopulation); + } }; void register_VertexT1SwapLocationsWriter2_2_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &VertexT1SwapLocationsWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(VertexT1SwapLocationsWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &VertexT1SwapLocationsWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/VertexT1SwapLocationsWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/VertexT1SwapLocationsWriter3_3.cppwg.cpp index 6a293ec5..04790b55 100644 --- a/dynamic/wrappers/cell_based/VertexT1SwapLocationsWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/VertexT1SwapLocationsWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class VertexT1SwapLocationsWriter3_3_Overloads : public VertexT1SwapLocationsWri Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + VertexT1SwapLocationsWriter3_3, + Visit, + pCellPopulation); + } }; void register_VertexT1SwapLocationsWriter3_3_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &VertexT1SwapLocationsWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(VertexT1SwapLocationsWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &VertexT1SwapLocationsWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/VertexT2SwapLocationsWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/VertexT2SwapLocationsWriter2_2.cppwg.cpp index 8952a978..79365c22 100644 --- a/dynamic/wrappers/cell_based/VertexT2SwapLocationsWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/VertexT2SwapLocationsWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class VertexT2SwapLocationsWriter2_2_Overloads : public VertexT2SwapLocationsWri Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + VertexT2SwapLocationsWriter2_2, + Visit, + pCellPopulation); + } }; void register_VertexT2SwapLocationsWriter2_2_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &VertexT2SwapLocationsWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(VertexT2SwapLocationsWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &VertexT2SwapLocationsWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/VertexT2SwapLocationsWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/VertexT2SwapLocationsWriter3_3.cppwg.cpp index 2c191bc2..c01134a9 100644 --- a/dynamic/wrappers/cell_based/VertexT2SwapLocationsWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/VertexT2SwapLocationsWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class VertexT2SwapLocationsWriter3_3_Overloads : public VertexT2SwapLocationsWri Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + VertexT2SwapLocationsWriter3_3, + Visit, + pCellPopulation); + } }; void register_VertexT2SwapLocationsWriter3_3_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &VertexT2SwapLocationsWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(VertexT2SwapLocationsWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &VertexT2SwapLocationsWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/VertexT3SwapLocationsWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/VertexT3SwapLocationsWriter2_2.cppwg.cpp index 2fd555a5..d543d1d8 100644 --- a/dynamic/wrappers/cell_based/VertexT3SwapLocationsWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/VertexT3SwapLocationsWriter2_2.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class VertexT3SwapLocationsWriter2_2_Overloads : public VertexT3SwapLocationsWri Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + VertexT3SwapLocationsWriter2_2, + Visit, + pCellPopulation); + } }; void register_VertexT3SwapLocationsWriter2_2_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &VertexT3SwapLocationsWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(VertexT3SwapLocationsWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &VertexT3SwapLocationsWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/VertexT3SwapLocationsWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/VertexT3SwapLocationsWriter3_3.cppwg.cpp index e2da38a5..9b0ac04d 100644 --- a/dynamic/wrappers/cell_based/VertexT3SwapLocationsWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/VertexT3SwapLocationsWriter3_3.cppwg.cpp @@ -9,6 +9,7 @@ #include "AbstractCellPopulation.hpp" #include "MeshBasedCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "VertexBasedCellPopulation.hpp" @@ -58,6 +59,13 @@ class VertexT3SwapLocationsWriter3_3_Overloads : public VertexT3SwapLocationsWri Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + VertexT3SwapLocationsWriter3_3, + Visit, + pCellPopulation); + } }; void register_VertexT3SwapLocationsWriter3_3_class(py::module &m){ @@ -83,5 +91,9 @@ py::class_ *)) &VertexT3SwapLocationsWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(VertexT3SwapLocationsWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &VertexT3SwapLocationsWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/VoronoiDataWriter2_2.cppwg.cpp b/dynamic/wrappers/cell_based/VoronoiDataWriter2_2.cppwg.cpp index b201d0a0..9bbc869f 100644 --- a/dynamic/wrappers/cell_based/VoronoiDataWriter2_2.cppwg.cpp +++ b/dynamic/wrappers/cell_based/VoronoiDataWriter2_2.cppwg.cpp @@ -4,6 +4,7 @@ #include "MeshBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" #include #include @@ -57,6 +58,13 @@ class VoronoiDataWriter2_2_Overloads : public VoronoiDataWriter2_2{ Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<2> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + VoronoiDataWriter2_2, + Visit, + pCellPopulation); + } }; void register_VoronoiDataWriter2_2_class(py::module &m){ @@ -82,5 +90,9 @@ py::class_ *)) &VoronoiDataWriter2_2::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(VoronoiDataWriter2_2::*)(::ImmersedBoundaryCellPopulation<2> *)) &VoronoiDataWriter2_2::Visit, + " " , py::arg("pCellPopulation") ) ; } diff --git a/dynamic/wrappers/cell_based/VoronoiDataWriter3_3.cppwg.cpp b/dynamic/wrappers/cell_based/VoronoiDataWriter3_3.cppwg.cpp index 0a005b2d..7ba55c9b 100644 --- a/dynamic/wrappers/cell_based/VoronoiDataWriter3_3.cppwg.cpp +++ b/dynamic/wrappers/cell_based/VoronoiDataWriter3_3.cppwg.cpp @@ -4,6 +4,7 @@ #include "MeshBasedCellPopulation.hpp" #include "PottsBasedCellPopulation.hpp" #include "NodeBasedCellPopulation.hpp" +#include "ImmersedBoundaryCellPopulation.hpp" #include "CaBasedCellPopulation.hpp" #include #include @@ -57,6 +58,13 @@ class VoronoiDataWriter3_3_Overloads : public VoronoiDataWriter3_3{ Visit, pCellPopulation); } + void Visit(::ImmersedBoundaryCellPopulation<3> * pCellPopulation) override { + PYBIND11_OVERRIDE( + void, + VoronoiDataWriter3_3, + Visit, + pCellPopulation); + } }; void register_VoronoiDataWriter3_3_class(py::module &m){ @@ -82,5 +90,9 @@ py::class_ *)) &VoronoiDataWriter3_3::Visit, " " , py::arg("pCellPopulation") ) + .def( + "Visit", + (void(VoronoiDataWriter3_3::*)(::ImmersedBoundaryCellPopulation<3> *)) &VoronoiDataWriter3_3::Visit, + " " , py::arg("pCellPopulation") ) ; } From 99aed47f9308cd59421816fdafeaa85d98d52f3b Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Mon, 4 Mar 2024 12:56:16 +0000 Subject: [PATCH 09/10] #57 limit actions concurrency per branch --- .github/workflows/build-and-test.yml | 5 +++++ .github/workflows/update-pychaste-tutorials.yml | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index df1d90a8..b7ae8fb1 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -6,6 +6,11 @@ on: branches: - '**' +# Limit concurrent deployments to one per branch +concurrency: + group: build-and-test-${{ github.ref }} + cancel-in-progress: true + jobs: build-and-test: diff --git a/.github/workflows/update-pychaste-tutorials.yml b/.github/workflows/update-pychaste-tutorials.yml index dd748a98..3aaf2760 100644 --- a/.github/workflows/update-pychaste-tutorials.yml +++ b/.github/workflows/update-pychaste-tutorials.yml @@ -9,6 +9,11 @@ on: - develop workflow_dispatch: +# Limit concurrent deployments to one per branch +concurrency: + group: build-and-test-${{ github.ref }} + cancel-in-progress: true + jobs: generate-pychaste-tutorials-markdown: From c36d25f20ed6cd26c39dc28e4a68c623693e5e9e Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Mon, 4 Mar 2024 12:58:42 +0000 Subject: [PATCH 10/10] #57 fix actions concurrency groups --- .github/workflows/update-pychaste-tutorials.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-pychaste-tutorials.yml b/.github/workflows/update-pychaste-tutorials.yml index 3aaf2760..67cf2ce7 100644 --- a/.github/workflows/update-pychaste-tutorials.yml +++ b/.github/workflows/update-pychaste-tutorials.yml @@ -11,7 +11,7 @@ on: # Limit concurrent deployments to one per branch concurrency: - group: build-and-test-${{ github.ref }} + group: update-pychaste-tutorials-${{ github.ref }} cancel-in-progress: true jobs: