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;