1608 Commits

Author SHA1 Message Date
JoePfeiffer
359e97108c Check for inner radius of tube == 0 to avoid NaN in pressure drop
calculation
2022-05-04 15:10:32 -06:00
JoePfeiffer
05ce7cb1f5 On second thought, I think I can do better than this.
Revert "check for tubes with inner radius of 0; set pressure drag to 0 and set a warning"

This reverts commit 7676b9b674ffc268d8c67915b8e54f44d22449fa.
2022-05-04 10:50:20 -06:00
JoePfeiffer
7676b9b674 check for tubes with inner radius of 0; set pressure drag to 0 and set a warning 2022-05-04 10:25:46 -06:00
JoePfeiffer
0b8276b6c8 more tubefin refinement (should be squashed with prev commit) 2022-05-04 07:22:34 -06:00
JoePfeiffer
1611fd2876 More detailed model for pressure drop in tubes. 2022-05-04 07:04:01 -06:00
JoePfeiffer
30dcdda0bf correct wetted area calculation 2022-05-03 15:51:40 -06:00
Joe Pfeiffer
1e0734ae1f
Merge pull request #1318 from JoePfeiffer/fix-1291
consider instance count in component mass
2022-05-03 13:51:41 -06:00
SiboVG
12cba42dca
Merge pull request #1323 from SiboVG/issue-1320
[fixes #1320] Remove 'Custom' material option from preference's add new material
2022-05-01 23:52:22 +02:00
SiboVG
a80bfcde14 Rearrange Material types
This causes a more logical arrangement in the preferences' add material dropdown box
2022-05-01 23:34:37 +02:00
JoePfeiffer
ccb7c5e714 consider instance count in component mass 2022-04-29 19:32:19 -06:00
JoePfeiffer
61e57eacb5 Left a really annoying extra line of debug in BarromanCalcualtor.
Somehow managed to have two offseting (in the case of this rocket, anyway) typos in pressure drop calculation.
2022-04-27 21:46:41 -06:00
SiboVG
d0348726d3
Merge pull request #1312 from JoePfeiffer/fix-1207a
Rewrite tube fin and launch lug drag calculations
2022-04-28 01:33:52 +02:00
SiboVG
5d4352b666 Fix StreamerConfig import issue 2022-04-28 01:19:36 +02:00
SiboVG
647706ab0f Implement mass object auto radius in OR save/import 2022-04-28 01:19:35 +02:00
SiboVG
15e169820d Include mass object auto radius in OR save/import 2022-04-28 01:19:35 +02:00
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
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