gridoxide 0.1.0

AC power flow and state estimation solver with a sparse Newton-Raphson core
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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"