Skip to content

Commit 1bd4101

Browse files
campospintoyguclu
andauthored
Rework some tests for shorter CI runs (#575)
- Speed-up some tests by using coarser grids and fewer patches in multi-patch domains - Improve asserts in `feec/tests/test_global_projectors.py` by using the expected convergence orders - Ignore additional paths through `.gitignore`: * `prof` folders generated by profiling tools * `__*pyccel__*/` folders generated by Pyccel --------- Co-authored-by: Yaman Güçlü <yaman.guclu@gmail.com>
1 parent 554017e commit 1bd4101

17 files changed

Lines changed: 371 additions & 406 deletions

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
*.so
55
*.lock
66
__psydac__/
7-
__*pyccel__/
7+
__*pyccel__*/
88
docs/source/modules/STUBDIR/*
99

1010
build
1111
*build*
1212
*egg*
1313
*dist*
1414
*cache*
15+
prof
1516

1617
*.swp
1718
*.log

examples/notebooks/Poisson_non_periodic.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"from sympde.topology import Square, PolarMapping\n",
2828
"from sympde.utilities.utils import plot_domain\n",
2929
"\n",
30-
"from psydac.api.tests.build_domain import build_pretzel\n",
30+
"from psydac.api.tests.build_domain import build_11_patch_pretzel\n",
3131
"\n",
3232
"# Define the topological geometry for each patch\n",
3333
"rmin, rmax = 0.3, 1.\n",
@@ -50,7 +50,7 @@
5050
"Omega = Domain.join(patches, connectivity, 'domain')\n",
5151
"\n",
5252
"# Example of a complex multi-patch domain\n",
53-
"# Omega = build_pretzel()\n",
53+
"# Omega = build_11_patch_pretzel()\n",
5454
"\n",
5555
"# Simple visualization of the topological domain\n",
5656
"plot_domain(Omega, draw=False, isolines=True)"

examples/old_examples/maxwell_2d_multi_patch.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from sympde.expr.equation import find, EssentialBC
2525

2626
from psydac.api.discretization import discretize
27-
from psydac.api.tests.build_domain import build_pretzel
27+
from psydac.api.tests.build_domain import build_11_patch_pretzel
2828
from psydac.fem.basic import FemField
2929
from psydac.api.settings import PSYDAC_BACKEND_GPYCCEL
3030
from psydac.feec.pull_push import pull_2d_hcurl
@@ -104,11 +104,11 @@ def run_maxwell_2d(uex, f, alpha, domain, ncells, degree, k=None, kappa=None, co
104104

105105
from collections import OrderedDict
106106
from sympy import lambdify
107-
from psydac.api.tests.build_domain import build_pretzel
107+
from psydac.api.tests.build_domain import build_11_patch_pretzel
108108
from psydac.fem.plotting_utilities import get_plotting_grid, get_grid_vals
109109
from psydac.fem.plotting_utilities import get_patch_knots_gridlines, my_small_plot
110110

111-
domain = build_pretzel()
111+
domain = build_11_patch_pretzel()
112112
x,y = domain.coordinates
113113
omega = 1.5
114114
alpha = -omega**2

examples/old_examples/poisson_2d_multi_patch.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,11 @@ def run_poisson_2d(solution, f, domain, ncells, degree, comm=None):
109109

110110
from collections import OrderedDict
111111
from sympy import lambdify
112-
from psydac.api.tests.build_domain import build_pretzel
112+
from psydac.api.tests.build_domain import build_11_patch_pretzel
113113
from psydac.fem.plotting_utilities import get_plotting_grid, get_grid_vals
114114
from psydac.fem.plotting_utilities import get_patch_knots_gridlines, my_small_plot
115115

116-
domain = build_pretzel()
116+
domain = build_11_patch_pretzel()
117117
x,y = domain.coordinates
118118
solution = x**2 + y**2
119119
f = -4

examples/old_examples/poisson_3d_multi_patch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ def run_poisson_3d_multi_patch(solution, f, domain, ncells, degree, comm=None, b
165165

166166
from collections import OrderedDict
167167
from sympy import lambdify
168-
from psydac.api.tests.build_domain import build_pretzel
168+
from psydac.api.tests.build_domain import build_11_patch_pretzel
169169

170170
A1 = Cube('A1', bounds1=(0, 0.5), bounds2=(0, 0.5), bounds3=(0, 1))
171171
A2 = Cube('A2', bounds1=(0.5, 1), bounds2=(0, 0.5), bounds3=(0, 1))

examples/old_examples/sample_multi_patch_parallel.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace
99

1010
from psydac.api.discretization import discretize
11-
from psydac.api.tests.build_domain import build_pretzel
11+
from psydac.api.tests.build_domain import build_11_patch_pretzel
1212
from psydac.api.postprocessing import OutputManager, PostProcessManager
1313
from psydac.fem.basic import FemField
1414

1515
def save_sample_data(ncells, degree, vector, kind, comm=None):
16-
domain = build_pretzel()
16+
domain = build_11_patch_pretzel()
1717

1818
if vector or kind in ['hdiv', 'hcurl']:
1919
space = VectorFunctionSpace('V', domain, kind=kind)
@@ -41,7 +41,7 @@ def save_sample_data(ncells, degree, vector, kind, comm=None):
4141

4242
def export_sample_data(npts_per_cell, comm=None):
4343
Pm = PostProcessManager(
44-
domain=build_pretzel(),
44+
domain=build_11_patch_pretzel(),
4545
space_file='sample_data_pretzel.yml',
4646
fields_file='sample_data_pretzel.h5',
4747
comm=comm,

psydac/api/tests/build_domain.py

Lines changed: 51 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@
1111
from sympde.topology import Square, Domain
1212
from sympde.topology import IdentityMapping, PolarMapping, AffineMapping, Mapping
1313

14-
# remove after sympde PR #155 is merged and call Domain.join instead
15-
from psydac.feec.multipatch_domain_utilities import sympde_Domain_join
16-
1714
#==============================================================================
1815
# small extension to SymPDE:
1916
class TransposedPolarMapping(Mapping):
@@ -65,10 +62,33 @@ def flip_axis(name='no_name', c1=0., c2=0.):
6562

6663
#==============================================================================
6764

68-
# todo: use build_multipatch_domain instead
69-
def build_pretzel(domain_name='pretzel', r_min=None, r_max=None):
65+
def build_2_patch_annulus():
7066
"""
71-
design pretzel-like domain
67+
Build a 180º annulus by connecting two 90º annular patches.
68+
"""
69+
bounds1 = (0.5, 1.)
70+
bounds2_A = (0, np.pi/2)
71+
bounds2_B = (np.pi/2, np.pi)
72+
73+
A = Square('A',bounds1=bounds1, bounds2=bounds2_A)
74+
B = Square('B',bounds1=bounds1, bounds2=bounds2_B)
75+
76+
mapping_1 = PolarMapping('M1',2, c1= 0., c2= 0., rmin = 0., rmax=1.)
77+
mapping_2 = PolarMapping('M2',2, c1= 0., c2= 0., rmin = 0., rmax=1.)
78+
79+
D1 = mapping_1(A)
80+
D2 = mapping_2(B)
81+
82+
connectivity = [((0,1,1), (1,1,-1), 1)]
83+
patches = [D1, D2]
84+
85+
domain = Domain.join(patches, connectivity, '2_patch_domain')
86+
87+
return domain
88+
89+
def build_11_patch_pretzel(domain_name='pretzel', r_min=None, r_max=None):
90+
"""
91+
Build a pretzel-like 2D domain by connecting 11 patches through 13 conforming interfaces.
7292
"""
7393

7494
if r_min is None:
@@ -87,54 +107,18 @@ def build_pretzel(domain_name='pretzel', r_min=None, r_max=None):
87107
mapping_1 = PolarMapping('M1',2, c1= h, c2= h, rmin = 0., rmax=1.)
88108
domain_1 = mapping_1(dom_log_1)
89109

90-
dom_log_1_1 = Square('dom1_1',bounds1=(r_min, r_max), bounds2=(0, np.pi/4))
91-
mapping_1_1 = PolarMapping('M1_1',2, c1= h, c2= h, rmin = 0., rmax=1.)
92-
domain_1_1 = mapping_1_1(dom_log_1_1)
93-
94-
dom_log_1_2 = Square('dom1_2',bounds1=(r_min, r_max), bounds2=(np.pi/4, np.pi/2))
95-
mapping_1_2 = PolarMapping('M1_2',2, c1= h, c2= h, rmin = 0., rmax=1.)
96-
domain_1_2 = mapping_1_2(dom_log_1_2)
97-
98110
dom_log_2 = Square('dom2',bounds1=(r_min, r_max), bounds2=(np.pi/2, np.pi))
99111
mapping_2 = PolarMapping('M2',2, c1= -h, c2= h, rmin = 0., rmax=1.)
100112
domain_2 = mapping_2(dom_log_2)
101113

102-
dom_log_2_1 = Square('dom2_1',bounds1=(r_min, r_max), bounds2=(np.pi/2, np.pi*3/4))
103-
mapping_2_1 = PolarMapping('M2_1',2, c1= -h, c2= h, rmin = 0., rmax=1.)
104-
domain_2_1 = mapping_2_1(dom_log_2_1)
105-
106-
dom_log_2_2 = Square('dom2_2',bounds1=(r_min, r_max), bounds2=(np.pi*3/4, np.pi))
107-
mapping_2_2 = PolarMapping('M2_2',2, c1= -h, c2= h, rmin = 0., rmax=1.)
108-
domain_2_2 = mapping_2_2(dom_log_2_2)
109-
110-
dom_log_10 = Square('dom10',bounds1=(r_min, r_max), bounds2=(np.pi/2, np.pi))
111-
mapping_10 = PolarMapping('M10',2, c1= h, c2= h, rmin = 0., rmax=1.)
112-
domain_10 = mapping_10(dom_log_10)
113-
114114
dom_log_3 = Square('dom3',bounds1=(r_min, r_max), bounds2=(np.pi, np.pi*3/2))
115115
mapping_3 = PolarMapping('M3',2, c1= -h, c2= 0, rmin = 0., rmax=1.)
116116
domain_3 = mapping_3(dom_log_3)
117117

118-
dom_log_3_1 = Square('dom3_1',bounds1=(r_min, r_max), bounds2=(np.pi, np.pi*5/4))
119-
mapping_3_1 = PolarMapping('M3_1',2, c1= -h, c2= 0, rmin = 0., rmax=1.)
120-
domain_3_1 = mapping_3_1(dom_log_3_1)
121-
122-
dom_log_3_2 = Square('dom3_2',bounds1=(r_min, r_max), bounds2=(np.pi*5/4, np.pi*3/2))
123-
mapping_3_2 = PolarMapping('M3_2',2, c1= -h, c2= 0, rmin = 0., rmax=1.)
124-
domain_3_2 = mapping_3_2(dom_log_3_2)
125-
126118
dom_log_4 = Square('dom4',bounds1=(r_min, r_max), bounds2=(np.pi*3/2, np.pi*2))
127119
mapping_4 = PolarMapping('M4',2, c1= h, c2= 0, rmin = 0., rmax=1.)
128120
domain_4 = mapping_4(dom_log_4)
129121

130-
dom_log_4_1 = Square('dom4_1',bounds1=(r_min, r_max), bounds2=(np.pi*3/2, np.pi*7/4))
131-
mapping_4_1 = PolarMapping('M4_1',2, c1= h, c2= 0, rmin = 0., rmax=1.)
132-
domain_4_1 = mapping_4_1(dom_log_4_1)
133-
134-
dom_log_4_2 = Square('dom4_2',bounds1=(r_min, r_max), bounds2=(np.pi*7/4, np.pi*2))
135-
mapping_4_2 = PolarMapping('M4_2',2, c1= h, c2= 0, rmin = 0., rmax=1.)
136-
domain_4_2 = mapping_4_2(dom_log_4_2)
137-
138122
dom_log_5 = Square('dom5',bounds1=(-hr,hr) , bounds2=(-h/2, h/2))
139123
mapping_5 = get_2D_rotation_mapping('M5', c1=h/2, c2=cr , alpha=np.pi/2)
140124
domain_5 = mapping_5(dom_log_5)
@@ -147,45 +131,21 @@ def build_pretzel(domain_name='pretzel', r_min=None, r_max=None):
147131
mapping_7 = get_2D_rotation_mapping('M7', c1=-cr, c2=h/2 , alpha=np.pi)
148132
domain_7 = mapping_7(dom_log_7)
149133

150-
dom_log_9 = Square('dom9',bounds1=(-hr,hr) , bounds2=(-h, h))
151-
mapping_9 = get_2D_rotation_mapping('M9', c1=0, c2=h-cr , alpha=np.pi*3/2)
152-
domain_9 = mapping_9(dom_log_9)
153-
154-
dom_log_9_1 = Square('dom9_1',bounds1=(-hr,hr) , bounds2=(-h, 0))
155-
mapping_9_1 = get_2D_rotation_mapping('M9_1', c1=0, c2=h-cr , alpha=np.pi*3/2)
156-
domain_9_1 = mapping_9_1(dom_log_9_1)
157-
158-
dom_log_9_2 = Square('dom9_2',bounds1=(-hr,hr) , bounds2=(0, h))
159-
mapping_9_2 = get_2D_rotation_mapping('M9_2', c1=0, c2=h-cr , alpha=np.pi*3/2)
160-
domain_9_2 = mapping_9_2(dom_log_9_2)
134+
dom_log_8 = Square('dom8',bounds1=(-hr,hr) , bounds2=(-h, h))
135+
mapping_8 = get_2D_rotation_mapping('M8', c1=0, c2=h-cr , alpha=np.pi*3/2)
136+
domain_8 = mapping_8(dom_log_8)
161137

162-
dom_log_12 = Square('dom12',bounds1=(-hr, hr), bounds2=(-h/2, h/2))
163-
mapping_12 = AffineMapping('M12', 2, c1=cr, c2=h/2, a11=1, a22=-1, a21=0, a12=0)
164-
domain_12 = mapping_12(dom_log_12)
165-
166-
dom_log_13 = Square('dom13',bounds1=(np.pi*3/2, np.pi*2), bounds2=(r_min, r_max))
167-
mapping_13 = TransposedPolarMapping('M13',2, c1= -r_min-h, c2= r_min+h, rmin = 0., rmax=1.)
168-
domain_13 = mapping_13(dom_log_13)
169-
170-
dom_log_13_1 = Square('dom13_1',bounds1=(np.pi*3/2, np.pi*7/4), bounds2=(r_min, r_max))
171-
mapping_13_1 = TransposedPolarMapping('M13_1',2, c1= -r_min-h, c2= r_min+h, rmin = 0., rmax=1.)
172-
domain_13_1 = mapping_13_1(dom_log_13_1)
173-
174-
dom_log_13_2 = Square('dom13_2',bounds1=(np.pi*7/4, np.pi*2), bounds2=(r_min, r_max))
175-
mapping_13_2 = TransposedPolarMapping('M13_2',2, c1= -r_min-h, c2= r_min+h, rmin = 0., rmax=1.)
176-
domain_13_2 = mapping_13_2(dom_log_13_2)
177-
178-
dom_log_14 = Square('dom14',bounds1=(np.pi, np.pi*3/2), bounds2=(r_min, r_max))
179-
mapping_14 = TransposedPolarMapping('M14',2, c1= r_min+h, c2= r_min+h, rmin = 0., rmax=1.)
180-
domain_14 = mapping_14(dom_log_14)
138+
dom_log_9 = Square('dom9',bounds1=(-hr, hr), bounds2=(-h/2, h/2))
139+
mapping_9 = AffineMapping('M9', 2, c1=cr, c2=h/2, a11=1, a22=-1, a21=0, a12=0)
140+
domain_9 = mapping_9(dom_log_9)
181141

182-
dom_log_14_1 = Square('dom14_1',bounds1=(np.pi, np.pi*5/4), bounds2=(r_min, r_max))
183-
mapping_14_1 = TransposedPolarMapping('M14_1',2, c1= r_min+h, c2= r_min+h, rmin = 0., rmax=1.)
184-
domain_14_1 = mapping_14_1(dom_log_14_1)
142+
dom_log_10 = Square('dom10',bounds1=(np.pi*3/2, np.pi*2), bounds2=(r_min, r_max))
143+
mapping_10 = TransposedPolarMapping('M10',2, c1= -r_min-h, c2= r_min+h, rmin = 0., rmax=1.)
144+
domain_10 = mapping_10(dom_log_10)
185145

186-
dom_log_14_2 = Square('dom14_2',bounds1=(np.pi*5/4, np.pi*3/2), bounds2=(r_min, r_max))
187-
mapping_14_2 = TransposedPolarMapping('M14_2',2, c1= r_min+h, c2= r_min+h, rmin = 0., rmax=1.)
188-
domain_14_2 = mapping_14_2(dom_log_14_2)
146+
dom_log_11 = Square('dom11',bounds1=(np.pi, np.pi*3/2), bounds2=(r_min, r_max))
147+
mapping_11 = TransposedPolarMapping('M11',2, c1= r_min+h, c2= r_min+h, rmin = 0., rmax=1.)
148+
domain_11 = mapping_11(dom_log_11)
189149

190150
patches = ([
191151
domain_1,
@@ -195,10 +155,10 @@ def build_pretzel(domain_name='pretzel', r_min=None, r_max=None):
195155
domain_5,
196156
domain_6,
197157
domain_7,
158+
domain_8,
198159
domain_9,
199-
domain_12,
200-
domain_13,
201-
domain_14,
160+
domain_10,
161+
domain_11,
202162
])
203163

204164
axis_0 = 0
@@ -212,18 +172,17 @@ def build_pretzel(domain_name='pretzel', r_min=None, r_max=None):
212172
[(domain_6, axis_1, ext_0), (domain_2, axis_1, ext_0), 1],
213173
[(domain_2, axis_1, ext_1), (domain_7, axis_1, ext_0), 1],
214174
[(domain_7, axis_1, ext_1), (domain_3, axis_1, ext_0), 1],
215-
[(domain_3, axis_1, ext_1), (domain_9, axis_1, ext_0), 1],
216-
[(domain_9, axis_1, ext_1), (domain_4, axis_1, ext_0), 1],
217-
[(domain_4, axis_1, ext_1), (domain_12, axis_1, ext_1), 1],
218-
[(domain_12, axis_1, ext_0), (domain_1, axis_1, ext_0), 1],
219-
[(domain_6, axis_0, ext_0), (domain_13, axis_0, ext_1), 1],
220-
[(domain_7, axis_0, ext_0), (domain_13, axis_0, ext_0), 1],
221-
[(domain_5, axis_0, ext_0), (domain_14, axis_0, ext_0), 1],
222-
[(domain_12, axis_0, ext_0), (domain_14, axis_0, ext_1), 1],
175+
[(domain_3, axis_1, ext_1), (domain_8, axis_1, ext_0), 1],
176+
[(domain_8, axis_1, ext_1), (domain_4, axis_1, ext_0), 1],
177+
[(domain_4, axis_1, ext_1), (domain_9, axis_1, ext_1), 1],
178+
[(domain_9, axis_1, ext_0), (domain_1, axis_1, ext_0), 1],
179+
[(domain_6, axis_0, ext_0), (domain_10, axis_0, ext_1), 1],
180+
[(domain_7, axis_0, ext_0), (domain_10, axis_0, ext_0), 1],
181+
[(domain_5, axis_0, ext_0), (domain_11, axis_0, ext_0), 1],
182+
[(domain_9, axis_0, ext_0), (domain_11, axis_0, ext_1), 1],
223183
]
224184

225-
# domain = Domain.join(patches, connectivity, name=domain_name)
226-
domain = sympde_Domain_join(patches, connectivity, name=domain_name)
227-
185+
domain = Domain.join(patches, connectivity, name=domain_name)
186+
228187
return domain
229188

psydac/api/tests/test_2d_complex.py

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
from psydac.api.discretization import discretize
3131
from psydac.api.settings import PSYDAC_BACKEND_GPYCCEL
32+
from psydac.api.tests.build_domain import build_2_patch_annulus
3233

3334
# Get the mesh directory
3435
import psydac.cad.mesh as mesh_mod
@@ -154,11 +155,6 @@ def run_poisson_2d(solution, f, domain, ncells=None, degree=None, filename=None,
154155

155156
kappa = 10**3
156157

157-
#expr_I =- dot(grad(plus(u)),nn)*minus(v) + dot(grad(minus(v)),nn)*plus(u) - kappa*plus(u)*minus(v)\
158-
# + dot(grad(minus(u)),nn)*plus(v) - dot(grad(plus(v)),nn)*minus(u) - kappa*plus(v)*minus(u)\
159-
# - dot(grad(plus(v)),nn)*plus(u) + kappa*plus(u)*plus(v)\
160-
# - dot(grad(minus(v)),nn)*minus(u) + kappa*minus(u)*minus(v)
161-
162158
expr_I =- 0.5*dot(grad( plus(u)), nn) * minus(v) + 0.5*dot(grad(minus(v)), nn) * plus(u) - kappa * plus(u)*minus(v)\
163159
+ 0.5*dot(grad(minus(u)), nn) * plus(v) - 0.5*dot(grad( plus(v)), nn) * minus(u) - kappa * plus(v)*minus(u)\
164160
- 0.5*dot(grad(minus(v)), nn) * minus(u) - 0.5*dot(grad(minus(u)), nn) * minus(v) + kappa *minus(u)*minus(v)\
@@ -460,7 +456,8 @@ def test_complex_helmholtz_2d(plot_sol=False):
460456
assert( abs(l2_error - expected_l2_error) < 1.e-7)
461457
assert( abs(h1_error - expected_h1_error) < 1.e-7)
462458

463-
def test_maxwell_2d_2_patch_dirichlet_2():
459+
def test_maxwell_2d_1_patch_dirichlet_2():
460+
464461
# This test solve the maxwell problem with non-homogeneous dirichlet condition with penalization on the border of the exact solution
465462
domain = Square('domain', bounds1=(0, 1), bounds2=(0, 1))
466463
x,y = domain.coordinates
@@ -480,23 +477,9 @@ def test_maxwell_2d_2_patch_dirichlet_2():
480477

481478
@pytest.mark.mpi
482479
def test_maxwell_2d_2_patch_dirichlet_parallel_0():
483-
# This test solve the maxwell problem with non-homogeneous dirichlet condition with penalization on the border of the exact solution
484-
485-
bounds1 = (0.5, 1.)
486-
bounds2_A = (0, np.pi/2)
487-
bounds2_B = (np.pi/2, np.pi)
488-
489-
A = Square('A', bounds1=bounds1, bounds2=bounds2_A)
490-
B = Square('B', bounds1=bounds1, bounds2=bounds2_B)
491-
492-
mapping_1 = PolarMapping('M1',2, c1= 0., c2= 0., rmin = 0., rmax=1.)
493-
mapping_2 = PolarMapping('M2',2, c1= 0., c2= 0., rmin = 0., rmax=1.)
494-
495-
D1 = mapping_1(A)
496-
D2 = mapping_2(B)
497-
498-
domain = Domain.join([D1, D2], [((0, 1, 1), (1, 1, -1))], 'domain')
499480

481+
# This test solve the maxwell problem with non-homogeneous dirichlet condition with penalization on the border of the exact solution
482+
domain = build_2_patch_annulus()
500483
x, y = domain.coordinates
501484

502485
omega = 1.5
@@ -536,10 +519,10 @@ def teardown_function():
536519

537520
from psydac.fem.plotting_utilities import get_plotting_grid, get_grid_vals
538521
from psydac.fem.plotting_utilities import get_patch_knots_gridlines, my_small_plot
539-
from psydac.api.tests.build_domain import build_pretzel
522+
from psydac.api.tests.build_domain import build_11_patch_pretzel
540523
from psydac.feec.pull_push import pull_2d_hcurl
541524

542-
domain = build_pretzel()
525+
domain = build_11_patch_pretzel()
543526
x,y = domain.coordinates
544527

545528
omega = 1.5

0 commit comments

Comments
 (0)