00001 #ifndef LINHEX_H
00002 #define LINHEX_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 linhex
00017 {
00018 public:
00019 linhex (void);
00020 ~linhex (void);
00021 void eleminit (long eid);
00022 double approx (double xi,double eta,double zeta,vector &nodval);
00023 void bf_matrix (matrix &n,double xi,double eta,double zeta);
00024 void geom_matrix (matrix &gm,vector &x,vector &y,vector &z,
00025 double xi,double eta,double zeta,double &jac);
00026 void transf_matrix (ivector &nodes,matrix &tmat);
00027 void stiffness_matrix (long eid,long ri,long ci,matrix &sm);
00028 void res_stiffness_matrix (long eid,matrix &sm);
00029 void mass_matrix (long eid,matrix &mm);
00030 void load_matrix (long eid,matrix &lm);
00031
00032 void res_mainip_strains (long lcid,long eid);
00033 void mainip_strains (long lcid,long eid,long ri,long ci);
00034 void nod_strains (long lcid,long eid,long ri,long ci);
00035 void elem_strains (double **stra,long lcid,long eid,long ri,long ci);
00036 void appstrain (long lcid,long eid,double xi,double eta,double zeta,long fi,long li,vector &eps);
00037 void allip_strains (double **stra,long lcid,long eid,long ri,long ci);
00038 void strains (long lcid,long eid,long ri,long ci);
00039
00040 void nodecoord (vector &xi,vector &eta,vector &zeta);
00041 void appval (double xi,double eta,double zeta,long fi,long nc,vector &eps,double **val);
00042
00043 void mainip_stresses (long lcid,long eid,long ri,long ci);
00044 void nod_stresses (long lcid,long eid,long ri,long ci);
00045 void elem_stresses (double **stra,double **stre,long lcid,long eid,long ri,long ci);
00046 void appstress (long lcid,long eid,double xi,double eta,double zeta,long fi,long li,vector &sig);
00047 void allip_stresses (double **stre,long lcid,long eid,long ri,long ci);
00048 void stresses (long lcid,long eid,long ri,long ci);
00049
00050 void res_temp_forces (long lcid,long eid,vector &nfor);
00051 void temp_forces (long lcid,long eid,long ri,long ci,vector &nfor);
00052 void temperaturestrains (long lcid,long eid,long ri,long ci);
00053 void tempstrains (long lcid,long eid,long ipp,double xi,double eta,double zeta,vector &eps);
00054 void internal_forces (long lcid,long eid,long ri,long ci,vector &ifor);
00055 void internal_forces2 (long lcid,long eid,long ri,long ci,vector &ifor);
00056 void res_internal_forces (long lcid,long eid,vector &ifor);
00057 void local_values (long lcid,long eid,long ri,long ci);
00058 void nonloc_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor);
00059 void ipcoord (long eid,long ipp,long ri,long ci,vector &coord);
00060 void inicipval(long eid, long ri, long ci, matrix &nodval, inictype *ictn);
00061 void ipvolume (long eid,long ri,long ci);
00062
00063
00064
00065 long ndofe;
00066
00067 long nne;
00068
00069 long tncomp;
00070
00071 long tnip;
00072
00073 long napfun;
00074
00075 long ned;
00076
00077 long nned;
00078
00079 long **intordsm;
00080
00081 long intordmm;
00082
00083 long **nip;
00084
00085 long nb;
00086
00087 long *ncomp;
00088
00089 long *cncomp;
00090
00091 strastrestate ssst;
00092
00093 };
00094
00095 #endif