00001 #ifndef QUADHEX_H
00002 #define QUADHEX_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 quadhex
00017 {
00018 public:
00019 quadhex (void);
00020 ~quadhex (void);
00021 double approx (double xi,double eta,double zeta,vector &nodval);
00022 void bf_matrix (matrix &n,double xi,double eta,double zeta);
00023 void geom_matrix (matrix &gm,vector &x,vector &y,vector &z,
00024 double xi,double eta,double zeta,double &jac);
00025 void geom_matrix_block (matrix &gm,long ri,vector &x,vector &y,vector &z,
00026 double xi,double eta,double zeta,double &jac);
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);
00030 void res_stiffness_matrix (long eid,matrix &sm);
00031 void mass_matrix (long eid,matrix &mm);
00032 void res_mass_matrix (long eid,matrix &mm);
00033 void load_matrix (long eid,matrix &lm);
00034 void res_load_matrix (long eid,matrix &lm);
00035
00036 void res_ip_strains (long lcid,long eid);
00037 void ip_strains (long lcid,long eid,long ri,long ci,vector &x,vector &y,vector &z,vector &r);
00038 void nod_strains_ip (long lcid,long eid,long ri,long ci);
00039 void nod_strains_comp (long lcid,long eid,double **stra);
00040 void strains (long lcid,long eid,long ri,long ci);
00041
00042 void nodecoord (vector &xi,vector &eta,vector &zeta);
00043
00044
00045 void res_ip_stresses (long lcid,long eid);
00046 void ip_stresses (long lcid,long eid,long ri,long ci);
00047 void ip_elast_stresses (long lcid,long eid,long ri,long ci);
00048 void nod_stresses_ip (long lcid,long eid,long ri,long ci);
00049 void nod_stresses_comp (long lcid,long eid,long ri,long ci,double **stra,double **stre);
00050 void stresses (long lcid,long eid,long ri,long ci);
00051
00052 void nod_eqother_ip (long eid,long ri,long ci);
00053
00054 void internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y,vector &z);
00055 void nonloc_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y,vector &z);
00056 void incr_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor,vector &x,vector &y,vector &z);
00057 void eigstrain_forces (long lcid,long eid,long ri,long ci,vector &nfor,vector &x,vector &y,vector &z);
00058
00059 void res_internal_forces (long lcid,long eid,vector &ifor);
00060 void res_nonloc_internal_forces (long lcid,long eid,vector &ifor);
00061 void res_incr_internal_forces (long lcid,long eid,vector &ifor);
00062 void res_eigstrain_forces (long lcid,long eid,vector &nfor);
00063
00064 void compute_nlstress (long lcid,long eid,long ri,long ci);
00065 void compute_nlstressincr (long lcid,long eid,long ri,long ci);
00066 void local_values (long lcid,long eid,long ri,long ci);
00067 void compute_nonloc_nlstress (long lcid,long eid,long ri,long ci);
00068 void compute_eigstress (long lcid,long eid,long ri,long ci);
00069 void elem_integration (integratedquant iq,long lcid,long eid,long ri,long ci,vector &nv,vector &x,vector &y,vector &z);
00070
00071 void ipcoord (long eid,long ipp,long ri,long ci,vector &coord);
00072 void inicipval(long eid, long ri, long ci, matrix &nodval, inictype *ictn);
00073 void ipvolume (long eid,long ri,long ci);
00074
00075 void node_forces_surf (long lcid,long eid,long *is,double *nv,vector &nf);
00076 void tran_mat(matrix &tran, vector &gx, vector &gy, vector &gz, long is);
00077
00078 void intpointval (long eid,vector &nodval,vector &ipval);
00079 void intpointval2 (long eid,vector &nodval,vector &ipval);
00080 void aver_strains (long lcid,long eid,long ri,long ci,vector &averstra,double &volume);
00081
00082
00083 long ndofe;
00084
00085 long nne;
00086
00087 long tncomp;
00088
00089 long tnip;
00090
00091 long *ncomp;
00092
00093 long *cncomp;
00094
00095 long napfun;
00096
00097 long ned;
00098
00099 long nned;
00100
00101 long nsurf;
00102
00103 long nnsurf;
00104
00105 long **intordsm;
00106
00107 long intordmm;
00108
00109 long intordb;
00110
00111 long **nip;
00112
00113 long nb;
00114
00115 strastrestate ssst;
00116
00117 };
00118
00119 #endif