[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