SDT-base         Contents     Functions         Previous Next     PDF Index

4.9  Stress observation

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.

4.9.1  Building view mesh

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:

4.9.2  Building and using a selection for stress observation

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

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.

4.9.3  Observing resultant fields

StressCut sensors provide stress post-treatments in model cutoffs. The command interprets a data structure with fields


.EltSelFindElt command that gives the elements concerned by the resultant.
.SurfSelFindNode command that gives the selection where the resultant is computed.
.typecontains 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);

©1991-2024 by SDTools
Previous Up Next