[package]
edition = "2024"
name = "gridoxide"
version = "0.0.2"
build = "build.rs"
exclude = [
"tests/data/",
"docs/book/",
"scripts/bench/.case-cache/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "AC power flow and state estimation solver with a sparse Newton-Raphson core"
documentation = "https://m-mirz.github.io/gridoxide/"
readme = "README.md"
keywords = [
"power-flow",
"state-estimation",
"newton-raphson",
"sparse",
"energy",
]
categories = [
"science",
"mathematics",
"simulation",
]
license = "Apache-2.0 AND BSD-3-Clause AND LGPL-2.1-or-later"
repository = "https://github.com/m-mirz/gridoxide"
[features]
cgmes = [
"dep:cimdecoder",
"dep:cimstructs",
]
default = []
klu = [
"dep:cc",
"dep:bindgen",
]
klu-dynamic = ["klu"]
pardiso = ["dep:bindgen"]
python = ["dep:pyo3"]
[lib]
name = "gridoxide"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[bin]]
name = "gridoxide"
path = "src/main.rs"
[[example]]
name = "bde_check"
path = "examples/bde_check.rs"
[[example]]
name = "bench_network"
path = "examples/bench_network.rs"
[[example]]
name = "bench_se"
path = "examples/bench_se.rs"
[[example]]
name = "cgmes_microgrid_be_dump"
path = "examples/cgmes_microgrid_be_dump.rs"
required-features = ["cgmes"]
[[example]]
name = "se_converge"
path = "examples/se_converge.rs"
[[example]]
name = "se_profile"
path = "examples/se_profile.rs"
[[test]]
name = "batch_solver_test"
path = "tests/batch_solver_test.rs"
[[test]]
name = "bde_test"
path = "tests/bde_test.rs"
[[test]]
name = "block_jacobian_test"
path = "tests/block_jacobian_test.rs"
[[test]]
name = "branch_flow_test"
path = "tests/branch_flow_test.rs"
[[test]]
name = "cgmes_microgrid_be_test"
path = "tests/cgmes_microgrid_be_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_microgrid_hvdc_test"
path = "tests/cgmes_microgrid_hvdc_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_microgrid_nl_test"
path = "tests/cgmes_microgrid_nl_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_microgrid_type1_test"
path = "tests/cgmes_microgrid_type1_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_microgrid_type2_test"
path = "tests/cgmes_microgrid_type2_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_microgrid_type3_test"
path = "tests/cgmes_microgrid_type3_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_minigrid_test"
path = "tests/cgmes_minigrid_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_powerflow_test"
path = "tests/cgmes_powerflow_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_pst_phase_tap_changer_linear_test"
path = "tests/cgmes_pst_phase_tap_changer_linear_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_pst_phase_tap_changer_table_test"
path = "tests/cgmes_pst_phase_tap_changer_table_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_realgrid_test"
path = "tests/cgmes_realgrid_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_smallgrid_test"
path = "tests/cgmes_smallgrid_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_smoke_test"
path = "tests/cgmes_smoke_test.rs"
required-features = ["cgmes"]
[[test]]
name = "cgmes_svedala_test"
path = "tests/cgmes_svedala_test.rs"
required-features = ["cgmes"]
[[test]]
name = "klu_jacobian_test"
path = "tests/klu_jacobian_test.rs"
required-features = ["klu"]
[[test]]
name = "klu_native_jacobian_test"
path = "tests/klu_native_jacobian_test.rs"
[[test]]
name = "link_test"
path = "tests/link_test.rs"
[[test]]
name = "measurement_residual_test"
path = "tests/measurement_residual_test.rs"
[[test]]
name = "multi_island_test"
path = "tests/multi_island_test.rs"
[[test]]
name = "pardiso_jacobian_test"
path = "tests/pardiso_jacobian_test.rs"
required-features = ["pardiso"]
[[test]]
name = "persistent_solver_test"
path = "tests/persistent_solver_test.rs"
[[test]]
name = "pgm_asym_line_test"
path = "tests/pgm_asym_line_test.rs"
[[test]]
name = "pgm_asym_transformer_test"
path = "tests/pgm_asym_transformer_test.rs"
[[test]]
name = "pgm_component_coverage_test"
path = "tests/pgm_component_coverage_test.rs"
[[test]]
name = "pgm_gen_test"
path = "tests/pgm_gen_test.rs"
[[test]]
name = "pgm_line_test"
path = "tests/pgm_line_test.rs"
[[test]]
name = "pgm_load_test"
path = "tests/pgm_load_test.rs"
[[test]]
name = "pgm_network_test"
path = "tests/pgm_network_test.rs"
[[test]]
name = "pgm_node_test"
path = "tests/pgm_node_test.rs"
[[test]]
name = "pgm_shunt_test"
path = "tests/pgm_shunt_test.rs"
[[test]]
name = "pgm_source_test"
path = "tests/pgm_source_test.rs"
[[test]]
name = "pgm_three_winding_transformer_test"
path = "tests/pgm_three_winding_transformer_test.rs"
[[test]]
name = "pgm_transformer_test"
path = "tests/pgm_transformer_test.rs"
[[test]]
name = "powerflow_test"
path = "tests/powerflow_test.rs"
[[test]]
name = "q_limits_test"
path = "tests/q_limits_test.rs"
[[test]]
name = "se_batch_test"
path = "tests/se_batch_test.rs"
[[test]]
name = "se_three_phase_test"
path = "tests/se_three_phase_test.rs"
[[test]]
name = "state_estimation_test"
path = "tests/state_estimation_test.rs"
[dependencies.cimdecoder]
version = "0.3.0"
optional = true
package = "cimoxide-decoder"
[dependencies.cimstructs]
version = "0.3.0"
optional = true
package = "cimoxide-structs"
[dependencies.faer]
version = "0.24.4"
[dependencies.num-complex]
version = "0.4.6"
features = ["serde"]
[dependencies.pyo3]
version = "0.29.0"
features = ["extension-module"]
optional = true
[dependencies.rayon]
version = "1.12"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[build-dependencies.bindgen]
version = "0.72"
optional = true
[build-dependencies.cc]
version = "1.0"
optional = true