Contents     Functions     Index     Previous Next     PDF

rigid



Purpose

Linearized rigid link constraints.



Synopsis
[T,cdof] = rigid(node,elt,mdof)
[T,cdof] = rigid(Up)
Description

Rigid links are often used to model stiff connections in finite element models. One generates a set of linear constraints that relate the 6 DOFs of master M and slave S nodes by
{
u
v
w
rx
ry
rz
}S=[
1 0 0 0 zMS -yMS
0 1 0 -zMS 0 xMS
0 0 1 yMS -xMS 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
] {
u
v
w
rx
ry
rz
}M

Although they are linear constraints rather than true elements, such connections can be declared using an element group of rigid connection with a header row of the form [Inf abs('rigid')] followed by as many element rows as connections of the form
 [ n1 n2 DofSel MatId ProId EltId]
where node n2 will be rigidly connected to node n1 which will remain free. DofSel lets you specify which of the 3 translations and 3 rotations are connected (thus 123 connects only translations while 123456 connects both translations and rotations).

The other strategy is to store them as a case entry. rigid entries are rows of the Case.Stack cell array giving {'rigid', Name, Elt}. Name is a string identifying the entry. Elt is a model description matrix containing rigid elements. The elements can also be declared as standard elements as in the following example which generates the mesh of a square plate with a rigid edge

femesh('reset');
femesh(';testquad4 divide 10 10;addsel');

% Define a rigid edge
femesh('selelt seledge & innode{x==0}') 
femesh('setgroupa1 name rigid')
FEel0(femesh('findel0 group1'),3)=123456; % all 6 DOF are slave
FEel0(femesh('findel0 group1'),4)=0;      % not a DOF equality

femesh('addsel');model=femesh % add to element matrix
% alternative define as a case entry
%model=fe_case(model,'rigid','Rigid edge',FEel0); 

% Compute and display modes
def=fe_eig(model,[6 20 1e3]);
feplot(model,def);fecom(';view3;ch8;scd.1');
An additional call is rigidAppend in order to simply add new rigid links. You may use a list of the form [MasterNode slaveDOF slaveNode_1 slaveNode_2 ... slaveNode_i] or of the form of an element matrix (containing a header).

The preceding call would be
 model=fe_case(femesh,'rigidAppend','Rigid edge',FEel0);
or
 model=fe_case(femesh,'rigidAppend','Rigid edge',...
               [FEel0(2,2) .01 FEel0(2,2) FEel0(3,2)];
The rigid function is only used for low level access. High level use of constraints is discussed in section 7.13 which discusses handling of linear constraints in general.

If coordinate systems are defined in field model.bas (see basis), PID (position coordinate system) and DID (displacement coordinate system) declarations in columns 2 and 3 of model.Node are properly handled.

You can use penalized rigid links (celas element) instead of truly rigid connections. This requires the selection of a stiffness constant but can be easier to manipulate. To change a group of rigid elements into celas elements change the element group name femesh('SetGroup rigid name celas') and set the stiffness constant FEelt(femesh('FindEltGroupi'),7) = Kv.



See also

Section 7.13, celas

©1991-2007 by SDTools
Previous Up Next