fe_cyclic
Purpose
Support for cyclic symmetry computations.
Syntax
model=fe_cyclic('build NSEC',model,LeftNodeSelect)
fe_cyclic('display NSEC',model,def,EltSelect)
def=fe_cyclic('eig NDIAM',model,EigOpt)
Description
fe_cyclic groups all commands needed to compute responses assuming
cyclic symmetry. For more details on the associated theory you can refer to [45].
Assemble [,-struct]
This command supports the computations linked to the assembly of gyroscopic coupling, gyroscopic stiffness and tangent stiffness in geometrically non-linear elasticity. The input arguments are the model and the rotation vector (in rad/s)
model=demosdt('demo sector all');
[m,k,mdof]=fe_mknl(model);
SE=fe_cyclic('assemble -struct',model,[0 0 1000]); %
def=fe_eig({m,k,mdof},[6 20 0]); % Non rotating modes
def2=fe_eig({m,SE.K{4},mdof},[6 20 0]); % Rotating mode shapes
[def.data def2.data]
Note that the rotation speed can also be specified using a stack entry model=stack_set(model,'info','Omega',[0 0 1000]).
model=fe_cyclic('build nsec epsl len',model,'LeftNodeSelect') adds a cyclic symmetry entry in the model case. It automatically rotates the nodes selected with LeftNodeSelect by 2p/nsec and finds the corresponding nodes on the other sector face. The default for LeftNodeSelect is 'GroupAll' which selects all nodes.
Display
fe_cyclic('display nsec',model,def,'EltSelect') repeats the model elements selected with EltSelect (default is 'GroupAll') and displays the resulting model and deformations def on nsec sectors.
Eig
def=fe_cyclic('eig ndiam',model,EigOpt) computes ndiam diameter modes using the cyclic symmetry assumption. For ndiam>0 these modes are complex to account for the inter-sector phase shifts. EigOpt are standard options passed to fe_eig.
This example computes the two diameter modes of a three bladed disk also used in the d_cms2 demo.
model=demosdt('demo sector');
model=fe_cyclic('build 3',model,'groupall');
fe_case(model,'info')
def=fe_cyclic('eig 2',model,[6 20 0 11]);
fe_cyclic('display 3',model,def)
TEig
The TEig commands seek to compute modes for multiple diameters in a single job. With a model saved in structure Up, you can specify target diameters, eigenvalue options and possibly a file name to save intermediate results
model=demosdt('demo sector 5');
fe_case(model,'info')
def=fe_cyclic('teig 0 1 3 5',model,[6 20 0 11],tempname);
fe_cyclic('display 5',model,def)
Finally def=fe_cyclic('teig',[0 1 3],d0,d1,d3); can be used to merge modes computed elsewhere in the typical multi-diameter solution.
Nast
Nast commands are not distributed with the base SDT. Please get in touch with SDTools for licensing possibilities.
NastPreStress
NastPreStress computes the modes of a rotating structure. A first static job computes the effect of centrifugal loading. This job can use either linear (SOL 101) or non-linear (SOL 106) statics. A NASTRAN job restart is then used compute the modes at the selected target diameters.
tname=nas2up('tempname _rot.dat');
%
model=demosdt('demo sector 6');
femesh(model);FEel0=FEelt;femesh('hexa82hexa20');FEelt=FEel0;model=femesh;
model=fe_cyclic('build 6',model,'groupall');
model=stack_set(model,'info','Omega',1000); % rad/s (NASTRAN uses rev/s)
model=stack_set(model,'info','EigOpt',[5 10 0]);
model=fe_case(model,'par','Blade','withnode {r>.035}');
%model=stack_set(model,'info','NasJobOpt','memory=8GB');
fe_case(model,'info')
st2=nas2up('NameTrailer _include.dat',tname);
fclose('all');delete(st2);naswrite(st2,model);
com=sprintf('NastPreStress -linear -run 0 1 include %s',st2);
%com=sprintf('NastPreStress -nonlinear -run 0 1 2 include %s',st2);
def=fe_cyclicb(com,tname,model);
com=sprintf('NastPreStress -linear -disk -run 0 1 include %s',st2);
DISK=fe_cyclicb(com,strrep(tname,'_rot','_disk'),model);
DISK=stack_set(DISK,'info','EigOpt',[5 40 0 11 1e-8]);
dr2=fe_cyclic('diskeig',DISK)
fe_cyclic('display 6',model,dr2,'selface',DISK)
%figure(1);plot(1:size(dr2.data,1),dr2.data(:,1),'-', ...
% 1:size(def.data,1),def.data(:,1),'+')
With the -FixRing option a list or selection of fixed ring nodes is assumed to be stored in a 'info','FixedRing' stack entry. This entry defaults to the first node of the right interface. The first ring node not on the left interface is fully fixed. Nodes on the left interface are left untouched since they are contrained by cyclic symmetry conditions, other nodes have their ur and uz components blocked.
With the -disk option, a reduced sector model is built for use with fe_cyclic disk commands.
With the -run option, NASTRAN is started automatically (see nas2up Job commands for configuration information).
NastTeigMK
Computations of modes at multiple diameters in a single NASTRAN
run. Accepted variants are
-
NastTeigMK-prestress is used to internally by the NastPrestress command to build the cyclic symmetry constraints.
- NastTeigMK-restart is called NastPrestress-restart command when using a two step run (static computation that is either linear or non linear) followed by an eigenvalue computation using the rot_TwoSectorMultiDiam.dat DMAP.
- NastTeigMK uses matrices that have been computed elsewhere is called NastPrestress-restart command when using a two step run (static computation that is either linear or non linear) followed by an eigenvalue computation.
Reduce
The Reduce command is used to generate a disk model from a set of modes associated multiple diameters symmetry. The general call is
DISK=fe_cyclic('reduce',model,def);
See also
Section 7.13
©1991-2007 by SDTools