2066 Commits

Author SHA1 Message Date
SiboVG
c8fc18c98f Implement auto radius for all mass objects 2022-04-28 01:19:35 +02:00
SiboVG
eb50857f52 Implement auto packed diameter for parachute
Adds an Auto checkbox in the parachute configuration dialog that automatically sets the parachute's packed diameter equal to the inner diameter of its parent
2022-04-28 01:19:35 +02:00
SiboVG
aaaef5ab92 Clean up Parachute 2022-04-28 01:19:35 +02:00
hcraigmiller
f33babc806 Parachute configuration preset input enhancements
Presets for selected parachute changes the Component Name to the parachute Description; input the parachute Cd; and input the override mass, checking the mass override box. The parachute packed values are also input, with the diameter of the parachute sized to the inner diameter of the parent component (where nose cones and transitions have inconsistent inner diameters, these components are sized to the largest diameter). Parachutes without a length and diameter (or without those fields) are sized using the default length and diameter. Once created, the parachute length and diameter do not automatically change if the parent diameter is changed, or the parachute is moved to a different component.
2022-04-28 01:19:22 +02:00
JoePfeiffer
e98761c6cc remove some unused imports from TubeCalc.java 2022-04-27 15:42:12 -06:00
JoePfeiffer
784348dadd Include drag from sources other than SymmetricComponent and FinSet 2022-04-27 15:20:51 -06:00
JoePfeiffer
5d8a95d0a2 This file wasn't ever supposed to committed 2022-04-27 15:20:02 -06:00
JoePfeiffer
265a6e0b7b Create Tube parent class for LaunchLug and TubeFinSet, for use with TubeCalc
Create TubeCalc parent class for LaunchLugCalc and TubeFinSetCalc

Replace tube drag calculation with new code, no longer using the three-fin
approximation from 15.03
2022-04-27 15:18:45 -06:00
JoePfeiffer
68c4330fa3 Create skeleton of Tube. For the moment, this is just enough to
make it possible to use TubeCalc.
2022-04-24 19:22:32 -06:00
JoePfeiffer
4477d9226e commit the work-in-progress drag calculations, including creating TubeCalc for calculations common to LaunchLugs and TubeFinSets 2022-04-20 15:42:19 -06:00
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