column_block_plan
Stable type · Sparsity and structure
Tier: stable · Kind: type · Topic: Sparsity and structure
| Julia | Python | Rust |
|---|---|---|
ColumnBlockPlan | ColumnBlockPlan | ColumnLines |
Julia
struct ColumnBlockPlan <: FactorizationPlan
ColumnBlockPlan(axis::String, line_length::Int64, block_vars::Vector{String}, pattern::String, kl::Int64, ku::Int64)
ColumnBlockPlan(axis, line_length, block_vars, pattern, kl, ku)
ColumnBlockPlan <: FactorizationPlan
Line-by-line factorization info for a :column_block Jacobian: every
coupling stays within one line along axis, so the matrix is one
(length(block_vars)·line_length)-square block per line. pattern names the
coupling along the line ("dense", "lower", "upper", "banded") and
kl / ku bound it below and above the diagonal, so a solver can pick a
column solver (banded LU, a triangular sweep, dense LU) without looking at
the entries.
Python
class ColumnBlockPlan
ColumnBlockPlan(axis: str, line_length: int, block_vars: list[str], pattern: str, kl: int, ku: int)
Line-by-line factorization info for a "column_block" Jacobian:
every coupling stays within one line along axis, so the matrix is one
(len(block_vars)·line_length)-square block per line. pattern
names the coupling along the line ("dense", "lower",
"upper", "banded") and kl / ku bound it below and above
the diagonal.
Rust
pub struct ColumnLines {
pub axis: String,
pub dim: usize,
pub line_length: i64,
pub block_vars: Vec<String>,
pub kl: i64,
pub ku: i64,
pub pattern: &'static str,
}
The per-line structure of a state Jacobian whose couplings all stay
within one line along an index set (structure.jl column_lines).