Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

wing.h

Go to the documentation of this file.
00001 //***************************************************************************
00002 #ifndef _WING_H
00003 #define _WING_H
00004 //***************************************************************************
00005 #ifdef __GNUG__
00006 #include <vector>
00007 #include <vector.h>
00008 #else
00009 #include <vector>
00010 #endif
00011 #include <stdio.h>
00012 #ifdef HPUX
00013 #include <iostream.h>
00014 #else
00015 #include <iostream>
00016 #endif
00017 #include "alloc.h"
00018 #include <math.h>
00019 #ifdef _WIN32
00020 using namespace std;
00021 #endif
00022 //***************************************************************************
00023 typedef struct
00024 {
00026  double time_max;
00028  int firsttime;
00031  int isTransition;
00033  double t1;
00035  double dt1;
00037  double uu1;
00038  double vv1;
00039  double ww1;
00040  double uu2;
00041  double vv2;
00042  double ww2;
00043 } Trajectory;
00044 
00045 class Wing
00046 {
00047 private:
00048  friend ostream &operator << (ostream &Out, Wing &V);
00049  void getWingTrajectoryUVW(double t, double *u, double *v, double *w);
00050  void GetWingCoordinates(double u, double v, double w,
00051         double x_mid, double y_mid, double z_mid, double span,
00052         double *x1, double *y1, double *z1,
00053         double *x2, double *y2, double *z2);
00054  double getDensity(double temperature);
00055 
00056 public:
00058  double gwing;
00060  double ewing;
00062  double xwing_i[2][3];
00064  double vwing_i[2][3];
00066  char   Name[30];
00068  char   AircraftType[30];
00070  char   trajectoryname[100];
00072  double *ewake;
00074  FILE   *trajectory;
00075 
00076  // Out
00078  double xwing[2][3];
00080  double vwing[2][3];
00082  double *gwake;
00084  double *twake;
00086  double (*xwake)[2][3];
00088  double (*vwake)[2][3];
00089 
00091  double timeElapsed;
00093  int iter;
00095  double span;
00097  double weight;
00099  double area;
00101  int OutOfRange;
00103  int ToBeDeleted;
00105  int nvort;
00107  int ID;
00109  double DistFromAirport;
00110 
00112  Trajectory traj;
00113 
00115  Wing();
00117  ~Wing();
00119  void Initialize();
00121  Wing &operator= (const Wing &);
00123  void readTrajectory(double t, double *u, double *v, double *w);
00125  void Setup(char *inpfile, char *name, char *type, double x0, double y0, double z0, double wingspan, double wingarea, double wingweight, double temperature, int nwakemax);
00127  void Allocate(int nwakemax);
00129  void DeAllocate(int nwakemax);
00131  int packWing(unsigned char **dataptr, int *totsize);
00133  int unpackWing(unsigned char *data, int totsize);
00135  double getGwing(double temperature);
00137  inline double Speed();
00139  inline double Height();
00140 };
00141 //***************************************************************************
00142 inline double Wing::Speed()
00143 {
00144 return sqrt(vwing[0][0]*vwing[0][0]+vwing[0][1]*vwing[0][1]+vwing[0][2]*vwing[0][2]);
00145 }
00146 //***************************************************************************
00147 inline double Wing::Height()
00148 {
00149 return 0.5*(xwing[0][2]+xwing[1][2]);
00150 }
00151 //***************************************************************************
00152 #endif // _WING_H
00153 /***************************************************************************/

Generated on Sun Jun 16 17:36:42 2002 for Anirudh's Vortex-Wake Simulation Code by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001