2004 Int Ansys Conf 24
2004 Int Ansys Conf 24
2004 Int Ansys Conf 24
Abstract
ANSYS is one of the leading commercial finite element programs in the world and can be applied to a large
number of applications in engineering. Finite element solutions are available for several engineering
disciplines like statics, dynamics, heat flow, fluid flow, electromagnetics and also coupled field problems.
It is well known that a finite element solution is always an approximate solution of the considered problem
and one always has to decide whether it is a good or a bad solution. Hence, the question is how a finite
element solution can be validated. In this paper we mention several aspects of modelling to obtain a good
finite element solution for problems in structural mechanics. Although ANSYS gives quite a lot of
warnings to prevent the user from making modelling mistakes, there are still some aspects during the pre-
and postprocessing and also during the solution process we would like to discuss just to point out where
user knowledge might still be necessary to obtain good results.
In our investigations we use both ANSYS products: ANSYS and ANSYS Workbench. Several ways of
modelling a problem of structural mechanics are discussed, taking into account the different available
features of ANSYS and ANSYS Workbench.
Introduction
The finite element method (FEM) is the most popular simulation method to predict the physical behaviour
of systems and structures. Since analytical solutions are in general not available for most daily problems in
engineering sciences numerical methods have been evolved to find a solution for the governing equations
of the individual problem. Although the finite element method was originally developed to find a solution
for problems of structural mechanics it can nowadays be applied to a large number of engineering
disciplines in which the physical description results in a mathematical formulation with some typical
differential equations which can be solved numerically.
Much research work has been done in the field of numerical modelling during the last thirty years which
enables engineers today to perform simulations close to reality. Nonlinear phenomena in structural
mechanics such as nonlinear material behaviour, large deformations or contact problems have become
standard modelling tasks. Because of a rapid development in the hardware sector resulting in more and
more powerful processors together with decreasing costs of memory it is nowadays possible to perform
simulations even for models with millions of degrees of freedom.
In a mathematical sense the finite element solution always just gives one an approximate numerical
solution of the considered problem. Sometimes it is not always an easy task for an engineer to decide
whether the obtained solution is a good or a bad one. If experimental or analytical results are available it is
easily possible to verify any finite element result. However, to predict any structural behaviour in a reliable
way without experiments every user of a finite element package should have a certain background about
the finite element method in general. In addition, he should have fundamental knowledge about the applied
software to be able to judge the appropriateness of the chosen elements and algorithms.
This paper is intended to show a summary of ANSYS capabilities to obtain results of finite element
analyses as accurate as possible. Many features of ANSYS are shown and where it is possible we show
what is already implemented in ANSYS Workbench.
We will distinguish two different sources of errors within a finite element analysis. On the one hand some
mistakes might be introduced in the analysis because the user himself does not know enough about finite
elements in general. To minimize these errors we summarize important features of certain element types
and element formulations of ANSYS. We also discuss the quality of different element shapes with respect
to accuracy and finally provide some information of a correct coupling of different element types. On the
other hand errors might occur due to a poor quality of the used finite element program itself. A high-quality
program assists the user in reporting reasonable warnings and errors. We will discuss some typical error
messages from ANSYS, which allow the user to correct a finite element model immediately. Some reasons
possibly leading to poor finite element results are summarized in Tab.1 below to give a coarse overview:
Table 1: Possible sources of errors in a finite element analysis
Engineer Finite Element Software
- wrong element type - bad element formulation
Preprocessing - wrong element coupling - bad meshing algorithm
- wrong idealization - no warnings and errors
- wrong calculation discipline - wrong calculation algorithm
Solution - wrong boundary conditions - inaccurate equilibrium iteration
- wrong convergence criteria - no warnings and errors
- wrong result coordinate system - wrong result averaging
Postprocessing - wrong selection of components - wrong displaying of results
- wrong interpolation of results - no warnings and errors
We should not forget to point out, that ANSYS is a general purpose program, where many numerical
modelling techniques are implemented. However, it is sometimes not easy to learn especially for beginners
or even for designers, who are usually not finite element experts. With ANSYS Workbench some effort has
been done to offer a product, which has implemented by default the best algorithms of ANSYS and is
furthermore very easy to use. Hence we will always discuss in this paper as a first step some modelling
features of ANSYS and finally point out which of them are already available in ANSYS Workbench.
Preprocessing
First of all, we will summarize some important aspects every user should be familiar with when doing the
preprocessing of a finite element analysis with ANSYS. The following topics will be discussed very
briefly: consequences of different element shape functions, important features of different beam and shell
elements, results of different element shapes and element formulations and finally correct coupling of
different element types. In addition to that, we show what kind of help is available from ANSYS in terms
of warnings and errors during the preprocessing to minimize modelling mistakes.
u ( x) = a 0 + a1 ⋅ x (1)
u ( x) = a0 + a1 ⋅ x + a 2 ⋅ x 2 (2)
Hence, we talk about linear or quadratic elements. As a consequence of that assumption the strain and also
the stress distribution is either constant or linear within each element due to:
du
ε ( x) = and σ ( x) = E ⋅ ε ( x) (3)
dx
This may be easily illustrated in the following one-dimensional truss example. The resulting displacement
and stress distribution is shown for a two element discretization with linear and quadratic elements:
F F
1 2 1 2
X
u ( x) = a0 + a1 ⋅ x u ( x) = a0 + a1 ⋅ x + a2 ⋅ x 2
ux Results: ux
analytic
du du
σ ( x) = E ⋅ σ ( x) = E ⋅
dx FEM dx
σx σx
Figure 1. One dimensional truss problem: linear and quadratic elements and their
consequences
With E as Young’s Modulus, F as applied force, and A(x) as the cross sectional area the analytic solution is
x
F 1 F
u ( x) =
E ∫ A( x) dx
0
and σ ( x) =
A( x)
(4)
coming from a direct integration of the governing differential equation of the above considered problem.
It is generally known that better results can be obtained using the same discretization with quadratic or
higher order elements compared with the results of linear or lower order elements. You should also keep in
mind that the degree of freedom solution always shows a smooth distribution from element to element
whereas the distribution of derived quantities (such as strains and stresses) is no longer smooth at the
element boundaries. This is a correct result in terms of the finite element method. Just the so-called “weak
formulation” of the concerning differential equation is solved by finite elements and the continuity
requirements for the governing variables of the problem are relaxed.
Recommendation:
ANSYS: In general, the user should prefer to take a quadratic element if possible.
ANSYS Workbench: By default, SOLID186/SOLID187 is used as a quadratic 3D Solid-Element
X
Figure 2. Simple supported beam structure under uniform pressure load distribution
At this stage it is worth to distinguish two different beam theories: In ANSYS beam elements are available
according to the theory of Bernoulli or according to the theory of Timoshenko, respectively. The user
should know that shear stresses are not calculated for Bernoulli beam elements but only for Timoshenko
beam elements. Bending stresses (linear over the thickness) are available in both beam theories. Since the
effect of shear is neglected using Bernoulli beam elements the structure will show a stiffer behaviour as if a
Timoshenko beam model was used. This is illustrated in Figure 3.
BERNOULLI TIMOSHENKO
(default for BEAM3 / BEAM4) (standard for BEAM188 / BEAM189)
It is worth to know about these both theories when using beam elements to choose the correct element type
if shear stresses are for example of interest. Considering the deformation it should be mentioned that
differences cannot be neglected any more if the ratio of the thickness to the length of the beam - d/l -
exceeds the limit of 1/10, i.e. if the beam cannot be considered any more as thin.
In [4] the analytical solution for the maximum displacement in y-direction according to Bernoulli is given:
5 ql 4
d max_ y = and with q=1, l=1 and EI=17500 d max_ y = 0.007440 . (5)
384 EI
We observe that the numerical solution with BEAM3/BEAM4 is almost exact. However, since shear
stresses are always present in reality, the user has a more accurate result, taking BEAM188/BEAM189.
Recommendation:
ANSYS: In general, the users should take BEAM188/189 if possible.
ANSYS Workbench: By default, BEAM188 is used.
Y X
Figure 4. Shell example: Simple plate subjected to a bending load with a fixed supported
edge
As for beam elements there also exist two different theories to formulate shell elements. The differences
between a typical KIRCHOFF-LOVE shell element like SHELL63 in ANSYS and a typical REISSNER-
MINDLIN shell element like SHELL181 is simple: Any shell element based on the KIRCHOFF-LOVE
shell theory does not calculate transverse shear stresses. Hence, the resulting deformations may be
underestimated, especially in thick shell structures. On the other hand, shell elements based on the
REISSNER-MINDLIN theory take into account the shear stress distribution over the thickness. As a
consequence of that these elements typically show a softer deformation behaviour due to the presence of
shear stresses. As for beam elements the effect of shear deformation can be neglected as long as the shell
structure can be considered as slender, i.e. if the ratio of the shell thickness to two typical lengths - d/l1 and
d/l2 - is less than 1/10. For both shell theories the bending stresses vary linearly with respect to the
thickness. The user should know which theory is implemented in which shell element.
As an example we analyse the simple shell structure shown in Figure 5. Due to the applied load case, we
can check both the correctness of the bending and membrane stiffness. An analytical solution for this
problem is derived based on the KIRCHOFF-LOVE theory in [3]. In Figure 6 we compare the analytical
result of the radial displacement with the numerical result using SHELL63. We use the default mesh
coming from ANSYS Workbench. The numerical solution is really good. Comparing the result of
SHELL63 and SHELL181 in Figure 7 it turns out that SHELL181 shows a softer behaviour. This result is
the best one, since the effect of shear stresses is also included in the analysis.
For the shell problem the following parameters are given: Q=10000, E=210000, µ=0.3, t=15, 0<s<223.61
and θ=63.43. From the geometry we can calculate rϕ and rϕ0. Note, that rϕ always depends on the position
of s. Note also, that the used finite element mesh is the default mesh the user gets in ANSYS Workbench:
s Q
rϕ 0
rϕ
θ
r
In [3] we find the analytical solution for the displacements in r-direction depending on the coordinate s:
s 2
2 Q sin 2 θ − λ0 rϕ 0
λ0 = 3(1 − µ )t
s
u r (s ) =
r
λ0 rϕ e ϕ 0 cos λ0 with 4 2
2
(6)
Et rϕ 0
Figure 6. Shell problem: Analytical and numerical result of the displacement in r-direction
depending on s
KIRCHOFF–LOVE REISSNER–MINDLIN
(standard for SHELL63) (standard for SHELL181)
Y
B = 1 H = 1 M(F) = 1/6 W = 1/6 σx= M/W = 1
X
Figure 8. Simple supported structure subjected to pure bending: geometry model and
analytical solution
Figure 9. Results of bending stresses for linear and quadratic elements using a mesh of
quadrilaterals
Figure 10. Results of bending stresses for linear and quadratic elements using a mesh of
triangles
Linear triangles never should be used whereas linear quadrilaterals can be used without any problems in a
structural analysis. If the problem is bending dominant the Enhanced Strain Formulation should be
activated. Quadratic triangles and quadrilaterals are always a good choice. The same thing is also valid for
the three-dimensional case.
Recommendation:
ANSYS: In general, the users should take PLANE183, SOLID186/SOLID187 if possible.
ANSYS Workbench: By default, SOLID186/187 is used.
However, there are a few possibilities to correctly transmit the beam’s or shell’s rotation into the solid part
of the structure. Two finite element models are shown below in Figure 12, where additional beam or shell
elements are used to perform the coupling reasonably:
Beam Beam
Shell Shell
Solids Solids
It is obviously that in both finite element models from Figure 12 the originally modelled joint from Figure
11 no longer exists and that the rotations are transmitted correctly by some additional elements. A quite
new technique to solve the above problem is given via the MPC (Mulit Point Constraint) method:
Beam
MPC
Shell
Solids
Using the MPC technique, ANSYS generates internally some coupling equation’s to establish the correct
kinematics at the coupling point. In fact, the MPC technique is valid if a small and also a large deformation
analysis is performed. MPC is modelled via bonded contact together with a special contact solution
algorithm. The MPC technique is also already available in ANSYS Workbench.
ANSYS Workbench
Figure 15. ANSYS and ANSYS Workbench messages due to incorrect element coupling
(rigid body motion)
However, it is also possible to introduce a rigid body motion into the system, if the structure is not
supported in a statically determined way. Such a situation is modelled in Figure 16 and it is shown how
ANSYS will identify such a modelling mistake, which has then to be corrected by the user:
Figure 16. ANSYS error messages to identify rigid body motions due to missing supports
Note, that ANSYS Workbench generates weak springs, if the program recognizes that a system is not
supported in a statically determined manner. Adding weak springs prevents the system from a rigid body
motion. If such a situation occurs, ANSYS Workbench gives the following information on screen:
Figure 17. ANSYS Workbench information to identify rigid body motions due to missing
supports
Automatic shape checking control
A topic we did not discuss so far in this paper is the resulting mesh quality after discretizing the structure
with finite elements. It is well known that the accuracy of results within one element also depends on its
shape. Fortunately, there are a few algorithms implemented in ANSYS to check the quality of the resulting
element shapes to minimize the errors due to bad element shapes. For details we refer to [1].
If one of the shape checking criteria is not satisfied the user will get a warning in ANSYS like shown in
Figure 19. Furthermore, it is possible to indicate the bad elements in the mesh. So it is easy to identify
regions where remeshing is required.
To illustrate this we recall again the simple bending problem to compare the numerical results with the
analytical ones. In Figure 18 it is indicated that we expect a maximum bending stress of σx = 1:
Y
B = 1 H = 1 M(F) = 1/6 W = 1/6 σx= M/W = 1
X
Figure 18. Simple supported structure subjected to pure bending: geometry model and
analytical solution
In the following Figure 19 we show the results of a bad discretization using linear elements. The correct
results have already been shown in Figure 9 and Figure 10. We recognize, that especially within the
indicated bad elements the numerical results are poor. The shape warnings coming from ANSYS are also
shown for this case and the user has immediately the chance to correct the mesh:
σx
PLANE182 (linear)
Figure 19. ANSYS warnings to identify bad shaped elements and numerical results of bad
elements
At this stage we should note, that shape warnings will not be shown in ANSYS Workbench. However,
since ANSYS Workbench just uses quadratic solid elements this is not really a disadvantage, since those
elements are not as sensitive with respect to the resulting element shape. The above warnings would not
have been appeared if PLANE183 (quadratic) would have been used instead of PLANE182 (linear).
Solution
Solving a linear problem of structural mechanics meanwhile has become a standard task and can be
performed without any difficulties. The accuracy of the results just depends on the quality of the resulting
finite element model itself. By contrast a nonlinear problem has to be solved iteratively and a solution is
only obtained if convergence is achieved.
At this stage we would like to give a certain background about the solution of nonlinear problems. First of
all, we summarize briefly the basics of the iterative solution method which is implemented in ANSYS to
solve nonlinear problems. With this knowledge it should be possible to understand how certain user
settings on convergence criteria might influence the accuracy of a nonlinear solution.
In the last section we talk about the necessity of a geometric nonlinear calculation. We show what kind of
error is introduced in the analysis if the effect of large deflections is ignored numerically. We try to show
the limit of a geometric linear calculation considering the effect of large deflections.
In every Newton-Raphson iteration the changing stiffness can be identified as the slope of the force
deflection curve from Figure 20. Hence we speak about a tangential stiffness KT. In every iteration a
displacement / rotation increment ∆u is calculated until the imbalance forces which are also called the
residual forces / moments R become acceptable small. Strictly speaking, a structure is only in equilibrium
if the residual forces /moments totally vanish. In the current version of ANSYS (8.0) the user has the
chance to postprocess the residual forces / moments to check the accuracy of the simulation.
F
Detailed consideration of the iteration:
R criterion
(small number)
∆u
Equilibrium is obtained if: |R| < criterion
u
u
Figure 21. The Newton-Raphson iteration of the imbalance residual forces and moments
Figure 22. The Newton-Raphson iteration of the incremental displacements and rotations
Note carefully, that in case of activating only the incremental displacement and rotation control, you should
always check the results for equilibrium. In Figure 23 it is illustrated that especially for structures with a
stiffening behaviour a small increment in the displacements does not necessarily mean that also the
imbalance residual forces are already acceptable small. If there are still certain residual forces in the system
(imbalance forces) the structure is obviously not yet in equilibrium.
∆u
u
Figure 23. Situation where just a displacement controlled iteration might lead to erroneous
results
The user should know that when activating the incremental displacement control an additional equilibrium
check should be performed after convergence has been achieved.
It is also possible to specify individually for which quantity the evaluation of the increments during the
Newton-Raphson iteration should be measured.
About the necessity of a geometric nonlinear calculation
In this section we discuss the limit of a geometric linear calculation. We will show that with the classical
definition of strain like it is used within a geometric linear calculation it is not possible to calculate a rigid
body rotation in a correct manner.
However, by introducing a new nonlinear strain definition we are able to calculate correct results. It will be
shown that for large rigid body rotations the geometric linear theory looses its validity.
Let us focus on the following simple rod problem in Figure 24. The rod rotates as a rigid body with rotation
angle ϕ. Point A will move to point A’. The components of its movement are also calculated in Figure 23 in
an analytical manner:
y, v
A’
u ( x) = x (cos ϕ − 1)
v( x) = x sin ϕ
ϕ A
x, u
Figure 24. Single rod with rigid body rotation: system sketch and analytical results of rigid
body kinematics
In Eq. (3) the definition of engineering strain in x-direction was given for a geometric linear calculation.
Substituting the results from kinematics from Figure 24 we obtain the strain depending on ϕ:
∂u
ε ( x) = = cos ϕ − 1 (8)
∂x
Actually we expect a zero strain component in x-direction for the above problem. In the following Tab. 2
we show that this holds only approximately for very small angles ϕ. We think that the geometric linear
theory looses its validity if rotation angles are bigger the 10°:
Table 2: Resulting strain of a rigid body rotation using a geometric linear calculation
ϕ 1 5 10 45
ε -0,0002 -0,0038 -0,0152 -0,2929
One idea to solve the problem from above is to define the strain in a different way, i.e. using a different
strain measurement, like it is given for example in Eq. (9) taken from [5]. This definition of strain is called
Green-Lagrange strain. It is a nonlinear strain measurement with respect to the displacements:
2 2
∂u 1 ∂u 1 ∂v 1 1
ε ( x) = + + = cos ϕ − 1 + (cos ϕ − 1) + (sin ϕ )
2 2
(9)
∂x 2 ∂x 2 ∂x 2 2
Using this strain measurement results in zero strain for all angles ϕ so a reasonable correct result is
calculated. To use this definition of strain a geometric nonlinear analysis is required.
Table 3: Resulting strain of a rigid body rotation using a geometric nonlinear calculation
ϕ 5 10 45 90
ε 0 0 0 0
Recommendation:
ANSYS: If the user is not sure to include or exclude the geometric nonlinear effects in the
simulation, a geometric nonlinear calculation is for sure always the better
choice.
However, if a linear calculation has already been performed and the resulting
strains are small for example below 2% the error in the analysis will be small
and acceptable. If more than 5% strain is indicated a geometric nonlinear
analysis should be performed to obtain better results.
ANSYS Workbench: By default, ANSYS Workbench gives the following information if the effect of
geometric nonlinearities should be included in the analysis:
Postprocessing
In this chapter we first summarize basic knowledge the user should have considering postprocessing
especially in ANSYS. Most features are not yet available for ANSYS Workbench.
∑ Value
Element
Value Node = Elem.
∑
Elem.
Figure 26. How element quantities like strains and stresses are calculated at the nodes
What we have outlined so far should be illustrated by a little example shown in Figure 27. A quarter of a
plate with a hole is modelled by linear elements and subjected to a traction force. Only one material is used.
The contour plots show the stresses in x-direction, displayed with the element and nodal solution option:
Y
System Element solution: σx Nodal solution: σx
(not averaged) (averaged)
X
Figure 27. Results from the element and nodal solution in ANSYS
It can be recognized that the stress field is not smooth in the element solution as it is characteristic for
finite element solutions. Displaying the same quantity with nodal solution results in a smooth contour
distribution due to the averaging process. The element solution is useful to identify high result gradients
within single elements. In those areas a finer mesh may be required.
A second very similar example is shown in Figure 28. This time the structure is made up of two different
materials – a soft material is combined with a stiff material. Clearly, it is not allowed to average the
element stresses at those nodes where elements with different materials touch each other. In ANSYS this is
recognized automatically if the postprocessing is done using the powergraphic option. If the full graphic
option is used all element values at the nodes are averaged even at the material boundary which can be
misleading. The powergraphic option is activated by default in ANSYS.
soft
stiff
Y
System Element solution: σx Nodal solution: σx Nodal solution: σx
(not averaged) (averaged) (averaged)
X
FULL GRAPHIC POWERGRAPHIC
Figure 28. Results from element and nodal solution using full graphic and powergraphic in
ANSYS
This quantity is taken to calculate the total energy error of the structure according to:
e
E = 100 with U Æ total elastic strain energy in the selected domain (11)
U+e
e Æ total energy error in the selected domain
{ } { }
Elem
1
e=∑
T
i =1
∫
2 Ve
∆σ ni D -1 ∆σ ni dV
In other words the total energy error weights the different ∆σni using an energy formulation to obtain a
global measurement of the discretization error for the selected domain. It is calculated in percent.
Estimating the discretization error:
Comparing the extrapolated and averaged stresses
Recall equation (10): ∆σni = ∆σna − σni. An easy way to estimate the discretization error is to take the
maximum value of the computed nodal quantity ∆σni in each element and define it as the characteristic
value for each element i. This local measurement of the discretization error is called SDSG:
Y
F=20 σL=2 σR=20
X AR=1
AL=10
Figure 29. System with analytical solution to be compared with different finite element
discretizations
In Figure 30 the resulting stress distribution in x-direction is shown together with the local element quantity
SDSD and the global error energy to measure the discretization error:
σx σx
SDSG SDSG
E = 30.943 % E = 7.8457 %
Figure 30. Results of measuring the discretization error locally and globally in ANSYS
Classic
Clearly, the right discretization in Figure 30 is better than the left one. However, only postprocessing SGSG
gives one an idea in which regions the mesh should be refined. The total error energy just indicates how
good or bad a discretization is in general.
Unfortunately, both methods to measure the discretization error just work for linear static analyses.
• p-method: σ
25
24
2 3 4 5
• h-method: Order of the shape function
σ
25
24
23
22
21
20
Loop-1 Loop-2 Loop-3 Loop-4
Loop-1 …Æ… Loop-3 Mesh refinement loop
Figure 32. Residual forces in x-direction of a converged nonlinear solution step in ANSYS
What we see is a contour plot of the residual forces in x-direction of the last converged solution step of a
nonlinear analysis. It can be recognized that very locally there is a certain amount of disequilibrium in the
structure. However, if the user wants to improve the accuracy of the nonlinear result it is possible to iterate
the residual forces / moments to a smaller value.
Note, that the residual forces / moments can be displayed for every equilibrium iteration within the
Newton-Raphson iteration. Hence, is possible even to judge about the state of equilibrium or disequilibrium
in a solution step which has not yet converged.
Conclusion
In this paper we tried to discuss several modelling aspects to keep in mind when doing a finite element
analysis with ANSYS and ANSYS Workbench to improve the accuracy of the results. For the three typical
steps within a finite element analysis – the preprocessing, the solution and the postprocessing – we
provided some basic finite element knowledge the user should have to be able to build up a reasonable
finite element model for the considered problem.
Considering the preprocessing we discussed the finite element results of different element types, element
shapes and element orders. If available, numerical solutions have been compared with analytical results.
We also described briefly the correct element coupling of different element types. In addition to that, we
showed intelligent warning messages of ANSYS and ANSYS Workbench to minimize modelling mistakes.
Especially the solution of nonlinear problems requires some knowledge about the iterative solution scheme
of ANSYS and ANSYS Workbench. In this paper we discussed briefly the background of the Newton-
Raphson-Method. The limit between a geometrical linear and nonlinear calculation has also been shown.
Finally we mentioned some aspects of the powerful postprocessing of ANSYS and ANSYS Workbench.
Several features are available to check every finite element result for its numerical correctness like error
estimators or using adaptive finite element methods.
References
[1] ANSYS Elements Reference, Release 6.1, Swanson Analysis Systems, Inc., 2001
[2] ANSYS Theory Reference, Release 6.1, Swanson Analysis Systems, Inc., 2001
[3] Pflüger, A., Elementare Schalenstatik, 5. Auflage, Springer-Verlag, 1981
[4] Schneider, K.-J., Bautabellen für Ingenieure, 11. Auflage, Werner-Verlag, 1994
[5] Wriggers, P., Nichtlineare Finite-Element-Methoden, Springer-Verlag, 2000
[6] Zienkiewicz, O.C., Zhu, J.Z., “A Simple Error Estimator and Adaptive Procedure for Practical
Engineering Analysis”, International Journal for Numerical Methods in Engineering,
Vol. 24, pp. 357-367, 1987