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