1956 Commits

Author SHA1 Message Date
SiboVG
a9dbc85a7e
Merge pull request #1282 from JoePfeiffer/generalize-automatic-tube-fin-radius
generalize getOuterRadius() so automatic radius tubes touch for number of tubes greater than 2 (ie whenever possible)
2022-04-19 17:39:42 +02:00
SiboVG
1fd4dffd6a
Merge pull request #1280 from JoePfeiffer/refactor-friction-drag
Refactor friction drag
2022-04-19 17:36:52 +02:00
JoePfeiffer
3ef3bdcbab Fix typo in FinSetCalc 2022-04-15 17:04:36 -06:00
hcraigmiller
736b1c1193 [Fixes Issue #1292] Calculates per fin mass when splitting a set of fins with a mass override.
If a set of fins has an overriden mass, then, if the set is split into individual fins, the overridden mass is divided by the number of fins in the set and the quotient is set as the mass override for each individual fin.
2022-04-14 03:05:29 -07:00
JoePfeiffer
45e0f40e1e Merge branch 'unstable' into refactor-friction-drag 2022-04-13 16:49:26 -06:00
JoePfeiffer
e8ae279dd3 Instead of getTubesTouching() returning a boolean telling whether tubes are touching, use getTubeSeparation() returning the actual separation between tubes. This'll work just as well for the current effort, and will be more useful when we consider tubes with separation. 2022-04-13 14:11:15 -06:00
Joe Pfeiffer
f0d7566690
Merge branch 'openrocket:unstable' into generalize-automatic-tube-fin-radius 2022-04-13 11:58:43 -06:00
JoePfeiffer
6f0a6f4127 Refer to drag coefficient consistently as CD 2022-04-13 10:22:30 -06:00
JoePfeiffer
a25cb8355e generalize getOuterRadius() to set radius so tubes touch for number of tubes greater than 2 (ie whenever possible)
create getTubesTouching() method to determine whether tubes are touching (will also return true if they overlap)

fix several places where outerRadius was used instead of getOuterRadius()
2022-04-06 10:49:49 -06:00
JoePfeiffer
632b48f8df Create RocketComponentCalc::calculateFrictionCD()
Move actual friction CD calculation code into subclasses of RocketComponentCalc()

LaunchLugCalc adds so little wetted area it isn't worth bothering with, so isn't calculated (wasn't calculated before, either)

TubeFinSetCalc also doesn't calculate it; that's coming next.
2022-04-05 19:30:10 -06:00
JoePfeiffer
56949560c4 Move component-level calculations out of instance loop 2022-04-05 17:00:19 -06:00
JoePfeiffer
5c62ad725a move Reynolds number and friction coefficient to separate methods for readability 2022-04-05 16:47:15 -06:00
JoePfeiffer
4fd3f26c9e Refer to drag coefficient consistently as CD 2022-03-31 16:04:05 -06:00
JoePfeiffer
567fe568cb Allow execution with Java 17 2022-03-30 09:14:20 -06:00
JoePfeiffer
66349d5996 Merge branch 'unstable' into update-version 2022-03-25 12:36:45 -06:00
JoePfeiffer
6dca84ebbf update version numbers in build.properties and install4j config 2022-03-25 12:34:56 -06:00
SiboVG
f595b4f1c6 Update motors 2022-03-24 12:45:05 +01:00
SiboVG
b1067b6e48
Merge pull request #1253 from RemingtonHolder/unstable
Adds Ability To Export Simulation Graph/Chart As PNG
2022-03-22 03:38:33 +01:00
Remington Holder
2d5d1b3eca Changes "Save As PNG" to "Export Image"
- Change improves application uniformity
2022-03-20 22:08:03 -04:00
Remington Holder
0a45df5167 (Minor) Adds Newline For Code Readability 2022-03-20 21:49:39 -04:00
Remington Holder
670455fb2d Formats Comments & Makes "Save As Image" Translatable 2022-03-20 21:39:26 -04:00
Remington Holder
c73a41071a Various Small Updates To PNG Chart Export
- Creates PNG file filter
- Adds new file filter to translation file
- Makes Exported Chart's Width & Height as it is displayed
- Changes Button From Print Icon to "Save As Image" text
2022-03-20 20:38:20 -04:00
SiboVG
57ffff40a8
Merge pull request #1241 from JoePfeiffer/fix-1229
Process entire part tree when finding active contexts
2022-03-21 00:58:43 +01:00
JoePfeiffer
6a826d54b9 Get correct fin span when last point in shape is loewr than first point.
Note that the lowest point on the fin is guaranteed to be either the first point which is at (0, 0) or the last point, which will have a y coordinate of 0 if on a body tube, greater than 0 if on an increasing transition, or less than 0 on a decreasing transition (boattail).
2022-03-16 08:10:01 -06:00
JoePfeiffer
ec8b8274bd Merge branch 'unstable' into fix-1229 2022-03-14 12:50:32 -06:00
JoePfeiffer
584353463b Update FlightConfiguration active instances whenever active components change, not every time get getActiveInstances() is called 2022-03-14 12:35:59 -06:00
SiboVG
56b7a1b869
Merge pull request #1235 from JoePfeiffer/fix-1215
Change default stage separation from next stage ignition to current stage motor burnout.
2022-03-14 04:00:10 +01:00
SiboVG
21b099d08f
Merge pull request #1236 from JoePfeiffer/fix-1226
Check for active upper stage before dropping booster
2022-03-14 03:59:17 +01:00
JoePfeiffer
74c2d75e63 Remove 'active' field from InstanceContext
The original plan was that there would be an InstanceContext for every instance of every RocketComponent, with some active and some not (just as RocketComponents may be active or not). The implementation has resulted in InstanceContexts only being created for active RocketComponents, so the active field is superfluous.
2022-03-11 21:49:53 -07:00
JoePfeiffer
d290525099 Process entire part tree when finding active contexts instead of bailing out early when an inactive component is found. 2022-03-11 11:24:02 -07:00
SiboVG
8022e9fedc [#1128] Fix common zero problem between left and right axis 2022-03-11 13:29:26 +01:00
JoePfeiffer
5ac829ea78 Check for active upper stage before dropping booster
If there are multiple independent motor clusters in a stage, each of them can attempt a separation event. When the second event happens, there is no longer an active upper stage, so the separation results in a simulation branch with no active stages.  This causes a NaN exception as the mass is 0.
2022-03-09 11:01:18 -07:00
JoePfeiffer
19c847d44a Change default stage separation from next stage ignition to current stage motor burnout.
For parallel stages, this is much more likely to be the user's intent.  The previous behavior caused stage separation the moment of ignition, so the booster set essentially flew as a second, independent rocket. With this change, the parallel stage stays with the center stack until the ejection charge files (note that OR treats a rocket with a -0 ejection delay as having an ejection charge at motor burnout).

    Note that this change to the default behavior is also applied to axial stages, but is also appropriate in that case.  For the vast majority  of low power rockets, the booster burnout ignites the next stage, so "next stage ignition" and "current stage ejection charge" are simultaneous.  For high power rockets, the next stage ignition has to be customized anyway.
2022-03-08 08:35:29 -07:00
Joe Pfeiffer
46017a0e8b
Merge pull request #1232 from JoePfeiffer/cleanup-SymmetricComponentCalc-debug
Remove unnecessary debug from SymmetricComponentCalc
2022-03-07 15:30:34 -07:00
SiboVG
498a42a3c5
Merge pull request #1221 from JoePfeiffer/fix-1210
Correctly identify when time is past end of thrustcurve so thrust is 0 in getAverageThrust
2022-03-07 23:29:56 +01:00
JoePfeiffer
533093f418 This was some debug I put in while fixing the error in subsonic nose cone drag (#1063). It isn't needed any more, and dumps a wad of unnecessary output in our already voluminous debug logs. 2022-03-07 14:43:39 -07:00
Joe Pfeiffer
1ff0ee9006
Merge pull request #1214 from SiboVG/issue-1172
[#1172] Add new shockcord materials
2022-03-07 14:35:53 -07:00
Joe Pfeiffer
c2a61c84db
Merge pull request #1202 from SiboVG/issue-1176
[fixes #1176] Add JRE version checking at startup
2022-03-07 14:32:32 -07:00
JoePfeiffer
6a8d533070 Cache active motors instead of recalculating on each call 2022-03-07 09:59:14 -07:00
JoePfeiffer
24e1dcc7fe Make sure active motor list is updated after all stage state changes
Use getActiveMotors() instead of getMotors() to get motors in thrust calculation
2022-03-07 09:46:27 -07:00
JoePfeiffer
2aa6a84bf7 Merge branch 'unstable' into fix-1210 2022-03-06 19:44:46 -07:00
Joe Pfeiffer
c98b90a829
Merge pull request #1223 from SiboVG/issue-1204
[fixes #1204] Fix stage CG override incorrect location
2022-03-05 19:00:17 -07:00
SiboVG
b2eb62f009
Merge pull request #1216 from JoePfeiffer/fix-1184
Create CalcMap based on all components, not just active ones
2022-03-06 02:39:01 +01:00
SiboVG
73044b3570 Update overridden text message 2022-03-06 02:36:49 +01:00
SiboVG
7255756e79 Undo #1204 changes 2022-03-06 02:35:22 +01:00
SiboVG
5074ac827e [#1220] Fix RockSim fin import issue 2022-03-05 17:06:47 +01:00
SiboVG
0dc7c306fe [#1204] Remove inertia update in calculateMotors 2022-03-05 16:41:00 +01:00
SiboVG
ec4e6eed37 [#1204] Add CG override effect to motors
The problem was that the overrideCG had no effect in calculateMotors().
2022-03-05 15:49:26 +01:00
JoePfeiffer
d2f364f086 Correctly identify when time is past end of thrustcurve so thrust is 0 in getAverageThrust
This has been lurking -- we're not actually supposed to be calling getAverageThrustThrust when we're past the end of the thrustcurve (there's a test for whether the motor is active before calling it), but another bug in the parallel staging code exposed it.
2022-03-04 17:52:44 -07:00
SiboVG
e3ce66d2ba Add 3/8 and 1/2 elastic braided cord material 2022-03-05 00:05:00 +01:00