forked from 1b-agent/fieldcraft-upstream
Nastran bulk data writer (SOL 101/103) and deck.write steps (M3) (#24)
* Nastran bulk data writer: fixed-format entries, exact large-field reals, SOL 101/103 decks Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm * Nastran writer tests: golden decks, a re-reader of our output, node order against Nastran's conventions Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm * docs: Nastran writer in the roadmap, parity table and deck notes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm * Nastran writer: simplify planning (subcases, one property table), stream cards into the deck, write through the VFS ElementKind::corner_count/is_quadratic and Dofs::bits/from_bits join the model. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm * Nastran joins the shared deck formats; deck.write chooses steps for every format nastran::write_resolved is the FORMATS row; Format::write_steps and with_steps write a subset of steps (a Nastran run is static or frequency steps); problems go through the shared unsupported(). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm --------- Co-authored-by: jyviko <2501648+jyviko@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
14 files changed
+2266
-5
No files matched your search
@@ -32,6 +32,16 @@ impl Dofs {
|
||||
self.0 == 0
|
||||
}
|
||||
|
||||
/// The degrees of freedom as bits: bit `d - 1` for degree of freedom `d`.
|
||||
pub fn bits(self) -> u8 {
|
||||
self.0
|
||||
}
|
||||
|
||||
/// The degrees of freedom of bits (bits above the sixth are ignored).
|
||||
pub fn from_bits(bits: u8) -> Dofs {
|
||||
Dofs(bits & 0b111_111)
|
||||
}
|
||||
|
||||
/// The degrees of freedom in order.
|
||||
pub fn list(self) -> Vec<u8> {
|
||||
(1..=6).filter(|d| self.contains(*d)).collect()
|
||||
|
||||
Reference in new issue
Block a user