00001 #ifndef PLELEMSUBQT_H
00002 #define PLELEMSUBQT_H
00003
00004 #include "alias.h"
00005 struct matrix;
00006 struct vector;
00007 struct ivector;
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 class planeelemsubqt
00018 {
00019 public:
00020 planeelemsubqt (void);
00021 ~planeelemsubqt (void);
00022
00023 double approx (double xi,double eta,vector &nodval);
00024 void bf_matrix (matrix &n,double xi,double eta);
00025 void geom_matrix (matrix &gm,vector &x,vector &y,double xi,double eta);
00026 void geom_matrix_block (matrix &gm,double ri,vector &x,vector &y,double xi,double eta);
00027 void dmatblock (long ri,long ci,matrix &d, matrix &dd);
00028 void transf_matrix (ivector &nodes,matrix &tmat);
00029 void stiffness_matrix (long eid,long ri,long ci,matrix &sm,vector &x,vector &y);
00030 void res_stiffness_matrix (long eid,matrix &sm);
00031 void mass_matrix (long eid,matrix &mm,vector &x,vector &y);
00032 void res_mass_matrix (long eid,matrix &mm);
00033 void load_matrix (long eid,matrix &lm);
00034
00035 void res_mainip_strains (long lcid,long eid);
00036 void mainip_strains (long lcid,long eid,long ri,long ci,vector &x,vector &y);
00037 void nod_strains (long lcid,long eid,long ri,long ci);
00038 void elem_strains (double **stra,long lcid,long eid,long ri,long ci);
00039 void appstrain (long lcid,long eid,double xi,double eta,long fi,long ncomp,vector &eps);
00040 void allip_strains (double **stra,long lcid,long eid,long ri,long ci);
00041 void strains (long lcid,long eid,long ri,long ci);
00042
00043 void nodecoord (vector &xi,vector &eta);
00044 void appval (double xi,double eta,long fi,long nc,vector &eps,double **val);
00045
00046 void mainip_stresses (long lcid,long eid,long ri,long ci);
00047 void nod_stresses (long lcid,long eid,long ri,long ci);
00048 void elem_stresses (double **stra,double **stre,long lcid,long eid,long ri,long ci);
00049 void appstress (long lcid,long eid,double xi,double eta,long fi,long ncomp,vector &sig);
00050 void allip_stresses (double **stre,long lcid,long eid,long ri,long ci);
00051 void stresses (long lcid,long eid,long ri,long ci);
00052
00053 void internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y);
00054 void nonloc_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y);
00055 void incr_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y);
00056 void eigstrain_forces (long lcid,long eid,long ri,long ci,vector &nfor,vector &x,vector &y);
00057
00058 void res_internal_forces (long lcid,long eid,vector &ifor);
00059 void res_nonloc_internal_forces (long lcid,long eid,vector &ifor);
00060 void res_incr_internal_forces (long lcid,long eid,vector &ifor);
00061 void res_eigstrain_forces (long lcid,long eid,vector &nfor);
00062
00063 void compute_nlstress (long lcid,long eid,long ri,long ci);
00064 void compute_nlstressincr (long lcid,long eid,long ri,long ci);
00065 void local_values (long lcid,long eid,long ri,long ci);
00066 void compute_nonloc_nlstress (long lcid,long eid,long ri,long ci);
00067 void compute_eigstress (long lcid,long eid,long ri,long ci);
00068 void elem_integration (integratedquant iq,long lcid,long eid,long ri,long ci,vector &nv,vector &x,vector &y);
00069
00070 void ipcoord (long eid,long ipp,long ri,long ci,vector &coord);
00071 void nodeforces (long eid,long *le,double *nv,vector &nf);
00072 void inicipval(long eid, long ri, long ci, matrix &nodval, inictype *ictn);
00073
00074
00075 long ndofe;
00076
00077 long nne;
00078
00079 long tncomp;
00080
00081 long gncomp;
00082
00083 long tnip;
00084
00085 long *ncomp;
00086
00087 long *cncomp;
00088
00089 long napfun;
00090
00091 long ned;
00092
00093 long nned;
00094
00095 long **intordsm;
00096
00097 long intordmm;
00098
00099 long intordb;
00100
00101 long **nip;
00102
00103 long nb;
00104
00105 strastrestate ssst;
00106
00107 };
00108
00109 #endif