00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _GBLDEFS_H
00014 #define _GBLDEFS_H
00015
00016 #include <time.h>
00017 #include <string.h>
00018
00019
00020
00021
00022 const int TRUE = 1;
00023 const int FALSE = 0;
00024 const int LABEL_SIZE = 13;
00025
00026 const double PRINT_TOL = 1.0e-6;
00027 const double PI = 3.141592653589793;
00028 const double BIGK = 1.0e20;
00029
00030
00031
00032
00033 #ifndef NULL
00034 #define NULL 0L
00035 #endif
00036
00037 #ifndef CLOCKS_PER_SEC
00038 #define CLOCKS_PER_SEC 1.0e+06
00039 #endif
00040
00041 #ifndef MAX
00042
00043 template <class T>
00044 T MAX(T a, T b)
00045 {
00046 return a > b ? a : b;
00047 }
00048 #endif
00049
00050 #ifndef MIN
00051 #define MIN(a,b) (((a)<(b))?(a):(b))
00052 #endif
00053
00054 #ifndef streq
00055 #define streq(a,b) (a[0]==b[0] && strcmp(a,b)==0)
00056 #endif
00057
00058 #ifndef DEG2RAD
00059 #define DEG2RAD(a) (PI*(a)/180)
00060 #endif
00061
00062 #ifndef RAD2DEG
00063 #define RAD2DEG(a) (180*(a)/PI)
00064 #endif
00065
00066
00067
00068
00069 typedef double dShapeVal;
00070 typedef double dSenVal;
00071 typedef long double tTime;
00072
00073
00074
00075
00076
00077 typedef struct _curve
00078 {
00079 int no_disp;
00080 int dir_disp;
00081 int no_load;
00082 int dir_load;
00083 } sCurve;
00084
00085 typedef struct _derivcart
00086 {
00087 double x;
00088 double y;
00089 double z;
00090 } sDerivCart;
00091
00092 typedef struct _derivnat
00093 {
00094 double r;
00095 double s;
00096 double t;
00097 } sDerivNat;
00098
00099 typedef struct _endlib
00100 {
00101 int idx;
00102 int idy;
00103 int idz;
00104 int irx;
00105 int iry;
00106 int irz;
00107 int jdx;
00108 int jdy;
00109 int jdz;
00110 int jrx;
00111 int jry;
00112 int jrz;
00113 } sEndLib;
00114
00115 typedef struct _vector
00116 {
00117 double cx;
00118 double cy;
00119 double cz;
00120 } sVector;
00121
00122 typedef struct _natcoord
00123 {
00124 double r;
00125 double s;
00126 double t;
00127 } sNatCoord;
00128
00129 typedef struct _nodecoord
00130 {
00131 double x;
00132 double y;
00133 double z;
00134 } sNodeCoord;
00135
00136 typedef struct _funcpoint
00137 {
00138 double x;
00139 double y;
00140 double z;
00141 } sFuncPoint;
00142
00143 typedef struct _nodedispl
00144 {
00145 double u;
00146 double v;
00147 double w;
00148 double rx;
00149 double ry;
00150 double rz;
00151 } sNodeDispl;
00152
00153 typedef struct _offset
00154 {
00155 int elem;
00156 int no;
00157 double ex;
00158 double ey;
00159 double ez;
00160 } sOffSet;
00161
00162 typedef struct _order
00163 {
00164 int r;
00165 int s;
00166 int t;
00167 } sOrder;
00168
00169 typedef struct _prescdispl
00170 {
00171 int no;
00172 int dir;
00173 double displ;
00174 } sPrescDispl;
00175
00176 typedef struct _presctemp
00177 {
00178 int no;
00179 double temp;
00180 } sPrescTemp;
00181
00182 typedef struct _secprop
00183 {
00184 double Ax;
00185 double Ay;
00186 double Az;
00187 double Ix;
00188 double Iy;
00189 double Iz;
00190 double Cw;
00191 double Hy;
00192 double Hz;
00193 } sSecProp;
00194
00195 typedef struct _skew
00196 {
00197 int no;
00198 double xx;
00199 double xy;
00200 double xz;
00201 double yx;
00202 double yy;
00203 double yz;
00204 } sSkew;
00205
00206 typedef struct _spring
00207 {
00208 int no;
00209 int dir;
00210 double k;
00211 } sSpring;
00212
00213 typedef struct _tensor
00214 {
00215 double sxx;
00216 double sxy;
00217 double sxz;
00218 double syx;
00219 double syy;
00220 double syz;
00221 double szx;
00222 double szy;
00223 double szz;
00224 double mxx;
00225 double mxy;
00226 double mxz;
00227 double myx;
00228 double myy;
00229 double myz;
00230 double mzx;
00231 double mzy;
00232 double mzz;
00233 } sTensor;
00234
00235 typedef struct _princstr
00236 {
00237 double sigma1;
00238 double sigma2;
00239 double sigma3;
00240 double taumax;
00241 double momen1;
00242 double momen2;
00243 double momen3;
00244 double tormax;
00245 } sPrincStr;
00246
00247 typedef struct _princstrvec
00248 {
00249 sVector s1;
00250 sVector s2;
00251 sVector s3;
00252 sVector m1;
00253 sVector m2;
00254 sVector m3;
00255 } sPrincStrVec;
00256
00257 #endif