create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / aerodynamics / barrowman / LaunchLugCalc.java
1 package net.sf.openrocket.aerodynamics.barrowman;
2
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;
9
10 public class LaunchLugCalc extends RocketComponentCalc {
11
12         private double CDmul;
13         private double refArea;
14         
15         public LaunchLugCalc(RocketComponent component) {
16                 super(component);
17                 
18                 LaunchLug lug = (LaunchLug)component;
19                 double ld = lug.getLength() / (2*lug.getOuterRadius());
20                 
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);
24         }
25
26         @Override
27         public void calculateNonaxialForces(FlightConditions conditions,
28                         AerodynamicForces forces, WarningSet warnings) {
29                 // Nothing to be done
30         }
31
32         @Override
33         public double calculatePressureDragForce(FlightConditions conditions,
34                         double stagnationCD, double baseCD, WarningSet warnings) {
35
36                 return CDmul*stagnationCD * refArea / conditions.getRefArea();
37         }
38
39 }