Finite-element software | High-performance computing | Departmental environment | Probe | Printing
A number of applications for 3-D modelling
have been and are being developed here
(including Fie, Tr3,
Thrup’ny,
Fad and
Fod)
and are available as executable binaries.
The source code can also be made available.
An alternative to the Thrup’ny model viewer is
Thrwp’ny, a Web-browser-based viewer.
Finite-element software (developed elsewhere)
We are currently using FEBio, Code_Aster and SAP IV. We previously also used CalculiX and OOFEM, and the commercial packages I-DEAS and COMSOL. We have also investigated Cast3m and Modulef. Elmer, Z88 and FreeFEM look as though they might be worth looking into. See also some old and sketchy information about available f-e software.
We use Gmsh for generating tetrahedral meshes from surface meshes. Gmsh can also be used with the finite-element solver GetDP through ONELAB, although we have not tried it.
We use, have played with or have considered playing with the following, among many others: 3D Slicer, VisIt, ParaView, CIBC software (Seg3D, ImageVis3D, map3D, etc., from Utah).
For mesh manipulation: MeshLab, instant-meshes (for field-aligned remeshing)
Yade discrete-element modelling: demos here and here.
Applications have been developed here for Hooke-and-Jeeves minimization, handling bibliographic references, and other miscellaneous tasks.
Libraries developed here include:
Gut
:
General utilities, including the sublibraries
Txt:
(text-string handling),
Font:
(Far*
font definitions used
by mvch*
routines in Gut
),
and
Sysdep:
(system-dependent code for Compaq Unix,
GNU/Linux, MS Windows, VMS and MS-DOS).
Dip
:
Device-independent plotting - this is an enhancement of the
old Tektronix Plot-10 library, with the addition of
color, polygons, etc.
See instructions for
installation and use of software which uses Dip.
Put
:
Plotting utilities
Mdl
:
Finite-element modelling routines to read and write SAP input (.sap
)
& output (.res
) files
Libraries from elsewhere that are used here include:
~funnell/sig/
)
~funnell/ssp
)
~funnell/netlib/linpack/
)
I often use Emacs.
Until ~2000 I used mostly VMS and until 2008 we used DEC/Compaq Unix. Now we use Debian GNU/Linux, Ubuntu and (alas) M$ Windows.
I've collected some personal tips for MS Windows and for Unix/Linux.
Calcul
Québec is a regional partner of
Compute Canada.
Béluga
(beluga.computecanada.ca
) and
Narval
(narval.computecanada.ca
)
are two of Compute Canada’s
clusters and are located at ÉTS.
Each contains hundreds of nodes (32 to 64 cores each) in
several different configurations
(Béluga,
Narval).
Selected documentation:
home
and scratch
spaces,
the group project
space,
and the within-job temporary space.
sbatch
to run a job,
scancel
to cancel one,
sq
to list your jobs that are running or waiting.
A node contains ‘sockets’,
and sockets contain ‘cores’;
a core may contain multiple
‘threads’, or ‘logical processors’
(ref).
If a node is configured with hyperthreading
(i.e., >1 thread per core), then cpu
refers
to threads, otherwise it refers to cores
(ref).
According to scontrol show node
, ThreadsPerCore
= 1
for all of Béluga’s and Narval’s nodes,
so cpu
refers to cores.
For Compute Canada’ general-purpose clusters (Béluga, Cedar, Graham & Narval), jobs are allocated to a subset of the cores (default = 1 core) and memory (default 256 MB/core) available on a node; on Niagara jobs are allocated to complete nodes.
Software available on Compute Canada clusters includes the finite-element packages Abaqus*, ANSYS*, COMSOL* and Elmer (* means a licence is required). Graphics software that I recognize includes Blender, FreeSurfer, Gnuplot, ImageMagick, ParaView and 3D Slicer. MATLAB and Octave are available.
To download something to a cluster from the Web using the command line,
wget
can be used. If the URL doesn’t include the
the file name, it can be specified separately with the
--default-page option
.
Alternatively, the file can be downloaded to your local computer and then
copied to the cluster.
If, after installing some software, it can’t find the libraries it
wants, try using the setrpaths.sh
script.
For exampe, for FEBio, give the command
setrpaths.sh --path path/FEBioStudio/bin/ --add_origin
where path
is the path
to where you asked for FEBio to be installed.
I don’t know if --add_origin
is necessary
but presumably it doesn’t hurt. See
Installing binary packages.
The commands seff
and sacct
are good for
getting statistics on a completed job, and
sstat
can be used on a running job
(ref).
Departmental computing resources include a uPrint printer/scanner/copier; a shared computer with a scanner; wired (Ethernet) and wireless networking; and access to a backed-up file server (Probe).
Workstations within BME should use fixed IP addresses that are
assigned. The netmask should be 255.255.255.0
and the gateway address
should be 132.206.111.1
. The DNS servers should be set to
132.206.85.18
, 132.206.85.19
and 132.206.85.20
, and campus.mcgill.ca
should be specified as the domain. See
Network setup for how to do this
under Debian/GNU Linux.
Probe
is a Windows-based server that hosts both individual directories
and shared lab directories,
all of which are backed up regularly.
Each user has a quota of 5 GB in their personal Probe directory in
biomedusers/
.
AudiLab also has a space allocation of 500 GB
in probeShare/Biomed/AUDILAB/
.
You need your McGill short username to access Probe. You can find out what it is by logging in to Minerva and going to .
If using wireless or if connecting from outside the department, you must connect to McGill's VPN before connecting to Probe. The following instructions assume that you have already connected to VPN if necessary.
To access Probe from a Linux computer (assuming that
the package cifs-utils
is installed),
in the Nautilus file-system
browser do .
In the dialogue box select
as the Service type
and fill in the fields as follows:
Server
| probe.campus.mcgill.ca
|
Folder
| biomedusers or probeshare
|
User Name
| your McGill DAS (Short) username |
Domain Name
| campus
|
The following alternative procedure for accessing Probe from Linux
requires an Administrator account and uses sudo
.
You can download
smbmount.pl, a Perl script that issues
the appropriate smbmount
commands to connect to
Probe.
Save the script somewhere and make it executable.
For example, save it in ~/bin/
and then in
a terminal window do
cd ~/bin/
chmod +x smbmount.pl
Thereafter, each time you login you can give the command
~/bin/smbmount.pl
to establish the connections to Probe.
You will be asked for your sudo password and then twice for your Mcgill
password. The contents of the
biomedusers
and probeShare
directories
will now appear in probe
and probeShare
,
respectively, in your home directory.
The first time you use the script, you will be asked for your McGill short username.
Right-click on smb://probe.campus.mcgill.ca
as the server.
Login with your McGill short username and your McGill password.
Select either biomedusers
or probeshare
.
For most computers permanently connected to a network jack, the
Q:
and S:
drives should automatically be
connected to
\\probe.campus.mcgill.ca\biomedusers\mcgillShortUsername
and
\\probe.campus.mcgill.ca\probeshare
,
respectively.
For other computers, in
right-click on in the Navigation pane on the left and select . As select and as specify ; make sure the box is checked. Click on and you should be prompted for your McGill login credentials. Similarly, connect to .See departmental instructions.
See instructions for setting up access to McGill's uPrint service. Their instructions say they apply to Ubuntu 12.10 and up; they apply to Debian 8 (‘jessie’, now testing, expected to become stable early in 2015).
Make sure CUPS is installed. (Under Debian GNU/Linux, use
aptitude
or some other method to install
cups
and its required packages.)
In order to use the Print to file
feature within
applications, you also need the cups-pdf
package.
The command lpstat -p
can be used to see
what printers are available. To look at the job queues, etc.,
in a Web browser go to
http://localhost:631/
.
If problems arise when printing Unix-style plain-text files because the
carriage returns are missing, they can be added using
unix2dos
.
I haven't figured out how to print from within applications because of the need to specify a username for uPrint. Instead, I produce PDF files and print them from the command line.
Example:
lp -U username -d printername -o sides=two-sided-long-edge -n 3 -o number-up=2 -P pagelist filename
username
is your McGill short username,
or the short username associated with a McGill uPrint card.
printername
should be mcgill_mono
or (only if necessary) mcgill_color
.
filename
is the name of the file to be printed
(usually a PDF file).
In the example there are several optional specifiers:
-o sides
is used to specify two-sided
printing.
-n
is used to print multiple copies.
-o number-up
is used to print
multiple document pages on each output page.
-P
is used to specify which pages to print,
with commas and hyphens but no spaces
(e.g., 1-5
or 1,3-7,10
).
Note that the page numbers in the pagelist
are given
in terms of output pages, not in terms of the pages in the document.
If, for example, number-up=2
, then a
pagelist
of 1-3
would result in printing pages 1 to 6 of the document.
I have a script lp.tcl which
prompts for various options
and submits the appropriate lp
command.
The source files for a library are generally in the same directory as the
object-library file, and are listed in a .nam
file.
The .nam
file may
include pointers to other directories for some of the modules.
For libraries developed here, there are two naming conventions: a source file contains either
decodf.for
contains the subroutine decodf
; or
days.for
includes
days_from_s_auto
,
days_from_s
, days_from_i
, etc.
Most of my software is written in Fortran 77/90 with some C. For Fortran code, the subprogrammes are usually subroutines rather than functions. For C, of course, there are only functions.