Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
461ae4e
Allow `mpi_dims_mask` with geometry file
yguclu Sep 18, 2025
1e46072
unit test for mpi_dims_mask
Sep 19, 2025
3376e31
Update test_geometry.py
yguclu Sep 19, 2025
2704716
Update geometry.py
yguclu Sep 19, 2025
e1a13f8
Update test_geometry.py
yguclu Sep 19, 2025
51a32da
new tests for class Geometry
Sep 24, 2025
505db31
run only my tests
Sep 24, 2025
39c51a4
run only my tests
Sep 24, 2025
34e42e6
run only my tests
Sep 24, 2025
90553f9
run only my tests
Sep 24, 2025
243d2b1
run only my tests
Sep 24, 2025
9bfda59
run only my tests
Sep 24, 2025
f75df55
fixed failing tests due to deleting file in parallel
Sep 24, 2025
2a7bb4d
revert files
Sep 24, 2025
659831d
Merge branch 'devel' into yguclu-fix-mpi_dims_mask
alisa-kirkinskaia Sep 26, 2025
e7b6bfb
Avoid function check_decomposition in tests
yguclu Sep 30, 2025
f6afb54
Fix typo in test_geometry.py
yguclu Sep 30, 2025
81b1c6d
Improve Geometry class:
yguclu Sep 30, 2025
e3c30db
Update Geometry unit tests
yguclu Sep 30, 2025
8716dcb
Squashed commit of the following:
yguclu Oct 1, 2025
7111b8e
Do not create __psydac__ directory in parallel
yguclu Oct 1, 2025
cc097a3
Use Geometry.from_file in discretize_domain
yguclu Oct 1, 2025
cd925fb
Use correct parameter name (periods) in MultiPatchDomainDecomposition…
yguclu Oct 1, 2025
f1b6bb1
Add mandatory parameter pdim to Geometry.__init__
yguclu Oct 7, 2025
2716065
Clean up Geometry.read()
yguclu Oct 7, 2025
818be2a
Remove unused property is_parallel from Geometry
yguclu Oct 7, 2025
31fbb37
Merge branch 'devel' into yguclu-improve-Geometry
yguclu Oct 7, 2025
cb8ccb5
Clean up module psydac.mapping.discrete_gallery:
yguclu Oct 8, 2025
f47163e
Merge branch 'devel' into yguclu-improve-Geometry
yguclu Oct 21, 2025
2e56b10
Run fewer tests, only on Ubuntu with Python 3.11
yguclu Oct 21, 2025
2511593
Merge branch 'devel' into yguclu-improve-Geometry
yguclu Jan 26, 2026
b042a0a
Reactivate single-process tests on Ubuntu and macOS
yguclu Jan 26, 2026
0e6a9d6
Merge branch 'devel' into yguclu-improve-Geometry
yguclu Jan 26, 2026
6b6653f
Remove duplicated imports from test_geometry.py
yguclu Jan 26, 2026
8ea76a8
Improve docstring of Geometry class
yguclu Jan 27, 2026
739aee8
Add 'h5py' xdist_group to all unit tests in test_geometry.py
yguclu Jan 27, 2026
66205e7
Handle NumPy integers passed in ncells to Geometry constructor
yguclu Jan 27, 2026
ae6ebf8
Minor cleanup in Geometry constructor
yguclu Jan 27, 2026
7dff021
Run unit tests in mapping, fem, and feec folders
yguclu Jan 27, 2026
fdd357a
Run unit tests in api folder
yguclu Jan 27, 2026
001e592
Revert "Do not create __psydac__ directory in parallel"
yguclu Jan 27, 2026
fae70d3
Merge branch 'devel' into yguclu-improve-Geometry
yguclu Jan 28, 2026
b807f32
Update `CHANGELOG.md` with new and previous changes
yguclu Jan 28, 2026
a06a7d3
Use SymPDE branch clean-multipatch-domain
yguclu Feb 10, 2026
e968bc5
Provide interface orientation to Domain.join
yguclu Feb 10, 2026
a31e07a
Add interface orientation to multipatch geometry files
yguclu Feb 10, 2026
29e82cf
Merge branch 'devel' into yguclu-improve-Geometry
yguclu Feb 11, 2026
326952b
Use `ubuntu_install` action in `documentation` workflow
yguclu Feb 12, 2026
800e506
Clone the latest release of PETSc (see PR #539)
yguclu Feb 12, 2026
9f092d3
Install mpi4py >= 4.0.0 in `parallel_h5py` action
yguclu Feb 12, 2026
e41f301
Merge branch 'devel' into yguclu-improve-Geometry
yguclu Apr 21, 2026
3702e70
Add missing orientation (-1 or +1) to connectivity in test_plot_field
yguclu Apr 21, 2026
d91b2ba
Minor cleanup
yguclu Apr 21, 2026
0b426e2
Avoid deprecation warning about scipy.odr
yguclu Apr 21, 2026
349eee8
Check input domain type in Geometry.from_topological_domain
yguclu Apr 21, 2026
a84e24d
Add docstring to translate() in psydac.cad.cad
yguclu Apr 22, 2026
e291f2a
Merge branch 'devel' into yguclu-improve-Geometry
yguclu Sep 4, 2026
b403819
Test SymPDE version 0.20.0 (from GitHub)
yguclu Sep 9, 2026
ca148d0
Fix wrong action filename in docs workflow
yguclu Sep 11, 2026
43082ab
Give name to checkout step in testing workflow
yguclu Sep 11, 2026
2cb2971
Fix module name in documentation: cmd.mesh >> cmd.psydac_mesh
yguclu Sep 11, 2026
bd4c072
Merge branch 'devel' into yguclu-improve-Geometry
yguclu Oct 3, 2026
0d5d648
Use SymPDE 0.20.0 from PyPI
yguclu Oct 3, 2026
42f2b57
Reactivate all Python versions in testing workflow
yguclu Oct 3, 2026
75eebd5
Fix bad merge (wrong Python versions) in testing.yml
yguclu Oct 4, 2026
6bb18ec
Mention SymPDE 0.20.0 in CHANGELOG.md
yguclu Oct 4, 2026
ec4dc64
First draft of CLAUDE.md configuration file
yguclu Oct 5, 2026
c27f72e
Improve CLAUDE.md
yguclu Oct 5, 2026
d9af9ad
Expand 'Code standards' section of CLAUDE.md
yguclu Oct 5, 2026
9adfa83
Further improve CLAUDE.md
yguclu Oct 5, 2026
10a5088
Remove blank imports from psydac/cad/__init__.py
yguclu Oct 5, 2026
bc216cd
Remove obsolete test_geometry_1() from psydac.cad.tests.test_geometry
yguclu Oct 5, 2026
89e0b6b
Add Pylint configuration to pyproject.toml
yguclu Oct 5, 2026
bc6e145
Update CHANGELOG.md
yguclu Oct 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/actions/install_h5py/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ runs:
run: |
export CC="mpicc"
export HDF5_MPI="ON"
pip install 'mpi4py>=4.0.0'
pip install h5py --no-cache-dir --no-binary h5py
pip list

Expand Down
18 changes: 7 additions & 11 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,11 @@ permissions:
jobs:
build_docs:
runs-on: ubuntu-latest

env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN}}
OMP_NUM_THREADS: 2

steps:
- name: Checkout
uses: actions/checkout@v6
Expand All @@ -38,17 +40,7 @@ jobs:
python-version: '3.10'

- name: Install non-Python dependencies on Ubuntu
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: gfortran openmpi-bin libopenmpi-dev libhdf5-openmpi-dev
version: 1.0
execute_install_scripts: true

- name: Reconfigure non-Python dependencies on Ubuntu
run: |
sudo apt-get update
sudo apt-get install --reinstall openmpi-bin libhdf5-openmpi-dev liblapack-dev libblas-dev
sudo apt install graphviz pandoc
uses: ./.github/actions/ubuntu_installations

- name: Print information on MPI and HDF5 libraries
run: |
Expand All @@ -70,6 +62,10 @@ jobs:
pip install .[test]
pip freeze

- name: Install non-Python dependencies for Documentation
run: |
sudo apt install graphviz pandoc

- name: Install Python dependencies for Documentation
run: |
pip install -r docs/requirements.txt
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ jobs:
OMP_NUM_THREADS: 2

steps:
- uses: actions/checkout@v6
- name: Checkout
uses: actions/checkout@v6
with:
submodules: true

Expand Down Expand Up @@ -125,17 +126,17 @@ jobs:
if: matrix.os == 'macos-14'
working-directory: ./scratch
run: |
coverage report --ignore-errors --show-missing --sort=cover
psydac test --mod psydac.mapping -x -v

- name: Run MPI tests with Pytest
working-directory: ./scratch
run: |
psydac test --mpi
psydac test --mod psydac.fem -x -v

- name: Run single-process PETSc tests with Pytest
working-directory: ./scratch
run: |
psydac test --petsc
psydac test --mod psydac.feec -x -v

- name: Run MPI PETSc tests with Pytest
working-directory: ./scratch
Expand Down
12 changes: 9 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,23 @@ All notable changes to this project will be documented in this file.
- #576 : Add module `psydac.utilities.parallel_utils` for parallel execution and gathering variable-length arrays
- #576 : Add module `psydac.utilities.operators` with class `Laplacian` used in some old examples
- #577 : Add an installation configuration option to choose the backend language
- #567 : Improve `psydac test` command (with several new features)
- #565 : Expand editable install info in `README.md`
- [DEVELOPER] Create action `install_petsc4py` to install PETSc & `petsc4py` w/ complex support
- [DEVELOPER] Configure Pylint in `pyproject.toml`
- [DEVELOPER] Add `CLAUDE.md` with developer rules

### Fixed

- #576 : Fix bug in `TensorFemSpace.eval_field` caused by round-off at MPI subdomain boundaries
- #527 : Require `sympde==0.20.0` which changes how multipatch interfaces are defined
- #576 : Require `sympde==0.19.3` which fixes a bug in the linearity checks
- #579 : Require `h5py>=3.16` which installs correctly with `setuptools>=81.0`
- #576 : Fix bug in `TensorFemSpace.eval_field` caused by round-off at MPI subdomain boundaries
- #579 : Don't run postprocessing unit tests with `pytest-xdist` because `h5py` is not thread-safe
- #579 : Return error code on failure of the `psydac test` and `psydac compile` commands
- #577 : Fix installation following release of Pyccel 2.2
- #571 : Fix correct application of the sum factorization algorithm
- #570 : Optimize PSYDAC logo
- #565 : Expand editable install info in `README.md`
- #567 : Fix parallel creation of folder `__psydac__` in `psydac.api.fem_bilinear_form`
- #566 : Fix command `psydac test --mpi` on Ubuntu machines
- [DEVELOPER] Add missing 'description' properties (required!) to our GitHub actions
- [DEVELOPER] Update CI installation of `petsc4py` after release of `setuptools` 81.0
Expand All @@ -32,13 +36,15 @@ All notable changes to this project will be documented in this file.

### Changed

- #527 : Improve `Geometry` class in module `psydac.cad.geometry`
- #576 : Use latest version of Igakit (commit dalcinl/igakit@92ee097 of 2026/07/24) which supports NumPy >= 2.4
- #595 : Use PETSc 3.25.5 whose Python bindings `petsc4py` are built correctly with `cython>=3`
- #580 : Use PETSc 3.25.0 whose Python bindings `petsc4py` install correctly with `setuptools>=81.0`
- #579 : Require `pyccel>=2.2.3` which can compile all kernels with C
- #579 : Require `numpy>=2.1` to support Python >= 3.10
- #579 : Require `pytest>=9.0` and use `pytest.toml` instead of `pytest.ini` for Pytest configuration
- #579 : Move coverage configuration from `pyproject.toml` to `psydac/pytest.toml`
- #570 : Optimize PSYDAC logo
- [DEVELOPER] Update GitHub Actions for repository checkout and Python setup
- [DEVELOPER] Rename actions: `macos/ubuntu_install` -> `macos/ubuntu_installations`
- [DEVELOPER] Do not check file changes to trigger testing workflow on PRs
Expand Down
74 changes: 74 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Project: PSYDAC

## Overview
Python 3 library for isogeometric analysis (IGA). Solve general systems of partial
differential equations (PDEs) in weak form, defined using the domain-specific
language provided by SymPDE. Supports finite element exterior calculus (FEEC)
with tensor-product spline spaces. Handles multi-patch geometries in various ways;
usually broken-FEEC a.k.a. CONGA (conforming/non-conforming Galerkin).
Python code is automatically generated for the assembly of user-defined functionals,
linear forms, and bilinear forms. This Python code is then accelerated to C/Fortran
speed using Pyccel. The library enables large parallel computations on distributed-
memory supercomputers using MPI and OpenMP.

## Tech stack
- Python 3.10+, type hints required everywhere
- meson-python + mesonpy for building
- pip with submodules (for igakit)
- pytest + pytest-cov + pytest-mpi + pytest-xdist for testing
- sympde for symbolic definition of weak formulations
- pyccel for translation of Python kernels to Fortran or C
- mpi4py for MPI parallelization
- h5py for parallel I/O
- petsc4py for direct linear solvers (optional install)

## Code standards
- Follow PEP 8 style guide whenever possible
- Docstrings of public functions and classes follow Numpydoc conventions
- pylint + black + isort for linting/typing
- Computational kernels to be accelerated with Pyccel named as `<module>_kernels.py`
- Minimize code duplication. Never add code that already exists
- Strive for concise, clean, and human-readable code. Avoid useless verbosity
- Self-explanatory names for variables, functions, and classes
- Do not reassign value to an existing variable, especially if the type changes
- Use short comments (one-liners or inline) to explain "why" rather than "what" or "how"

## Testing conventions
- Each library subpackage contains a `tests/` folder with an `__init__.py` file
- Unit tests are part of the library and shipped with it
- Unit tests can be run with `psydac test` CLI command (see `README.md`)
- Test file names follow `test_<module>.py`
- Test function names follow `test_<function>` or `test_<class>_<method>`
- Parametrize unit tests with `@pytest.parametrize` to minimize code duplication
- Keep run time of tests at a minimum
- Aim for 100% coverage on newly committed code

## File structure
- psydac/api - high-level Python interface
- psydac/cad - computer-aided design (CAD) functionality
- psydac/cmd - command-line interface (CLI) commands
- psydac/core - splines functionality
- psydac/ddm - MPI decomposition of domain, vectors of spline coefficients, and matrices
- psydac/feec - finite element exterior calculus (FEEC)
- psydac/fem - "finite element method" middle-level Python interface (spaces and fields)
- psydac/linalg - "linear algebra" low-level Python interface (vectors, linear operators, iterative solvers)
- psydac/polar - implementation of polar splines for H1 spaces
- psydac/pyccel - distillation of an old version of Pyccel for Python code generation (to be removed)
- psydac/utilities - various generic functions used across the library
- docs - Sphinx documentation
- examples - Various examples of library usage (mostly Jupyter notebooks)
- scripts - Various scripts for library maintenance
- subprojects - Git submodules

## Always do
- Before claiming done:
. Run `python -m black --check $(git ls-files "*.py")`
. Run `python -m isort --check $(git ls-files "*.py" | grep -v "FOUND_DUPLICATED_IMPORT.py")`
. Run `pylint --disable=all --enable=unused-import ./psydac --ignore-paths="__pyccel*" --ignore-paths="__epyccel*"`
- Unless specified differently, assume process with `rank=0` in MPI communicator is root
- Use root MPI process to perform serial operations (e.g. open/save image)

## Never do
- Commit secrets or `.env` files
- Add new dependencies without team discussion
- Use `eval` function together with `input`
2 changes: 1 addition & 1 deletion psydac/api/discretization.py
Original file line number Diff line number Diff line change
Expand Up @@ -578,7 +578,7 @@ def discretize_domain(domain, *, filename=None, ncells=None, periodic=None, comm
raise ValueError("Cannot provide both 'filename' and 'ncells'")

elif filename:
return Geometry(filename=filename, comm=comm, mpi_dims_mask=mpi_dims_mask)
return Geometry.from_file(filename, comm=comm, mpi_dims_mask=mpi_dims_mask)

Comment on lines +581 to 582

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks!

elif ncells:
return Geometry.from_topological_domain(domain, ncells, periodic=periodic, comm=comm, mpi_dims_mask=mpi_dims_mask)
Expand Down
2 changes: 1 addition & 1 deletion psydac/api/tests/test_2d_complex.py
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ def test_complex_poisson_2d_multipatch():
A = Square('A',bounds1=(0, 0.5), bounds2=(0, 1))
B = Square('B',bounds1=(0.5, 1.), bounds2=(0, 1))

domain = Domain.join([A, B], [((0, 0, 1), (1, 0, -1))], 'domain')
domain = Domain.join([A, B], [((0, 0, 1), (1, 0, -1), 1)], 'domain')

x, y = domain.coordinates

Expand Down
15 changes: 6 additions & 9 deletions psydac/api/tests/test_2d_multipatch_mapping_maxwell.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,22 @@
from pathlib import Path

import pytest
import numpy as np
from mpi4py import MPI
from sympy import pi, sin, cos, Tuple, Matrix

from sympde.calculus import grad, dot, curl, cross
from sympde.calculus import dot, curl, cross
from sympde.calculus import minus, plus
from sympde.topology import VectorFunctionSpace
from sympde.topology import elements_of
from sympde.topology import NormalVector
from sympde.topology import Square, Domain
from sympde.topology import IdentityMapping, PolarMapping
from sympde.topology import Domain
from sympde.expr.expr import LinearForm, BilinearForm
from sympde.expr.expr import integral
from sympde.expr.expr import Norm
from sympde.expr.equation import find, EssentialBC
from sympde.expr.equation import find

from psydac.api.discretization import discretize
from psydac.api.tests.build_domain import build_11_patch_pretzel, build_2_patch_annulus
from psydac.fem.basic import FemField
from psydac.api.settings import PSYDAC_BACKEND_GPYCCEL
from psydac.feec.pull_push import pull_2d_hcurl

Expand Down Expand Up @@ -204,10 +201,10 @@ def teardown_function():

if __name__ == '__main__':

from collections import OrderedDict
from sympy import lambdify
from collections import OrderedDict
from sympy import lambdify
from psydac.fem.plotting_utilities import get_plotting_grid, get_grid_vals
from psydac.fem.plotting_utilities import get_patch_knots_gridlines, my_small_plot
from psydac.fem.plotting_utilities import my_small_plot

domain = build_11_patch_pretzel()
x,y = domain.coordinates
Expand Down
15 changes: 9 additions & 6 deletions psydac/api/tests/test_2d_multipatch_mapping_poisson.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from sympde.calculus import minus, plus
from sympde.topology import ScalarFunctionSpace
from sympde.topology import elements_of
from sympde.topology import NormalVector, Union
from sympde.topology import NormalVector
from sympde.topology import Square, Domain
from sympde.topology import IdentityMapping, PolarMapping, AffineMapping
from sympde.expr.expr import LinearForm, BilinearForm
Expand Down Expand Up @@ -141,12 +141,12 @@ def test_poisson_2d_3_patches_dirichlet_2():
B = Square('B',bounds1=(0.5, 1.), bounds2=(0, np.pi))
C = Square('C',bounds1=(0.5, 1.), bounds2=(np.pi-0.5, np.pi + 1))

D1 = mapping_1(A)
D2 = mapping_2(B)
D3 = mapping_3(C)
D1 = mapping_1(A)
D2 = mapping_2(B)
D3 = mapping_3(C)

connectivity = [((0,1,1),(1,1,-1)), ((1,1,1),(2,1,-1))]
patches = [D1, D2, D3]
connectivity = [((0, 1, 1), (1, 1,-1), 1), ((1, 1, 1), (2, 1,-1), 1)]
domain = Domain.join(patches, connectivity, 'domain')

x,y = domain.coordinates
Expand Down Expand Up @@ -252,8 +252,11 @@ def test_poisson_2d_4_patch_dirichlet_0():
D3 = mapping_3(C)
D4 = mapping_4(D)

connectivity = [((0,1,1),(1,1,-1)), ((2,1,1),(3,1,-1)), ((0,0,1),(2,0,-1)),((1,0,1),(3,0,-1))]
patches = [D1, D2, D3, D4]
connectivity = [((0, 1, 1), (1, 1,-1), 1),
((2, 1, 1), (3, 1,-1), 1),
((0, 0, 1), (2, 0,-1), 1),
((1, 0, 1), (3, 0,-1), 1)]
domain = Domain.join(patches, connectivity, 'domain')

x,y = domain.coordinates
Expand Down
12 changes: 6 additions & 6 deletions psydac/api/tests/test_2d_multipatch_poisson.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ def test_poisson_2d_2_patch_dirichlet_0():
A = Square('A', bounds1=(0, 0.5), bounds2=(0, 1))
B = Square('B', bounds1=(0.5, 1), bounds2=(0, 1))

connectivity = [((0,0,1), (1,0,-1), 1)]
patches = [A, B]
connectivity = [((0, 0, 1), (1, 0,-1), 1)]
domain = Domain.join(patches, connectivity, 'domain')

x,y = domain.coordinates
Expand All @@ -100,8 +100,8 @@ def test_poisson_2d_2_patch_dirichlet_1():
A = Square('A', bounds1=(0, 0.5), bounds2=(0, 1))
B = Square('B', bounds1=(0.5, 1), bounds2=(0, 1))

connectivity = [((0,0,1), (1,0,-1), 1)]
patches = [A, B]
connectivity = [((0, 0, 1), (1, 0,-1), 1)]
domain = Domain.join(patches, connectivity, 'domain')

x,y = domain.coordinates
Expand All @@ -121,8 +121,8 @@ def test_poisson_2d_2_patch_dirichlet_2():
A = Square('A', bounds1=(0, 0.5), bounds2=(0, 1))
B = Square('B', bounds1=(0.5, 1), bounds2=(0, 1))

connectivity = [((0,0,1), (1,0,-1), 1)]
patches = [A, B]
connectivity = [((0, 0, 1), (1, 0,-1), 1)]
domain = Domain.join(patches, connectivity, 'domain')

x,y = domain.coordinates
Expand Down Expand Up @@ -150,8 +150,8 @@ def test_poisson_2d_2_patch_dirichlet_3():
D1 = M1(A)
D2 = M2(B)

connectivity = [((0,0,1), (1,0,1), 1)]
patches = [D1, D2]
connectivity = [((0, 0, 1), (1, 0, 1), 1)]
domain = Domain.join(patches, connectivity, 'domain')

x,y = domain.coordinates
Expand Down Expand Up @@ -182,8 +182,8 @@ def test_poisson_2d_2_patch_dirichlet_4():
D1 = M1(A)
D2 = M2(B)

connectivity = [((0,0,-1), (1,0,-1), 1)]
patches = [D1,D2]
patches = [D1, D2]
connectivity = [((0, 0, -1), (1, 0, -1), 1)]
domain = Domain.join(patches, connectivity, 'domain')

x,y = domain.coordinates
Expand Down
11 changes: 5 additions & 6 deletions psydac/api/tests/test_postprocessing.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def build_2_mapped_squares():
D2 = mapping_2(B)

patches = [D1, D2]
connectivity = [((0,1,1),(1,1,-1))]
connectivity = [((0, 1, 1), (1, 1,-1), 1)]
return Domain.join(patches, connectivity, 'domain')


Expand All @@ -66,7 +66,7 @@ def build_2_squares():
B = Square('B',bounds1=(0.5, 1.), bounds2=(np.pi/2, np.pi))

patches = [A, B]
connectivity = [((0,1,1),(1,1,-1))]
connectivity = [((0, 1, 1), (1, 1,-1), 1)]
return Domain.join(patches, connectivity, 'domain')


Expand All @@ -75,10 +75,9 @@ def build_2_cubes():
B = Cube('B',bounds1=(0.5, 1.), bounds2=(np.pi/2, np.pi), bounds3=(0, 1))

patches = [A, B]
connectivity = [((0,1,1),(1,1,-1))]
connectivity = [((0, 1, 1), (1, 1,-1), (1, 1, 1))]
return Domain.join(patches, connectivity, 'domain')


###############################################################################
# Output Manager tests #
###############################################################################
Expand Down Expand Up @@ -538,8 +537,8 @@ def test_reconstruct_multipatch(dtype):
A = Square('A',bounds1=bounds1, bounds2=bounds2_A)
B = Square('B',bounds1=bounds1, bounds2=bounds2_B)

connectivity = [((0,1,1),(1,1,-1))]
patches = [A,B]
patches = [A, B]
connectivity = [((0, 1, 1), (1, 1,-1), 1)]
domain = Domain.join(patches, connectivity, 'domain')

Va = ScalarFunctionSpace('Va', A)
Expand Down
Loading