📄 fe_database.h
字号:
QUANTITY Ixy; /* [4] */
QUANTITY Iyz; /* [5] */
QUANTITY weight; /* [6] Section weight */
QUANTITY bf; /* [7] Width of flange */
QUANTITY tf; /* [8] thickness of flange */
QUANTITY depth; /* [9] Section depth */
QUANTITY area; /* [10] Section area */
QUANTITY plate_thickness; /* [11] */
QUANTITY tor_const; /* [12] Torsional Constant J */
QUANTITY rT; /* [13] Section radius of gyration */
QUANTITY width; /* [14] Section width */
QUANTITY tw; /* [15] Thickness of web */
} SECTION_ATTR;
typedef struct materials {
char *name; /* Material name */
QUANTITY E; /* [0] Young's modulus */
QUANTITY G; /* [1] Shear modulus */
QUANTITY fy; /* [2] Yield stress */
QUANTITY ET; /* [3] Tangent Young's Modulus */
double nu; /* [4] Poission's ratio */
QUANTITY density; /* [5] */
QUANTITY fu; /* [6] Ultimate stress */
QUANTITY *alpha_thermal; /* [7,8,9] thermal expansion coeff(0,1,2) */
QUANTITY Gt; /* [10] Tangent shear modulus */
double ks; /* [11] Shear correction factor */
QUANTITY fv; /* [12] Yielding stress for shear */
MATER_LOAD_CURVE *LC_ptr; /* parameters for decribing yield */
/* surface and stress strain curve */
} MATERIAL_ATTR;
/*
* ------------------------------------------
* Data Structure for Node and Element Arrays
* ------------------------------------------
*/
typedef struct node_prop {
int node_f; /* node number */
QUANTITY *fn;
} NODE_LOADS;
typedef struct eload_lib {
char *name;
short type; /* set to -1 for dist loads at input stage*/
QUANTITY *body_force;
QUANTITY temp_change;
QUANTITY *init_stress;
double *init_strain;
QUANTITY *traction;
int *nopl;
MATRIX *pr;
int face_no;
int numnp_face;
QUANTITY P; /* Load Value in Local y Direction */
QUANTITY a; /* Start distance of Load (P) from left end */
QUANTITY b; /* End distance of Load (P) from left end */
QUANTITY px,py,pz; /* Point Load Value in Local x,y,z Direction */
QUANTITY mx,my,mz; /* Moment Load Value in Local x,y,z Direction */
QUANTITY bx,by,bz; /* Dist Load Value in Local x,y,z Direction */
} ELOAD_LIB;
typedef struct element_loads {
int elmt_no; /* Element number identification */
int elmt_type; /* Element type identification */
int no_loads_faces; /* Number of elmts surface under traction */
double *face_direc; /* Direction cosine of tracted elment */
ELOAD_LIB *elib_ptr; /* Pointer to element_load struct */
} ELEMENT_LOADS;
/* ------------------------ */
/* Data structure for frame */
/* ------------------------ */
typedef struct frame {
char *name; /* Title */
int no_nodes; /* no of nodes */
int no_rigid; /* no of rigid body elements */
int no_elements; /* no of flexible elements */
int no_element_attr; /* no of element attributes */
int no_node_loads; /* no of nodal loads */
int no_element_loads; /* no of element loads */
int no_dimen; /* no of dimension */
int no_dof; /* no of dof per node--in global */
int no_nodes_per_elmt; /* max no of nodes per element */
NODE *node;
RIGID *rigid;
ELEMENT *element;
ELEMENT_ATTR *eattr;
NODE_LOADS *nforces;
ELEMENT_LOADS *eforces;
int *jdiag;
int no_eq;
int nre; /* flag for presence of nodal load delet later */
} EFRAME;
/*
* --------------------------
* Working Array For Elements
* --------------------------
*/
typedef struct Integ_Pts {
int surface_pts; /* No of integration points on surface/x-y plane */
int thickness_pts; /* No of integration points in thickness/z-direction */
int integ_pts; /* User defined inte pts */
} INTEG_PTS;
typedef struct array {
int no_dimen; /* No dimensions in Problem */
int elmt_no; /* Element no */
int elmt_attr_no; /* Elmt Attribute No, as stored in frame */
char *elmt_type; /* Element Type */
int nodes_per_elmt; /* Max no nodes per element */
int dof_per_node; /* Dof per node */
int size_of_stiff; /* Size of stiffness (mass) matrix */
int type; /* Flag for type of mass : LUMPED, Consistent */
int *d_array; /* Destination Array */
char *material_name; /* Material used in the element */
QUANTITY *work_material; /* Section/Material working array */
QUANTITY *work_section; /* Section/Material working array */
QUANTITY **coord; /* Nodal coordinates */
int *node_connect; /* Array of Nodal Connectivities */
QUANTITY *nodal_loads; /* Array of Point Loads */
QUANTITY *nodal_temp; /* Nodal temperature change */
QUANTITY **nodal_body_force; /* Nodal body force */
QUANTITY **nodal_init_stress; /* Nodal initial stress */
double **nodal_init_strain; /* Nodal initial strain */
QUANTITY **nodal_traction; /* Nodal surface tracion on load boundary */
MATRIX *stiff; /* Stiffness (and Mass) Matrix ??? */
MATRIX *equiv_nodal_load; /* Equivalant nodal loads */
MATRIX *mater_matrix; /* Material matrix at given gaussian point */
MATRIX *displ; /* Element Level Displacements */
MATRIX *displ_incr; /* Element Level Displacements incremental */
/* for time interval [t,t+dt] */
/* they are instored in local coordinate system */
MATRIX *strain_rate; /* Element Level Strain Rate */
MATRIX *stress_rate; /* Element Level Stress Rate */
MATRIX *stress; /* Element Level Stress at integration points */
MATRIX *strain_pl; /* Elemt level plastic strain at integ points */
MATRIX *strain_pl_incr; /* Elemt level plastic strain incr at integ pts */
double *effect_pl_strain; /* effective plastic strain at integration pts */
double *eff_pl_strain_incr; /* eff. plastic strain incr. at integration pts */
double *direc_cos; /* direction cosine for shell elmt used for */
/* correction of co-rotational coord */
int elmt_state; /* Element state : Elastic or Plastic */
MATER_LOAD_CURVE *LC_ptr; /* material load curve pointer */
double eep; /* Plastic strain ?? (use later) */
QUANTITY eangle;
QUANTITY ealpha;
QUANTITY length;
ELEMENT_LOADS *elmt_load_ptr;
INTEG_PTS *integ_ptr;
FIBER_ELMT *fiber_ptr;
MATRIX *Q_saved, *q_saved;
MATRIX *sr_saved, *er_saved, *s0_saved, *e0_saved, *sx_saved, *ex_saved;
int **yielding_saved, **pre_range_saved, **pre_load_saved;
} ARRAY;
#endif /* end case FE_DATABASE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -