Metadata-Version: 2.4
Name: mnpbem-base
Version: 0.1.2
Summary: Factory and registry primitives for selecting BEM solvers and excitation operators.
Author-email: GALIH RIDHO UTOMO <g4lihru@students.unnes.ac.id>
License-Expression: GPL-2.0-only
Project-URL: Homepage, https://pypi.org/project/mnpbem-base/
Project-URL: Repository, https://github.com/galihru/mnpbem/tree/main/mnpbem-base
Project-URL: Source, https://github.com/galihru/mnpbem
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.24

# mnpbem-base

[![PyPI version](https://img.shields.io/pypi/v/mnpbem-base.svg)](https://pypi.org/project/mnpbem-base/)
[![Python versions](https://img.shields.io/pypi/pyversions/mnpbem-base.svg)](https://pypi.org/project/mnpbem-base/)
[![Publish mnpbem-base](https://github.com/galihru/mnpbem/actions/workflows/mnpbembase.yml/badge.svg)](https://github.com/galihru/mnpbem/actions/workflows/mnpbembase.yml)

`mnpbem-base` provides registry and factory primitives for selecting solver classes from option constraints.
The release notes are generated directly from this scientific README for traceable package documentation.

## Implemented Formulation
Given a requirement set for a candidate class, the selection score is:

$$
\hat{c}=\arg\max_c\sum_j\mathbf{1}[\text{need}_{c,j}\ \text{is satisfied}]
$$

This mirrors rule-based class dispatch used in MNPBEM-style solver construction.

## Implementation
- Registry logic: `src/mnpbem_base/registry.py`
- Factory entry points: `src/mnpbem_base/factory.py`

## Dependencies
- `numpy>=1.24`

## Installation
```bash
pip install mnpbem-base
```

## Example
Runnable example:
- `examples/basic_usage.py`

Run:
```bash
python examples/basic_usage.py
```

## Author
- GALIH RIDHO UTOMO
- g4lihru@students.unnes.ac.id
