This repository has been archived by the owner on May 15, 2024. It is now read-only.
generated from SAP/repository-template
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathmechanism_analysis.tex
3048 lines (2500 loc) · 139 KB
/
mechanism_analysis.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
% SPDX-FileCopyrightText: 2023 SAP SE
%
% SPDX-License-Identifier: Apache-2.0
%
% This file is part of FEDEM - https://openfedem.org
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% FEDEM User Guide.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Chapter{Mechanism Analysis}{mechanism-analysis}
Now that you can assemble a model and implement a control system,
you are ready to analyze the mechanism.
This chapter describes methods of mechanism analysis in Fedem, including
descriptions of setting up, starting, processing, and stopping the analyses.
Sections in this chapter address the following topics:
\begin{itemize}
\item
\protect\hyperlink{overview-of-fedem-analyses}
{Overview of Fedem analyses}
\item
\protect\hyperlink{solver-tools}
{Solver tools}
\item
\protect\hyperlink{model-reduction}
{Model reduction}
\item
\protect\hyperlink{model-reduction-in-nastran}
{Model reduction in Nastran}
\item
\protect\hyperlink{dynamics-analysis}
{Dynamics analysis}
\item
\protect\hyperlink{stress-recovery-analysis}
{Stress recovery analysis}
\item
\protect\hyperlink{mode-shape-recovery-analysis}
{Mode shape recovery analysis}
\item
\protect\hyperlink{strain-rosette-analysis-1}
{Strain rosette analysis}
\item
\protect\hyperlink{strain-coat-analysis-1}
{Strain coat analysis}
\item
\protect\hyperlink{direct-linear-analysis-of-fe-parts}
{Direct linear analysis of FE Parts}
\item
\protect\hyperlink{interaction-during-processing}
{Interaction during processing}
\item
\protect\hyperlink{deleting-results}
{Deleting results}
\item
\protect\hyperlink{automated-curve-export-from-multiple-result-database-files}
{Automated curve export from multiple result database files}
\item
\protect\hyperlink{batch-execution-of-solver-processes}
{Batch execution of solver processes}
\item
\protect\hyperlink{how-to-read-error-messages-from-the-solvers}
{How to read error messages from the solvers}
\item
\protect\hyperlink{using-simulation-events}
{Using simulation events}
\end{itemize}
\clearpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Overview of Fedem analyses}{overview-of-fedem-analyses}
\subsection{Model reduction}
To speed up the dynamics simulation and other mechanism analyses,
Fedem first performs the model reduction process.
During model reduction, individual parts (FE models) in the mechanism assembly
are reduced to superelements with external nodes at those points which connect
parts and other mechanism elements.
Fedem uses a Component Mode Synthesis (CMS) model reduction method that replaces
the internal nodal DOFs with a set of static and component modes.
The model reduction process for each part generates superelement mass- and
stiffness matrices, which are then assembled into the system mass and stiffness
matrices in the dynamics simulation.
See the \FedemTGuide{Chapter 3, "Model Reduction"}
for more information about the Fedem model reduction process.
You can initiate the model reduction process manually at any time
(see \refSection{model-reduction}{Model reduction}).
Alternatively, you may also perform the model reduction in Nastran
(see \refSection{model-reduction-in-nastran}{Model reduction in Nastran}).
\SubSection{Dynamics analysis}{dynamics-analysis-overview}
The dynamics analysis provides the time-history solution for all displacements,
velocities, accelerations, control system variables, and derived secondary
quantities (such as internal reaction forces) in the mechanical system that are
driven by external forces and/or prescribed displacements, velocities and
accelerations.
To achieve second-order accuracy, the dynamic solution to the full system of
equations is found using Newmark time-integration and Newton-Raphson equilibrium
iterations at each time step.
For the control system, an implicit second-order Runge-Kutta method
(Lobatto IIIC) is used with Backward Euler for local error estimation.
The latter is an implicit first-order method.
See the \FedemTGuide{Chapter 7, "Dynamics Simulation"}
and {\sl Chapter 8, "Control System"}, respectively, for more information about
the dynamics analysis of the mechanical system, and the control system analysis.
See \refSection{dynamics-analysis}{Dynamics analysis}
to set up and perform the dynamics analysis.
\SubSubSection{Static equilibrium analysis}{static-equilibrium-analysis}
Before performing the dynamics simulation, Fedem may calculate an initial static
equilibrium state for the mechanism model. The static equilibrium analysis
establishes a starting point for the dynamics analysis, and eliminates the
initial system transients such as the sudden effect of applying gravity or other
external loads. In the dynamics analysis, such unbalanced forces in the initial
configuration can generate undesirable effects such as vibration of
the mechanism during the first time steps.
See the \FedemTGuide{Section 7.8, "Quasistatic equilibrium"}
for more information about the initial static equilibrium analysis.
The static equilibrium analysis determines a state for the system in which all
internal and external forces are in balance in the absence of any system motions
or inertial forces.
All system velocities and accelerations are set to zero during this analysis.
To set up the static equilibrium analysis, see
\refSubSection{initial-equilibrium-tab}{Initial Equilibrium tab}
{dynamics-solver-advanced-mode}.
\subsubsection{Dynamic Initial Conditions}
When using the static equilibrium analysis described above,
the subsequent dynamics simulation will start from a resting position with
zero velocities and accelerations in all DOFs. In some cases, however,
it is more relevant to start the dynamics simulation from a known velocity
state in the triads and joins instead. This is possible by specifying
the {\sl Initial velocity} directly on each DOF through the respective
Property Editor panels, see \refSection{triad-properties}{Triad properties}
and \refSection{joint-properties}{Joint properties}.
This will override the global initial velocity defined in the Model Preferences
dialog box, see \refSection{model-preferences}{Model preferences}.
\Tip{If the initial condition is characterized by a uniform velocity throughout
the model, except for a few triads or joints where the velocity is different,
it is practical to specify the "background" velocity in the Model Preferences
dialog box, and use the Property Editor panel only for those Triads/Joints
having a different initial velocity.}
\Caution{Initial velocities should be used with care such that the velocity
state specified this way is consistent throughout the model.
If that is not the case, fictitious transients may occur
in the first time steps of the analysis.}
When using initial conditions, it is recommended to specify velocities
for the joint DOFs also. The initial velocities at the slave triad of
the joint will then be computed automatically from the constraint
equations of the joint. However, it is possible to instead specify the
initial velocity in the slave triad (and leave the joint DOF initial
velocities to zero), if the joint DOF velocity is not known.
Fedem will then derive the corresponding
joint velocities by inverting the constraint equation of the joint.
Sometimes during the creation of a complex model, it is useful to test
the dynamics when all initial conditions are off (equal to zero).
To facilitate this without having to manually remove all the defined
initial conditions in the model file, the solver option {\tt-ignoreIC}
may be specified instead (in the Additional Solver Options dialog box,
{\sl Dynamics Solver} field,
see \refSection{additional-solver-options}{Additional solver options}).
All defined initial conditions will then be ignored (assumed zero).
If you do a static equilibrium analysis prior to the dynamics simulation, any
initial conditions specified will not affect the static equilibrium analysis
itself. However, the subsequent dynamics simulation will then start from
a configuration that is in static equilibrium,
but with a given non-zero velocity state.
\SubSubSection{Modal analysis}{modal-analysis}
The dynamics analysis gives you the option of calculating the eigenmodes
at different mechanism positions during the simulation.
These eigenmode solutions can then be used to expand the model's mode shapes
for later use in animations.
See the \FedemTGuide{Section 9.6, "Eigenvalue results"}
for more information about the modal analysis.
To specify the parameters for modal analysis, see
\refSubSection{eigenmode-tab}{Eigenmode tab}{dynamics-solver-advanced-mode}.
\SubSection{Stress recovery}{stress-recovery-1}
After performing the dynamics analysis,
a stress analysis can be conducted on the mechanism.
The stresses, strains and elastic displacements can then be calculated at
different time steps and/or mechanism positions of the dynamics analysis.
See the \FedemTGuide{Section 9.4, "Finite element stress analysis"}
for more information about the stress analysis.
See \refSection{stress-recovery-analysis}{Stress recovery analysis}
to setup and perform the stress analysis.
\clearpage
\subsection{Mode shape recovery}
A mode shape recovery analysis enables you to expand the system mode shapes
calculated during the dynamics simulation.
These mode shapes can later be animated.
See \refSection{mode-shape-recovery-analysis}{Mode shape recovery analysis}
to setup and perform the mode shape analysis.
\subsection{Strain rosette recovery}
Fedem enables you to recover strains and stresses from virtual strain gages
which are defined in a separate file.
The results are similar to those from real strain gages.
See the \FedemTGuide{Section 9.5, "Virtual strain gauges"}
for more information about the strain rosette analysis.
See \refSection{strain-rosette-analysis-1}{Strain rosette analysis}
to setup and perform the strain rosette analysis.
\subsection{Strain coat recovery}
The strain coat recovery process calculates the stresses and strains
on the strain coat elements in the model,
in a similar manner as in the strain rosette analysis.
This is primarily used as input for subsequent fatigue calculations.
See \refSection{strain-coat-analysis-1}{Strain coat analysis}
to setup and perform the strain coat analysis.
\subsection{Linear analysis}
Instead of doing a full dynamics simulation with subsequent recovery,
it is also possible to perform a direct linear FE analysis on individual parts.
This is handy if you only want to asses the static properties of a part before
using it in a larger mechanism simulation.
The loads and boundary conditions then need to be defined in the FE model file.
See \refSection{direct-linear-analysis-of-fe-parts}
{Direct linear analysis of FE Parts} to perform such linear analyses.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Solver tools}{solver-tools}
Several dialog boxes and tools can be utilized to control the calculation
processes with Fedem. This section describes these general solver tools.
\clearpage
\SubSection{Model export for external simulation}{model-export-for-external}
The simulation of Fedem models outside the Fedem GUI application itself can now
be done by exporting the model as either a {\sl Digital Twin app},
or as a {\sl Functional Mock-up Unit} (FMU).
A Digital Twin app is a zip-file containing all files related to the
current model, in addition to some support files for executing the model
in the cloud using EPD Connected Products. The FMU is also a zip-file,
which in addition contains shared object libraries interfacing the
dynamics solver based on the Functional Mock-up Interface
(see \href{https://fmi-standard.org/}{fmi-standard.org}).
To open the {Model Export dialog box (shown below), select \textbf{Export}
$\rightarrow$ \textbf{Export Digital Twin...} from the \textbf{File} menu.
\begin{figure}[!h]
\begin{picture}(243,194)
\put(1,0){\includegraphics[width=\textwidth]{\ReferenceImg/dlg-model-export}}
\put(-10, 58){\Bullet{1}}
\put(-10,118){\Bullet{1}}
\put(-10,180){\Bullet{1}}
\put(115, 45){\Bullet{2}}
\put( 25,167){\Bullet{2}}
\put( 25,105){\Bullet{2}}
\put( 65, 93){\Bullet{3}}
\put( 65,155){\Bullet{3}}
\put( 75,146){\Bullet{4}}
\put( 55,137){\Bullet{5}}
\put( 32,128){\Bullet{6}}
\put(20,76.1){\Bullet{7}\huge\{}
\put(200,179){\Bullet{8}}
\put(203,104){\Bullet{9}}
\end{picture}
\end{figure}
\begin{bulletlist}
\item
Activate any of these three toggles to enable the export of the current model
as a {\sl Stream app}, a {\sl Batch app}, and a {\sl FMU}, respectively.
The fields in the respective frames will be active only if the associated
toggle is enabled.
\item{\sl File Name:} --
For each of the three app types, you can click the \textbf{Browse...} button
to select the name of the zip-archive that will contain the exported model.
\item{\sl Input Indicator Group:} --
Specifies the group name of input indicators that will be used in the exported
{\sl Stream-} or {\sl Batch app}. The names specified here need to be
reflected in the cloud simulation setup in {\sl EPD Connected Products}.
\item{\sl Output Indicator Group:} --
Specifies the group name of output indicators that will be used in the
exported {\sl Stream app}. The name specified here needs to be
reflected in the cloud simulation setup in {\sl EPD Connected Products}.
\item{\sl Window Size [sec]:} --
Specifies the length of each time window in seconds for the {\sl Stream app}.
\item{\sl Transfer solver state between windows} --
Activate this toggle if each time window should be restarted using the final
state of the previous window as starting point. If not activated,
each time window will start from the modeling configuration.
\item Toggles for exporting {\sl Batch apps}:
\begin{itemize}
\subitem{\sl Surface Only} :
Activate this toggle to represent all FE parts in the model by surface
elements only in the visualization model. If not activated,
the visualization model may be larger since it will also contain internal
element interfaces (invisible) between the solid finite elements.
\subitem{\sl Stress Recovery} :
Activate this toggle to let the app perform deformation- and von Mises
stress recovery for the FE parts that have the
{\sl Perform stress recovery during dynamics simulation} toggle enabled in
the \protect\hyperlink{advanced-tab}{\sl Advanced tab} of
the Part property editor panel.
\subitem{\sl All FE-Parts} :
Activate this toggle to let the app generate a visualization for all
FE parts in the model. If not activated, only the parts having the
{\sl Perform stress recovery during dynamics simulation} toggle enabled
in the \protect\hyperlink{advanced-tab}{\sl Advanced tab} of the Part
property editor panel will be included in the visualization. When the
{\sl All FE-Parts} toggle is enabled, FE parts which are not toggled for
recovery will be represented by their rigid body motion only.
\end{itemize}
\item{\sl Input Indicators:} --
This table lists all
\protect\hyperlink{external-function}{\sl External function}s in the model
(their {\sl Tag} and {\sl Description}, respectively.
They will define the content of the named {\sl Input Indicator Group}.
\item{\sl Output Indicators:} --
This table lists all \protect\hyperlink{functions}{\sl Functions} in the model
that have the {\sl Use as output sensor} toggle enabled in the property editor
panel. Their {\sl Tag} and {\sl Description}, respectively, are listed,
in addition to the description of the {\sl Threshold} settings, if enabled.
\end{bulletlist}
Pressing the \textbf{Export} button will perform the model export for all of the
three app types which have the respective activation toggle enabled.
\SubSection{Solvers tool bar}{solvers-tool-bar}
The \textbf{Solvers} tool bar (shown below) contains the commands to set up and
start each of the mechanism analysis processes, including the post-processing
of individual mechanism parts. The tool bar is organized from left to right
in the order of logical task performance, i.e., the dynamics simulation
(including model reduction, if needed) is performed first,
then the stress recovery, mode shape recovery, and so on.
\begin{figure}[!h]
\center\includegraphics[width=0.6\textwidth]{Figures/6-SolversToolbar}
\end{figure}
The setup commands (\textbf{Dynamics Solver...}, \textbf{Stress Recovery
Setup...}, etc., and \textbf{Additional Solver Options...}) enable management
of all analysis options. Each of the \textbf{Solver} commands are described
in the following sections of this chapter.
\Tip{To access all commands on the \textbf{Solvers} tool bar, click and hold
down those buttons with an arrow ($\blacktriangledown$) next to the icon.}
\Note{You can also access all Solver tools from the \textbf{Solve} menu.}
\IconText{solveAll}{
Once you have set up the parameters for each of the solvers you would like to
execute (as described later in this chapter), click the \textbf{Solve All}
button on the \textbf{Solvers} tool bar (or from the \textbf{Solve} menu)
to execute all analyses automatically in consecutive order.}
\SubSection{Additional solver options}{additional-solver-options}
In the Additional Solver Options dialog box, advanced users can fine tune the
behavior of the solver modules through options that are not available elsewhere
from the respective setup dialog boxes or the various Property Editor panels.
\clearpage
\IconText{additionalOptions}{
Select \textbf{Additional Solver Options...} from the \textbf{Solve} menu
to open this dialog box (shown below).}
\noindent
\begin{minipage}{0.5\textwidth}
\raggedright
\begin{bulletlist}
\setlength\itemsep{1mm}
\item
In each of the first six fields, you may enter text strings of
command-line options for the respective solver module. Refer to
\refAppendix{appendix-command-line-options}{Command line options}
for a complete list of options for all Fedem modules.
\item
You can set the maximum number of concurrent processes that will be run
during a simulation task. This is useful if you have a multi-processor
machine and want to run several part reductions or recovery processes
parallel.
\item
You can fine-tune the memory usage of the FE model Reducer through
these options. See
\protect\hyperlink{optimizing-the-fe-model-reducer-memory-usage}
{\sl"Optimizing the FE model Reducer memory usage"}
below for further details.
\end{bulletlist}
\end{minipage}% NB: keep this comment
\hfill\begin{minipage}{0.48\textwidth}
\includegraphics[width=\textwidth]{Figures/Dialogs/6-AdditionalSolverOptions}
\begin{picture}(-10,-10)
\put(-175,230){\Bullet{1}}
\put(-175,215){\Bullet{1}}
\put(-175,200){\Bullet{1}}
\put(-175,185){\Bullet{1}}
\put(-175,170){\Bullet{1}}
\put(-175,155){\Bullet{1}}
\put(-175,138){\Bullet{2}}
\put(-175,118){\Bullet{3}}
\put(-175,60){\Bullet{4}}
\end{picture}
\end{minipage}
\begin{bulletlist}
\setcounter{enumi}{3}
\item
You can specify a command prefix to be applied on all solve tasks.
This can be used to launch the simulation tasks on another computer in
your local network, than the Fedem UI is executed on. See
\protect\hyperlink{running-solver-processes-on-a-remote-computer}
{\sl"Running solver processes on a remote computer"}
below for further details.
\end{bulletlist}
\Caution{Many of the solver options listed in
\refAppendix{appendix-command-line-options}{Command line options}
may already have been provided to the corresponding solver
through their respective setup dialog boxes. Specifying any such option also
in the Additional Solver Options dialog box will then override the setting in
the solver-specific dialog box and should therefore be avoided.}
%Consult Fedem technical support if you are in doubt
%on the usage of a particular command-line option.}
\Note{If you mis-spell a command-line option in the Additional Solver Options
dialog box, or specify options that do not exist, the solver process will run
as if the invalid options were not specified. A warning for each unrecognized
option is issued in the \protect\hyperlink{output-list}{\sl Output List} view
in that case, after the solver process has terminated.}
\SubSubSection{Optimizing the FE model Reducer memory usage}
{optimizing-the-fe-model-reducer-memory-usage}
Perhaps the most memory critical solve process in Fedem is the FE model
reduction for large models. On 32-bit platforms, the amount of in-core memory
that one process may address is 2 GB (usually the practical limit is lower
due to other processes sharing the same CPU).
In Fedem, a linear equation solver is used in the FE model Reducer which works
out-of-core when necessary. This makes it possible to solve much larger FE
models on a 32-bit platform than would be possible using an in-core solver.
The equation solver reserves an in-core buffer (cache) for the numerical data
of a certain size, and goes out-of core only when this buffer is not large
enough. The performance of the equation solver depends on the size of this
buffer and it may therefore be optimized by fine-tuning this size.
\begin{wrapfigure}[5]{r}{0.45\textwidth}
\vspace{-4mm}
\includegraphics[trim=0 155 0 245,clip,width=0.45\textwidth]
{Figures/Dialogs/6-AdditionalSolverOptions}
\end{wrapfigure}
The default is to let the Reducer automatically set the size of the in-core
buffer (as shown to the right). It then reserves a fixed percentage of the free
memory currently available (the actual size is written to the \File{.res} file).
This size may be overridden by switching to {\sl Manual} and entering
the desired cache size in the corresponding field.
You may also switch off the out-of-core feature completely by toggling off the
{\sl Equation solver out-of-core} option.
The Reducer will then abort if the problem does not fit in core.
There is also a similar set of memory usage options that affects the
displacement recovery matrix, and they work in a similar way. Using the
{\sl Manual} setting here corresponds to the {\tt-Bramsize} command-line option.
\Note{Since Fedem R7.2, only the in-core equation solver has been available
in the FE model Reducer. The out-of-core equation solver settings discussed
above will therefore be ignored, whereas the options for the recovery matrix
still apply. The documentation of the out-of-core equation solver settings
is still retained here for completeness. The out-of-core feature is anyway
less relevant on current 64-bit platforms (as opposed to older 32-bit
platforms), where in-core memory is less limited.}
\SubSubSection{Running solver processes on a remote computer}
{running-solver-processes-on-a-remote-computer}
If you are using a workstation connected to a file server in a local
network together with other computers, it may be advantageous to perform
the simulation tasks on one of the other computers, such that the local
workstation can allocate its resources fully to the Fedem UI process.
\begin{wrapfigure}{r}{0.4\textwidth}
\includegraphics[width=0.4\textwidth]{Figures/6-RemoteSolveOptions}
\end{wrapfigure}
To enable such remote solving, use the {\sl Perform remote solve} toggle in the
{\sl Remote solve options} part of the Additional Solver Options dialog box
(shown to the right). Enter the appropriate {\sl Remote shell command prefix}
needed to run the solver command on the remote computer, and optionally the
{\sl Model path on remote system}.
The latter is necessary when, e.g., your local workstation is a Windows PC and
the remote computer is a UNIX machine. You will then need to specify the path to
the current model file, as it looks from the UNIX computer.
\Caution{When specifying a remote shell command prefix, the input files needed
by the solver tasks are still created locally within the Fedem UI and not
explicitly copied on to the remote computer. Thus, a remote execution will
work only if the local and remote computers use a shared file system.
Similarly, it is assumed that the Fedem UI on the local computer can access
the output files created by the solver task directly
from where they are written by the remote computer.}
\Note{A server program accepting remote shell commands must be running on the
specified remote computer for this feature to work (e.g., sshd or rshd).
If using ssh (or the equivalent windows client program plink), you will also
need to define proper identification keys in your login directory such that
you can access the remote computer without being prompted for a password.
Please ask your system operator for assistance on such issues.
For further information on the ssh and PuTTY/plink programs,
you may consult the web sites \href{https://www.openssh.com}{openssh.com}
and \href{https://www.chiark.greenend.org.uk/~sgtatham/putty}
{chiark.greenend.org.uk/{\textasciitilde}sgtatham/putty}, respectively.}
\SubSection{Controlling placement of temporary files}{controlling-tmp-files}
Some of the Fedem solvers use temporary files during computations, which
are automatically deleted upon completion of the process.
On UNIX systems, these files are placed in the directory pointed to by the
environment variable {\tt TMPDIR}, if set. If {\tt TMPDIR} is not set or points
to a non-existing directory, they are placed in the directory \File{/var/tmp}
instead. On Windows, they are placed in the directory pointed to by the
environment variable {\tt TMP}, if set. If {\tt TMP} is not set or points to a
non-existing directory, they are placed in the directory
\File{C:\textbackslash} instead.
\Note{Some of the temporary files may become very large.
Make sure that the {\tt TMP} or {\tt TMPDIR} variable
points to a directory with sufficient amount of free disk space.}
\SubSection{Part- and group-wise solving}{part-and-group-wise-solving}
Fedem has the capability of running some of its solvers on individual
parts of the mechanism (FE Parts and element groups). This is beneficial
when dealing with big models where the solver execution may be both
time- and disc space consuming.
\Note{These solver tasks act upon each part independently, and do not affect
the global response in any way. The user is encouraged to identify critical
parts of the model and recover just the results he/she wants on these parts.
Be aware that each time you recover results they are added to the result
database, regardless of their previous existence.}
\SubSubSection{Part-wise solving}{part-wise-solving}
\noindent
\begin{minipage}{0.45\textwidth}
\raggedright
Solver processes that may be run on parts individually are: Linear Analysis,
Reducer, Stress recovery, Strain Rosette recovery and Strain Coat recovery.
A part-wise solve process is started by right-clicking on a Part in the
{\sl Objects} list of the Model Manager panel, choosing \textbf{Solve},
and then the wanted process (see illustration to the right).
You may also multi-select parts in the {\sl Objects} list to solve for two or
more parts simultaneously. As always, when trying to run the Reducer,
a part will only be reduced if necessary.
\end{minipage}%
\hfill\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{Figures/6-LinkwiseSolve}
\end{minipage}
\clearpage
\subsubsection{Group-wise solving}
\noindent
\begin{minipage}{0.47\textwidth}
\raggedright
Solver processes that may be run on individual element groups are:
Stress recovery and Strain Coat recovery.
A group-wise solve process is started in a manner similar to that of
a part-wise process (see illustration to the right). Right-click
the group for which you want to solve and then choose the wanted process.
Multi-selection is possible to solve for two or more groups simultaneously.
For further information on element groups, refer to
\refSection{element-groups}{Element groups}.
\end{minipage}%
\hfill\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{Figures/6-GroupwiseSolve}
\end{minipage}
\Note{When running Strain Coat recovery on individual parts or element groups,
a set of strain coat elements are automatically created on all shell and solid
elements in the current selection, unless such elements have been created in
a previous run (see also
\refSection{strain-coat-recovery-on-element-groups-or-individual-parts}
{Strain coat recovery on element groups or individual parts}).}
\Note{When solving on individual parts or element groups,
the current settings in the corresponding solver setup dialog box are used.}
\SubSection{Viewing the progress of long-duration analyses}{viewing-progress}
When solving a large model that takes a considerable amount of time, it
is often informative to know exactly how far in the simulation process
we have reached at any time. This can be done simply by viewing a
res-file that is continuously being written by the running solver in the
Result File Browser (see \refSection{result-file-browser}{Result File Browser}).
When such a res-file is selected,
the Info view is automatically scrolled to the bottom of the file
and then continuously updated as the file is being written by the solver.
\Tip{For the model reduction and all of the recovery processes,
a dedicated progress file called \File{progress\_info.res} is created.
This file is updated more frequently than the conventional res-file associated
with the process. Viewing this file while the solver is running will therefore
give you the best update on its progress.}
\clearpage
It is often wise to also keep an eye on the {\sl Output List} view
while a solver process is running, as important messages produced by the
solver (errors, warnings and notes) are written here while the process
is running (see also
\refSection{how-to-read-error-messages-from-the-solvers}
{How to read error messages from the solvers}).
All such messages are also written to the res-file, but in the {\sl Output List}
they are prefixed by the solver name and the process ID in brackets, e.g.
\begin{figure}[!h]
\hskip-0.27\textwidth
\includegraphics[width=1.27\textwidth]{Figures/6-SolverMessages}
\end{figure}
The first message of a solver process is always {\tt Started.}
and the last message is {\tt Finished.} followed by the consumed wall time.
The process ID number is used to distinguish messages from possibly multiple
simultaneously running reduction or recovery processes.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Model reduction}{model-reduction}
The FE model reduction process requires no user setup apart from the settings
found in the \protect\hyperlink{reduction-options-tab}
{\sl Reduction Options tab} of the Property Editor panel for each part
(see \refSection{part-properties}{Part properties}).
Some of these options are discussed in further detail in the sub-sections below.
\SubSection{Starting the model reduction}{starting-the-model-reduction}
Model reduction is performed automatically for the parts needing it when you
start the dynamics simulation. Fedem determines automatically which parts need
to be reduced based on the triad configuration and the connection to the rest
of the model. It also checks whether any of the settings in the
\protect\hyperlink{reduction-options-tab}{\sl Reduction Options tab},
that affect the results have been changed since the last reduction of that part.
\vskip\parskip
\IconText{reduceAll}{
You can also initiate the model reduction process manually at any time.
Simply select \textbf{Reduce All FE Parts} from the \textbf{Solve} menu
to do this. You may also initiate the model reduction for only one,
or a selection of parts, by using the
\protect\hyperlink{part-wise-solving}{\sl Part-wise solving} command
(see \refSection{part-and-group-wise-solving}{Part- and group-wise solving}).}
\Note{If element calculations fail during model reduction due to bad element
shapes, etc., all bad elements in the part are reported before the model
reduction process exits.}
\Note{Once a part is reduced, it will not be reduced again, even if the
\textbf{Reduce All Parts} button is clicked again, unless the part has been
modified in the meantime (by for instance, adding or removing external nodes
or altering the material properties).}
\SubSection{Using component modes}{using-component-modes}
Fedem uses a Component Mode Synthesis (CMS) model reduction method that
replaces the internal nodal DOFs with a set of static and component modes.
The static modes corresponds to the external nodal DOFs (i.e., at the Triads
attached to the part), whereas the component modes are calculated as the
eigenmode shapes of the part with all external nodes fully constrained.
Component modes describe the internal vibrations in the part. You should
normally include a sufficient number of modes such that the frequencies within
the time step size used in the dynamics simulation are covered.
The frequencies of the computed component modes are found in the output file
\File{fedem\_reducer.res} and can be viewed using the {\sl Result File Browser}
(see \refSection{result-file-browser}{Result File Browser}).
The number of component modes is specified in the Property Editor panel
for the selected part (see
\refSubSection{reduction-options-tab}{Reduction Options tab}{part-properties}.
The default is 0 (no component modes), i.e., only static modes are used.
If the internal vibrations are not important for the overall response,
you can save computation time by using static modes only.
More details on component modes and CMS model reduction can be found in the
\FedemTGuide{Section 3.2, "Component mode synthesis reduction"}.
\SubSection{Using lumped mass matrix}{using-lumped-mass-matrix}
To increase the computational efficiency of the model reduction process,
a lumped mass matrix approach is used by default. The FE mass matrices are then
represented by one diagonal matrix each, where each diagonal term is the sum of
the associated row (or column) of the corresponding consistent mass matrix.
The assembled mass matrix of the part will then also be diagonal, except for
some off-diagonal terms created by the constraint equations\footnote{
You have constraint equations in the part if it contains RBAR, RGD, WAVGM
(RBAR, RBE2, RBE3 in Nastran terminology) and/or BEAM elements with end release.
Thus, as the number of such elements in the part increases, the advantage of
using lumped mass will decrease.}, if any.
Using lumped mass may reduce the memory requirements significantly compared to
using a consistent mass matrix, and also speed up the reduction process as some
of the linear algebra operations involved then are simplified.
\Note{To some degree, using lumped mass does affect the results,
as it represents a simplification of the FE model.
The result difference may be significant for parts with a coarse FE mesh.
However, as the mesh is refined, the difference becomes smaller.
Therefore, we recommend to use consistent mass on parts not having
a sufficiently fine mesh. If you are in doubt, do a test run using both
consistent and lumped mass and compare the results.}
The use of consistent mass matrix is toggled On/Off for the selected part
through a button in the Property Editor panel (see
\refSubSection{reduction-options-tab}{Reduction Options tab}{part-properties}.
The default is {\sl Off} for new parts imported into a model.
\SubSection{Handling singularities during the model reduction}
{handling-singularities-during-the-model-reduction}
In complex FE modeling, it is inevitable not to have one or more defects in the
FE model from time to time. In the model reduction process, this will typically
result in a singular mass and/or stiffness matrix. Fedem recognizes two types of
singularities, which are handled slightly different in the matrix
triangularization (factorization):
\begin{itemize}
\item
DOFs that have not received any stiffness/mass contribution at all and
thus have an exact zero pivot before the triangularization is started,
are detected {\sl a priori.} The zero pivot is then replaced by the value 1.0,
which implies that the singular DOF is constrained to zero.
\item
DOFs that initially have a non-zero pivot, but are reduced to a value
close to zero during the triangularization, will receive some small
value on the diagonal, allowing the triangularization process to continue.
The judgment on whether such singularities have occurred is based on
the user-provided \protect\hyperlink{singularity-tolerance}
{\sl Singularity tolerance} (see below).
\end{itemize}
When the reduction process has terminated, a list of all singularities
is written to the {\sl Output List} and the \File{.res} file.
Each singular DOF is here identified by the node ID and local DOF number.
If only singularities of the first kind are detected, the reduction process
completes successfully and it should be safe to use this part in a dynamics
simulation. However, if one or more singularities of the second kind are
detected, the reduction is aborted with no results, and the FE model has to be
manually fixed before continuing.
\Caution{If more than one singularity of the second kind are detected, there is
a possibility that some of them, except the first one, are fictitious.
On the other hand, there is also a possibility that not all singularities
are detected. Thus, after having fixed all the reported singularities
manually, other singularities may be revealed in the next run.
This behavior is due to the insertion of a small value on the diagonal which
actually changes the mechanical property of the FE model.}
It is possible to switch off the above treatment of singularities during
model reduction. This is done by specifying \File{-singularityHandler 0}
as an additional option to the FE model Reducer (see
\refSection{additional-solver-options}{Additional solver options}).
Only the first occurring singularity, regardless of its kind,
will then be reported, and the reduction process will abort immediately.
\SubSubSection{Singularity tolerance}{singularity-tolerance}
The criterion used to determine if a stiffness or mass matrix is
singular during the reduction is specified through a threshold value in
the Property Editor panel for the part (see
\refSubSection{reduction-options-tab}{Reduction Options tab}{part-properties}.
The default value is $1\times10^{-12}$. If the ratio between the current and
previous value of a diagonal matrix element becomes less than the threshold
during the factorization, the matrix is assumed to be singular.
The default threshold value is usually sufficient for well-conditioned
FE models. However, there might be situations where you have a natural high
ratio between the stiffness (or mass) properties in different parts of a model.
In this case you may need to reduce the value to avoid a false error exit.
If you do get a singularity exit but is quite sure your model is sane (although
not that well-conditioned), you should check the actual diagonal decay value
which is written in the \File{.res} file.
You may then try changing the {\sl Singularity criterion} to a value less than
this value and rerun the model reduction.
Note that the lowest admissible value is $1\times10^{-20}$.
Any value lower than that will be ignored and $1\times10^{-20}$ will be used.
\subsubsection{Negative pivots}
A model reduction may also reveal negative pivot elements in the stiffness- or
mass matrix. This may happen if, e.g., the part contains several poorly shaped
elements (especially shell elements).
However, since the linear equation solver is able to handle negative definite
matrices the reduction is not aborted when only negative pivots are encountered.
Nevertheless, it is good practice to go over the FE model once again and check
for bad elements if you get warnings on negative pivots.
\Warning{Using a reduced part with many negative pivots in its stiffness matrix
may lead to instabilities in the subsequent Dynamics simulation, and should
therefore be avoided. Only a few negative pivots in a large part is normally
not a problem, however. That has at most only local influence on the results
in the vicinity of the elements with the negative pivots.}
\SubSection{Eigenvalue analysis of the reduced parts}
{eigenvalue-analysis-of-the-reduced-parts}
To assess the dynamic properties of the reduced FE part matrices,
you can perform an eigenvalue analysis of the reduced system, i.e.
$$\left({\bf K} - \omega^2{\bf M}\right)\mbox{\boldmath$\phi$} = {\bf 0}$$
where \textbf{K} and \textbf{M} denote the reduced stiffness and mass matrices.
Since the reduced system does not include any constrained DOFs\footnote{
DOFs that should be constrained are retained during the part reduction and are
constrained only during the system analysis by the dynamics solver.},
the first six eigenvalues should always be zero. The remaining eigenvalues
can then be used to assess the dynamic properties of the reduced part.
The $n$ lowest eigenfrequencies, i.e., the quantities
$$\frac{\omega_i}{2\pi}, \; i = 1 \ldots n $$
for each reduced part can be written to the corresponding \File{.res} file
by specifying \File{-nevred n} in the {\sl FE model Reducer} field in the
Additional Solver Options dialog (see
\refSection{additional-solver-options}{Additional solver options}).
The eigenfrequencies are presented in Hertz.
The default value of this option is 12 for all parts,
but it is not effective for massless parts.
For other parts, the option may be turned off by specifying \File{-nevred 0}.
\SubSection{Visualization of eigenmode shapes from the model reduction}
{visualization-of-eigenmode-shapes-from-the-model-reduction}
To further verify the results of the reduction process and to increase
the understanding of the part's dynamics properties, it is often useful
to visualize the computed mode shapes of the part.
This is possible if you toggle on {\sl Expand mode shapes} in the
\protect\hyperlink{reduction-options-tab}{\sl Reduction Options tab}
of the Property Editor panel for the parts in question, before they are reduced
(see \refSection{part-properties}{Part properties}).
Both the component mode shapes
(see \refSection{using-component-modes}{Using component modes})
and the mode shapes associated with the eigenvalues of the reduced system
(see \refSection{eigenvalue-analysis-of-the-reduced-parts}
{Eigenvalue analysis of the reduced parts}) will then be computed during the
model reduction, and be subsequently available for viewing in an Eigenmode
animation
(see \refSubSection{eigen-modes-tab}{Eigen Modes tab}{animation-properties}.
\Tip{It is particularly useful to study the mode shapes of the reduced system,
if for instance more than six modes with (close to) zero eigenfrequency occur.
That is usually due do an internal mechanism in the model caused by an error
in the model, and can be revealed if animating the corresponding mode shape.}
\Tip{If you get less than the required six zero rigid mode modes in the reduced
system for a part, that can be caused by some over-constraining in the
FE model (e.g., due to bad modeling). By animating the six first mode shapes
you can then see which rigid body modes are present and which are not,
and also see the mode shapes that replaced the missing rigid body modes.
This might give you some hints towards the actual model error or weakness.}
\SubSection{Reduction of applied load vectors}
{reduction-of-applied-load-vectors}
Along with the reduced mass- and stiffness matrices, the FE model
Reducer always computes reduced (unit) gravity load vectors of the part,
which are applied as a constant static load in the direction of the
defined gravitation vector in the dynamics simulation.
In addition, a set of load vectors corresponding to defined load cases
in the FE data file are computed, when such load definitions are present.
This includes both concentrated point loads and distributed surface loads
on shell and solid elements.
These reduced load vectors may then be assigned time history scaling functions
in the Property Editor panel before the dynamics simulation is run
(see \refSubSection{reduced-loads-tab}{Reduced Loads tab}{part-properties}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Model reduction in Nastran}{model-reduction-in-nastran}
As an alternative to the Fedem Model Reduction, the model reduction may
also be performed in Nastran. Nastran supports a similar CMS reduction
procedure as in Fedem, and is able to export the reduced mass- and
stiffness matrix as binary files that may be imported into Fedem. The
advantage of doing the model reduction in Nastran is that you then have
a broader range of element and material properties available for use on
the part level, such as orthotropic materials, composites, etc.
\SubSection{Nastran DMAP}{nastran-dmap}
The Nastran model reduction is performed using a DMAP script to facilitate the
generation of the reduced matrices needed in Fedem.
A Nastran DMAP is a script program (kind of API and programming language)
that modifies the execution of the Nastran solver. The script is model
independent and must be included in the Nastran bulk data file when Nastran
reduction is desired. The script, called \File{nastran\_dmap.dat},
is located in the Template folder of the Fedem installation. Refer to
the Nastran documentation for further details on the DMAP script language.
\SubSection{Nastran bulk data entries for CMS reduction}
{nastran-bulk-data-entries-for-cms-reduction}
The Nastran bulk data file must contain some commands, in addition to
the entries describing the FE model itself, when it is going to be
reduced in Nastran. Before the CEND keyword, the following commands must
be added to define the output files, solution type and the DMAP script:
\begin{itemize}
\item
Define OP2-files used to store the reduced mass (m), stiffness (s) and
gravity (g) matrices from Nastran (\textless name\textgreater{} is
here some arbitrary string identifying this part):
\texttt{%
ASSIGN, output2=\textquotesingle\textless name\textgreater\_m.op2\textquotesingle, UNIT=71 \\
ASSIGN, output2=\textquotesingle\textless name\textgreater\_s.op2\textquotesingle, UNIT=72 \\
ASSIGN, output2=\textquotesingle\textless name\textgreater\_g.op2\textquotesingle, UNIT=73}
\end{itemize}
\Note{The OP2-files are automatically converted to \File{.fmx} files
when the Nastran bulk data file is imported into Fedem,
and the part is recognized as {\rm Reduced}.}
\begin{itemize}
\item Specify modal analysis: \\
\texttt{SOL 103}
\item Include DMAP script: \\
\texttt{INCLUDE \textquotesingle nastran\_dmap.dat\textquotesingle}
\end{itemize}
After the \texttt{BEGIN BULK} keyword, the following commands must be added
to perform the Nastran CMS-reduction:
\begin{itemize}
\item If you need to attach triads or joints to shell element nodes,
you need to turn on the drilling dof on the Nastran shell elements:
\texttt{PARAM, K6ROT, \textless value\textgreater}
\textless value\textgreater = 10 or a small value is recommended.
(If it is set to 0 the drilling dof is omitted, which is not what is desired).