7.10 DOF selection#
fe_c is the general purpose function for manipulating DOF definition vectors. It is called by many other functions to select subsets of DOFs in large DOF definition vectors. DOF selection is very much related to building an observation matrix c, hence the name fe_c.
For DOF selection, fe_c arguments are the reference DOF vector mdof and the DOF selection vector adof. adof can be a standard DOF definition vector but can also contain wild cards as follows
NodeId.0
means all the DOFs associated to node NodeId
0.DofId
means DofId for all nodes having such a DOF
-EltN.0
means all the DOFs associated to element EltId
Typical examples of DOF selection are
ind = fe_c(mdof,111.01,'ind'); returns the position in mdof of the x translation at node 111. You can thus extract the motion of this DOF from a vector using mode(ind,:). Note that the same result would be obtained using an output shape matrix in the command fe_c(mdof,111.01)*mode.
model = fe_mk(model,'FixDOF','2-D motion',[.03 .04 .05])
assembles the model but only keeps translations in the xy plane and rotations around the z axis (DOFs [.01 .02 .06]'). This is used to build a 2-D model starting from 3-D elements.
The feutil FindNode commands provides elaborate node selection tools. Thus femesh('findnode x>0') returns a vector with the node numbers of all nodes in the standard global variable FEnode that are such that their x coordinate is positive. These can then be used to select DOFs, as shown in the section on boundary conditions section 7.14. Node selection tools are described in the next section.