00001 #ifndef LINHEXT_H
00002 #define LINHEXT_H
00003
00004 #include "genfile.h"
00005
00006 class linhext
00007 {
00008 public:
00009 linhext (void);
00010 ~linhext (void);
00011 void codnum (long *cn,long ri);
00012 double approx (double xi,double eta,double zeta, vector &nodval);
00013 void intpointval (long eid);
00014 void intpointval_puc (long eid);
00015 void intpointgrad (long eid);
00016 void intpointother (long eid);
00017 void intpointflux (long eid);
00018 void average_flux (long lcid,long eid,vector &avfl);
00019
00020 void bf_matrix (matrix &n,double xi,double eta,double zeta);
00021 void grad_matrix (matrix &gm,vector &x,vector &y,vector &z,double xi,double eta,double zeta,double &jac);
00022 void conductivity_matrix (long lcid,long eid,long ri,long ci,matrix &km);
00023 void l_matrix (long lcid,long eid,long ri,long ci,matrix &lm);
00024 void l_t_matrix (long lcid,long eid,long ri,long ci,matrix &lm);
00025 void capacity_matrix (long eid,long ri,long ci,matrix &cm);
00026 void quantity_source_vector (vector &sv,vector &nodval,long eid,long ri,long ci);
00027 void internal_fluxes (long lcid,long eid,vector &ifl);
00028
00029 void res_conductivity_matrix (long eid,long lcid,matrix &km);
00030 void volume_rhs_vector (long lcid,long eid,long ri,long ci,vector &vrhs);
00031 void res_volume_rhs_vector (vector &f,long eid,long lcid);
00032 void res_l_matrix (long eid,long lcid,matrix &lm);
00033 void res_l_t_matrix (long eid,long lcid,matrix &lm);
00034 void averd_matrix (long eid,matrix &lm);
00035 void averc_matrix (long eid,matrix &lm);
00036 double elem_volume (long eid);
00037 void res_capacity_matrix (long eid,matrix &cm);
00038 void res_convection_vector (vector &f,long lcid,long eid,long leid);
00039 void res_transmission_vector (vector &f,long lcid,long eid,long leid);
00040 void res_quantity_source_vector (vector &sv,vector &nodval,long lcid,long eid);
00041 void res_internal_fluxes (long eid,vector &elemif);
00042 double total_integral (long eid,vector &nodval);
00043 void res_boundary_flux (vector &f,long lcid,long eid,long leid);
00044 void nod_others_comp (long lcid,long eid,long ri,long ci);
00045
00046
00047 void convection_vector (vector &v,long lcid,long eid,long leid,long ri,long ci);
00048 void transmission_matrix (long lcid,long eid,long ri,long ci,matrix &km);
00049 void transmission_vector (vector &v,long lcid,long eid,long leid,long cid);
00050 void boundary_flux (vector &v,long lcid,long eid,long leid,long ri,long ci);
00051 void surface_integral (long surf,vector &x,vector &y,vector &z,long intord,vector &gp,vector &w,
00052 vector &coef,matrix &km);
00053
00054 void transf_flux (long surf,vector &coeff,vector &list,vector &trc,vector &trr,long eid,long ri,long ci,long ipp,bocontypet *bc);
00055 void transf_coeff (long surf,vector &coeff,vector &list,long eid,long ri,long ci,long ipp,bocontypet *bc);
00056 void transf_val (long surf,vector &nodval,vector &list,vector &trc,vector &trr,long eid,long ri,long ci,long ipp,bocontypet *bc);
00057 void surfnodeval (long surf,vector &nodval,vector &list);
00058
00059 void higher_to_lower_level (long eid,long *counter,double *buff);
00060
00061
00062 long ntm;
00063
00064 long ndofe;
00065
00066 long **dofe;
00067
00068 long nne;
00069
00070 long ned;
00071
00072 long nned;
00073
00074 long nsurf;
00075
00076 long nnsurf;
00077
00078 long napfun;
00079
00080 long ncomp;
00081
00082 long **nip;
00083
00084 long **ordering;
00085
00086 long **intordkm;
00087
00088 long **intordcm;
00089 };
00090
00091 #endif