00001 #ifndef BAREL3D_H
00002 #define BAREL3D_H
00003
00004 #include "alias.h"
00005 struct matrix;
00006 struct vector;
00007 struct ivector;
00008
00009
00010
00011
00012
00013
00014
00015 class barel3d
00016 {
00017 public:
00018 barel3d (void);
00019 ~barel3d (void);
00020 void dirvect (vector &s,double &l,vector &x,vector &y,vector &z);
00021
00022 void geom_matrix (matrix &gm,vector &s,double l);
00023 double approx (double xi,vector &nodval);
00024 void transf_matrix (ivector &nodes,matrix &tmat);
00025 void tran_mat (vector &x, matrix &tmat,vector &gx,vector &gy);
00026
00027 void stiffness_matrix (long eid,long ri,long ci,vector &s,matrix &sm);
00028 void res_stiffness_matrix (long eid,matrix &sm);
00029 void mass_matrix (long eid,matrix &mm);
00030 void res_mass_matrix (long eid,matrix &mm);
00031
00032 void giveloccoord(vector &x, vector &y,vector &lx);
00033
00034 void res_ip_strains (long lcid,long eid);
00035 void ip_strains (long lcid,long eid,long ri,long ci,vector &x,vector &r,double l);
00036 void nod_strains_ip (long lcid,long eid,long ri,long ci);
00037 void strains (long lcid,long eid,long ri,long ci);
00038
00039 void res_ip_stresses (long lcid,long eid);
00040 void ip_stresses (long lcid,long eid,long ri,long ci);
00041 void ip_elast_stresses (long lcid,long eid,long ri,long ci);
00042 void nod_stresses_ip (long lcid,long eid,long ri,long ci);
00043 void stresses (long lcid,long eid,long ri,long ci);
00044
00045 void nod_eqother_ip (long lcid,long eid,long ri,long ci);
00046
00047
00048 void internal_forces (long lcid,long eid,long ri,long ci,vector &ifor);
00049 void nonloc_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor);
00050 void incr_internal_forces (long lcid,long eid,long ri,long ci,vector &ifor);
00051 void eigstrain_forces (long lcid,long eid,long ri,long ci,vector &nfor);
00052 void res_internal_forces (long lcid,long eid,vector &ifor);
00053 void res_nonloc_internal_forces (long lcid,long eid,vector &ifor);
00054 void res_incr_internal_forces (long lcid,long eid,vector &ifor);
00055 void res_eigstrain_forces (long lcid,long eid,vector &nfor);
00056
00057 void ipcoord (long eid,long ipp,long ri,long ci,vector &coord);
00058 void intpointval (long eid,vector &nodval,vector &ipval);
00059 void ipvolume (long eid,long ri,long ci);
00060 void inicipval(long eid, long ri, long ci, matrix &nodval, inictype *ictn);
00061
00062 void compute_nlstress (long lcid,long eid,long ri,long ci);
00063 void compute_nlstressincr (long lcid,long eid,long ri,long ci);
00064 void local_values (long lcid,long eid,long ri,long ci);
00065 void compute_nonloc_nlstress (long lcid,long eid,long ri,long ci);
00066 void compute_eigstress (long lcid,long eid,long ri,long ci);
00067 void elem_integration (integratedquant iq,long lcid,long eid,long ri,long ci,vector &nv,vector &x,vector &y,vector &z);
00068
00069 void find_extreme_strains (vector &min,vector &max,long lcid,long eid);
00070 void find_extreme_stresses (vector &min,vector &max,long lcid,long eid);
00071
00072
00073
00074 long ndofe;
00075
00076 long nne;
00077
00078 long tncomp;
00079
00080 long *ncomp;
00081
00082 long *cncomp;
00083
00084 long napfun;
00085
00086 long **intordsm;
00087
00088 long intordmm;
00089
00090 long **nip;
00091
00092 long nb;
00093
00094 strastrestate ssst;
00095
00096 long tnip;
00097 };
00098
00099 #endif