-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
64 lines (57 loc) · 1.98 KB
/
Copy pathpyproject.toml
File metadata and controls
64 lines (57 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
[project]
name = "oasis-mcp"
version = "1.1.0"
description = "OASiS — an open-source multi-physics and multi-code framework for verified computer simulations. MCP server connecting LLMs to 8 FEM codes for AI-driven simulation, coupling, and solver development."
requires-python = ">=3.10"
license = {text = "MIT"}
authors = [
{name = "OASiS Contributors"},
]
keywords = ["fem", "mcp", "simulation", "multiphysics", "coupling", "ai-agent"]
classifiers = [
"Development Status :: 4 - Beta",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Physics",
"Programming Language :: Python :: 3",
]
dependencies = [
"mcp[cli]>=1.2.0",
"pyyaml>=6.0",
# numpy capped <2 because pyprecice pins numpy<2; scipy capped <1.16 because
# scipy>=1.16 uses numpy-2-only dtypes (np.long) and requires numpy>=2.0,
# which silently breaks scikit-fem on a numpy-1.x install (dep conflict).
"numpy>=1.24,<2",
"pyvista>=0.43",
"meshio>=5.3",
"h5py>=3.10",
"matplotlib>=3.8",
"scipy>=1.10,<1.16",
# adios2 lets the verification gate scan ADIOS2/.bp output (dolfinx VTXWriter,
# e.g. P2/Taylor-Hood Stokes) for NaN/Inf. Without it the gate cannot read
# .bp and only emits an honesty note, so a NaN-filled .bp could read as
# verified — the SEV-HIGH fabrication gap this closes.
"adios2>=2.10",
]
[project.optional-dependencies]
# Individual solver backends
fenics = ["fenics-dolfinx>=0.8", "gmsh>=4.12"]
ngsolve = ["ngsolve>=6.2"]
skfem = ["scikit-fem>=10.0"]
kratos = ["KratosMultiphysics>=10.0"]
dune = ["dune-fem>=2.10", "mpi4py>=3.0"]
# Coupling infrastructure
precice = ["pyprecice>=3.0"]
# All pip-installable backends
all-solvers = [
"ngsolve>=6.2",
"scikit-fem>=10.0",
"KratosMultiphysics>=10.0",
]
# Development
dev = ["pytest>=7.0", "pytest-asyncio>=0.20"]
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src"]
[build-system]
requires = ["setuptools>=68.0"]
build-backend = "setuptools.build_meta"