MCPcopy Index your code
hub / github.com/bempp/bempp-rs

github.com/bempp/bempp-rs @v0.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.2.0 ↗ · + Follow
418 symbols 1,008 edges 61 files 154 documented · 37%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Bempp-rs

Bempp-rs is an open-source boundary element library written in Rust that can be used to assemble all the standard integral kernels for Laplace and Helmholtz problems.

Using bempp-rs

Rust

You can use the latest release of bempp by adding the following to [dependencies] section of your Cargo.toml file:

bempp = "0.2.0"

Python

You can install the latest release of bempp by running:

pip3 install bempp-rs

Documentation

The latest documentation of the main branch of this repo is available at bempp.github.io/bempp-rs/.

Testing

The functionality of the library can be tested by running:

cargo test

Examples

Examples of use can be found in the examples folder.

Getting help

Errors in the library should be added to the GitHub issue tracker.

Questions about the library and its use can be asked on the Bempp Discourse.

Licence

Bempp-rs is licensed under a BSD 3-Clause licence. Full text of the licence can be found here.

The *.txt files in the folder simplex_rules are taken from the electronic supplemental material of the paper [1], which is licensed under a CC BY 4.0 license.

References

[1] F. D. Witherden, P.E. Vincent, On the identification of symmetric quadrature rules for finite element methods, Computers & Mathematics with Applications 69 (2015), 1232-1241, doi.org/10.1016/j.camwa.2015.03.017.

Extension points exported contracts — how you extend this code

BoundaryIntegrand (Interface)
(no doc) [7 implementers]
src/traits/assembly/boundary/integrands.rs
NumericalQuadratureGenerator (Interface)
A trait for obtaining a numerical quadrature rule. Depending on a specified number of points a `NumericalQuadratureDefin
src/quadrature/types.rs
FunctionSpace (Interface)
A function space [3 implementers]
src/traits/function.rs
SingularQuadratureGenerator (Interface)
A trait for singular quadrature rules. These are rules that depend on the connectivity information between two cells. So
src/quadrature/types.rs
Access1D (Interface)
1D access [2 implementers]
src/traits/assembly/boundary/integrands.rs
CellPairAssembler (Interface)
(no doc) [3 implementers]
src/traits/assembly/boundary.rs
Access2D (Interface)
2D access [1 implementers]
src/traits/assembly/boundary/integrands.rs

Core symbols most depended-on inside this repo

global_size
called by 48
src/function/function_space/serial.rs
quadrature_degree
called by 48
src/assembly/boundary/assemblers.rs
singular_quadrature_degree
called by 32
src/assembly/boundary/assemblers.rs
get
called by 28
src/traits/assembly/boundary/integrands.rs
set_quadrature_degree
called by 26
src/assembly/boundary/assemblers.rs
set_batch_size
called by 25
src/assembly/boundary/assemblers.rs
batch_size
called by 24
src/assembly/boundary/assemblers.rs
function_space
called by 19
python/bempp/function_space.py

Shape

Function 196
Method 158
Class 41
Interface 16
Enum 7

Languages

Rust84%
Python16%

Modules by API surface

src/bindings.rs92 symbols
src/assembly/boundary/assemblers.rs28 symbols
python/bempp/assembly/boundary.py20 symbols
src/function/function_space/serial.rs18 symbols
src/traits/assembly/boundary/integrands.rs16 symbols
src/function/function_space/parallel.rs15 symbols
python/bempp/function_space.py15 symbols
tests/compare_to_bempp_cl.rs13 symbols
python/bempp/assembly/potential.py13 symbols
src/function/function_space/common.rs12 symbols
src/assembly/potential/assemblers.rs11 symbols
src/assembly/common.rs11 symbols

For agents

$ claude mcp add bempp-rs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact