/usr/share/elmerpost/tcl/modedisplay.tcl is in elmer-common 6.1.0.svn.5396.dfsg2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | #/*****************************************************************************
# *
# * Elmer, A Finite Element Software for Multiphysical Problems
# *
# * Copyright 1st April 1995 - , CSC - IT Center for Science Ltd., Finland
# *
# * This program is free software; you can redistribute it and/or
# * modify it under the terms of the GNU General Public License
# * as published by the Free Software Foundation; either version 2
# * of the License, or (at your option) any later version.
# *
# * This program is distributed in the hope that it will be useful,
# * but WITHOUT ANY WARRANTY; without even the implied warranty of
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# * GNU General Public License for more details.
# *
# * You should have received a copy of the GNU General Public License
# * along with this program (in file fem/GPL-2); if not, write to the
# * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# * Boston, MA 02110-1301, USA.
# *
# *****************************************************************************/
#*******************************************************************************
#*
#* Model file read utility routines
#*
#*******************************************************************************
#*
#* Author: Juha Ruokolainen
#*
#* Address: CSC - IT Center for Science Ltd.
#* Keilaranta 14, P.O. BOX 405
#* 02101 Espoo, Finland
#* Tel. +358 0 457 2723
#* Telefax: +358 0 457 2302
#* EMail: Juha.Ruokolainen@csc.fi
#*
#* Date: 26 Sep 1995
#*
#* Modified by:
#*
#* Date of modification:
#*
#*******************************************************************************
set OUTPS 0
set PSFileName ""
set DVector "Displacement"
set DScale "1"
set DCycles "1"
set DMode "1"
set DFrame "20"
set DLoop "Animate"
set DCmd ""
proc mode_animate {} {
global DCycles DVector DMode DScale DFrame DLoop DCmd
if { $DLoop == "Animate" } {
set DLoop "Stop"
math function f(d,t) import nodes { _f=d(0:2,time(t-1)) };
math n=nodes;
do t 1 [@ $DCycles*$DFrame] {
if { $DLoop == "Animate" } {
math nodes=n;
return
}
math t=$t/$DFrame*2*pi
math nodes=n+sin(t)*f($DVector,$DMode)*$DScale
timestep $DMode
update; display;
if { $DCmd != "" } { catch [eval $DCmd]; }
}
}
math nodes=n;
set DLoop "Animate"
}
proc ModeDisplay {} {
set w .modedisplay
if { [winfo exists $w] } {
wm iconify $w
wm deiconify $w
return
} else {
toplevel $w
place_window $w
wm title $w "Mode Display"
}
label $w.title -text "Mode Display"
pack $w.title
label $w.sp1 -text ""
pack $w.sp1 -side top
set DVector "Displacement"
frame $w.arrow
label $w.arrow.label -text "Displacement Variable: "
button $w.arrow.but -textvariable DVector \
-command { set DVector [make_vector_list]; }
pack $w.arrow -side top
pack $w.arrow.label -side left
pack $w.arrow.but -side left -fill x
frame $w.file -relief ridge
label $w.file.mlab -text "Select Mode: "
entry $w.file.mode -width 10 -textvariable DMode
label $w.file.dlab -text "Disp scale: "
entry $w.file.disp -width 10 -textvariable DScale
label $w.file.flab -text "Frames/Cycle: "
entry $w.file.frms -width 10 -textvariable DFrame
label $w.file.clab -text "Cycles: "
entry $w.file.cycl -width 10 -textvariable DCycles
pack $w.file.mlab $w.file.mode $w.file.dlab $w.file.disp
pack $w.file.flab $w.file.frms $w.file.clab $w.file.cycl
# -side left
label $w.file.sp4 -text ""
pack $w.file.sp4 -side top
pack $w.file -side top -expand 1 -fill both
frame $w.command
label $w.command.lab -text "Do after frame:"
entry $w.command.cmd -textvariable DCmd -width 30
pack $w.command.lab -side left
pack $w.command.cmd -side left -expand 1
pack $w.command
frame $w.anim -relief ridge
button $w.anim.but -textvariable DLoop -command { mode_animate; } -relief ridge
pack $w.anim.but -side left -fill both -expand 1
pack $w.anim -side top -expand 1 -fill both
frame $w.but
button $w.but.exit -text "Close" -command "destroy $w"
pack $w.but $w.but.exit -side right
}
|