


BUILDUSET builduset(bgpdt, bgpdtb)
Builds the uset table from the bgpdt table.
Input: bgpdt, bgpdtb pointer to bgpdt table on data base
analysis: analysis type, string
Output: uset structure of partitioning vectors and its sizes
in global Matlab workspace
Calls Upartn (mex)
where ms= m-script, mf= m-function, mex= executable function (c-code)
This function is called after the uset bits in the bgpdt table have been
determined, e.g. after Gp4 or after Gpsp.
The uset table is a matlab structure containing
uset.pv_g g-set partitioning vector
uset.gsize size of the g-set
uset.pv_n n-set partitioning vector with respect to (wrt) the g-set
uset.nsize size of the n-set
uset.pv_m m-set partitioning vector wrt the g-set
uset.msize size of the m-set
uset.pv_s s-set partitioning vector wrt the n-set
uset.ssize size of the s-set
uset.pv_f f-set partitioning vector wrt the n-set
etc.
The sets have the following hierarchy
p - e p = e + g p= physical dof, e= extra point dofs
- g - m g= n + m g= grid dofs, m= multi-point constraint dofs
- n - s n= f + s n= dofs not constr.by m, s= single-point constr.dofs
- f - o f= a + o f= free dofs, o= omitted dofs
- a - q a= t + q a= assembled dofs, q= generalized modal dofs
- t - r t= l + r t= total dofs, r= rigid body dofs
- l - c l= c + b + lm l= left-over dofs, c= free dofs,
- b b= fixed dofs for modal reduction,
- lm lm= Lagrange multipliers.
any combination of sets can be constructed, e.g.
d= a + e d= dynamic dofs

0001 function uset=builduset( bgpdt, bgpdtb,analysis); 0002 % BUILDUSET builduset(bgpdt, bgpdtb) 0003 % 0004 % Builds the uset table from the bgpdt table. 0005 % 0006 % Input: bgpdt, bgpdtb pointer to bgpdt table on data base 0007 % analysis: analysis type, string 0008 % 0009 % Output: uset structure of partitioning vectors and its sizes 0010 % in global Matlab workspace 0011 % 0012 % Calls Upartn (mex) 0013 % where ms= m-script, mf= m-function, mex= executable function (c-code) 0014 % 0015 % This function is called after the uset bits in the bgpdt table have been 0016 % determined, e.g. after Gp4 or after Gpsp. 0017 % 0018 % The uset table is a matlab structure containing 0019 % 0020 % uset.pv_g g-set partitioning vector 0021 % uset.gsize size of the g-set 0022 % uset.pv_n n-set partitioning vector with respect to (wrt) the g-set 0023 % uset.nsize size of the n-set 0024 % uset.pv_m m-set partitioning vector wrt the g-set 0025 % uset.msize size of the m-set 0026 % uset.pv_s s-set partitioning vector wrt the n-set 0027 % uset.ssize size of the s-set 0028 % uset.pv_f f-set partitioning vector wrt the n-set 0029 % etc. 0030 % 0031 % The sets have the following hierarchy 0032 % 0033 % p - e p = e + g p= physical dof, e= extra point dofs 0034 % - g - m g= n + m g= grid dofs, m= multi-point constraint dofs 0035 % - n - s n= f + s n= dofs not constr.by m, s= single-point constr.dofs 0036 % - f - o f= a + o f= free dofs, o= omitted dofs 0037 % - a - q a= t + q a= assembled dofs, q= generalized modal dofs 0038 % - t - r t= l + r t= total dofs, r= rigid body dofs 0039 % - l - c l= c + b + lm l= left-over dofs, c= free dofs, 0040 % - b b= fixed dofs for modal reduction, 0041 % - lm lm= Lagrange multipliers. 0042 % 0043 % any combination of sets can be constructed, e.g. 0044 % d= a + e d= dynamic dofs 0045 0046 % 0047 % Go down the set hierarchy and fill the structure 0048 % note that the order m - s - o - q - r must be kept, the m- and n-set partitioning 0049 % vector are wrt the g-set, the s- and f-set partitioning vectors are wrt the n-set, 0050 % etc. 0051 % 0052 0053 % split g into m and n 0054 0055 [uset.pv_m, uset.pv_n]= Upartn( bgpdt, bgpdtb,analysis, 'g', 'm', 'n'); 0056 uset.msize= length(uset.pv_m); 0057 uset.nsize= length(uset.pv_n); 0058 uset.gsize= uset.msize + uset.nsize; 0059 0060 % split n into s and f 0061 0062 [uset.pv_s, uset.pv_f]= Upartn( bgpdt, bgpdtb,analysis, 'n', 's', 'f'); 0063 uset.ssize= length(uset.pv_s); 0064 uset.fsize= length(uset.pv_f); 0065 0066 % split f into o and a 0067 0068 [uset.pv_o, uset.pv_a]= Upartn( bgpdt, bgpdtb,analysis, 'f', 'o', 'a'); 0069 uset.osize= length(uset.pv_o); 0070 uset.asize= length(uset.pv_a); 0071 0072 % split a into q and t 0073 0074 [uset.pv_q, uset.pv_t]= Upartn( bgpdt, bgpdtb,analysis, 'a', 'q', 't'); 0075 uset.qsize= length(uset.pv_q); 0076 uset.tsize= length(uset.pv_t); 0077 0078 % split t into r and l 0079 0080 [uset.pv_r, uset.pv_l]= Upartn( bgpdt, bgpdtb,analysis, 't', 'r', 'l'); 0081 uset.rsize= length(uset.pv_r); 0082 uset.lsize= length(uset.pv_l);