JoePfeiffer
5b18f73da0
Consider shoulders in moment of inertia calculations
2023-12-19 09:02:23 -07:00
JoePfeiffer
b5b3ac2b3d
Create Transition::calculateProperties() to update component properties as needed instead of recalculating for shoulders every time they're called.
2023-12-13 09:57:35 -07:00
JoePfeiffer
4dd2c3a86a
Update unit tests for SymmetricComponent. This is another pretty big rewrite -- the old code had a lot of references to numbers transcribed from an unnamed 2D CAD package, and also expected values that were just presented without derivation. New code has the trig functions to calculate the numbers, has helper functios for the comparisons, and puts a much tighter bound on results.
2023-12-13 09:12:21 -07:00
JoePfeiffer
9f13635357
Moved calculation of all body tube properties into BodyTube instead of punting some to SymmetricComponent. This is both a little faster and will let me compare the results from the two in unit tests.
2023-12-13 08:42:05 -07:00
JoePfeiffer
3e1341271c
Modified integrate() to use geometry of actual frustums in geometric calculations instead of cylinder approximations. This turned into a pretty complete rewrite of integrate(), and the creation of several helper functions.
...
Changed the name of integrate() to calculateProperties() to better express the purpose rather than the method of calculation. It's looking forward to a future PR when I'll be modifying BodyTube to use SymmetricComponent's variable caching.
2023-12-13 08:41:11 -07:00
JoePfeiffer
e92e2bc3a9
Instead of incrementing through the slices of the component, multiply to recalculate each slice (from some comments in the code I suspect there were some problems with floating point error accumulating).
...
Increase the number of divisions to 128, so division is just an exponent change and won't cause floating point error
a little tidying
2023-11-22 11:32:32 -07:00
JoePfeiffer
ff6b23f366
merge integrateInertiaVolume() into integrate()
2023-11-21 16:40:57 -07:00
JoePfeiffer
4b1c6a4f4b
eliminate SymmetricComponent::integrateInertiaSurface()
...
Previously, the code calculated the volume of a component, and if that volume was too small calculated its moments of inertia based on the surface instead of the volume. The decision wasn't based on the thickness of the shell (which might have made sense to me), it was the actual volume. The result is any really small component had its moments of inertia calculated using this surface method, no matter how "solid" the object was.
The cause of #2403 was that this method was used to calculate the moments of inertia in the .ork that failed, but the actual CG was used in the parallel axis theorem. This put the CG in a different place than a "surface CG" would have, so the longitudinal moment of inertia ended up less than 0 triggering the crash.
Now, if a component is so small that's volume is 0 it is assumed its contribution to moment of inertia must also be negligible, so the moments of inertia are set to 0 in this case.
2023-11-21 16:01:41 -07:00
JoePfeiffer
9fec2af7a8
Use Double.NaN to identify values that haven't been calculated. Spotting uncalculated values by checking for <0 is just asking for trouble down the line.
2023-11-21 15:54:35 -07:00
JoePfeiffer
6a5a298097
Add times to some of the events that were currently unspecified. If we end up getting spurious failures we can take them back out.
2023-11-18 07:04:18 -07:00
SiboVG
c0c00dd6c3
Merge unstable
2023-11-17 23:29:05 +01:00
SiboVG
06ca16724d
Merge remote-tracking branch 'origin/unstable' into unstable
2023-11-17 23:22:35 +01:00
SiboVG
d838157209
Only support Java 17
2023-11-17 23:22:25 +01:00
Joe Pfeiffer
9c97a9adb5
Merge pull request #2398 from JoePfeiffer/fix-sim-unit-test
...
Clean up FlightEventsTest unit test
2023-11-17 09:01:43 -07:00
Joe Pfeiffer
d9a3927637
Merge pull request #2346 from JoePfeiffer/inch-surface-roughness
...
Add "inch" units to surface roughness
2023-11-17 09:01:01 -07:00
Joe Pfeiffer
5507ae06e1
Merge pull request #2402 from SiboVG/issue-2388
...
[#2388 ] Sync wind average speed, standard div & turbulence widgets
2023-11-17 08:59:15 -07:00
SiboVG
cdeef020b7
Set wind turbulence to 0 when average speed is 0
2023-11-17 02:08:19 +01:00
SiboVG
846a265965
Update thrust curves
2023-11-15 22:02:31 +01:00
JoePfeiffer
e5554e0f1d
oops, left some commented out code in there
2023-11-15 11:48:33 -07:00
JoePfeiffer
b36950651e
clean up FlightEventsTest
2023-11-15 11:45:40 -07:00
Joe Pfeiffer
7fd390e4d3
Merge branch 'openrocket:unstable' into inch-surface-roughness
2023-11-15 11:02:36 -07:00
JoePfeiffer
0c9d646983
Add unit test for stage overrides
2023-11-15 09:22:44 -07:00
JoePfeiffer
c0b0eab4e6
Clean up code for mass and CG overrides
...
For component assemblies, set CG to CG of children when overriding mass
Fix handling of "override for children"
2023-11-15 09:13:09 -07:00
JoePfeiffer
98562bcfa7
Fix comments regarding mass and CG overrides
2023-11-15 07:09:20 -07:00
SiboVG
94c2c1ef38
Major refactor of simulation options UI
2023-11-15 04:41:31 +01:00
SiboVG
6ca19a960e
Merge remote-tracking branch 'origin/unstable' into unstable
2023-11-04 16:20:13 +01:00
SiboVG
c817148feb
Update installers for 23.09
2023-11-04 16:20:06 +01:00
Joe Pfeiffer
2e599f18e0
Merge branch 'openrocket:unstable' into inch-surface-roughness
2023-10-26 15:31:06 -06:00
JoePfeiffer
01f1dd1dc6
Avoid divide by 0 in TubeCalc when velocity is 0 by setting CD to 0 in this case.
2023-10-26 14:06:42 -06:00
Sibo Van Gool
e46c0bec2b
Merge pull request #2379 from SiboVG/issue-2378
...
Include radius clamping in clamping exclude
2023-10-21 01:42:44 +02:00
SiboVG
10c4d3da82
Include radius clamping in clamping exclude
2023-10-21 01:42:16 +02:00
Joe Pfeiffer
29e3166487
Merge branch 'openrocket:unstable' into inch-surface-roughness
2023-10-17 07:57:14 -06:00
Joe Pfeiffer
d8434e8550
Merge branch 'openrocket:unstable' into fix-2278
2023-10-15 06:42:21 -06:00
JoePfeiffer
8cc06029c5
update unit tests for changed moment of inertia calculations
2023-10-15 06:40:35 -06:00
JoePfeiffer
bcdf32ecba
Don't include shoulders in CG calculation for applying parallel axis theorem to longitudinal inertia, as they aren't included in calculation of longitudinal inertia itself.
2023-10-15 06:20:10 -06:00
JoePfeiffer
141b5ec845
Turned out the unpopulated column also affected CSV export; also, I left a line of debug in
2023-10-12 14:37:21 -06:00
JoePfeiffer
c8949c8a2e
update test to add optimum delay
2023-10-09 10:17:14 -06:00
JoePfeiffer
03a6e614b8
load/save optimum delay time
2023-10-09 10:17:14 -06:00
JoePfeiffer
2759711950
Explicitly store optimum delay in flight data, instead of recalculating from flight data branch of time it's wanted
2023-10-09 10:16:49 -06:00
Joe Pfeiffer
9bdd61f460
Merge branch 'openrocket:unstable' into inch-surface-roughness
2023-09-28 15:59:16 -06:00
SiboVG
0fcb2a0742
Merge branch 'unstable' into other-dark-mode
2023-09-28 18:52:43 +02:00
SiboVG
382600f866
Implement dark component icons
2023-09-28 18:50:35 +02:00
Neil Weinstock
7f84357734
dark mode icon for streamer (large)
2023-09-27 09:39:09 -04:00
Neil Weinstock
6e0c02e74c
Tweaks and cleanup
2023-09-27 09:05:22 -04:00
Neil Weinstock
9ec4c97893
More small dark-mode icons
2023-09-27 08:46:43 -04:00
Neil Weinstock
1c14aec040
dark mode small parachute icon tweak
2023-09-26 20:44:51 -04:00
Neil Weinstock
7372e3671a
dark mode icons for mass object
2023-09-26 20:41:22 -04:00
Neil Weinstock
2af7214ecc
Updated large tubefin icon again
2023-09-26 20:39:37 -04:00
Neil Weinstock
e668c7b183
dark mode icons for shock cord
2023-09-26 10:35:19 -04:00
Neil Weinstock
a84b764cf2
dark mode icons for pods
2023-09-26 10:34:41 -04:00