From a61068e9f0d819014477416ef207bc620c46120d Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Sun, 26 Feb 2023 10:12:57 -0700 Subject: [PATCH] pushed to the wrong branch, sorry Revert "Don't let fins with zero area cause NaN exceptions." This reverts commit 1011f2df944dbfe3e82016ea0a3a0f0954c1ca9b. Revert "Add warning for fin with zero area" This reverts commit 512ce78b51a2514a5e96f72d9e8946d63b291cd9. --- core/resources/l10n/messages.properties | 1 - .../sf/openrocket/aerodynamics/Warning.java | 4 --- .../aerodynamics/barrowman/FinSetCalc.java | 34 ++++++------------- 3 files changed, 10 insertions(+), 29 deletions(-) diff --git a/core/resources/l10n/messages.properties b/core/resources/l10n/messages.properties index 4c14490a7..4087f87ce 100644 --- a/core/resources/l10n/messages.properties +++ b/core/resources/l10n/messages.properties @@ -1882,7 +1882,6 @@ Warning.PODSET_FORWARD = In-line podset forward of parent airframe component Warning.PODSET_OVERLAP = In-line podset overlaps parent airframe component Warning.THICK_FIN = Thick fins may not simulate accurately. Warning.JAGGED_EDGED_FIN = Jagged-edged fin predictions may be inaccurate. -Warning.ZERO_AREA_FIN = Fins with zero area will not affect aerodynamics Warning.LISTENERS_AFFECTED = Listeners modified the flight simulation Warning.RECOVERY_DEPLOYMENT_WHILE_BURNING = Recovery device opened while motor still burning. Warning.FILE_INVALID_PARAMETER = Invalid parameter encountered, ignoring. diff --git a/core/src/net/sf/openrocket/aerodynamics/Warning.java b/core/src/net/sf/openrocket/aerodynamics/Warning.java index 71946ca5b..3c17c1e17 100644 --- a/core/src/net/sf/openrocket/aerodynamics/Warning.java +++ b/core/src/net/sf/openrocket/aerodynamics/Warning.java @@ -382,10 +382,6 @@ public abstract class Warning { ////Jagged-edged fin predictions may be inaccurate. public static final Warning JAGGED_EDGED_FIN = new Other(trans.get("Warning.JAGGED_EDGED_FIN")); - /** A Warning that the fins have a zero area. */ - ////Fins with no area will not affect aerodynamics - public static final Warning ZERO_AREA_FIN = new Other(trans.get("Warning.ZERO_AREA_FIN")); - /** A Warning that simulation listeners have affected the simulation */ ////Listeners modified the flight simulation public static final Warning LISTENERS_AFFECTED = new Other(trans.get("Warning.LISTENERS_AFFECTED")); diff --git a/core/src/net/sf/openrocket/aerodynamics/barrowman/FinSetCalc.java b/core/src/net/sf/openrocket/aerodynamics/barrowman/FinSetCalc.java index 326c73a0d..53746d2e6 100644 --- a/core/src/net/sf/openrocket/aerodynamics/barrowman/FinSetCalc.java +++ b/core/src/net/sf/openrocket/aerodynamics/barrowman/FinSetCalc.java @@ -84,9 +84,7 @@ public class FinSetCalc extends RocketComponentCalc { public void calculateNonaxialForces(FlightConditions conditions, Transformation transform, AerodynamicForces forces, WarningSet warnings) { - warnings.addAll(geometryWarnings); - - if (finArea < MathUtil.EPSILON) { + if (span < 0.001) { forces.setCm(0); forces.setCN(0); forces.setCNa(0); @@ -98,6 +96,12 @@ public class FinSetCalc extends RocketComponentCalc { forces.setCyaw(0); return; } + + if ((bodyRadius > 0) && (thickness > bodyRadius / 2)){ + // Add warnings (radius/2 == diameter/4) + warnings.add(Warning.THICK_FIN); + } + warnings.addAll(geometryWarnings); //////// Calculate CNa. ///////// @@ -237,27 +241,18 @@ public class FinSetCalc extends RocketComponentCalc { Coordinate[] points = component.getFinPoints(); - // Check geometry + // Check for jagged edges geometryWarnings.clear(); boolean down = false; for (int i = 1; i < points.length; i++) { if ((points[i].y > points[i - 1].y + 0.001) && down) { - geometryWarnings.add(Warning.JAGGED_EDGED_FIN, component.toString()); + geometryWarnings.add(Warning.JAGGED_EDGED_FIN); break; } if (points[i].y < points[i - 1].y - 0.001) { down = true; } } - - if (finArea < MathUtil.EPSILON) { - geometryWarnings.add(Warning.ZERO_AREA_FIN, component.toString()); - } - - if ((bodyRadius > 0) && (thickness > bodyRadius / 2)){ - // Add warnings (radius/2 == diameter/4) - geometryWarnings.add(Warning.THICK_FIN, component.toString()); - } // Calculate the chord lead and trail positions and length @@ -370,6 +365,7 @@ public class FinSetCalc extends RocketComponentCalc { macLead *= dy; area *= dy; rollSum *= dy; + macLength /= area; macSpan /= area; macLead /= area; @@ -618,11 +614,6 @@ public class FinSetCalc extends RocketComponentCalc { @Override public double calculateFrictionCD(FlightConditions conditions, double componentCf, WarningSet warnings) { - // a fin with 0 area contributes no drag - if (finArea < MathUtil.EPSILON) { - return 0.0; - } - double cd = componentCf * (1 + 2 * thickness / macLength) * 2 * finArea / conditions.getRefArea(); return cd; } @@ -631,11 +622,6 @@ public class FinSetCalc extends RocketComponentCalc { public double calculatePressureCD(FlightConditions conditions, double stagnationCD, double baseCD, WarningSet warnings) { - // a fin with 0 area contributes no drag - if (finArea < MathUtil.EPSILON) { - return 0.0; - } - double mach = conditions.getMach(); double cd = 0;