[package]
edition = "2021"
rust-version = "1.70.0"
name = "spintronics"
version = "0.3.2"
authors = ["COOLJAPAN OÜ (Team KitaSan)"]
build = false
exclude = [
"test_*",
"performance_*",
"*.csv",
"*.vtu",
"*.vtk",
"*.json",
"wasm-demo/pkg/",
"pkg/",
"pkg-bundler/",
"pkg-web/",
"pkg-node/",
".cargo/",
"TODO.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure Rust library for simulating spin dynamics, spin current generation, and conversion phenomena in magnetic and topological materials"
homepage = "https://github.com/cool-japan/spintronics"
documentation = "https://docs.rs/spintronics"
readme = "README.md"
keywords = [
"spintronics",
"magnetism",
"physics",
"simulation",
"materials",
]
categories = [
"science",
"simulation",
"wasm",
]
license = "Apache-2.0"
repository = "https://github.com/cool-japan/spintronics"
[features]
autodiff = []
cuda = []
default = [
"fem",
"scirs2",
"serde",
]
fem = ["scirs2-spatial"]
hdf5 = ["dep:hdf5"]
netcdf = []
parallel = ["rayon"]
python = [
"pyo3",
"numpy",
]
scirs2 = ["scirs2-core"]
serde = [
"dep:serde",
"dep:serde_json",
]
vti = ["dep:base64"]
wasm = [
"wasm-bindgen",
"wasm-bindgen-futures",
"js-sys",
"console_error_panic_hook",
"getrandom",
]
xdmf = ["hdf5"]
zarr = []
[lib]
name = "spintronics"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[example]]
name = "2d_material_spintronics"
path = "examples/2d_material_spintronics.rs"
[[example]]
name = "ac_spin_pumping_battery"
path = "examples/ac_spin_pumping_battery.rs"
[[example]]
name = "active_learning_demo"
path = "examples/active_learning_demo.rs"
required-features = ["autodiff"]
[[example]]
name = "advanced_spintronics"
path = "examples/advanced_spintronics.rs"
required-features = ["scirs2"]
[[example]]
name = "altermagnet_band_structure"
path = "examples/altermagnet_band_structure.rs"
[[example]]
name = "altermagnet_ruo2"
path = "examples/altermagnet_ruo2.rs"
[[example]]
name = "altermagnet_spin_valve"
path = "examples/altermagnet_spin_valve.rs"
[[example]]
name = "autodiff_parameter_fitting"
path = "examples/autodiff_parameter_fitting.rs"
required-features = ["autodiff"]
[[example]]
name = "axion_magnon_photon"
path = "examples/axion_magnon_photon.rs"
[[example]]
name = "backward_volume_magnons"
path = "examples/backward_volume_magnons.rs"
[[example]]
name = "bayesian_opt_materials"
path = "examples/bayesian_opt_materials.rs"
required-features = ["autodiff"]
[[example]]
name = "bife_o3_multiferroic"
path = "examples/bife_o3_multiferroic.rs"
[[example]]
name = "d_orbital_local_moments"
path = "examples/d_orbital_local_moments.rs"
[[example]]
name = "damon_eshbach_nonreciprocity"
path = "examples/damon_eshbach_nonreciprocity.rs"
[[example]]
name = "data_export_formats"
path = "examples/data_export_formats.rs"
[[example]]
name = "diffusion_skyrmion_gen"
path = "examples/diffusion_skyrmion_gen.rs"
required-features = ["autodiff"]
[[example]]
name = "equivariant_nn_demo"
path = "examples/equivariant_nn_demo.rs"
required-features = ["autodiff"]
[[example]]
name = "experimental_validation_demo"
path = "examples/experimental_validation_demo.rs"
[[example]]
name = "fem_micromagnetics"
path = "examples/fem_micromagnetics.rs"
required-features = ["fem"]
[[example]]
name = "fluid_barnett"
path = "examples/fluid_barnett.rs"
[[example]]
name = "frustrated_transport"
path = "examples/frustrated_transport.rs"
[[example]]
name = "gpu_device_demo"
path = "examples/gpu_device_demo.rs"
[[example]]
name = "graded_interface"
path = "examples/graded_interface.rs"
[[example]]
name = "graph_nn_lattice"
path = "examples/graph_nn_lattice.rs"
required-features = ["autodiff"]
[[example]]
name = "heun_adaptive_thermal_llg"
path = "examples/heun_adaptive_thermal_llg.rs"
required-features = ["scirs2"]
[[example]]
name = "hopfion_3d"
path = "examples/hopfion_3d.rs"
[[example]]
name = "hoti_corner_states"
path = "examples/hoti_corner_states.rs"
[[example]]
name = "implicit_midpoint_stiff_demo"
path = "examples/implicit_midpoint_stiff_demo.rs"
[[example]]
name = "kane_mele_qsh"
path = "examples/kane_mele_qsh.rs"
[[example]]
name = "llg_dynamics_visualization"
path = "examples/llg_dynamics_visualization.rs"
[[example]]
name = "magnetoelastic_switching"
path = "examples/magnetoelastic_switching.rs"
[[example]]
name = "magnon_bec"
path = "examples/magnon_bec.rs"
[[example]]
name = "magnon_polariton"
path = "examples/magnon_polariton.rs"
[[example]]
name = "magnon_propagation"
path = "examples/magnon_propagation.rs"
[[example]]
name = "magnon_zero_point"
path = "examples/magnon_zero_point.rs"
[[example]]
name = "magnonic_crystal"
path = "examples/magnonic_crystal.rs"
[[example]]
name = "magnonic_crystal_bandgap"
path = "examples/magnonic_crystal_bandgap.rs"
[[example]]
name = "mech_coupling"
path = "examples/mech_coupling.rs"
[[example]]
name = "nanodisk_modes"
path = "examples/nanodisk_modes.rs"
[[example]]
name = "negf_transport"
path = "examples/negf_transport.rs"
[[example]]
name = "neural_exchange_training"
path = "examples/neural_exchange_training.rs"
required-features = ["autodiff"]
[[example]]
name = "nonlinear_magnon_suhl"
path = "examples/nonlinear_magnon_suhl.rs"
[[example]]
name = "orbital_hall_effect"
path = "examples/orbital_hall_effect.rs"
[[example]]
name = "parallel_magnon_dynamics"
path = "examples/parallel_magnon_dynamics.rs"
[[example]]
name = "pimc_heisenberg_chain"
path = "examples/pimc_heisenberg_chain.rs"
required-features = ["scirs2"]
[[example]]
name = "pinn_llg_solver"
path = "examples/pinn_llg_solver.rs"
required-features = ["autodiff"]
[[example]]
name = "random_anisotropy_disorder"
path = "examples/random_anisotropy_disorder.rs"
[[example]]
name = "reservoir_computing"
path = "examples/reservoir_computing.rs"
[[example]]
name = "rl_sot_switching"
path = "examples/rl_sot_switching.rs"
[[example]]
name = "rvb_triangular_spin_liquid"
path = "examples/rvb_triangular_spin_liquid.rs"
[[example]]
name = "saitoh_2006_ishe"
path = "examples/saitoh_2006_ishe.rs"
[[example]]
name = "simulation_builder"
path = "examples/simulation_builder.rs"
[[example]]
name = "skyrmion_dynamics"
path = "examples/skyrmion_dynamics.rs"
[[example]]
name = "skyrmion_visualization"
path = "examples/skyrmion_visualization.rs"
[[example]]
name = "smr_angular_scan"
path = "examples/smr_angular_scan.rs"
[[example]]
name = "spin_ice_monopoles"
path = "examples/spin_ice_monopoles.rs"
[[example]]
name = "spin_spiral_tbmno3"
path = "examples/spin_spiral_tbmno3.rs"
[[example]]
name = "spin_torque_oscillator"
path = "examples/spin_torque_oscillator.rs"
[[example]]
name = "spin_wave_dispersion"
path = "examples/spin_wave_dispersion.rs"
[[example]]
name = "stno_auto_oscillation"
path = "examples/stno_auto_oscillation.rs"
[[example]]
name = "streaming_simulation"
path = "examples/streaming_simulation.rs"
[[example]]
name = "tavis_cummings_dicke"
path = "examples/tavis_cummings_dicke.rs"
[[example]]
name = "thermal_magnon_transport"
path = "examples/thermal_magnon_transport.rs"
[[example]]
name = "topological_insulator"
path = "examples/topological_insulator.rs"
[[example]]
name = "topological_magnon_haldane"
path = "examples/topological_magnon_haldane.rs"
[[example]]
name = "validation_full_suite"
path = "examples/validation_full_suite.rs"
[[example]]
name = "validation_landmark_suite"
path = "examples/validation_landmark_suite.rs"
[[example]]
name = "variational_magnon_nn"
path = "examples/variational_magnon_nn.rs"
required-features = ["autodiff"]
[[example]]
name = "yig_pt_pumping"
path = "examples/yig_pt_pumping.rs"
[[test]]
name = "property_altermagnet"
path = "tests/property_altermagnet.rs"
[[test]]
name = "property_conservation"
path = "tests/property_conservation.rs"
[[test]]
name = "property_optics_saw"
path = "tests/property_optics_saw.rs"
[[test]]
name = "property_physics"
path = "tests/property_physics.rs"
[[test]]
name = "property_symmetries"
path = "tests/property_symmetries.rs"
[[bench]]
name = "llg_benchmark"
path = "benches/llg_benchmark.rs"
harness = false
[[bench]]
name = "material_benchmark"
path = "benches/material_benchmark.rs"
harness = false
[[bench]]
name = "skyrmion_benchmark"
path = "benches/skyrmion_benchmark.rs"
harness = false
[[bench]]
name = "spinchain_benchmark"
path = "benches/spinchain_benchmark.rs"
harness = false
[[bench]]
name = "vector3_benchmark"
path = "benches/vector3_benchmark.rs"
harness = false
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.console_error_panic_hook]
version = "0.1"
optional = true
[dependencies.getrandom]
version = "0.4"
features = ["wasm_js"]
optional = true
[dependencies.hdf5]
version = "0.8"
optional = true
[dependencies.js-sys]
version = "0.3"
optional = true
[dependencies.numpy]
version = "0.29"
optional = true
[dependencies.pyo3]
version = "0.29"
features = ["extension-module"]
optional = true
[dependencies.rayon]
version = "1.12"
optional = true
[dependencies.scirs2-core]
version = "0.6.0"
features = [
"std",
"array",
"random",
"parallel",
]
optional = true
default-features = false
[dependencies.scirs2-spatial]
version = "0.6.0"
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.wasm-bindgen]
version = "0.2"
optional = true
[dependencies.wasm-bindgen-futures]
version = "0.4"
optional = true
[dev-dependencies.wasm-bindgen-test]
version = "0.3"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.proptest]
version = "1.11"
[target.'cfg(target_arch = "wasm32")'.dev-dependencies.criterion]
version = "0.8"
features = [
"cargo_bench_support",
"plotters",
"html_reports",
]
default-features = false