[ Mass and Stiffness Matrices ] [ Retrieving Information from ALADDIN Database ] [ Nonlinear Analysis ]
Note : Many of these features are new to Aladdin 2.0.
Stiff()
This function calculates the linear elastic stiffness matrix.
Mass( [ massflag ] )
This function calculates the system mass matrix. The {\tt massflag} argument is optional and equals:
massflag = [ 1] .... compute lumped mass matrix. massflag = [-1] .... compute consistent mass matrix.
ExternalLoad()
ExternalLoad() calculate the external nodal loads.
Example : In the following script of code, mass is the global mass matrix, stiff is the global stiffness matrix, and eload is a vector of external nodal loads applied to the finite element global degrees of freedom.
/* Form Mass matrix, stiffness matrix, and external load vector */ mass = Mass(); stiff = Stiff(); eload = ExternalLoad();
The three functions Mass(), Stiff(), and ExternalLoad() should be called only after the function call to EndMesh().
Aladdin has an ensemble of functions for retrieving information from the database that may be required for problem post processing. Post processing activities include "design rule checking", "preparation of the finite element output for plotting" and "correction of internal element forces to account for uniform/distributed element load".
FINITE ELEMENT MESH
GetCoord( [ nodeno] )
GetCoord() takes as its input a (1x1) matrix containing the node number. For two-dimensional finite element problems, GetCoord() returns a 1x2 matrix,
( m[1][1], m[1][2] ) = (x,y).
A 1x3 matrix is returned for three-dimensional elements,
( m[1][1], m[1][2], m[1][3] ) = (x,y,z).
Example :
GetDof( [ nodeno ] )
GetDof() is short for ``get the matching global degrees of freedom number for a node.'' It returns a (1xn) matrix, n equals to the number of degrees of freedom in the node. For two-dimensional beam-column elements, n = 3, and
( m[1][1], m[1][2], m[1][3] ) = ( dof_dx, dof_dy, dof_rz );
For the three-dimensional frame element, n = 6, and
( m[1][1], m[1][2], m[1][3], m[1][4], m[1][5], m[1][6] ) = ( dof_dx, dof_dy, dof_dz, dof_rx, dof_ry, dof_rz ).
A negative number in the output matrix indicates the associated degree of freedom is fixed.
Example :
GetNode( [ elmtno ] )
GetNode() retrieves a (1xn) matrix of node numbers connected to finite element elmtno . n equals to the number of nodes in the element. For example, n = 2 for 2D and 3D beam element, and n = 4 for the 4-node shell element.
The matrix will be in the same order as you input the nodes connection in AddElmt() .
Example :
MATERIAL AND SECTION PROPERTIES
Two functions, GetSection() and GetMaterial() are provided for the retrieval of section and material properties.
GetMaterial( [ elmtno ] )
This function takes as its argument, a 1x1 matrix containing the element no. It returns a 10x1 matrix of material properties:
====================================================================== Matrix Element Quantity Description ====================================================================== [1][1] E Young's modulus [2][1] G Shear modulus [3][1] Fy Yield stress [4][1] ET Tangent Young's Modulus [5][1] nu Poission's ratio [6][1] density Material density [7][1] Fu Ultimate stress [8][1] thermal[0] x-direction coeff. of thermal expansion [9][1] thermal[1] y-direction coeff. of thermal expansion [10][1] thermal[2] z-direction coeff. of thermal expansion ======================================================================
GetSection( [ elmtno ] )
GetSection() takes as its input argument, a 1 by 1 matrix containing the element no. It returns a 16 by 1 matrix of section properties, namely
=============================================================== Matrix Element Quantity Description =============================================================== [1][1] Ixx Moment of inertia about x-x axis. [2][1] Iyy Moment of inertia about y-y axis. [3][1] Izz Moment of inertia about z-z axis. [4][1] Ixz Product of inertia x-z. [5][1] Ixy Product of inertia x-y. [6][1] Iyz Product of inertia y-z. [7][1] weight Section weight [8][1] bf Width of flange [9][1] tf Thickness of flange [10][1] depth Section depth [11][1] area Section area [12][1] thickness Thickness of plate [13][1] tor_const Torsional Constant J [14][1] rT Section radius of gyration [15][1] width Section width [16][1] tw Thickness of web ===============================================================
Example :
SYSTEM MATRICES AND BEHAVIOR
GetDispl( [ nodeno ], displ_m )
GetDispl() is short for ``get displacement,'' and takes as input, a node number, nodeno, and the calculated displacement matrix displ_m .
It returns a (1xn) matrix, where n equals to the number of degrees of freedom in the node. For a two-dimensional beam element, for example, n = 3 and
( m[1][1], m[1][2], m[1][3] ) = ( displ_x, displ_y, rot_z)
Similarly, for three-dimensional frame elements, n = 6, and
( m[1][1], m[1][2], m[1][3], m[1][4], m[1][5], m[1][6] ) = ( displ_x, displ_y, displ_z, rot_x, rot_y, rot_z ).
Example : Let's suppose that the displacements in a structure have been calculated with
displ = Solve (stiffness, external_load );
The matrix "displ" store the structural displacements. The displacements at node "ii" can be retrieved by simply giving the command:
nodal_displ = GetDispl( [ ii ], displ);
GetStress( [ elmtno ], displ_matrix )
GetStress() accepts as its input, an element number and the calculated displacement matrix. This function returns a (mxn) matrix,
m = the number of nodes in the element, n = the number of degrees of freedom in a node.
containing the nodal forces for the matrix.
Example : (mxn)=(2x3) for 2D beam element,
1 2 3 node 1 Fx1 Fy1 Mz1 node 2 Fx2 Fy2 Mz2 (mxn)=(2x6) for 2D beam element, 1 2 3 4 5 6 node 1 Fx1 Fy1 Fz1 Mx1 My1 Mz1 node 2 Fx2 Fy2 Fz2 Mx2 My2 Mz2
The order of the nodes 1,2... is defined in the nodes connection matrix in AddElmt() .
Note. In Aladdin 1.0, this function only works for 2D and 3D beam elements. In Aladdin 2.0, works for the 2D and 3D beam elements, and the Plane Stress/Plain Strain element. We are currently adding this feature to the two- and three-d fiber elements.
GetMass( [ elmtno ] )
This function returns the mass matrix matrix corresponding to the element number elmtno .
Example : Details coming soon ....
GetStiffness( [ elmtno ] )
This function returns the element stiffness matrix corresponding to the element number elmtno .
Example : Details coming soon ....
Aladdin 2 and 3 contain functions for the solution of nonlinear finite element problems. (At this point, the implementation is rather restricted, and works for only a few finite element types).
ElmtStateDet() : This function computes the element-level resisting forces and corresponding element deformations.
Note. In Aladdin (version 3) this function is a bit of a hack and currently serves several purposes:
We need to fix the second item later!!!
UpdateResponse() : Save element response to frame data structures. This includes:
Developed in July 1996 by Mark Austin
Copyright © 1996-2000, Department of Civil Engineering, University of Maryland