90 lines
2.4 KiB
TOML
90 lines
2.4 KiB
TOML
[package]
|
|
name = "rtx-fea"
|
|
version = "1.0.0"
|
|
edition.workspace = true
|
|
rust-version = "1.92"
|
|
authors = ["RustyTorch++ Team"]
|
|
license = "Apache-2.0"
|
|
description = "Production-ready Finite Element Analysis library with GPU acceleration for RustyTorch++"
|
|
keywords = ["fea", "finite-element", "gpu", "cuda", "metal", "engineering"]
|
|
categories = ["science", "simulation"]
|
|
|
|
[dependencies]
|
|
# Core RTX dependencies (optional for standalone usage)
|
|
rtx-tensor = { workspace = true }
|
|
rtx-memory = { workspace = true, optional = true }
|
|
rtx-kernel = { workspace = true, optional = true }
|
|
|
|
# Essential utilities
|
|
anyhow = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tracing = { workspace = true }
|
|
|
|
# Serialization and configuration
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
|
|
# Math and numerics
|
|
nalgebra = { workspace = true }
|
|
num-complex = { workspace = true }
|
|
rand = { workspace = true }
|
|
|
|
# Collections and indexing
|
|
indexmap = { workspace = true }
|
|
dashmap = { workspace = true }
|
|
|
|
# GPU acceleration with cudarc 0.18.1 (workspace version)
|
|
cudarc = { workspace = true, features = ["std", "driver", "runtime", "nvrtc", "cublas", "cublaslt", "cusparse", "cusolver", "curand"], optional = true }
|
|
|
|
# Concurrency and parallelism
|
|
parking_lot = { workspace = true }
|
|
rayon = { workspace = true }
|
|
|
|
# Async support
|
|
tokio = { workspace = true, optional = true }
|
|
async-trait = { workspace = true, optional = true }
|
|
|
|
# Metal GPU acceleration (macOS only)
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
rtx-metal = { workspace = true, optional = true }
|
|
|
|
[dev-dependencies]
|
|
# Testing and benchmarking
|
|
criterion = { workspace = true, features = ["html_reports"] }
|
|
proptest = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
approx = "0.5"
|
|
|
|
[features]
|
|
# No default GPU - select cuda or metal explicitly
|
|
default = []
|
|
cuda = ["cudarc", "rtx-tensor/cuda"]
|
|
metal = ["rtx-metal"]
|
|
metal4 = ["metal"] # Enable Metal 4 specific features (requires macOS 26+)
|
|
rtx-integration = ["rtx-memory", "rtx-kernel", "cuda"]
|
|
async = ["tokio", "async-trait"]
|
|
|
|
[lib]
|
|
name = "rtx_fea"
|
|
path = "src/lib.rs"
|
|
|
|
[[example]]
|
|
name = "linear_elasticity"
|
|
path = "examples/linear_elasticity.rs"
|
|
|
|
[[example]]
|
|
name = "cantilever_beam"
|
|
path = "examples/cantilever_beam.rs"
|
|
|
|
[[bench]]
|
|
name = "assembly_performance"
|
|
path = "benches/assembly_performance.rs"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "solver_performance"
|
|
path = "benches/solver_performance.rs"
|
|
harness = false
|
|
[lints]
|
|
workspace = true
|