Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
84,726 changes: 84,726 additions & 0 deletions .basedpyright/baseline.json

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,23 @@ jobs:
pip install ruff
ruff check

basedpyright:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
-
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: "Main Script"
run: |
curl -L -O https://tiker.net/ci-support-v0
. ./ci-support-v0
build_py_project_in_conda_env
cipip install pytest pyfmmlib scipy scipy-stubs matplotlib
cipip install basedpyright
basedpyright

docs:
name: Documentation
runs-on: ubuntu-latest
Expand Down
40 changes: 40 additions & 0 deletions doc/conf.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from importlib import metadata
from urllib.request import urlopen


_conf_url = \
"https://raw.githubusercontent.com/inducer/sphinxconfig/main/sphinxconfig.py"
with urlopen(_conf_url) as _inf:
Expand Down Expand Up @@ -39,4 +40,43 @@
["py:class", r"TypeAliasForwardRef"],
["py:class", r"arraycontext.typing._UserDefinedArrayContainer"],
["py:class", r"arraycontext.typing._UserDefinedArithArrayContainer"],
["py:class", r"T"],
]


sphinxconfig_missing_reference_aliases = {
# numpy
"NDArray": "obj:numpy.typing.NDArray",
# pytools
"ObjectArrayND": "obj:pytools.obj_array.ObjectArrayND",
# pyopencl
"WaitList": "obj:pyopencl.WaitList",
# pymbolic
"Variable": "class:pymbolic.primitives.Variable",
"Expression": "obj:pymbolic.typing.Expression",
"ArithmeticExpression": "obj:pymbolic.ArithmeticExpression",
"MultiVector": "obj:pymbolic.geometric_algebra.MultiVector",
# arraycontext
"ScalarLike": "obj:arraycontext.ScalarLike",
"ArrayOrContainerOrScalar": "obj:arraycontext.ArrayOrContainerOrScalar",
"PyOpenCLArrayContext": "class:arraycontext.PyOpenCLArrayContext",
# modepy
"mp.Shape": "class:modepy.Shape",
# meshmode
"Discretization": "class:meshmode.discretization.Discretization",
"DOFArray": "class:meshmode.dof_array.DOFArray",
# sumpy
"Kernel": "class:sumpy.kernel.Kernel",
"P2PBase": "class:sumpy.p2p.P2PBase",
"ExpansionFactoryBase": "class:sumpy.expansion.ExpansionFactoryBase",
# pytential
"sym.IntG": "class:pytential.symbolic.primitives.IntG",
"sym.DOFDescriptor": "class:pytential.symbolic.dof_desc.DOFDescriptor",
"Operand": "obj:pytential.symbolic.primitives.Operand",
"QBXForcedLimit": "obj:pytential.symbolic.primitives.QBXForcedLimit",
"TargetOrDiscretization": "obj:pytential.target.TargetOrDiscretization",
}


def setup(app):
app.connect("missing-reference", process_autodoc_missing_reference) # noqa: F821
12 changes: 6 additions & 6 deletions examples/cost.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@
"""Calibrates a cost model and reports on the accuracy."""

import numpy as np
import pyopencl as cl

import pyopencl as cl
from meshmode.array_context import PyOpenCLArrayContext
from pytools import one

from pytential import sym, bind
from pytential import bind, sym
from pytential.qbx.cost import QBXCostModel
from pytools import one


# {{{ global params
Expand All @@ -57,9 +57,9 @@
def starfish_lpot_source(actx, n_arms):
from meshmode.discretization import Discretization
from meshmode.discretization.poly_element import (
InterpolatoryQuadratureSimplexGroupFactory)

from meshmode.mesh.generation import make_curve_mesh, NArmedStarfish
InterpolatoryQuadratureSimplexGroupFactory,
)
from meshmode.mesh.generation import NArmedStarfish, make_curve_mesh

mesh = make_curve_mesh(
NArmedStarfish(n_arms, 0.8),
Expand Down
14 changes: 7 additions & 7 deletions examples/fmm-error.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import numpy as np

from meshmode.array_context import PyOpenCLArrayContext
from meshmode.mesh.generation import ( # noqa
make_curve_mesh, starfish, ellipse, drop)

from meshmode.mesh.generation import drop, ellipse, make_curve_mesh, starfish # noqa
from sumpy.kernel import HelmholtzKernel, LaplaceKernel
from sumpy.visualization import FieldPlotter
from sumpy.kernel import LaplaceKernel, HelmholtzKernel


def main():
Expand Down Expand Up @@ -34,10 +32,12 @@ def main():
np.linspace(0, 1, nelements+1),
target_order)

from pytential.qbx import QBXLayerPotentialSource
from meshmode.discretization import Discretization
from meshmode.discretization.poly_element import \
InterpolatoryQuadratureSimplexGroupFactory
from meshmode.discretization.poly_element import (
InterpolatoryQuadratureSimplexGroupFactory,
)

from pytential.qbx import QBXLayerPotentialSource

pre_density_discr = Discretization(
actx, mesh,
Expand Down
14 changes: 8 additions & 6 deletions examples/helmholtz-dirichlet.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@

from meshmode.array_context import PyOpenCLArrayContext
from meshmode.discretization import Discretization
from meshmode.discretization.poly_element import \
InterpolatoryQuadratureSimplexGroupFactory
from meshmode.discretization.poly_element import (
InterpolatoryQuadratureSimplexGroupFactory,
)

from pytential import bind, sym
from pytential.target import PointsTarget


# {{{ set some constants for use below

nelements = 20
Expand All @@ -31,9 +33,10 @@ def main(mesh_name="ellipse", visualize=False):
queue = cl.CommandQueue(cl_ctx)
actx = PyOpenCLArrayContext(queue)

from meshmode.mesh.generation import ellipse, make_curve_mesh
from functools import partial

from meshmode.mesh.generation import ellipse, make_curve_mesh

if mesh_name == "ellipse":
mesh = make_curve_mesh(
partial(ellipse, 1),
Expand Down Expand Up @@ -71,8 +74,7 @@ def main(mesh_name="ellipse", visualize=False):
actx, mesh,
InterpolatoryQuadratureSimplexGroupFactory(bdry_quad_order))

from pytential.qbx import (
QBXLayerPotentialSource, QBXTargetAssociationFailedError)
from pytential.qbx import QBXLayerPotentialSource, QBXTargetAssociationFailedError
qbx = QBXLayerPotentialSource(
pre_density_discr, fine_order=bdry_ovsmp_quad_order, qbx_order=qbx_order,
fmm_order=fmm_order
Expand All @@ -92,7 +94,7 @@ def main(mesh_name="ellipse", visualize=False):

# {{{ describe bvp

from sumpy.kernel import LaplaceKernel, HelmholtzKernel
from sumpy.kernel import HelmholtzKernel, LaplaceKernel
kernel = HelmholtzKernel(2)

sigma_sym = sym.var("sigma")
Expand Down
9 changes: 5 additions & 4 deletions examples/laplace-dirichlet-3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

from meshmode.array_context import PyOpenCLArrayContext
from meshmode.discretization import Discretization
from meshmode.discretization.poly_element import \
InterpolatoryQuadratureSimplexGroupFactory
from meshmode.discretization.poly_element import (
InterpolatoryQuadratureSimplexGroupFactory,
)

from pytential import bind, sym
from pytential.target import PointsTarget


# {{{ set some constants for use below

nelements = 20
Expand Down Expand Up @@ -64,8 +66,7 @@ def main(mesh_name="torus", visualize=False):
actx, mesh,
InterpolatoryQuadratureSimplexGroupFactory(bdry_quad_order))

from pytential.qbx import (
QBXLayerPotentialSource, QBXTargetAssociationFailedError)
from pytential.qbx import QBXLayerPotentialSource, QBXTargetAssociationFailedError
qbx = QBXLayerPotentialSource(
pre_density_discr, fine_order=bdry_ovsmp_quad_order, qbx_order=qbx_order,
fmm_order=fmm_order,
Expand Down
9 changes: 6 additions & 3 deletions examples/laplace-dirichlet-simple.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

from meshmode.array_context import PyOpenCLArrayContext
from meshmode.discretization import Discretization
from meshmode.discretization.poly_element import \
InterpolatoryQuadratureSimplexGroupFactory
from meshmode.discretization.poly_element import (
InterpolatoryQuadratureSimplexGroupFactory,
)

from pytential import bind, sym
from pytential.target import PointsTarget


# {{{ set some constants for use below

nelements = 20
Expand All @@ -30,9 +32,10 @@ def main(mesh_name="starfish", visualize=False):
queue = cl.CommandQueue(cl_ctx)
actx = PyOpenCLArrayContext(queue)

from meshmode.mesh.generation import ellipse, make_curve_mesh, starfish
from functools import partial

from meshmode.mesh.generation import ellipse, make_curve_mesh, starfish

if mesh_name == "ellipse":
mesh = make_curve_mesh(
partial(ellipse, 1),
Expand Down
14 changes: 8 additions & 6 deletions examples/layerpot-3d.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import numpy as np

from meshmode.array_context import PyOpenCLArrayContext

from sumpy.kernel import HelmholtzKernel, LaplaceKernel, one_kernel_2d # noqa
from sumpy.visualization import FieldPlotter
from sumpy.kernel import one_kernel_2d, LaplaceKernel, HelmholtzKernel # noqa

from pytential import bind, sym


target_order = 5
qbx_order = 3
mode_nr = 4
Expand All @@ -32,7 +32,7 @@ def main(mesh_name="ellipsoid"):
else:
raise ValueError("unknown mesh name: %s" % mesh_name)

from meshmode.mesh.io import generate_gmsh, FileSource
from meshmode.mesh.io import FileSource, generate_gmsh
mesh = generate_gmsh(
FileSource(cad_file_name), 2, order=2,
other_options=["-string", "Mesh.CharacteristicLengthMax = %g;" % h],
Expand All @@ -49,10 +49,12 @@ def main(mesh_name="ellipsoid"):

logger.info("%d elements", mesh.nelements)

from pytential.qbx import QBXLayerPotentialSource
from meshmode.discretization import Discretization
from meshmode.discretization.poly_element import \
InterpolatoryQuadratureSimplexGroupFactory
from meshmode.discretization.poly_element import (
InterpolatoryQuadratureSimplexGroupFactory,
)

from pytential.qbx import QBXLayerPotentialSource

density_discr = Discretization(
actx, mesh, InterpolatoryQuadratureSimplexGroupFactory(target_order))
Expand Down
12 changes: 7 additions & 5 deletions examples/layerpot.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import numpy as np

from meshmode.array_context import PyOpenCLArrayContext
from meshmode.mesh.generation import drop, ellipse, starfish # noqa: F401
from sumpy.kernel import HelmholtzKernel, LaplaceKernel, one_kernel_2d # noqa: F401
from sumpy.visualization import FieldPlotter
from sumpy.kernel import one_kernel_2d, LaplaceKernel, HelmholtzKernel # noqa: F401

from pytential import bind, sym

from meshmode.mesh.generation import starfish, ellipse, drop # noqa: F401

target_order = 16
qbx_order = 3
Expand All @@ -31,10 +31,12 @@ def main(curve_fn=starfish, visualize=True):
np.linspace(0, 1, nelements+1),
target_order)

from pytential.qbx import QBXLayerPotentialSource
from meshmode.discretization import Discretization
from meshmode.discretization.poly_element import \
InterpolatoryQuadratureSimplexGroupFactory
from meshmode.discretization.poly_element import (
InterpolatoryQuadratureSimplexGroupFactory,
)

from pytential.qbx import QBXLayerPotentialSource

pre_density_discr = Discretization(
actx, mesh, InterpolatoryQuadratureSimplexGroupFactory(target_order))
Expand Down
12 changes: 7 additions & 5 deletions examples/scaling-study.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

from meshmode.array_context import PyOpenCLArrayContext
from meshmode.discretization import Discretization
from meshmode.discretization.poly_element import \
InterpolatoryQuadratureSimplexGroupFactory
from meshmode.discretization.poly_element import (
InterpolatoryQuadratureSimplexGroupFactory,
)

from pytential import bind, sym
from pytential.target import PointsTarget


# {{{ set some constants for use below

nelements = 20
Expand All @@ -22,9 +24,10 @@


def make_mesh(nx, ny, visualize=False):
from meshmode.mesh.generation import ellipse, make_curve_mesh
from functools import partial

from meshmode.mesh.generation import ellipse, make_curve_mesh

base_mesh = make_curve_mesh(
partial(ellipse, 1),
np.linspace(0, 1, nelements+1),
Expand Down Expand Up @@ -66,8 +69,7 @@ def timing_run(nx, ny, visualize=False):
actx, mesh,
InterpolatoryQuadratureSimplexGroupFactory(bdry_quad_order))

from pytential.qbx import (
QBXLayerPotentialSource, QBXTargetAssociationFailedError)
from pytential.qbx import QBXLayerPotentialSource, QBXTargetAssociationFailedError
qbx = QBXLayerPotentialSource(
density_discr, fine_order=bdry_ovsmp_quad_order, qbx_order=qbx_order,
fmm_order=fmm_order
Expand Down
Loading
Loading