SDT-base Contents   Functions      PDF Index |
Observation of stress and resultant fields is an application that requires specific tools for performance. A number of commands are thus available for this purpose. The two main commands are fe_caseg StressCut for generation of the observation and fe_caseg StressObserve for the generation of a curve Multi-dim curve showing observations as a table.
This functionality has been significantly stabilized for SDT 6.5 but improvements and minor format changes are still likely for future releases.
Stresses can be observed at nodes of arbitrary meshes (view meshes that are very much related to test wireframes). You should look-up feutil('object') commands for ways to build simple shapes. A few alternate model generation calls are provided in fe_caseg StressCut as illustrated below and in the example for resultant sensors.
% Build straight line by weighting of two nodes VIEW=fe_caseg('stresscut', ... struct('Origin',[0 0 0;0 0 1], ... % [n1,n2] 'steps',linspace(0,1,10))) % Automated build of a cut (works on convex cuts) model=demosdt('demoubeam-pro');cf=feplot; RO=struct('Origin',[0 0 .5],'axis',[0 0 1]); VIEW=fe_caseg('StressCut',RO,cf); feplot(VIEW) % note problem due to non convex cut %View at Gauss points model=demosdt('demoubeam-pro');cf=feplot; cut=fe_caseg('StressCut-SelOut',struct('type','Gauss'),model); cuts= fe_caseg('stresscutToStrain',cut); % Observe beam strains at Gauss points [model,def]=beam1t('testeig') mo1=fe_caseg('StressCut',struct('type','BeamGauss'),model); cut=fe_caseg('StressCut -radius 10 -SelOut',mo1,model); C1=fe_caseg('StressObserve -crit""',cut,def) % Observation as CURVE
Generic command is :
VIEW=fe_caseg('StressCut',RO,model);
RO is a data structure defining the view mesh. Different views are available according to RO.type or RO fields:
The first use of StressCut is to build a feplot selection to be used to view/animate stress fields on the view mesh. A basic example is shown below.
% build model model=demosdt('volbeam');cf=feplot(model); % build view mesh VIEW=fe_caseg('stresscut', ... struct('Origin',[0 .05 .05;1 .05 .05], ... % [n1,n2] 'steps',linspace(1,0,10))) % build stress cut view selection sel=fe_caseg('stresscut -selout',VIEW,cf);cla(cf.ga);feplot % generation observation cf.def=fe_eig(model,[5 10 0]); fe_caseg('stresscut',sel,cf) % Overlay view and nominal mesh fecom('scc2') % Force equal scaling
The result of StressCut is found in sel.StressObs.cta which is an observation matrix giving the linear relation between motion at DOF of the elements connected to target points, to stress components at these target points. The procedure used to build this observation matrix in fe_caseg is as follows
(4.2) |
Note that typically, a sel.StressObs.trans field gives the observation matrix associated with translations at the target points to allow animation of positions as well as colors.
StressCut sensors provide stress post-treatments in model cutoffs. The command interprets a data structure with fields
.EltSel | FindElt command that gives the elements concerned by the resultant. |
.SurfSel | FindNode command that gives the selection where the resultant is computed. |
.type | contains the string 'resultant'. |
Following example defines a StressCut call to show modal stresses in an internal surface of a volume model
demosdt('demoubeam') cf=feplot;fecom('showpatch') cf.mdl=feutil('lin2quad',cf.mdl); % better stress interpolation def=fe_eig(cf.mdl,[5 10 1e3]); cf.def=def; r1=struct('EltSel','withnode {z<2}', ... 'SurfSel','inelt{innode{z==2}}', ... 'type','Resultant'); fe_caseg('stresscut',r1,cf); % adapt transparencies fecom(cf,'SetProp sel(1).fsProp','FaceAlpha',0.01,'EdgeAlpha',0.2);
The observation in feplot is performed on the fly, with data stored in cf.sel(2).StressObs (for the latter example).
Command option -SelOut allows recovering the observation data. Field .cta is here compatible with general sensors, for customized observation.
cta=fe_caseg('StressCut-SelOut',r1,cf);