forked from 1b-agent/fieldcraft-upstream
engine: parameter schemas for solve.buckle, buckling steps and imperfections
Fixes the build of develop: #171 crossed with the typed command forms, so BUCKLE lacked its form. SOLVE_BUCKLE follows SOLVE_FREQUENCY; the step form gains the buckle variant and the nonlinear step's imperfection group. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
This commit is contained in:
1 parent
0bb1c2462f
commit
72696614c2
2 files changed
+12
No files matched your search
@@ -439,8 +439,18 @@ const PROCEDURE: Field = variants(
|
||||
),
|
||||
flag("line_search", "Line search").def("false"),
|
||||
json("load_path", "Load path").hint("[[fraction, factor], …]; a ramp when empty"),
|
||||
group(
|
||||
"imperfection",
|
||||
"Imperfection",
|
||||
&[
|
||||
reference("step", "Buckling step", C::Step).req(),
|
||||
int("mode", "Mode", 1, 100_000).req().def("1"),
|
||||
num("scale", "Largest component", D::Length).req(),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
variant("buckle", "Buckling", &[int("modes", "Modes", 1, 100_000).req().def("4"), num("shift", "Shift", D::None)]),
|
||||
variant(
|
||||
"frequency",
|
||||
"Frequency",
|
||||
@@ -803,6 +813,7 @@ pub const SOLVE_FREQUENCY: &[Field] = &[
|
||||
int("max_iterations", "Max Lanczos vectors", 1, 3000).hint("3000"),
|
||||
THREADS,
|
||||
];
|
||||
pub const SOLVE_BUCKLE: &[Field] = &[STEP, MAX_DOFS, MAX_FACTOR, int("max_iterations", "Max Lanczos vectors", 1, 3000).hint("3000"), THREADS];
|
||||
pub const SOLVE_EXPLICIT: &[Field] = &[
|
||||
STEP,
|
||||
MAX_DOFS,
|
||||
|
||||
@@ -64,6 +64,7 @@ pub const BUCKLE: CommandSpec = CommandSpec {
|
||||
id: "solve.buckle",
|
||||
label: "Solve Buckling Step",
|
||||
params: r#"{"step": "Buckle", "max_dofs": 6000000, "max_factor_entries": 400000000, "max_iterations": 3000, "threads": 8} — linear buckling of a buckling step (the only one when `step` is left out): the step's loads as a linear preload, then the lowest load factors λ with (K + λ K_σ) φ = 0 and their mode shapes (largest component 1), or those above the step's shift (whose LDLᵀ factor counts the load factors below it); negative load factors found are reported; the result stays in the session and its modes display like frequency modes; `threads` as for solve.static"#,
|
||||
form: Some(super::forms::SOLVE_BUCKLE),
|
||||
kind: CommandKind::Model,
|
||||
run: run_buckle,
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user