00001 #ifndef PLELEMLQ_H
00002 #define PLELEMLQ_H
00003
00004 #include "alias.h"
00005 #include "galias.h"
00006 struct matrix;
00007 struct vector;
00008 struct ivector;
00009 struct atsel;
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 class planeelemlq
00032 {
00033 public:
00034 planeelemlq (void);
00035 ~planeelemlq (void);
00036
00037 double approx (double xi,double eta,vector &nodval);
00038 void ipcoord (long eid,long ipp,long ri,long ci,vector &coord);
00039 void ipcoordblock (long eid,long ri,long ci,double **coord);
00040
00041 void bf_matrix (matrix &n,double xi,double eta);
00042 void geom_matrix (matrix &gm,vector &x,vector &y,double xi,double eta,double &jac);
00043 void geom_matrix_block (matrix &gm,long ri,vector &x,vector &y,double xi,double eta,double &jac);
00044 void bvectors (vector &x,vector &y,double xi,double eta,double &jac,
00045 vector &b11,vector &b12,vector &b21,vector &b22);
00046 void gngeom_matrix (matrix &gm,vector &r,vector &x,vector &y,double xi,double eta,double &jac);
00047 void gnl_grmatrix (matrix &grm,vector &x,vector &y,double xi,double eta,double &jac);
00048
00049 void dmatblock (long ri,long ci,matrix &d, matrix &dd);
00050 void transf_matrix (ivector &nod,matrix &tmat);
00051
00052 void gl_stiffness_matrix (long eid,long ri,long ci,matrix &sm,vector &x,vector &y);
00053 void gnl_stiffness_matrix (long lcid,long eid,long ri,long ci,matrix &sm,vector &x,vector &y);
00054 void res_stiffness_matrix (long lcid,long eid,matrix &sm);
00055 void mass_matrix (long eid,matrix &mm,vector &x,vector &y);
00056 void res_mass_matrix (long eid,matrix &mm);
00057
00058
00059 void res_ip_strains (long lcid,long eid);
00060 void gl_ip_strains (long lcid,long eid,long ri,long ci,vector &x,vector &y,vector &r);
00061 void gnl_ip_strains (long lcid,long eid,long ri,long ci,vector &x,vector &y,vector &r);
00062 void nod_strains_ip (long lcid,long eid,long ri,long ci);
00063 void nod_strains_comp (long lcid,long eid);
00064 void strains (long lcid,long eid,long ri,long ci);
00065
00066 void res_ip_stresses (long lcid,long eid);
00067 void nod_stresses_ip (long lcid,long eid,long ri,long ci);
00068 void nod_stresses_comp (long lcid,long eid,long ri,long ci,double **stra,double **stre);
00069 void stresses (long lcid,long eid,long ri,long ci);
00070
00071 void nod_eqother_ip (long eid,long ri,long ci);
00072
00073 void load_matrix (long eid,matrix &lm,vector &x,vector &y);
00074 void res_load_matrix (long eid,matrix &lm);
00075
00076 void gl_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y);
00077 void gnl_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y);
00078 void nonloc_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y);
00079 void incr_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y);
00080 void eigstrain_forces (long lcid,long eid,long ri,long ci,vector &nfor,vector &x,vector &y);
00081
00082 void res_internal_forces (long lcid,long eid,vector &ifor);
00083 void res_nonloc_internal_forces (long lcid,long eid,vector &ifor);
00084 void res_incr_internal_forces (long lcid,long eid,vector &ifor);
00085 void res_eigstrain_forces (long lcid,long eid,vector &nfor);
00086
00087 void compute_nlstress (long lcid,long eid,long ri,long ci);
00088 void compute_nlstressincr (long lcid,long eid,long ri,long ci);
00089 void local_values (long lcid,long eid,long ri,long ci);
00090 void compute_nonloc_nlstress (long lcid,long eid,long ri,long ci);
00091 void compute_eigstress (long lcid,long eid,long ri,long ci);
00092 void elem_integration (integratedquant iq,long lcid,long eid,long ri,long ci,vector &nv,vector &x,vector &y);
00093
00094 void nodeforces (long eid,long *le,double *nv,vector &nf);
00095 void edge_integral (long edg,vector &x,vector &y,long intord,vector &gp,vector &w,
00096 vector &t,vector &coef,matrix &km);
00097 void edgenodeval (long edg,vector &nodval,double *list);
00098
00099 void inicipval(long eid, long ri, long ci, matrix &nodval, inictype *ictn);
00100 void ipvolume (long eid,long ri,long ci);
00101 void intpointval (long eid,vector &nodval,vector &ipval);
00102
00103 void define_meaning (long eid);
00104
00105
00106
00107 void ntdbr_vector (long eid,vector &ntdbr);
00108 void ntn_matrix (long eid,matrix &ntn);
00109 double compute_error (long eid, double &e2, double &u2, double &sizel, vector *rderfull);
00110 void elchar (long eid, matrix &spsig);
00111
00112
00113 void extract (atsel &at,vector &val);
00114 void mechq_nodval (long eid,vector &nodval,nontransquant qt);
00115 void mechq_nodval_comp (long eid, vector &nodval, long ncnv, long nq, nontransquant *qt);
00116
00117
00118
00119 long ndofe;
00120
00121 long nne;
00122
00123 long tncomp;
00124
00125 long gncomp;
00126
00127 long tnip;
00128
00129 long *ncomp;
00130
00131 long *cncomp;
00132
00133 long napfun;
00134
00135 long ned;
00136
00137 long nned;
00138
00139 long **intordsm;
00140
00141 long intordmm;
00142
00143 long intordb;
00144
00145 long **nip;
00146
00147 long nb;
00148
00149 strastrestate ssst;
00150
00151 };
00152
00153 #endif