⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fe_database.h

📁 有限元分析源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* *  =============================================================================  *  ALADDIN Version 1.0 : *        fe_database.h : Database for Finite Element Machine *                                                                      *  Copyright (C) 1995 by Mark Austin, Xiaoguang Chen, and Wane-Jang Lin *  Institute for Systems Research,                                            *  University of Maryland, College Park, MD 20742                                    *                                                                      *  This software is provided "as is" without express or implied warranty. *  Permission is granted to use this software for any on any computer system *  and to redistribute it freely, subject to the following restrictions: *  *  1. The authors are not responsible for the consequences of use of *     this software, even if they arise from defects in the software. *  2. The origin of this software must not be misrepresented, either *     by explicit claim or by omission. *  3. Altered versions must be plainly marked as such, and must not *     be misrepresented as being the original software. *  4. This notice is to remain intact. *                                                                     *  Written by: Mark Austin, Xiaoguang Chen, and Wane-Jang Lin      December 1995 *  =============================================================================  */#ifndef FE_DATABASE_H#define FE_DATABASE_Htypedef struct element_response {     MATRIX                 *Forces;     MATRIX                 *stress;     MATRIX                  *displ;      MATRIX              *strain_pl;     MATRIX         *strain_pl_incr;     double       *effect_pl_strain;     double     *eff_pl_strain_incr;     QUANTITY            min_moment;     QUANTITY       max_moment, Mzc;     QUANTITY  min_shear, max_shear;     MATRIX     *Q_saved,  *q_saved;     MATRIX  	*sr_saved, *er_saved;    /* matrix[no_integ_pt][ifib] */     MATRIX     *s0_saved, *e0_saved;     MATRIX  	*sx_saved, *ex_saved;} RESPONSE;typedef struct mater_load_curve {   char                  *name;   /* load curve type                       */   double                   *R;   /* radius of yield surface               */   double        **back_stress;   /* back stress vector                    */   double                   *H;   /* tangent of stress-plastic strain curve*/   double                alpha;   /* parameter for Ramberg-Osgood relation */   double                    n;   /* strain hardening exponent             */   double                 beta;   /* parameter for strain hardening        */                                  /* beta = 0 kinematic hardening          */                                  /* beta = 1 isotropic hardening          */   /*  variables defined for elmt_shell_4n_q  */   int                   ialph;   /* Rotation constant ; 0=none, 1=hughes  */   double                  pen;   /* Penalty constant                      */   double              load[6];   /* Loading parameters, per unit area     */                                  /* [0]: uniform loading in 1-direction   */                                  /* [1]: uniform loading in 2-direction   */                                  /* [2]: pressure loading normal to shell */                                  /* [3]: gravity loading in x-direction   */                                  /* [4]: gravity loading in y-direction   */                                  /* [5]: gravity loading in z-direction   */} MATER_LOAD_CURVE;/* * ------------------ * Nodes and Elements   * ------------------ */typedef struct node {        QUANTITY       *coord;     /* Coordinates of node            */        int            *bound_id;  /* Boundary Constratint ID        */        int             rb_num;    /* component of rigid body number */        QUANTITY       *disp;        MATRIX         *TrT;} NODE;typedef struct element_state {        int             state; /* state = 1    elastic-plastic deformation */                               /* state = 0    elastic deformation         */	int	**yielding_saved, **pre_range_saved, **pre_load_saved;} ELEMENT_STATE;typedef struct element {        char     *elmt_attr_name;  /* Elmt_Attr name                      */        int        *node_connect;  /* List of Nodal Connectivities        */	int         elmt_attr_no;  /* Elmt Attribute No (stored in frame) */        int             *d_array;  /* Destination array storage           */        RESPONSE             *rp;  /* Response Pointer                    */        ELEMENT_STATE       *esp;  /* Deformation State of the Element    */        MATER_LOAD_CURVE *LC_ptr;  /* properties for describe yield       */                                   /* surface and stress-strain curve     */} ELEMENT;/* *  -------------------------------  *  Data Structure For Rigid Bodies  *  -------------------------------  */typedef struct rigid {        char       *rbody_attr_name;  /* Specified Rbody_Attr name              */        int              nodes_conn;  /* number of nodes connected              */        int                 rb_type;  /* assigned aelmt type                    */        int                     *in;  /* node numbers connected by rigid body   */	int              *per_nodes;  /* list of perimeter nodes                */        int               *rest_dof;  /* array of dofs: 1/o-dof un-/ restricted */        QUANTITY      xcg, ycg, zcg;  /* coordinates of c.g. of rigid body      */        QUANTITY              *prop;  /* properties input for rigid body        */} RIGID;/* *  ----------------------------------------------------------------------- *  Working Arrays for Element, Material and Section Attributes  *  *  Note : MATERIAL and SECTION Attributes only stored in Symbol Table. *       : ELEMENT_ATTR is stored in symbol table and frame data structure. *       : Space for "double *d" only used when attached to frame.  *  ----------------------------------------------------------------------- */typedef struct fiber_attr {	QUANTITY	y, z;	QUANTITY	area;	QUANTITY	Es, Et, fy;} FIBER_ATTR;typedef struct fiber_elmt {	int		no_fiber;	FIBER_ATTR      *fiber;   /* Array of fibers for all fiber properties */}FIBER_ELMT;typedef struct elmt_attr {        char                    *name;        char               *elmt_type;        char                *material;        char                 *section;        char         *fiber_attr_name;        int         *map_ldof_to_gdof;        QUANTITY       *work_material;   /* Working Array for Material Properties    */        QUANTITY        *work_section;   /* Working Array for Section  Properties    */	FIBER_ELMT        *work_fiber;} ELEMENT_ATTR;                                         /* notes :                                  */                                         /* For given elmement No, element property  */                                         /* can be recalled from these two working   */                                         /* arraries instead of looking up hashing   */                                         /* table                                    */typedef struct section_attr {        char *section_name;        int   section_type;         QUANTITY      Ixx;           /* [0] */        QUANTITY      Iyy;           /* [1] */        QUANTITY      Izz;           /* [2] */        QUANTITY      Ixz;           /* [3] */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -