diff --git a/examples/from_firedrake.py b/examples/from_firedrake.py index 55419b48d74433f096d46dd2ae17bbf1398b182a..e6e39ea1083dd06afd0aa0c08c2bb5235c93c4a2 100644 --- a/examples/from_firedrake.py +++ b/examples/from_firedrake.py @@ -39,7 +39,12 @@ def main(visualize=True): return 0 from firedrake import ( - Function, FunctionSpace, SpatialCoordinate, UnitSquareMesh, cos) + Function, + FunctionSpace, + SpatialCoordinate, + UnitSquareMesh, + cos, + ) from meshmode.interop.firedrake import build_connection_from_firedrake diff --git a/examples/plot-connectivity.py b/examples/plot-connectivity.py index c4a4fc31d48ca2cf6aedf13325221df815ab14ca..ce27d5db4a21c689619b3d1bba43566e82ab3bdf 100644 --- a/examples/plot-connectivity.py +++ b/examples/plot-connectivity.py @@ -14,7 +14,10 @@ def main(): actx = PyOpenCLArrayContext(queue) from meshmode.mesh.generation import ( # noqa: F401 - generate_icosahedron, generate_sphere, generate_torus) + generate_icosahedron, + generate_sphere, + generate_torus, + ) #mesh = generate_sphere(1, order=order) mesh = generate_icosahedron(1, order=order) @@ -22,7 +25,8 @@ def main(): from meshmode.discretization import Discretization from meshmode.discretization.poly_element import ( - PolynomialWarpAndBlend3DRestrictingGroupFactory) + PolynomialWarpAndBlend3DRestrictingGroupFactory, + ) discr = Discretization( actx, mesh, PolynomialWarpAndBlend3DRestrictingGroupFactory(order)) diff --git a/examples/simple-dg.py b/examples/simple-dg.py index a0eda7a4b7fae02ecaa090ad855dde56f1cb596b..42fc87de37527263646060a037a3f970e60b6a3d 100644 --- a/examples/simple-dg.py +++ b/examples/simple-dg.py @@ -29,8 +29,11 @@ import numpy.linalg as la # noqa import pyopencl as cl import pyopencl.array as cla # noqa from arraycontext import ( - ArrayContainer, dataclass_array_container, map_array_container, - with_container_arithmetic) + ArrayContainer, + dataclass_array_container, + map_array_container, + with_container_arithmetic, +) from pytools import log_process, memoize_method from pytools.obj_array import flat_obj_array, make_obj_array @@ -71,7 +74,8 @@ class DGDiscretization: from meshmode.discretization import Discretization from meshmode.discretization.poly_element import ( - PolynomialWarpAndBlend2DRestrictingGroupFactory) + PolynomialWarpAndBlend2DRestrictingGroupFactory, + ) self.group_factory = PolynomialWarpAndBlend2DRestrictingGroupFactory( order=order) self.volume_discr = Discretization(actx, mesh, self.group_factory) @@ -100,7 +104,9 @@ class DGDiscretization: @memoize_method def interior_faces_connection(self): from meshmode.discretization.connection import ( - FACE_RESTR_INTERIOR, make_face_restriction) + FACE_RESTR_INTERIOR, + make_face_restriction, + ) return make_face_restriction( self.volume_discr._setup_actx, self.volume_discr, @@ -118,7 +124,9 @@ class DGDiscretization: @memoize_method def all_faces_connection(self): from meshmode.discretization.connection import ( - FACE_RESTR_ALL, make_face_restriction) + FACE_RESTR_ALL, + make_face_restriction, + ) return make_face_restriction( self.volume_discr._setup_actx, self.volume_discr, @@ -128,8 +136,7 @@ class DGDiscretization: @memoize_method def get_to_all_face_embedding(self, where): - from meshmode.discretization.connection import ( - make_face_to_all_faces_embedding) + from meshmode.discretization.connection import make_face_to_all_faces_embedding faces_conn = self.get_connection("vol", where) return make_face_to_all_faces_embedding( diff --git a/examples/to_firedrake.py b/examples/to_firedrake.py index d8ca8dc3abe81792efefdb5e045f853895b9b08c..cb15bccbfc4cb672acee79902cc93ef00fce9b55 100644 --- a/examples/to_firedrake.py +++ b/examples/to_firedrake.py @@ -65,7 +65,8 @@ def main(): from meshmode.discretization import Discretization from meshmode.discretization.poly_element import ( - InterpolatoryQuadratureSimplexGroupFactory) + InterpolatoryQuadratureSimplexGroupFactory, + ) group_factory = InterpolatoryQuadratureSimplexGroupFactory(order=order) discr = Discretization(actx, mesh, group_factory) @@ -92,8 +93,18 @@ def main(): # set up dirichlet laplace problem in fd and solve from firedrake import ( - Constant, DirichletBC, Function, FunctionSpace, TestFunction, TrialFunction, - dx, grad, inner, project, solve) + Constant, + DirichletBC, + Function, + FunctionSpace, + TestFunction, + TrialFunction, + dx, + grad, + inner, + project, + solve, + ) # because it's easier to write down the variational problem, # we're going to project from our "DG" space diff --git a/meshmode/array_context.py b/meshmode/array_context.py index 731fd0609b921f6dcd980c6393e5b675e111055b..8b749e8de1fa833a113e055be8232ddc4ca987a4 100644 --- a/meshmode/array_context.py +++ b/meshmode/array_context.py @@ -30,10 +30,13 @@ from warnings import warn from arraycontext import ( PyOpenCLArrayContext as PyOpenCLArrayContextBase, - PytatoPyOpenCLArrayContext as PytatoPyOpenCLArrayContextBase) + PytatoPyOpenCLArrayContext as PytatoPyOpenCLArrayContextBase, +) from arraycontext.pytest import ( _PytestPyOpenCLArrayContextFactoryWithClass, - _PytestPytatoPyOpenCLArrayContextFactory, register_pytest_array_context_factory) + _PytestPytatoPyOpenCLArrayContextFactory, + register_pytest_array_context_factory, +) def thaw(actx, ary): @@ -157,7 +160,9 @@ def _transform_loopy_inner(t_unit): # {{{ element/dof iname tag from meshmode.transform_metadata import ( - ConcurrentDOFInameTag, ConcurrentElementInameTag) + ConcurrentDOFInameTag, + ConcurrentElementInameTag, + ) el_inames = [iname.name for iname in default_ep.inames.values() if ConcurrentElementInameTag() in iname.tags] diff --git a/meshmode/discretization/__init__.py b/meshmode/discretization/__init__.py index ba8df8dd59e93a2bcbd5bd08bbb029f12746d5cc..db1b8f474404cec61fd9ee2395953a989f130f05 100644 --- a/meshmode/discretization/__init__.py +++ b/meshmode/discretization/__init__.py @@ -38,8 +38,12 @@ from pytools.obj_array import make_obj_array from meshmode.dof_array import DOFArray as _DOFArray from meshmode.mesh import Mesh as _Mesh, MeshElementGroup as _MeshElementGroup from meshmode.transform_metadata import ( - ConcurrentDOFInameTag, ConcurrentElementInameTag, DiscretizationDOFAxisTag, - DiscretizationElementAxisTag, FirstAxisIsElementsTag) + ConcurrentDOFInameTag, + ConcurrentElementInameTag, + DiscretizationDOFAxisTag, + DiscretizationElementAxisTag, + FirstAxisIsElementsTag, +) __doc__ = """ diff --git a/meshmode/discretization/connection/__init__.py b/meshmode/discretization/connection/__init__.py index 00fa51eae05206779c08e7fbf49ded6f20a49c71..2d08e574fa79cd3794ef6fb85e184acbab151237 100644 --- a/meshmode/discretization/connection/__init__.py +++ b/meshmode/discretization/connection/__init__.py @@ -28,20 +28,33 @@ import logging from arraycontext import ArrayContext from meshmode.discretization.connection.chained import ( - ChainedDiscretizationConnection, flatten_chained_connection) + ChainedDiscretizationConnection, + flatten_chained_connection, +) from meshmode.discretization.connection.direct import ( - DirectDiscretizationConnection, DiscretizationConnection, - DiscretizationConnectionElementGroup, IdentityDiscretizationConnection, - InterpolationBatch) + DirectDiscretizationConnection, + DiscretizationConnection, + DiscretizationConnectionElementGroup, + IdentityDiscretizationConnection, + InterpolationBatch, +) from meshmode.discretization.connection.face import ( - FACE_RESTR_ALL, FACE_RESTR_INTERIOR, make_face_restriction, - make_face_to_all_faces_embedding) + FACE_RESTR_ALL, + FACE_RESTR_INTERIOR, + make_face_restriction, + make_face_to_all_faces_embedding, +) from meshmode.discretization.connection.modal import ( - ModalToNodalDiscretizationConnection, NodalToModalDiscretizationConnection) + ModalToNodalDiscretizationConnection, + NodalToModalDiscretizationConnection, +) from meshmode.discretization.connection.opposite_face import ( - make_opposite_face_connection, make_partition_connection) + make_opposite_face_connection, + make_partition_connection, +) from meshmode.discretization.connection.projection import ( - L2ProjectionInverseDiscretizationConnection) + L2ProjectionInverseDiscretizationConnection, +) from meshmode.discretization.connection.refinement import make_refinement_connection from meshmode.discretization.connection.same_mesh import make_same_mesh_connection diff --git a/meshmode/discretization/connection/chained.py b/meshmode/discretization/connection/chained.py index 79dea7cbd4a453e8bdb80d8b1b720726428751ce..51ef4f24ce4c3d2d21da3cefd1ad9dbcb8f004e4 100644 --- a/meshmode/discretization/connection/chained.py +++ b/meshmode/discretization/connection/chained.py @@ -196,8 +196,11 @@ def flatten_chained_connection(actx, connection): :class:`~meshmode.discretization.connection.DirectDiscretizationConnection`. """ from meshmode.discretization.connection import ( - DirectDiscretizationConnection, DiscretizationConnectionElementGroup, - IdentityDiscretizationConnection, make_same_mesh_connection) + DirectDiscretizationConnection, + DiscretizationConnectionElementGroup, + IdentityDiscretizationConnection, + make_same_mesh_connection, + ) if not hasattr(connection, "connections"): return connection @@ -283,7 +286,9 @@ def make_full_resample_matrix(actx, connection): `(connection.from_discr.ndofs, connection.to_discr.ndofs)`. """ from meshmode.discretization.connection.direct import ( - DirectDiscretizationConnection, make_direct_full_resample_matrix) + DirectDiscretizationConnection, + make_direct_full_resample_matrix, + ) if isinstance(connection, DirectDiscretizationConnection): return make_direct_full_resample_matrix(actx, connection) diff --git a/meshmode/discretization/connection/direct.py b/meshmode/discretization/connection/direct.py index d466c0d5b36a51aa078fc03dbe6c8319b1de6a9c..ffc3d153167fa6d0838f0a66870b992d9e57f149 100644 --- a/meshmode/discretization/connection/direct.py +++ b/meshmode/discretization/connection/direct.py @@ -28,16 +28,26 @@ import numpy as np import loopy as lp from arraycontext import ( - ArrayContext, ArrayOrContainerT, ArrayT, NotAnArrayContainerError, - deserialize_container, make_loopy_program, serialize_container, tag_axes) + ArrayContext, + ArrayOrContainerT, + ArrayT, + NotAnArrayContainerError, + deserialize_container, + make_loopy_program, + serialize_container, + tag_axes, +) from arraycontext.metadata import NameHint from pytools import keyed_memoize_method, memoize_in, memoize_method from meshmode.discretization import Discretization, ElementGroupBase from meshmode.dof_array import DOFArray from meshmode.transform_metadata import ( - ConcurrentDOFInameTag, ConcurrentElementInameTag, DiscretizationDOFAxisTag, - DiscretizationElementAxisTag) + ConcurrentDOFInameTag, + ConcurrentElementInameTag, + DiscretizationDOFAxisTag, + DiscretizationElementAxisTag, +) def _reshape_and_preserve_tags( diff --git a/meshmode/discretization/connection/face.py b/meshmode/discretization/connection/face.py index 875c3d8daf8298d695193c19029b35bd448d328f..c446e261c4edb8c3c85dcb6b2e381ef16099f38c 100644 --- a/meshmode/discretization/connection/face.py +++ b/meshmode/discretization/connection/face.py @@ -67,8 +67,10 @@ class _ConnectionBatchData: def _build_boundary_connection(actx, vol_discr, bdry_discr, connection_data, per_face_groups): from meshmode.discretization.connection.direct import ( - DirectDiscretizationConnection, DiscretizationConnectionElementGroup, - InterpolationBatch) + DirectDiscretizationConnection, + DiscretizationConnectionElementGroup, + InterpolationBatch, + ) ibdry_grp = 0 batches = [] @@ -408,8 +410,10 @@ def make_face_to_all_faces_embedding(actx, faces_connection, all_faces_discr, "same number of groups") from meshmode.discretization.connection import ( - DirectDiscretizationConnection, DiscretizationConnectionElementGroup, - InterpolationBatch) + DirectDiscretizationConnection, + DiscretizationConnectionElementGroup, + InterpolationBatch, + ) i_faces_grp = 0 diff --git a/meshmode/discretization/connection/modal.py b/meshmode/discretization/connection/modal.py index 3897f8834b040782d754b6fad2fa0d521a98a57c..3b4f80e3b4f51e406386f233fc24fcfb6110414e 100644 --- a/meshmode/discretization/connection/modal.py +++ b/meshmode/discretization/connection/modal.py @@ -28,14 +28,17 @@ import numpy.linalg as la import modepy as mp from arraycontext import ( - NotAnArrayContainerError, deserialize_container, serialize_container, tag_axes) + NotAnArrayContainerError, + deserialize_container, + serialize_container, + tag_axes, +) from pytools import keyed_memoize_in from meshmode.discretization import InterpolatoryElementGroupBase from meshmode.discretization.connection.direct import DiscretizationConnection from meshmode.discretization.poly_element import QuadratureSimplexElementGroup -from meshmode.transform_metadata import ( - DiscretizationDOFAxisTag, FirstAxisIsElementsTag) +from meshmode.transform_metadata import DiscretizationDOFAxisTag, FirstAxisIsElementsTag class NodalToModalDiscretizationConnection(DiscretizationConnection): diff --git a/meshmode/discretization/connection/opposite_face.py b/meshmode/discretization/connection/opposite_face.py index 5d248a7055d4a9cfbe1869563595485d07b8b892..7e4455a32e1dcbd3b2d6e8f753bd9a52c96381cd 100644 --- a/meshmode/discretization/connection/opposite_face.py +++ b/meshmode/discretization/connection/opposite_face.py @@ -511,7 +511,9 @@ def make_opposite_face_connection(actx, volume_to_bdry_conn): groups[i_tgt_grp].extend(batches) from meshmode.discretization.connection import ( - DirectDiscretizationConnection, DiscretizationConnectionElementGroup) + DirectDiscretizationConnection, + DiscretizationConnectionElementGroup, + ) return DirectDiscretizationConnection( from_discr=bdry_discr, to_discr=bdry_discr, @@ -546,7 +548,9 @@ def make_partition_connection(actx, *, local_bdry_conn, """ from meshmode.discretization.connection import ( - DirectDiscretizationConnection, DiscretizationConnectionElementGroup) + DirectDiscretizationConnection, + DiscretizationConnectionElementGroup, + ) from meshmode.mesh.processing import find_group_indices local_vol_mesh = local_bdry_conn.from_discr.mesh diff --git a/meshmode/discretization/connection/projection.py b/meshmode/discretization/connection/projection.py index 5c13d8daf0b593c148f518396647b717457e68ef..efa143accc2d3da32b186e1bfca3a2ad828b264d 100644 --- a/meshmode/discretization/connection/projection.py +++ b/meshmode/discretization/connection/projection.py @@ -24,14 +24,18 @@ import numpy as np import loopy as lp from arraycontext import ( - NotAnArrayContainerError, deserialize_container, make_loopy_program, - serialize_container) + NotAnArrayContainerError, + deserialize_container, + make_loopy_program, + serialize_container, +) from pytools import keyed_memoize_in, keyed_memoize_method, memoize_in -from meshmode.discretization.connection.chained import ( - ChainedDiscretizationConnection) +from meshmode.discretization.connection.chained import ChainedDiscretizationConnection from meshmode.discretization.connection.direct import ( - DirectDiscretizationConnection, DiscretizationConnection) + DirectDiscretizationConnection, + DiscretizationConnection, +) from meshmode.transform_metadata import FirstAxisIsElementsTag @@ -185,7 +189,9 @@ class L2ProjectionInverseDiscretizationConnection(DiscretizationConnection): name="conn_projection_knl" ) from meshmode.transform_metadata import ( - ConcurrentDOFInameTag, ConcurrentElementInameTag) + ConcurrentDOFInameTag, + ConcurrentElementInameTag, + ) return lp.tag_inames(t_unit, { "iel_init": ConcurrentElementInameTag(), "idof_init": ConcurrentDOFInameTag(), diff --git a/meshmode/discretization/connection/refinement.py b/meshmode/discretization/connection/refinement.py index f6252e323ead1036f147c91ecf96f2994ad6393b..f3cf63ce392ca6c7851a756c856ed4cd0a7be97a 100644 --- a/meshmode/discretization/connection/refinement.py +++ b/meshmode/discretization/connection/refinement.py @@ -129,7 +129,9 @@ def make_refinement_connection(actx, refiner, coarse_discr, group_factory): for discretizing the fine mesh. """ from meshmode.discretization.connection import ( - DirectDiscretizationConnection, DiscretizationConnectionElementGroup) + DirectDiscretizationConnection, + DiscretizationConnectionElementGroup, + ) coarse_mesh = refiner.get_previous_mesh() fine_mesh = refiner.get_current_mesh() diff --git a/meshmode/discretization/connection/same_mesh.py b/meshmode/discretization/connection/same_mesh.py index 9cf2b24b8d789c9986db505d82e887f25a2a2cdd..2b88aa4e6d8d35f9f52be2d5d648de1829edd1c9 100644 --- a/meshmode/discretization/connection/same_mesh.py +++ b/meshmode/discretization/connection/same_mesh.py @@ -29,8 +29,11 @@ from meshmode.transform_metadata import DiscretizationElementAxisTag def make_same_mesh_connection(actx, to_discr, from_discr): from meshmode.discretization.connection.direct import ( - DirectDiscretizationConnection, DiscretizationConnectionElementGroup, - IdentityDiscretizationConnection, InterpolationBatch) + DirectDiscretizationConnection, + DiscretizationConnectionElementGroup, + IdentityDiscretizationConnection, + InterpolationBatch, + ) if from_discr.mesh is not to_discr.mesh: raise ValueError("from_discr and to_discr must be based on " diff --git a/meshmode/discretization/poly_element.py b/meshmode/discretization/poly_element.py index 7860de5a2b1431c27e87b862de548e561995dc06..2d020bbb76bac0d69408ef6972f50d3b9d72d0ec 100644 --- a/meshmode/discretization/poly_element.py +++ b/meshmode/discretization/poly_element.py @@ -34,12 +34,18 @@ from modepy import Basis from pytools import memoize_method, memoize_on_first_arg from meshmode.discretization import ( - ElementGroupBase, ElementGroupFactory, InterpolatoryElementGroupBase, - ModalElementGroupBase, NodalElementGroupBase, NoninterpolatoryElementGroupError) + ElementGroupBase, + ElementGroupFactory, + InterpolatoryElementGroupBase, + ModalElementGroupBase, + NodalElementGroupBase, + NoninterpolatoryElementGroupError, +) from meshmode.mesh import ( MeshElementGroup as _MeshElementGroup, SimplexElementGroup as _MeshSimplexElementGroup, - TensorProductElementGroup as _MeshTensorProductElementGroup) + TensorProductElementGroup as _MeshTensorProductElementGroup, +) __doc__ = """ diff --git a/meshmode/discretization/visualization.py b/meshmode/discretization/visualization.py index c446fceb6273b99b9a572cd434992b83e07b83f5..4d556409ed607bb1eac048dc18ad8e780552967a 100644 --- a/meshmode/discretization/visualization.py +++ b/meshmode/discretization/visualization.py @@ -63,7 +63,10 @@ def separate_by_real_and_imag(names_and_fields, real_only): if isinstance(field, np.ndarray) and field.dtype.char == "O": assert len(field.shape) == 1 from pytools.obj_array import ( - obj_array_imag_copy, obj_array_real_copy, obj_array_vectorize) + obj_array_imag_copy, + obj_array_real_copy, + obj_array_vectorize, + ) if field[0].dtype.kind == "c": if real_only: @@ -430,7 +433,8 @@ class VTKLagrangeConnectivity(VTKConnectivity): if isinstance(grp.mesh_el_group, SimplexElementGroup): from pyvisfile.vtk.vtk_ordering import ( vtk_lagrange_simplex_node_tuples, - vtk_lagrange_simplex_node_tuples_to_permutation) + vtk_lagrange_simplex_node_tuples_to_permutation, + ) node_tuples = vtk_lagrange_simplex_node_tuples( grp.dim, grp.order, vtk_version=vtk_version) @@ -443,7 +447,8 @@ class VTKLagrangeConnectivity(VTKConnectivity): elif isinstance(grp.mesh_el_group, TensorProductElementGroup): from pyvisfile.vtk.vtk_ordering import ( vtk_lagrange_quad_node_tuples, - vtk_lagrange_quad_node_tuples_to_permutation) + vtk_lagrange_quad_node_tuples_to_permutation, + ) node_tuples = vtk_lagrange_quad_node_tuples( grp.dim, grp.order, vtk_version=vtk_version) @@ -743,8 +748,12 @@ class Visualizer: use_high_order = False from pyvisfile.vtk import ( - VF_LIST_OF_COMPONENTS, AppendedDataXMLGenerator, DataArray, - ParallelXMLGenerator, UnstructuredGrid) + VF_LIST_OF_COMPONENTS, + AppendedDataXMLGenerator, + DataArray, + ParallelXMLGenerator, + UnstructuredGrid, + ) nodes = self._vis_nodes_numpy() @@ -1123,7 +1132,11 @@ class Visualizer: # Paraview. from pyvisfile.xdmf import ( - DataArray, GeometryType, Information, XdmfUnstructuredGrid) + DataArray, + GeometryType, + Information, + XdmfUnstructuredGrid, + ) if self.vis_discr.ambient_dim == 2: geometry_type = GeometryType.XY @@ -1202,6 +1215,7 @@ class Visualizer: def show_scalar_in_matplotlib_3d(self, field, **kwargs): import matplotlib.pyplot as plt + # This import also registers the 3D projection. import mpl_toolkits.mplot3d.art3d as art3d @@ -1294,10 +1308,12 @@ def make_visualizer(actx, discr, vis_order=None, else: if force_equidistant: from meshmode.discretization.poly_element import ( - InterpolatoryEquidistantGroupFactory as VisGroupFactory) + InterpolatoryEquidistantGroupFactory as VisGroupFactory, + ) else: from meshmode.discretization.poly_element import ( - InterpolatoryEdgeClusteredGroupFactory as VisGroupFactory) + InterpolatoryEdgeClusteredGroupFactory as VisGroupFactory, + ) vis_discr = discr.copy(actx=actx, group_factory=VisGroupFactory(vis_order)) @@ -1356,8 +1372,12 @@ def write_nodal_adjacency_vtk_file(file_name, mesh, compressor=None, overwrite=False): from pyvisfile.vtk import ( - VF_LIST_OF_COMPONENTS, VTK_LINE, AppendedDataXMLGenerator, DataArray, - UnstructuredGrid) + VF_LIST_OF_COMPONENTS, + VTK_LINE, + AppendedDataXMLGenerator, + DataArray, + UnstructuredGrid, + ) centroids = np.empty( (mesh.ambient_dim, mesh.nelements), diff --git a/meshmode/distributed.py b/meshmode/distributed.py index 18402bf4914399f5107d1fa888f28fa7a7c112d5..df9e1de2829edd55bb9299468a2b8c514039e8c0 100644 --- a/meshmode/distributed.py +++ b/meshmode/distributed.py @@ -45,8 +45,7 @@ from arraycontext import ArrayContext from meshmode.discretization import ElementGroupFactory from meshmode.discretization.connection import DirectDiscretizationConnection -from meshmode.mesh import ( - InteriorAdjacencyGroup, InterPartAdjacencyGroup, Mesh, PartID) +from meshmode.mesh import InteriorAdjacencyGroup, InterPartAdjacencyGroup, Mesh, PartID # This file needs to be importable without mpi4py. So don't be tempted to add diff --git a/meshmode/dof_array.py b/meshmode/dof_array.py index f72a4d0453da7ee093106293d15fcf24eafea717..72184e40d8ca256e73c805a1e622f8ee8b188fe5 100644 --- a/meshmode/dof_array.py +++ b/meshmode/dof_array.py @@ -35,15 +35,23 @@ import numpy as np import loopy as lp from arraycontext import ( - Array, ArrayContext, ArrayOrContainerT, NotAnArrayContainerError, - deserialize_container, make_loopy_program, mapped_over_array_containers, - multimapped_over_array_containers, rec_map_array_container, - rec_multimap_array_container, serialize_container, with_array_context, - with_container_arithmetic) + Array, + ArrayContext, + ArrayOrContainerT, + NotAnArrayContainerError, + deserialize_container, + make_loopy_program, + mapped_over_array_containers, + multimapped_over_array_containers, + rec_map_array_container, + rec_multimap_array_container, + serialize_container, + with_array_context, + with_container_arithmetic, +) from pytools import MovedFunctionDeprecationWrapper, memoize_in, single_valued -from meshmode.transform_metadata import ( - ConcurrentDOFInameTag, ConcurrentElementInameTag) +from meshmode.transform_metadata import ConcurrentDOFInameTag, ConcurrentElementInameTag __doc__ = """ diff --git a/meshmode/interop/firedrake/__init__.py b/meshmode/interop/firedrake/__init__.py index eaf96581440a69631d91f78ee623eb25d785f212..ab34373afffae55a736c9de766e98a11b0290348 100644 --- a/meshmode/interop/firedrake/__init__.py +++ b/meshmode/interop/firedrake/__init__.py @@ -22,10 +22,14 @@ THE SOFTWARE. from meshmode.interop.firedrake.connection import ( - FiredrakeConnection, build_connection_from_firedrake, - build_connection_to_firedrake) + FiredrakeConnection, + build_connection_from_firedrake, + build_connection_to_firedrake, +) from meshmode.interop.firedrake.mesh import ( - export_mesh_to_firedrake, import_firedrake_mesh) + export_mesh_to_firedrake, + import_firedrake_mesh, +) __all__ = ["build_connection_from_firedrake", "build_connection_to_firedrake", diff --git a/meshmode/interop/firedrake/connection.py b/meshmode/interop/firedrake/connection.py index 98b7892f5c06f8678337c2deadc3fb303aaffc4c..d11ab07de89657e0021705b4a19e7766f8b0264b 100644 --- a/meshmode/interop/firedrake/connection.py +++ b/meshmode/interop/firedrake/connection.py @@ -34,11 +34,17 @@ from pytools import memoize_method from meshmode.discretization import Discretization, InterpolatoryElementGroupBase from meshmode.discretization.poly_element import ( - ElementGroupFactory, default_simplex_group_factory) + ElementGroupFactory, + default_simplex_group_factory, +) from meshmode.interop.firedrake.mesh import ( - export_mesh_to_firedrake, import_firedrake_mesh) + export_mesh_to_firedrake, + import_firedrake_mesh, +) from meshmode.interop.firedrake.reference_cell import ( - get_affine_reference_simplex_mapping, get_finat_element_unit_nodes) + get_affine_reference_simplex_mapping, + get_finat_element_unit_nodes, +) from meshmode.mesh.processing import get_simplex_element_flip_matrix diff --git a/meshmode/interop/firedrake/mesh.py b/meshmode/interop/firedrake/mesh.py index 736c30a4828a23c62582b68a3cb374ac718b7823..ada0fff57d7659f5d8f18057249295c99d0aaf7a 100644 --- a/meshmode/interop/firedrake/mesh.py +++ b/meshmode/interop/firedrake/mesh.py @@ -29,10 +29,19 @@ from modepy import PN, Simplex, basis_for_space, resampling_matrix from pytools import ProcessLogger from meshmode.interop.firedrake.reference_cell import ( - get_affine_reference_simplex_mapping, get_finat_element_unit_nodes) + get_affine_reference_simplex_mapping, + get_finat_element_unit_nodes, +) from meshmode.mesh import ( - BTAG_ALL, BTAG_INDUCED_BOUNDARY, BoundaryAdjacencyGroup, InteriorAdjacencyGroup, - Mesh, NodalAdjacency, SimplexElementGroup, make_mesh) + BTAG_ALL, + BTAG_INDUCED_BOUNDARY, + BoundaryAdjacencyGroup, + InteriorAdjacencyGroup, + Mesh, + NodalAdjacency, + SimplexElementGroup, + make_mesh, +) __doc__ = """ @@ -435,8 +444,7 @@ def _get_firedrake_orientations(fdrake_mesh, unflipped_group, vertices, if gdim == tdim: # If the co-dimension is 0, :mod:`meshmode` has a convenient # function to compute cell orientations - from meshmode.mesh.processing import ( - find_volume_mesh_element_group_orientation) + from meshmode.mesh.processing import find_volume_mesh_element_group_orientation orient = find_volume_mesh_element_group_orientation(vertices, unflipped_group) diff --git a/meshmode/interop/nodal_dg.py b/meshmode/interop/nodal_dg.py index 5afc6270623d9dd946f65bdcabdb515c88ac1620..0891443d533547355aef2ee3c3029b26c0fafdff 100644 --- a/meshmode/interop/nodal_dg.py +++ b/meshmode/interop/nodal_dg.py @@ -158,7 +158,8 @@ class NodalDGContext: from meshmode.discretization import Discretization from meshmode.discretization.poly_element import ( - PolynomialGivenNodesGroupFactory) + PolynomialGivenNodesGroupFactory, + ) return Discretization(actx, mesh, PolynomialGivenNodesGroupFactory(order, unit_nodes)) diff --git a/meshmode/mesh/__init__.py b/meshmode/mesh/__init__.py index 3c2d16df708bf8cbc1eaeb672cad077b0bf0a5fc..eb4f6e7a9c7ae38560f957a1f6584eb45f600343 100644 --- a/meshmode/mesh/__init__.py +++ b/meshmode/mesh/__init__.py @@ -23,8 +23,17 @@ THE SOFTWARE. from abc import ABC, abstractmethod from dataclasses import InitVar, dataclass, field, replace from typing import ( - Any, ClassVar, Hashable, Iterable, Literal, Optional, Sequence, Tuple, Type, - Union) + Any, + ClassVar, + Hashable, + Iterable, + Literal, + Optional, + Sequence, + Tuple, + Type, + Union, +) from warnings import warn import numpy as np @@ -775,8 +784,10 @@ def check_mesh_consistency( some fashion. """ from meshmode import ( - InconsistentAdjacencyError, InconsistentArrayDTypeError, - InconsistentMeshError) + InconsistentAdjacencyError, + InconsistentArrayDTypeError, + InconsistentMeshError, + ) if node_vertex_consistency_tolerance is not False: _test_node_vertex_consistency(mesh, tol=node_vertex_consistency_tolerance) diff --git a/meshmode/mesh/generation.py b/meshmode/mesh/generation.py index 8248672457c1d0913e364d968d4fb6b81ed039de..b9e207c49e63d1664d4b47b43ad6bfd54a7a2652 100644 --- a/meshmode/mesh/generation.py +++ b/meshmode/mesh/generation.py @@ -1390,8 +1390,7 @@ def generate_box_mesh( if any(periodic): from meshmode import AffineMap - from meshmode.mesh.processing import ( - BoundaryPairMapping, glue_mesh_boundaries) + from meshmode.mesh.processing import BoundaryPairMapping, glue_mesh_boundaries bdry_pair_mappings_and_tols = [] for idim in range(dim): if periodic[idim]: @@ -1591,8 +1590,7 @@ def generate_annular_cylinder_slice_mesh( from meshmode.mesh.tools import AffineMap aff_map = AffineMap(matrix, center - matrix @ center) - from meshmode.mesh.processing import ( - BoundaryPairMapping, glue_mesh_boundaries) + from meshmode.mesh.processing import BoundaryPairMapping, glue_mesh_boundaries periodic_mesh = glue_mesh_boundaries( mesh, bdry_pair_mappings_and_tols=[ (BoundaryPairMapping("-theta", "+theta", aff_map), 1e-12)]) diff --git a/meshmode/mesh/io.py b/meshmode/mesh/io.py index 84c0c86393b8d70d1816c088c0cde7785e147774..77dc183697e1431dc6d879c4be216d5cea34dba9 100644 --- a/meshmode/mesh/io.py +++ b/meshmode/mesh/io.py @@ -23,8 +23,14 @@ THE SOFTWARE. import numpy as np from gmsh_interop.reader import ( # noqa: F401 - FileSource, GmshMeshReceiverBase, GmshSimplexElementBase, - GmshTensorProductElementBase, LiteralSource, ScriptSource, ScriptWithFilesSource) + FileSource, + GmshMeshReceiverBase, + GmshSimplexElementBase, + GmshTensorProductElementBase, + LiteralSource, + ScriptSource, + ScriptWithFilesSource, +) from meshmode.mesh import Mesh @@ -152,7 +158,10 @@ class GmshMeshReceiver(GmshMeshReceiverBase): # }}} from meshmode.mesh import ( - SimplexElementGroup, TensorProductElementGroup, make_mesh) + SimplexElementGroup, + TensorProductElementGroup, + make_mesh, + ) bulk_el_types = set() @@ -404,7 +413,9 @@ def from_vertices_and_simplices( raise ValueError("can only fix orientation of volume meshes") from meshmode.mesh.processing import ( - find_volume_mesh_element_group_orientation, flip_element_group) + find_volume_mesh_element_group_orientation, + flip_element_group, + ) orient = find_volume_mesh_element_group_orientation(vertices, grp) grp = flip_element_group(vertices, grp, orient < 0) diff --git a/meshmode/mesh/processing.py b/meshmode/mesh/processing.py index c28877dacb6c2a294028df0c84ba89949563fc97..45ab7557c8afccb9f62abc293bbb23c457ce61a0 100644 --- a/meshmode/mesh/processing.py +++ b/meshmode/mesh/processing.py @@ -25,7 +25,16 @@ THE SOFTWARE. from dataclasses import dataclass, replace from functools import reduce from typing import ( - Callable, Dict, List, Literal, Mapping, Optional, Sequence, Tuple, Union) + Callable, + Dict, + List, + Literal, + Mapping, + Optional, + Sequence, + Tuple, + Union, +) import numpy as np import numpy.linalg as la @@ -33,9 +42,18 @@ import numpy.linalg as la import modepy as mp from meshmode.mesh import ( - BTAG_PARTITION, BoundaryAdjacencyGroup, FacialAdjacencyGroup, - InteriorAdjacencyGroup, InterPartAdjacencyGroup, Mesh, MeshElementGroup, PartID, - TensorProductElementGroup, _FaceIDs, make_mesh) + BTAG_PARTITION, + BoundaryAdjacencyGroup, + FacialAdjacencyGroup, + InteriorAdjacencyGroup, + InterPartAdjacencyGroup, + Mesh, + MeshElementGroup, + PartID, + TensorProductElementGroup, + _FaceIDs, + make_mesh, +) from meshmode.mesh.tools import AffineMap, find_point_permutation diff --git a/meshmode/mesh/refinement/no_adjacency.py b/meshmode/mesh/refinement/no_adjacency.py index 537090db029e1ecdb49dfa6af52b1811f969ac3e..66be874430d580519253d3991bf420c193c19af8 100644 --- a/meshmode/mesh/refinement/no_adjacency.py +++ b/meshmode/mesh/refinement/no_adjacency.py @@ -88,8 +88,10 @@ class RefinerWithoutAdjacency(Refiner): inew_vertex = mesh.nvertices from meshmode.mesh.refinement.tessellate import ( - get_group_midpoints, get_group_tessellated_nodes, - get_group_tessellation_info) + get_group_midpoints, + get_group_tessellated_nodes, + get_group_tessellation_info, + ) for base_element_nr, grp in zip(mesh.base_element_nrs, mesh.groups): el_tess_info = get_group_tessellation_info(grp) diff --git a/meshmode/mesh/refinement/utils.py b/meshmode/mesh/refinement/utils.py index 9188be45a3a1a11f506ad1bbcf7003459f9a5cbe..ce90d9a5f3265492efeb336d869bf546a37d5a52 100644 --- a/meshmode/mesh/refinement/utils.py +++ b/meshmode/mesh/refinement/utils.py @@ -30,7 +30,11 @@ from typing import Optional import numpy as np from meshmode.mesh import ( - Mesh, MeshElementGroup, SimplexElementGroup, TensorProductElementGroup) + Mesh, + MeshElementGroup, + SimplexElementGroup, + TensorProductElementGroup, +) logger = logging.getLogger(__name__) diff --git a/meshmode/mesh/visualization.py b/meshmode/mesh/visualization.py index 6f32de7d15fdeeb4c37dc8adef9609eb758cb94e..49091c9fa96259887e2658b9addc3543940bf567 100644 --- a/meshmode/mesh/visualization.py +++ b/meshmode/mesh/visualization.py @@ -212,8 +212,16 @@ def write_vertex_vtk_file( overwrite: bool = False) -> None: # {{{ create cell_types from pyvisfile.vtk import ( - VF_LIST_OF_COMPONENTS, VTK_HEXAHEDRON, VTK_LINE, VTK_QUAD, VTK_TETRA, - VTK_TRIANGLE, AppendedDataXMLGenerator, DataArray, UnstructuredGrid) + VF_LIST_OF_COMPONENTS, + VTK_HEXAHEDRON, + VTK_LINE, + VTK_QUAD, + VTK_TETRA, + VTK_TRIANGLE, + AppendedDataXMLGenerator, + DataArray, + UnstructuredGrid, + ) from meshmode.mesh import SimplexElementGroup, TensorProductElementGroup @@ -342,7 +350,8 @@ def vtk_visualize_mesh( from meshmode.discretization import Discretization from meshmode.discretization.poly_element import ( - InterpolatoryEdgeClusteredGroupFactory) + InterpolatoryEdgeClusteredGroupFactory, + ) discr = Discretization(actx, mesh, InterpolatoryEdgeClusteredGroupFactory(order)) from meshmode.discretization.visualization import make_visualizer @@ -422,7 +431,8 @@ def visualize_mesh_vertex_resampling_error( from meshmode.discretization import Discretization from meshmode.discretization.poly_element import ( - InterpolatoryEdgeClusteredGroupFactory) + InterpolatoryEdgeClusteredGroupFactory, + ) discr = Discretization(actx, mesh, InterpolatoryEdgeClusteredGroupFactory(1)) from meshmode.discretization.visualization import make_visualizer diff --git a/test/test_array.py b/test/test_array.py index a2908a61294ae96db707fd79f8618d787de72344..7a44226f505836d28d877c86bf4d1b2298e60dc4 100644 --- a/test/test_array.py +++ b/test/test_array.py @@ -27,14 +27,18 @@ import numpy as np import pytest from arraycontext import ( - dataclass_array_container, pytest_generate_tests_for_array_contexts, - with_container_arithmetic) + dataclass_array_container, + pytest_generate_tests_for_array_contexts, + with_container_arithmetic, +) from pytools.obj_array import make_obj_array from pytools.tag import Tag from meshmode import _acf # noqa: F401 from meshmode.array_context import ( - PytestPyOpenCLArrayContextFactory, PytestPytatoPyOpenCLArrayContextFactory) + PytestPyOpenCLArrayContextFactory, + PytestPytatoPyOpenCLArrayContextFactory, +) from meshmode.discretization import Discretization from meshmode.discretization.poly_element import default_simplex_group_factory from meshmode.dof_array import DOFArray, array_context_for_pickling, flat_norm diff --git a/test/test_chained.py b/test/test_chained.py index 9ee486f32a7a60333dab167f52f9edd128bdaa25..b00356c8973b4df07b3f497c1698b669da4cf19c 100644 --- a/test/test_chained.py +++ b/test/test_chained.py @@ -58,8 +58,7 @@ def create_discretization(actx, ndim, else: raise ValueError(f"unknown mesh name: {mesh_name}") elif ndim == 3: - from meshmode.mesh.generation import ( - generate_torus, generate_warped_rect_mesh) + from meshmode.mesh.generation import generate_torus, generate_warped_rect_mesh if mesh_name is None: mesh_name = "torus" @@ -78,7 +77,8 @@ def create_discretization(actx, ndim, # create discretization from meshmode.discretization import Discretization from meshmode.discretization.poly_element import ( - InterpolatoryQuadratureSimplexGroupFactory) + InterpolatoryQuadratureSimplexGroupFactory, + ) discr = Discretization(actx, mesh, InterpolatoryQuadratureSimplexGroupFactory(order)) @@ -88,7 +88,8 @@ def create_discretization(actx, ndim, def create_refined_connection(actx, discr, threshold=0.3): from meshmode.discretization.connection import make_refinement_connection from meshmode.discretization.poly_element import ( - InterpolatoryQuadratureSimplexGroupFactory) + InterpolatoryQuadratureSimplexGroupFactory, + ) from meshmode.mesh.refinement import RefinerWithoutAdjacency flags = np.random.rand(discr.mesh.nelements) < threshold @@ -103,10 +104,10 @@ def create_refined_connection(actx, discr, threshold=0.3): def create_face_connection(actx, discr): - from meshmode.discretization.connection import ( - FACE_RESTR_ALL, make_face_restriction) + from meshmode.discretization.connection import FACE_RESTR_ALL, make_face_restriction from meshmode.discretization.poly_element import ( - InterpolatoryQuadratureSimplexGroupFactory) + InterpolatoryQuadratureSimplexGroupFactory, + ) discr_order = discr.groups[0].order connection = make_face_restriction(actx, discr, @@ -120,8 +121,7 @@ def create_face_connection(actx, discr): @pytest.mark.skip(reason="implementation detail") @pytest.mark.parametrize("ndim", [2, 3]) def test_chained_batch_table(actx_factory, ndim, visualize=False): - from meshmode.discretization.connection.chained import ( - _build_element_lookup_table) + from meshmode.discretization.connection.chained import _build_element_lookup_table actx = actx_factory() @@ -360,11 +360,11 @@ def test_reversed_chained_connection(actx_factory, ndim, mesh_name): conn.to_discr, threshold=threshold) connections.append(conn) - from meshmode.discretization.connection import ( - ChainedDiscretizationConnection) + from meshmode.discretization.connection import ChainedDiscretizationConnection chained = ChainedDiscretizationConnection(connections) from meshmode.discretization.connection import ( - L2ProjectionInverseDiscretizationConnection) + L2ProjectionInverseDiscretizationConnection, + ) reverse = L2ProjectionInverseDiscretizationConnection(chained) # create test vector diff --git a/test/test_connection.py b/test/test_connection.py index dbbd5d2aac062c9efb7d7d24f67a46f57481d74b..08ee8a4e1aaf97f094deb6ddd3c2a26fa2c9ef1e 100644 --- a/test/test_connection.py +++ b/test/test_connection.py @@ -34,9 +34,11 @@ from meshmode.discretization import Discretization from meshmode.discretization.connection import FACE_RESTR_ALL from meshmode.discretization.poly_element import ( LegendreGaussLobattoTensorProductGroupFactory, - PolynomialEquidistantSimplexGroupFactory, PolynomialRecursiveNodesGroupFactory, + PolynomialEquidistantSimplexGroupFactory, + PolynomialRecursiveNodesGroupFactory, PolynomialWarpAndBlend2DRestrictingGroupFactory, - PolynomialWarpAndBlend3DRestrictingGroupFactory) + PolynomialWarpAndBlend3DRestrictingGroupFactory, +) from meshmode.mesh import SimplexElementGroup, TensorProductElementGroup @@ -76,7 +78,9 @@ def test_bdry_restriction_is_permutation(actx_factory, group_factory, dim, order vol_discr = Discretization(actx, mesh, group_factory(order)) from meshmode.discretization.connection import ( - make_face_restriction, make_opposite_face_connection) + make_face_restriction, + make_opposite_face_connection, + ) bdry_connection = make_face_restriction( actx, vol_discr, group_factory(order), FACE_RESTR_ALL) diff --git a/test/test_discretization.py b/test/test_discretization.py index 3422fa3e7ac4fe3f6dce43f7858b979c4aa5f496..8c4361c3cc27525e12354c7f72829408d173a359 100644 --- a/test/test_discretization.py +++ b/test/test_discretization.py @@ -29,7 +29,8 @@ from meshmode import _acf # noqa: F401 from meshmode.array_context import PytestPyOpenCLArrayContextFactory from meshmode.discretization import Discretization from meshmode.discretization.poly_element import ( - InterpolatoryQuadratureSimplexGroupFactory) + InterpolatoryQuadratureSimplexGroupFactory, +) pytest_generate_tests = pytest_generate_tests_for_array_contexts( diff --git a/test/test_firedrake_interop.py b/test/test_firedrake_interop.py index d32419b1cf7075872d7f34466eb9b2183bda4c62..14bbe5943825595828c8a7ef740ab04e9f8e6af3 100644 --- a/test/test_firedrake_interop.py +++ b/test/test_firedrake_interop.py @@ -31,11 +31,14 @@ from meshmode import _acf # noqa: F401 from meshmode.array_context import PytestPyOpenCLArrayContextFactory from meshmode.discretization import Discretization from meshmode.discretization.poly_element import ( - InterpolatoryQuadratureSimplexGroupFactory) + InterpolatoryQuadratureSimplexGroupFactory, +) from meshmode.dof_array import DOFArray from meshmode.interop.firedrake import ( - build_connection_from_firedrake, build_connection_to_firedrake, - import_firedrake_mesh) + build_connection_from_firedrake, + build_connection_to_firedrake, + import_firedrake_mesh, +) from meshmode.mesh import BTAG_ALL, BTAG_INDUCED_BOUNDARY, Mesh, check_bc_coverage @@ -84,8 +87,14 @@ def make_mm_mesh(name: str) -> Mesh: def make_firedrake_mesh(name: str): from firedrake import ( - Function, Mesh, SpatialCoordinate, UnitCubeMesh, UnitIntervalMesh, - UnitSquareMesh, VectorFunctionSpace) + Function, + Mesh, + SpatialCoordinate, + UnitCubeMesh, + UnitIntervalMesh, + UnitSquareMesh, + VectorFunctionSpace, + ) if name == "FiredrakeUnitIntervalMesh": return UnitIntervalMesh(100) @@ -601,8 +610,13 @@ def test_from_fd_idempotency(actx_factory, actx = actx_factory() from firedrake import ( - Function, FunctionSpace, SpatialCoordinate, TensorFunctionSpace, - VectorFunctionSpace, as_tensor) + Function, + FunctionSpace, + SpatialCoordinate, + TensorFunctionSpace, + VectorFunctionSpace, + as_tensor, + ) # Make a function space and a function with unique values at each node fdrake_mesh = make_firedrake_mesh(fdrake_mesh) diff --git a/test/test_mesh.py b/test/test_mesh.py index 23172b6e8649a7c188b14eeef28575850c9ec8af..9f733464001f10281cfcaca93edee4376c8b431f 100644 --- a/test/test_mesh.py +++ b/test/test_mesh.py @@ -40,10 +40,16 @@ import meshmode.mesh.processing as mproc from meshmode import _acf # noqa: F401 from meshmode.array_context import PytestPyOpenCLArrayContextFactory from meshmode.discretization.poly_element import ( - LegendreGaussLobattoTensorProductGroupFactory, default_simplex_group_factory) + LegendreGaussLobattoTensorProductGroupFactory, + default_simplex_group_factory, +) from meshmode.mesh import ( - BoundaryAdjacencyGroup, InteriorAdjacencyGroup, SimplexElementGroup, - TensorProductElementGroup, make_mesh) + BoundaryAdjacencyGroup, + InteriorAdjacencyGroup, + SimplexElementGroup, + TensorProductElementGroup, + make_mesh, +) from meshmode.mesh.tools import AffineMap @@ -888,7 +894,10 @@ def test_box_boundary_tags(dim, nelem, mesh_type, group_cls, visualize=False): pytest.skip("mesh type not supported on tensor product elements") from meshmode.mesh import ( - check_bc_coverage, is_boundary_tag_empty, mesh_has_boundary) + check_bc_coverage, + is_boundary_tag_empty, + mesh_has_boundary, + ) if dim == 1: a = (0,) @@ -1244,8 +1253,7 @@ def test_node_vertex_consistency_check(actx_factory): from meshmode.discretization import Discretization group_factory = default_simplex_group_factory(1, 1) vol_discr = Discretization(actx, vol_mesh, group_factory) - from meshmode.discretization.connection import ( - FACE_RESTR_ALL, make_face_restriction) + from meshmode.discretization.connection import FACE_RESTR_ALL, make_face_restriction make_face_restriction( actx, vol_discr, group_factory, FACE_RESTR_ALL, per_face_groups=False) diff --git a/test/test_meshmode.py b/test/test_meshmode.py index 5be44eec891d65880ab4d7532e651a235ebc9004..ff2fe521f92cd881429be2ca5d862e4714e03d94 100644 --- a/test/test_meshmode.py +++ b/test/test_meshmode.py @@ -33,18 +33,28 @@ from arraycontext import flatten, pytest_generate_tests_for_array_contexts import meshmode.mesh.generation as mgen from meshmode import _acf # noqa: F401 from meshmode.array_context import ( - PytestPyOpenCLArrayContextFactory, PytestPytatoPyOpenCLArrayContextFactory) + PytestPyOpenCLArrayContextFactory, + PytestPytatoPyOpenCLArrayContextFactory, +) from meshmode.discretization.connection import FACE_RESTR_ALL, FACE_RESTR_INTERIOR from meshmode.discretization.poly_element import ( InterpolatoryQuadratureSimplexGroupFactory, LegendreGaussLobattoTensorProductGroupFactory, - PolynomialEquidistantSimplexGroupFactory, PolynomialRecursiveNodesGroupFactory, + PolynomialEquidistantSimplexGroupFactory, + PolynomialRecursiveNodesGroupFactory, PolynomialWarpAndBlend2DRestrictingGroupFactory, - PolynomialWarpAndBlend3DRestrictingGroupFactory, default_simplex_group_factory) + PolynomialWarpAndBlend3DRestrictingGroupFactory, + default_simplex_group_factory, +) from meshmode.dof_array import flat_norm from meshmode.mesh import ( - BTAG_ALL, Mesh, MeshElementGroup, SimplexElementGroup, TensorProductElementGroup, - make_mesh) + BTAG_ALL, + Mesh, + MeshElementGroup, + SimplexElementGroup, + TensorProductElementGroup, + make_mesh, +) logger = logging.getLogger(__name__) @@ -114,7 +124,9 @@ def test_boundary_interpolation(actx_factory, group_factory, boundary_tag, from meshmode.discretization import Discretization from meshmode.discretization.connection import ( - check_connection, make_face_restriction) + check_connection, + make_face_restriction, + ) eoc_rec = EOCRecorder() order = 4 @@ -179,7 +191,8 @@ def test_boundary_interpolation(actx_factory, group_factory, boundary_tag, if mesh_name == "blob" and dim == 2 and mesh.nelements < 500: from meshmode.discretization.connection.direct import ( - make_direct_full_resample_matrix) + make_direct_full_resample_matrix, + ) mat = actx.to_numpy( make_direct_full_resample_matrix(actx, bdry_connection)) bdry_f_2_by_mat = mat.dot(actx.to_numpy(flatten(vol_f, actx))) @@ -233,7 +246,10 @@ def test_all_faces_interpolation(actx_factory, group_factory, from meshmode.discretization import Discretization from meshmode.discretization.connection import ( - check_connection, make_face_restriction, make_face_to_all_faces_embedding) + check_connection, + make_face_restriction, + make_face_to_all_faces_embedding, + ) eoc_rec = EOCRecorder() order = 4 @@ -359,7 +375,10 @@ def test_opposite_face_interpolation(actx_factory, group_factory, from meshmode.discretization import Discretization from meshmode.discretization.connection import ( - check_connection, make_face_restriction, make_opposite_face_connection) + check_connection, + make_face_restriction, + make_opposite_face_connection, + ) eoc_rec = EOCRecorder() order = 5 @@ -954,8 +973,11 @@ def test_mesh_multiple_groups(actx_factory, ambient_dim, visualize=False): # check face restrictions from meshmode.discretization.connection import ( - check_connection, make_face_restriction, make_face_to_all_faces_embedding, - make_opposite_face_connection) + check_connection, + make_face_restriction, + make_face_to_all_faces_embedding, + make_opposite_face_connection, + ) for boundary_tag in [BTAG_ALL, FACE_RESTR_INTERIOR, FACE_RESTR_ALL]: conn = make_face_restriction(actx, discr, group_factory=grp_factory, diff --git a/test/test_modal.py b/test/test_modal.py index 4289f02efa2b8384d9b81353fd532849c050a1d5..c5e39f19a099fdc3e5a8191beed1ff0b8da015f6 100644 --- a/test/test_modal.py +++ b/test/test_modal.py @@ -33,14 +33,20 @@ from meshmode import _acf # noqa: F401 from meshmode.array_context import PytestPyOpenCLArrayContextFactory from meshmode.discretization import Discretization from meshmode.discretization.connection.modal import ( - ModalToNodalDiscretizationConnection, NodalToModalDiscretizationConnection) + ModalToNodalDiscretizationConnection, + NodalToModalDiscretizationConnection, +) from meshmode.discretization.poly_element import ( InterpolatoryQuadratureSimplexGroupFactory, - LegendreGaussLobattoTensorProductGroupFactory, ModalSimplexGroupFactory, - ModalTensorProductGroupFactory, PolynomialEquidistantSimplexGroupFactory, + LegendreGaussLobattoTensorProductGroupFactory, + ModalSimplexGroupFactory, + ModalTensorProductGroupFactory, + PolynomialEquidistantSimplexGroupFactory, PolynomialRecursiveNodesGroupFactory, PolynomialWarpAndBlend2DRestrictingGroupFactory, - PolynomialWarpAndBlend3DRestrictingGroupFactory, QuadratureSimplexGroupFactory) + PolynomialWarpAndBlend3DRestrictingGroupFactory, + QuadratureSimplexGroupFactory, +) from meshmode.dof_array import DOFArray, flat_norm from meshmode.mesh import SimplexElementGroup, TensorProductElementGroup diff --git a/test/test_partition.py b/test/test_partition.py index 142853c39509b4dcec63f49f566901cb76b0ea4a..f26cf098aa90f04e56988fdfc04d827e8781c8c6 100644 --- a/test/test_partition.py +++ b/test/test_partition.py @@ -37,8 +37,11 @@ from meshmode.array_context import PytestPyOpenCLArrayContextFactory from meshmode.discretization.poly_element import default_simplex_group_factory from meshmode.dof_array import flat_norm from meshmode.mesh import ( - BTAG_ALL, BoundaryAdjacencyGroup, InteriorAdjacencyGroup, - InterPartAdjacencyGroup) + BTAG_ALL, + BoundaryAdjacencyGroup, + InteriorAdjacencyGroup, + InterPartAdjacencyGroup, +) logger = logging.getLogger(__name__) @@ -114,7 +117,10 @@ def test_partition_interpolation(actx_factory, dim, mesh_pars, for part_mesh in part_meshes.values()] from meshmode.discretization.connection import ( - check_connection, make_face_restriction, make_partition_connection) + check_connection, + make_face_restriction, + make_partition_connection, + ) from meshmode.mesh import BTAG_PARTITION for i_local_part, i_remote_part in connected_parts: @@ -367,8 +373,7 @@ def count_tags(mesh, tag): def _test_mpi_boundary_swap(dim, order, num_groups): from mpi4py import MPI - from meshmode.distributed import ( - MPIBoundaryCommSetupHelper, membership_list_to_map) + from meshmode.distributed import MPIBoundaryCommSetupHelper, membership_list_to_map from meshmode.mesh.processing import partition_mesh mpi_comm = MPI.COMM_WORLD diff --git a/test/test_refinement.py b/test/test_refinement.py index e262a69f4d714cfd73b800ed10b5145d343eb723..f265d8c3efc5c8ede1851eb86d125b4ed12e5f75 100644 --- a/test/test_refinement.py +++ b/test/test_refinement.py @@ -38,7 +38,8 @@ from meshmode.discretization.poly_element import ( LegendreGaussLobattoTensorProductGroupFactory, PolynomialEquidistantSimplexGroupFactory, PolynomialWarpAndBlend2DRestrictingGroupFactory, - PolynomialWarpAndBlend3DRestrictingGroupFactory) + PolynomialWarpAndBlend3DRestrictingGroupFactory, +) from meshmode.dof_array import flat_norm from meshmode.mesh import SimplexElementGroup, TensorProductElementGroup from meshmode.mesh.refinement import RefinerWithoutAdjacency @@ -143,7 +144,9 @@ def test_refinement_connection( from meshmode.discretization import Discretization from meshmode.discretization.connection import ( - check_connection, make_refinement_connection) + check_connection, + make_refinement_connection, + ) eoc_rec = EOCRecorder() for mesh_par in mesh_pars: diff --git a/test/test_visualization.py b/test/test_visualization.py index 0d7a435f308b41fe491b2e84e161716cb35ea373..547a401360ddf073e9b6736333b2a51759066995 100644 --- a/test/test_visualization.py +++ b/test/test_visualization.py @@ -36,7 +36,9 @@ from meshmode import _acf # noqa: F401 from meshmode.array_context import PytestPyOpenCLArrayContextFactory from meshmode.discretization.poly_element import ( InterpolatoryQuadratureSimplexGroupFactory, - LegendreGaussLobattoTensorProductGroupFactory, default_simplex_group_factory) + LegendreGaussLobattoTensorProductGroupFactory, + default_simplex_group_factory, +) from meshmode.mesh import SimplexElementGroup, TensorProductElementGroup @@ -323,7 +325,9 @@ def test_vtk_overwrite(actx_factory): InterpolatoryQuadratureSimplexGroupFactory(target_order)) from meshmode.discretization.visualization import ( - make_visualizer, write_nodal_adjacency_vtk_file) + make_visualizer, + write_nodal_adjacency_vtk_file, + ) from meshmode.mesh.visualization import write_vertex_vtk_file vis = make_visualizer(actx, discr, 1)