[package]
edition = "2024"
name = "gridoxide"
version = "0.1.0"
build = "build.rs"
exclude = [
"tests/data/",
"editors/",
"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"
[package.metadata.docs.rs]
features = [
"cgmes",
"ucte",
"iidm",
"opf",
"rao",
"dynamics",
"capi",
"python",
]
[features]
capi = ["dep:cbindgen"]
cgmes = ["dep:cimmodel"]
default = []
dynamics = []
iidm = ["dep:quick-xml"]
klu = [
"gridoxide-sparse/klu",
"gridoxide-core/klu",
]
klu-dynamic = [
"klu",
"gridoxide-sparse/klu-dynamic",
]
matpower = []
opf = []
opf-highs = [
"opf",
"dep:bindgen",
]
opf-ipopt = [
"opf",
"dep:bindgen",
]
pardiso = [
"gridoxide-sparse/pardiso",
"gridoxide-core/pardiso",
]
python = [
"dep:pyo3",
"matpower",
]
rao = ["opf"]
smallsignal-arpack = ["dynamics"]
ucte = []
[lib]
name = "gridoxide"
crate-type = [
"cdylib",
"rlib",
"staticlib",
]
path = "src/lib.rs"
[[bin]]
name = "gridoxide"
path = "src/main.rs"
[[example]]
name = "base_mismatch_probe"
path = "examples/base_mismatch_probe.rs"
required-features = ["cgmes"]
[[example]]
name = "bde_check"
path = "examples/bde_check.rs"
[[example]]
name = "bench_contingency"
path = "examples/bench_contingency.rs"
[[example]]
name = "bench_dc"
path = "examples/bench_dc.rs"
[[example]]
name = "bench_network"
path = "examples/bench_network.rs"
[[example]]
name = "bench_node_breaker"
path = "examples/bench_node_breaker.rs"
required-features = ["cgmes"]
[[example]]
name = "bench_se"
path = "examples/bench_se.rs"
[[example]]
name = "cgmes_area_probe"
path = "examples/cgmes_area_probe.rs"
required-features = ["cgmes"]
[[example]]
name = "cgmes_microgrid_be_dump"
path = "examples/cgmes_microgrid_be_dump.rs"
required-features = ["cgmes"]
[[example]]
name = "cpf_probe"
path = "examples/cpf_probe.rs"
[[example]]
name = "dispatch_probe"
path = "examples/dispatch_probe.rs"
required-features = ["cgmes"]
[[example]]
name = "doc_numbers"
path = "examples/doc_numbers.rs"
required-features = [
"rao",
"ucte",
]
[[example]]
name = "dynamics_scale"
path = "examples/dynamics_scale.rs"
required-features = ["dynamics"]
[[example]]
name = "iidm_area_probe"
path = "examples/iidm_area_probe.rs"
required-features = ["iidm"]
[[example]]
name = "iidm_regulation_probe"
path = "examples/iidm_regulation_probe.rs"
required-features = ["iidm"]
[[example]]
name = "klu_scaling_stress"
path = "examples/klu_scaling_stress.rs"
required-features = [
"matpower",
"cgmes",
"klu",
]
[[example]]
name = "pf_profile"
path = "examples/pf_profile.rs"
required-features = ["matpower"]
[[example]]
name = "qv_probe"
path = "examples/qv_probe.rs"
[[example]]
name = "remote_probe"
path = "examples/remote_probe.rs"
required-features = ["cgmes"]
[[example]]
name = "se_converge"
path = "examples/se_converge.rs"
[[example]]
name = "se_profile"
path = "examples/se_profile.rs"
[[example]]
name = "smallsignal_scale"
path = "examples/smallsignal_scale.rs"
required-features = ["dynamics"]
[[example]]
name = "switch_ceiling"
path = "examples/switch_ceiling.rs"
[[example]]
name = "tap_control_probe"
path = "examples/tap_control_probe.rs"
required-features = ["cgmes"]
[[example]]
name = "tap_deadband_probe"
path = "examples/tap_deadband_probe.rs"
required-features = ["cgmes"]
[[example]]
name = "tap_regulation_probe"
path = "examples/tap_regulation_probe.rs"
required-features = ["cgmes"]
[[example]]
name = "ucte_area_probe"
path = "examples/ucte_area_probe.rs"
required-features = ["ucte"]
[[example]]
name = "voltage_control_probe"
path = "examples/voltage_control_probe.rs"
required-features = ["cgmes"]
[[test]]
name = "all"
path = "tests/all.rs"
[dependencies.cimmodel]
version = "0.6.0"
optional = true
package = "cimoxide-model"
[dependencies.faer]
version = "0.24.4"
[dependencies.gridoxide-core]
version = "0.1.0"
[dependencies.gridoxide-sparse]
version = "0.1.0"
[dependencies.num-complex]
version = "0.4.6"
features = ["serde"]
[dependencies.pyo3]
version = "0.29.0"
features = ["extension-module"]
optional = true
[dependencies.quick-xml]
version = "0.37"
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.cbindgen]
version = "0.29"
optional = true
[profile.dev]
debug = "line-tables-only"