SDT-rotor Contents   Functions      PDF Index |
Purpose
The generic form of NLdata specification is discussed in section ??.
Implementation of linear or large rotation setting of DOF values from time curves of a fe_case DofSet entry. sdtweb('_eval;','d_fetime.m#NLNewmark_LrDofSet').
Supported variants are
uses NLdata.opt=[comstr('Power',-32) k n] and snl=k unln.
uses tabular definitions in either NLdata.Fu or NLdata.Fv. If you want a case with both simultaneously to be reimplemented please provide a test case. Implements a Jacobian using tangent stiffness. Run example with sdtweb('_eval;','d_fetime.m#ModalNew_FuTable').
Implement time varying matrices and DofSet xxx.
Implements callback to user defined .m file implementations of non-linearities as detailed in section ??.
Large displacement surface contact supported as part of the contact module (see sdtweb(xxx)). Possible application : rail/wheel contact. This supports low pass filtering of contact forces, using an evolution equation of the form Ḟc/ωc + Fc = kc g (for a positive constant) or Ḟc/ωc + Fc = kc √(g) for a negative constant. This avoids incorrect bouncing of stiff contacts in implicit computations and ωc should be a fraction of the sampling frequency (inverse of time step) or the maximum mesh frequency.
Large rotation tabular spring for multi-body applications. cbush kinematics are expected and rotations are assumed using Bryan angles in radians. Requires one non-linearity for each spring (not currently vectorized). The NL.Node field gives slave and master node for each body (4 nodes). The observed motion is given at the master node and large rotation is used to determine the current position of the slave node. With single axis springs (large rotation rod) the position of the two slave nodes should be disjoint.
The stress vector used by this non-linearity contains 24 elements
This non-linearity supports observation of various quantities during FEM computations. The base definition is associated with the sdtweb('sensor# scell')
Needs documentation, see sdtweb d_fetime('slab').
NL=struct('type','nl_inout','slab',{li(:)},'UserObs',dyn_solve('@doObs')); mt=stack_set(mt,'pro','Sensors',struct('il',1e5-1,'type','p_null', ... 'NLdata',NL));
Note that in predictor/corrector schemes, it may be necessary to recompute the residual to obtain the correct residual.