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