Skip to content

Commit beb20f3

Browse files
1-Bart-1ufechner7Copilot
authored
Fix multi tether 2 (#217)
* Fix zoom pan * Add weighted ref origin * Fix plotting * Fix coordinate frames * Fix test * Fix init tether len * Revert to non blend * Fix < n_aero_sections to <= in vsm_refine * Update changelog, bump version * Address remark of Copilot * Potential fix for pull request finding; use pop! instead of popfirst! Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Simplify to only allow root tethers * Improve tether init * Swap names * Fix changelog * Shorten docstring * Fix docs * Fix docs and remove unused functions * Make docs build * Dont keep * Update default manifest for 1.12 * Update default manifest for 1.11 * Display the scene --------- Co-authored-by: Uwe Fechner <fechner@aenarete.eu> Co-authored-by: Uwe Fechner <uwe.fechner.msc@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Uwe Fechner <u.fechner-1@tudelft.nl>
1 parent 7e05482 commit beb20f3

27 files changed

Lines changed: 1962 additions & 981 deletions

CHANGELOG.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,59 @@
11
# CHANGELOG
22

3+
## v0.11.0 01-06-2026
4+
5+
### Breaking
6+
- Tether `init_unstretched_length` (YAML) removed; specifying it errors.
7+
The unstretched rest length is now *derived*: placement is driven by
8+
`init_stretched_length` (the standoff / placed point geometry,
9+
default = geometric) and `init_tether_force` (default 0), and
10+
`len = stretched·(1 − force/unit_stiffness)`.
11+
- `Tether.init_stretched_len`/`init_unstretched_len` are now
12+
`Union{SimFloat,Nothing}` (`init_unstretched_len` is derived); `Tether`
13+
gained `init_tether_force`; the positional length constructor arg
14+
(now the stretched length) is optional. Serialized models must be
15+
rebuilt.
16+
- `VSMWing` `origin_idx`/`origin_ref` replaced by
17+
`origin::WeightedRefPoints` (weighted body-frame origin).
18+
- `update_yaml_from_sys_struct!` and `update_sys_struct_from_yaml!`
19+
removed (unreliable line-based YAML round-tripping, no longer used).
20+
21+
### Added
22+
- `init_tether_force` (YAML / `Tether(...; tether_force)`, default 0):
23+
`reinit!` derives every tether's unstretched `len` from the placed
24+
stretched length, `len = stretched·(1 − force/unit_stiffness)`;
25+
force 0 gives zero tension.
26+
- `init!`/`reinit!` `apply_tether_lengths` kwarg to skip placement.
27+
- `WeightedRefPoints(::AbstractString)`; `yaml_parse_origin` for
28+
weighted origin specs.
29+
- Helpers: `apply_tether_init_forces!`, `tether_unit_stiffness`,
30+
`tether_anchor_free`, `rigid_point_siblings`, `parse_tether_init`,
31+
`tether_ordered_point_idxs`, `tether_downstream_idxs`,
32+
`group_tethers_by_overlap`, `apply_cluster_init_stretched_len!`,
33+
`_wing_log_pos`; `test_tether_init.jl`.
34+
35+
### Changed
36+
- Tether placement honored only on *root* tethers (one endpoint on a
37+
`STATIC`/winch boundary — the fixed anchor, either end); a tether
38+
with neither endpoint anchored is an error. Tethers sharing a
39+
`RIGID_DYNAMICS` wing are treated as one cluster (rigid-body
40+
connectivity). Multi-root clusters placed by the mean displacement of
41+
all roots (length + direction), logging `@info` (gated on `prn`).
42+
- Wing position stored in dedicated `SysState` slots; reads via
43+
`update_from_sysstate!` / `_wing_log_pos` / Makie body-frame arrows
44+
use `wing.pos_w` directly.
45+
- `build_point_to_vsm_point_mapping` takes a `VSMWing`, using
46+
body-frame closest-point distances.
47+
48+
### Fixed
49+
- Makie zoom/pan world-camera save/restore (no view drift); body-frame
50+
zoom distance preserved across mode switches.
51+
- `vsm_refine.jl`: RIGID_DYNAMICS wings always keep their aerodynamic
52+
panel geometry (mesh- or YAML-defined); section rebuilding from
53+
structural points is now PARTICLE_DYNAMICS-only. The 2plate aero
54+
geometry was corrected to match its structural points.
55+
- `get_sys_struct_hash` hashes `wing.origin`.
56+
357
## v0.10.0 30-05-2026
458

559
### Changed
@@ -32,6 +86,12 @@
3286
`kps4_comparison`, `vsm_linearization`, and `sam_tutorial`.
3387

3488
### Fixed
89+
- `init_stretched_len` now works for multi-tether systems. Tethers
90+
sharing downstream structure are placed to a single effective
91+
length (the average of several specified values, with a warning),
92+
and the initial-positioning BFS no longer drags other tethers'
93+
ground anchors — it stops at `STATIC` points and winch points
94+
(which may be `DYNAMIC`).
3595
- `bin/create_sys_image`: fixed a bug that prevented deletion of
3696
stale `.so` files before rebuilding the system image.
3797
- `AUTHORS.md`: corrected contributor entry.

0 commit comments

Comments
 (0)