Metadata-Version: 2.4
Name: mosaictools
Version: 0.2.0
Summary: Surrogate modelling of modal properties using MOSAIC method
Home-page: https://github.com/blazkurent/mosaictools/
Author: Blaž Kurent, Bence Popovics
Author-email: blaz.kurent@fgg.uni-lj.si, popbence@hun-ren.sztaki.hu
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 3 - Alpha
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy<2.0
Requires-Dist: scikit-learn
Requires-Dist: scipy
Requires-Dist: uncertain-variables
Requires-Dist: gPCE-model
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: summary

# mosaictools

A Python package for surrogate modeling of modal properties using the
Mode-Shape-Adapted Input parameter domain Cutting (MOSAIC) method.

## Overview

The package is designed for structural dynamics workflows where mode degeneration effects
(for example mode crossing, veering, or coalescence) make direct surrogate modeling difficult.
MOSAIC addresses this by splitting the parameter domain into modal subdomains and fitting
local generalized Polynomial Chaos Expansion (gPCE) models.

Reference preprint: [MOSAIC method](https://doi.org/10.2139/ssrn.5072693)

## Installation

Install from PyPI:

```bash
pip install mosaictools
```

## Features

- Global multi-mode surrogate model through `Mosaic`.
- Automatic mode-wise subdomain discovery from eigenvector similarity (MAC-based clustering).
- Local frequency and eigenvector approximation in each subdomain.
- Built-in classifier support:
  - `classification_method='svc'` (scikit-learn `SVC`)
  - `classification_method='custom'` (any compatible classifier instance)
- K-fold cross-validation helper and modal error metrics.
- Model persistence to `.msic` files.

## Demo Notebook and Data

A complete demonstration is included in:

- [https://github.com/blazkurent/mosaictools/blob/main/notebooks/mosaic_package_demonstration.ipynb](https://github.com/blazkurent/mosaictools/blob/main/notebooks/mosaic_package_demonstration.ipynb)

The corresponding example arrays are in:

- [https://github.com/blazkurent/mosaictools/tree/main/mosaic_example_data](https://github.com/blazkurent/mosaictools/tree/main/mosaic_example_data)

## License

This project is licensed under the MIT License. See [LICENSE](LICENSE).
