00001 #ifndef QUADTET_H
00002 #define QUADTET_H
00003
00004 #include "alias.h"
00005 struct matrix;
00006 struct vector;
00007 struct ivector;
00008
00009
00010
00011
00012
00013
00014
00015
00016 class quadtet
00017 {
00018 public:
00019 quadtet (void);
00020 ~quadtet (void);
00021
00022
00023 double approx (double xi,double eta,double zeta,vector &nodval);
00024
00025 void bf_matrix (matrix &n,double xi,double eta,double zeta);
00026
00027 void geom_matrix (matrix &gm,vector &x,vector &y,vector &z,
00028 double xi,double eta,double zeta,double &jac);
00029
00030 void geom_matrix_block (matrix &gm,vector &x,vector &y,vector &z,
00031 double xi,double eta,double zeta,double &jac);
00032
00033 void transf_matrix (ivector &nodes,matrix &tmat);
00034
00035 void stiffness_matrix (long eid,long ri,long ci,matrix &sm);
00036
00037 void res_stiffness_matrix (long eid,matrix &sm);
00038
00039 void mass_matrix (long eid,matrix &mm);
00040
00041 void res_mass_matrix (long eid,matrix &mm);
00042
00043 void load_matrix (long eid,matrix &lm);
00044
00045 void res_load_matrix (long eid,matrix &lm);
00046
00047 double volumeip(long eid, double w);
00048
00049
00050 void res_ip_strains (long lcid,long eid);
00051
00052 void ip_strains (long lcid,long eid,long ri,long ci,vector &x,vector &y,vector &z,vector &r);
00053
00054 void nod_strains_ip (long lcid,long eid,long ri,long ci);
00055
00056 void nod_strains_comp (long lcid,long eid,double **stra);
00057
00058 void strains (long lcid,long eid,long ri,long ci);
00059
00060
00061 void res_ip_stresses (long lcid,long eid);
00062
00063 void ip_stresses (long lcid,long eid,long ri,long ci);
00064
00065 void ip_elast_stresses (long lcid,long eid,long ri,long ci);
00066
00067 void nod_stresses_ip (long lcid,long eid,long ri,long ci);
00068
00069 void nod_stresses_comp (long lcid,long eid,long ri,long ci,double **stra,double **stre);
00070
00071 void stresses (long lcid,long eid,long ri,long ci);
00072
00073
00074 void nod_eqother_ip (long eid,long ri,long ci);
00075
00076
00077 void internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y,vector &z);
00078
00079 void nonloc_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y,vector &z);
00080
00081 void incr_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y,vector &z);
00082
00083 void eigstrain_forces (long lcid,long eid,long ri,long ci,vector &nfor,vector &x,vector &y,vector &z);
00084
00085
00086 void res_internal_forces (long lcid,long eid,vector &ifor);
00087
00088 void res_nonloc_internal_forces (long lcid,long eid,vector &ifor);
00089
00090 void res_incr_internal_forces (long lcid,long eid,vector &ifor);
00091
00092 void res_eigstrain_forces (long lcid,long eid,vector &nfor);
00093
00094
00095 void compute_nlstress (long lcid,long eid,long ri,long ci);
00096
00097 void compute_nlstressincr (long lcid,long eid,long ri,long ci);
00098
00099 void local_values (long lcid,long eid,long ri,long ci);
00100
00101 void compute_nonloc_nlstress (long lcid,long eid,long ri,long ci);
00102
00103 void compute_eigstress (long lcid,long eid,long ri,long ci);
00104
00105 void elem_integration (integratedquant iq,long lcid,long eid,long ri,long ci,vector &nv,vector &x,vector &y,vector &z);
00106
00107
00108 void ipcoord (long eid,long ipp,long ri,long ci,vector &coord);
00109
00110 void inicipval(long eid, long ri, long ci, matrix &nodval, inictype *ictn);
00111
00112 void ipvolume (long eid,long ri,long ci);
00113
00114
00115 void node_forces_surf (long lcid,long eid,long *is,double *nv,vector &nf);
00116
00117 void locglob_nodeval (long is,vector &nv,double *tnv,vector &x,vector &y,vector &z);
00118
00119
00120 void intpointval (long eid,vector &nodval,vector &ipval);
00121
00122 void intpointval2 (long eid,vector &nodval,vector &ipval);
00123
00124 void aver_strains (long lcid,long eid,long ri,long ci,vector &averstra,double &volume);
00125
00126
00127 long ndofe;
00128
00129 long nne;
00130
00131 long tncomp;
00132
00133 long tnip;
00134
00135 long *ncomp;
00136
00137 long *cncomp;
00138
00139 long napfun;
00140
00141 long ned;
00142
00143 long nned;
00144
00145 long nsurf;
00146
00147 long nnsurf;
00148
00149 long **intordsm;
00150
00151 long intordmm;
00152
00153 long intordb;
00154
00155 long **nip;
00156
00157 long nb;
00158
00159 strastrestate ssst;
00160 };
00161
00162 #endif