forked from 1b-agent/fieldcraft-upstream
solver, decks: symmetry about an inclined plane (#242)
The symmetry condition takes any plane normal ({"normal": [nx, ny, nz]}).
An inclined one holds n·u = 0 and, at shell, beam and reference point
nodes, the rotations about the two in-plane axes: constraint rows the
implicit elimination already handles, its support forces reported as
reactions. Decks: Abaqus *EQUATION, Nastran MPC sets per subcase, LS-DYNA
*BOUNDARY_SPC in a *DEFINE_COORDINATE_SYSTEM along the normal.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
This commit is contained in:
1 parent
a079e51f9d
commit
ac1037e1af
11 files changed
+1009
-53
No files matched your search
@@ -176,6 +176,19 @@ impl Model {
|
||||
.collect()
|
||||
}
|
||||
|
||||
/// The mesh nodes with rotational degrees of freedom under the model's own sections: those of
|
||||
/// shells and beams, not of plane stress, plane strain or axisymmetric elements.
|
||||
pub fn rotating_nodes(&self) -> BTreeSet<u32> {
|
||||
let planar: BTreeSet<u32> = self
|
||||
.sections
|
||||
.values()
|
||||
.filter(|s| s.kind.extent().is_some())
|
||||
.filter_map(|s| self.resolve_set_partial(&s.set))
|
||||
.flat_map(|r| r.elements)
|
||||
.collect();
|
||||
self.rotational_nodes(|l| planar.contains(&l))
|
||||
}
|
||||
|
||||
fn analyze(&self) -> (Resolved, Vec<Diagnostic>) {
|
||||
let mut d = Diagnostics::default();
|
||||
let mut resolved = Resolved::default();
|
||||
|
||||
Reference in new issue
Block a user