The finite-element package SAP IV was originally developed in the 1970’s at UC Berkeley and was freely distributed in source form. I have modified it somewhat here over the years. The official source code (as modified for various platforms at various times by various people) and documentation are currently available from NISEE at UC Berkeley; download requires membership in The Earthquake Engineering Online Archive (US$25/year) and the software and documentation ‘may not be used for commercial purposes or redistributed in any form’. Other software from NISEE includes NONSAP and PC FEAP.
We have also developed Saq, a programme for running Sap with queries.
It uses Fad to modify the .sap
model-definition file in response to user input, generates a new
.sap
file with a unique name, and submits one or
more simulation runs as a background job.
We are using Sap under Debian GNU/Linux.
Sap and Saq for 64-bit GNU/Linux can be downloaded here:
We have created an HTML version (restricted access) of the original printed User's Manual (Bathe, Wilson and Peterson, 1974) for internal use only.
The original scanning and OCR were done by Mathieu Dessain (1993 July/August), based on which Robert Funnell (1997 Jan) created a primitive set of HTML pages. Shervin Talebi (1998 Jul/Aug) enhanced the HTML and added some navigation links. Kailesh Mussai (2000 Jun) enhanced it further (including scanning missing pages, and adding images for figures and equations). Since then, Robert Funnell has made various changes.
We have also created some incomplete documentation of internals (restricted access).
Sap is run from the command line.
If you run Sap directly it will display a prompt for the name of the .sap input file:
Filename for input?
.sap
extension.
Sap will then display two prompts:
Scale factors (Jacobi, Brick8)? Constraint coefficient?
|
Enter
for both of these. You may then see
a warning errset not yet implemented ...
which can be ignored.
Sap will hopefully now run.
(The scale factors for Jacobi
and Brick8
are
used to avoid numerical problems in certain cases. Their default values
are 1.0, which should usually be fine.
The constraint coefficient
, if non-zero, is used
to constrain an unsupported structure; it is not required for any
physically reasonable model.)
The Saq programme is the recommended way of running Sap under
GNU/Linux. (It doesn't yet work under Microsoft Windows.) Saq queries the
user about what is wanted, generates a new .sap
file
with a unique name, and submits a background job.
Like Sap, Saq is run from the command line. Normally you would
cd
to the directory where the .sap
file
is. If the name of the model-definition file is
modelname.sap
, then give the command
saq modelname
.sap
extension).
Saq can also be invoked without the name of a model-definition file;
if a file name is not
specified on the command line, Saq will ask for it.
(For all queries, respond with the requested information followed
by the Return
or Enter
key.)
Saq will then ask what type of simulation is desired:
S
, E
or D
. Saq will run
Fad to modify the model-definition file accordingly.
Saq then asks whether you want to run Fad, to make various other
changes to the model. Answer with Y
or
N
. (In the current version of Saq, if you answer No then
the model-definition file will not be modified to reflect your
requested simulation type.)
Saq will then allow you to modify various model parameters, depending on which simulation type you've selected.
Saq will allow you to specify the use of either pressures (assumed
to already be defined in the model) or concentrated loads (always
applied in the z direction, and assuming that none are yet
defined in the model). If you specify concentrated loads, Saq will
repeatedly ask you for the node numbers at which the loads should be
applied; just press the Return
or Enter
key
to indicate that you've finished entering nodes. A concentrated load
consisting of a force of 1. in the z direction will be
applied at each node that you specify.
Saq will ask you how many eigenvalues you wish to solve for.
Saq will ask you for the following:
Saq will ask you for the number of equations/block, and whether
to print out the equation numbers. These are both for
debugging purposes. Normally just press the Return
or Enter
key for each question.
Saq creates a new model-definition file with a new name using the
date and a sequence number. The new name is of the form
oldname_yyyymmdd_nn
. This makes it
easier to keep track of results from multiple simulation runs based on
the same model with different parameters.
Finally Saq will ask you if you want to actually run Sap for this model
and the specified parameters.
Answer Y
or N
.
Saq then loops back and asks again for a simulation type. If you specify something, it will again allow you to modify the parameters and submit another simulation run for the same basic model. If you don't specify a simulation type, it will ask you for the name of another model. If you specify something, it will continue by asking for a simulation type and other parameters. If you don't specify a model name, it will submit a job to be run in the background, consisting of all of the model modifications and simulations that you have requested. When the job finishes an e-mail message will be sent to you at your local username.
Sap should produce a .res
file as output, as well as
a number of other working files. If the run was successful, the
.res
file should contain a listing of the input model
specifications followed by some results, and should end with
information about the execution time, e.g.,
S T A T I C S O L U T I O N T I M E L O G EQUATION SOLUTION = 1.22 DISPLACEMENT OUTPUT = 0.07 STRESS RECOVERY = 0.34 O V E R A L L T I M E L O G NODAL POINT INPUT = 0.11 ELEMENT STIFFNESS FORMATION = 1.61 NODAL LOAD INPUT = 0.01 TOTAL STIFFNESS FORMATION = 0.68 STATIC ANALYSIS = 1.65 EIGENVALUE EXTRACTION = 0.00 FORCED RESPONSE ANALYSIS = 0.00 RESPONSE SPECTRUM ANALYSIS = 0.00 STEP-BY-STEP INTEGRATION = 0.00 TOTAL SOLUTION TIME = 4.05The Fod programme can be run to display the simulation results. If Fod fails to display any results, you may find some explanatory error messages in the
.res
file.
Since 1976 I have ported SAP IV to various hardware and operating systems, including RSX-11M, VAX VMS, Digital Unix, Debian GNU/Linux and Microsoft Windows.
The following is a brief list of local modifications to SAP IV, in approximate decreasing order of importance. (Names in curly brackets {} are subroutine names.)
IT,N,JPR,(ID(N,I),I=1,6),X(N),Y(N),Z(N),KN,T(N) (2(A1,I4),5I5,3F10.0,I5,F10.0)Now (version 2), forcing Cartesian and not permitting Cylindrical, the input list and format are
N,JPR,(ID(N,I),I=1,6),X(N),Y(N),Z(N),KN,T(N) (I5,(A1,I4),5I5,3F10.0,I5,F10.0) IT=' 'However, if there’s a line after the master control line that says
nodes_v3
,
then (version 3) the input list and format are
IT,JPR,N,(ID(N,I),I=1,6),X(N),Y(N),Z(N),KN,T(N) (2A1,7I5,3F15.0,I5,F10.0)
setup.for
and setupf.for
sap.dcl
and
sapfn.dcl
, and use of INCLUDE