1 package net.sf.openrocket.aerodynamics.barrowman;
3 import net.sf.openrocket.aerodynamics.AerodynamicForces;
4 import net.sf.openrocket.aerodynamics.FlightConditions;
5 import net.sf.openrocket.aerodynamics.WarningSet;
6 import net.sf.openrocket.rocketcomponent.LaunchLug;
7 import net.sf.openrocket.rocketcomponent.RocketComponent;
8 import net.sf.openrocket.util.MathUtil;
10 public class LaunchLugCalc extends RocketComponentCalc {
13 private double refArea;
15 public LaunchLugCalc(RocketComponent component) {
18 LaunchLug lug = (LaunchLug)component;
19 double ld = lug.getLength() / (2*lug.getOuterRadius());
21 CDmul = Math.max(1.3 - ld, 1);
22 refArea = Math.PI * MathUtil.pow2(lug.getOuterRadius()) -
23 Math.PI * MathUtil.pow2(lug.getInnerRadius()) * Math.max(1 - ld, 0);
27 public void calculateNonaxialForces(FlightConditions conditions,
28 AerodynamicForces forces, WarningSet warnings) {
33 public double calculatePressureDragForce(FlightConditions conditions,
34 double stagnationCD, double baseCD, WarningSet warnings) {
36 return CDmul*stagnationCD * refArea / conditions.getRefArea();