00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef EGHPRIVATED_H
00015 #define EGHPRIVATED_H
00016
00017
00018 #define MIN_DELTA (PI/180.0)
00019 #define MAX_DELTA (179.0*PI/180.0)
00020 #define ANGLETOL (0.001*PI/180)
00021
00022
00023 typedef struct GHoleSgnPartd {
00024 double alpha;
00025 double malpha;
00026 double salpha;
00027 double knot;
00028 boolean sgn, both;
00029 } GHoleSgnPartd;
00030
00031 typedef struct GHolePrivateRecd {
00032 point2d *dombezpt;
00033 vector2d *surrpc;
00034
00035 vector2d *surrpcbc;
00036
00037 double *domsurrbf;
00038
00039 double diam;
00040 unsigned char *bfcpn;
00041 unsigned short *support_b;
00042 } GHolePrivateRecd;
00043
00044
00045 int gh_GetDefaultOptiond ( GHoleDomaind *domain, int query, int qn,
00046 int *ndata, int **idata, double **fdata );
00047
00048 double *_gh_GetKnotSequenced ( GHoleDomaind *domain, int i );
00049 point2d *_gh_GetDomSurrndPatchd ( GHoleDomaind *domain, int i, int j );
00050 boolean _gh_FindDomSurrndPatchd ( GHoleDomaind *domain,
00051 int i, int j, point2d *bezcp );
00052 boolean _gh_FindDomSurrndBFuncPatchesd ( GHoleDomaind *domain );
00053 boolean _gh_FindBasisFuncbSupport ( int hole_k, int nfunc_b,
00054 unsigned short *support_b,
00055 unsigned char *bfcpn );
00056 boolean _gh_AnalyzePartitiond ( GHoleDomaind *domain, int omcdeg,
00057 vector2d *omcbc, int *_hole_m, int *_auxp_k,
00058 double **_partition, GHoleSgnPartd **_spartition,
00059 double *_spart_alpha0 );
00060 void _gh_PrepareTabKnotsd ( int nquad, int opt, double *knots );
00061 void _g2h_DiJacobian3d ( const vector2d *du, const vector2d *dv,
00062 const vector2d *duu, const vector2d *duv,
00063 const vector2d *dvv,
00064 const vector2d *duuu, const vector2d *duuv,
00065 const vector2d *duvv, const vector2d *dvvv,
00066 double *jac, double *trd );
00067 double _g2h_Integrald ( int hole_k, int nknsq, double *jac,
00068 unsigned short supp1, vector2d *func1,
00069 unsigned short supp2, vector2d *func2 );
00070 double _g2h_Integral0d ( int nknsq, const double *jac,
00071 const vector2d *func1, const vector2d *func2 );
00072 double _g2h_SplIntegrald ( int nkn, double *jac,
00073 int i00, int i01, int j00, int j01, vector2d *func0,
00074 int i10, int i11, int j10, int j11, vector2d *func1 );
00075 void _g2h_TabSplCLaplacianGradd ( int nkn,
00076 int fknp, int lknp, const double *tp, const double *tpu,
00077 const double *tpuu, const double *tpuuu,
00078 int fknq, int lknq, const double *tq, const double *tqv,
00079 const double *tqvv, const double *tqvvv,
00080 const double *trd, vector2d *lgr );
00081 #endif
00082