Generalization of the pinball contact/impact model for use with mesh adaptivity and element erosion in EUROPLEXUS.
Date: 2016-05-20
Institutions: Joint Research Centre
Subjects: accident prevention, computer system, data collection, data transmission, digital technology, erosion, research report, simulation

pinball
of 
Generalization 
contact/impact  model  for  use  with
mesh adaptivity and element erosion
in EUROPLEXUS 

the 

Folco Casadei 

Vegard Aune 

Georgios Valsamos 

Martin Larcher 

2016

EUR 27888 EN

pinball
of 
Generalization 
contact/impact  model  for  use  with
mesh adaptivity and element erosion
in EUROPLEXUS 

the 

This publication is a Technical report by the Joint Research Centre, the European Commission’s in-house science 
service. It aims to provide evidence-based scientific support to the European policy-making process. The scientific 
output expressed does not imply a policy position of the European Commission. Neither the European 
Commission nor any person acting on behalf of the Commission is responsible for the use which might be made 
of this publication. 

JRC Science Hub 
https://ec.europa.eu/jrc 

JRC101013 

EUR 27888 EN 

ISBN 978-92-79-57972-1  

ISSN 1831-9424  

doi:10.2788/333017  

© European Union, 2016 

Reproduction is authorised provided the source is acknowledged. 

Printed in Italy 

All images © European Union 2016 

How to cite: Authors; title; EUR; doi 

Generalization of the pinball contact/impact model
for use with mesh adaptivity and element erosion
in EUROPLEXUS

F. Casadei1, V. Aune2, G. Valsamos3, and M. Larcher3

1Retired from JRC ELSA
2Structural Impact Laboratory (SIMLab), Centre for Research-based Innovation (CRI)
and Department of Structural Engineering, Norwegian University of Science and Technology,
Rich. Birkelands vei 1A, NO-7491 Trondheim, Norway
3European Laboratory for Structural Assessment (ELSA), Institute for the Protection and Security of the Citizen (IPSC)
Joint Research Centre (JRC), 21027 Ispra, Italy

March 20, 2016

Contents

1 Introduction

1.1 Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Adaptivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Element failure and erosion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Combination of adaptivity with pinball contact

2.1 Contact-driven adaptivity by point clouds . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Adaptivity-driven contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Rules for pinballs with adaptivity . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2
. . . . . . . . . . . . . . . . . . . . .
Implementation details of standard model
Strategy for the adaptive model . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3
2.2.4 Pinballs activation algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Contact-driven adaptivity (new model) . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 New syntax of the PINB directive . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Choosing the maximum adaptive reﬁnement level . . . . . . . . . . . . . . . . .
2.3.3 Adapting the mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.4 Mesh reﬁnement loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.5 Mesh unreﬁnement loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.6 Dealing with pinball size options and with numbering indepence . . . . . . . .
2.3.7 Optimized algorithms using fast search . . . . . . . . . . . . . . . . . . . . . . .
2.3.8 Treatment of self-contact
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.9 Choice of the scaling factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Numerical examples

3.1 Simple adaptivity-driven contact test . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 ADPI05 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 ADPI04 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Blast-loaded plate test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 A0BG02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Simple contact-driven adaptivity test . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 PIAD01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2 PIAD02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3 PIAD03 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

3
3
4
5

5
6
7
7
7
9
9
12
12
13
13
15
15
16
18
19
23

24
24
24
26
27
28
30
31
32
32

3.4 Combined threshold- and contact-driven adaptivity test

3.3.4 PIAD04 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
3.4.1 PITH07 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2 PITH08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.3 PITH09 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

References

Appendix — Input ﬁles

List of input ﬁles

List of Tables

1 Maximum magniﬁcation factor µmax in 2D and 3D regular continuum meshes. . . . . .
2 Maximum scaling factor φmax for self-contact in 2D and 3D regular continuum meshes.
. . . . . . . . . . . . . . . .
3
. . . . . . . . . . . . . . . . . . . . . . . .
4
. . . . . . . . . . . . . . . .
5
. . . . . . . . . . . . . . . .
6

Calculations for the simple adaptivity-driven contact test.
Calculations for the blast-loaded plate test.
Calculations for the simple contact-driven adaptivity test.
Calculations for the free falling concrete arch impact test.

List of Figures

Contact-driven adaptivity in test case BM MPI ADAP PINBALLS.
1
. . . . . . . . . .
Free faces of continuum elements in adaptivity.
. . . . . . . . . . . . . . . . . . . . . .
2
Example of contact-driven mesh reﬁnement. . . . . . . . . . . . . . . . . . . . . . . . .
3
. . . . . . . . . . . . . . . . . . . . . .
Options aﬀecting the size (volume) of pinballs.
4
. . . . . . . . . . .
Spurious mesh reﬁnement (chain reaction) in the self-contact case.
5
. . . . . . . . .
Illustration of the chain reaction phenomenon in the self-contact case.
6
Eﬀects of the choice of the scaling factor φ in the self-contact case.
. . . . . . . . . . .
7
. . . . . . . . . . . . . . . . . . . . . . . . . .
Initial mesh reﬁnement in case ADPI05.
8
. . . . . . . . . . . . . . . . . . . . . . . .
Computing the initial gap in case ADPI05.
9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Results of test case ADPI05.
11 Results of test case ADPI04.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12 Results of test case A0BG02 (general view). . . . . . . . . . . . . . . . . . . . . . . . .
13 Results of test case A0BG02 (details).
. . . . . . . . . . . . . . . . . . . . . . . . . . .
Symmetrized results of test case A0BG02 (full model view). . . . . . . . . . . . . . . .
14
15 Comparison of test case A0BG02 with experimental results.
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16 Results of case PIAD01.
17 Results of case PIAD02 (rebound phase only). . . . . . . . . . . . . . . . . . . . . . . .
18 Results of cases PIAD01 and PIAD02 at the ﬁnal time.
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19 Results of case PIAD03.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20 Results of case PIAD04.
21 Results of cases PIAD03 and PIAD04 at the ﬁnal time.
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22 Results of case PITH07.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23 Results of case PITH08.
24 Results of case PITH09.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25 Comparison of solutions PITH07, PITH08 and PITH09 at t = 12.5 ms. . . . . . . . . .

33
34
36
37
37

39

44

55

22
23
24
28
31
36

6
12
13
17
21
21
23
25
25
26
27
29
30
30
31
33
34
34
35
35
35
38
39
40
40

2

List of Algorithms

1
2
3
4
5
6

Provisional algorithm for contact-driven mesh reﬁnement.
. . . . . . . . . . . . . . . .
Provisional algorithm for contact-driven mesh unreﬁnement. . . . . . . . . . . . . . . .
Non-optimized algorithm for contact-driven mesh reﬁnement.
. . . . . . . . . . . . . .
Non-optimized algorithm for contact-driven mesh unreﬁnement. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
Optimized algorithm for contact-driven mesh reﬁnement.
. . . . . . . . . . . . . . .
Optimized algorithm for contact-driven mesh unreﬁnement.

15
16
18
19
20
20

1

Introduction

This report presents the generalization of the pinball-based contact-impact model (PINB) of the EU-
ROPLEXUS code for use in conjunction with mesh adaptivity, i.e. with adaptive mesh reﬁnement
and un-reﬁnement. The interaction of the pinball model with the mechanism of element failure and
erosion is also revised.

EUROPLEXUS [1] (also abbreviated as EPX) is a computer code jointly developed by the French
Commissariat `a l’Energie Atomique (CEA DMT Saclay) and by EC-JRC. The code application domain
is the numerical simulation of fast transient phenomena such as explosions, crashes and impacts in
complex three-dimensional ﬂuid-structure systems. The Cast3m [2] software from CEA is used as a
pre-processor to EPX when it is necessary to generate complex meshes.

1.1 Contact

The most popular contact algorithms available in Finite Element (FE) computer codes are probably
the so-called slide line (in 2D) and slide surface (in 3D) algorithms proposed by Hallquist and Ben-
son [3, 4]. They are based on the notion of penetration of slave nodes into master segments (in 2D)
or into master surfaces (in 3D). These algorithms suﬀer from a number of geometrically pathological
cases in which physical penetration is not detected.

The pinball method proposed by Belytschko and co-workers from the late 80’s [5–12] for application
in impact problems with perforation is much more robust as concerns penetration detection. The
pinball contact-impact method has been implemented in EPX in [14–18], initially based on strong
coupling via a Lagrange-multiplier (LM) based solution strategy of the contact constraints (see [13]
for details of the method) and more recently by using weak coupling based on a penalty approach,
see [19]. The latter report also contains a description of the implementation of Assembled Surface
Normals (ASNs) in the pinball model, by an algorithm inspired to the one proposed by Belytschko in
reference [5].

The original pinball model of Belytschko and its implementation in EPX (PINB keyword) are based
upon spherical pinballs. This approach is extremely robust and eﬃcient in detecting penetration, but
suﬀers from certain drawbacks when it comes to imposing contact constraints.

When dealing with slender elements (highly deformed continuum elements or structural members
such as bars, beams and shells) the basic pinball method which associates a sphere with each element
is no longer applicable and a hierarchic pinball method, consisting of splitting each penetrating pinball
into a series of smaller pinballs (recursively, until a certain minimum size is reached) must be used
instead, to enhance the resolution of penetration detection. Apart from the complexity and relative
ineﬃciency of a recursive approach, diﬃculties arise when imposing multiple contacts between sub-
pinballs with the LM method, because in this case redundant constraints may be generated and the
system of constraints may become singular (see e.g. Section 7 of reference [15]). Various techniques
have been devised in order to get rid of redundant constraints, but this is a complex and ineﬃcient
task, very diﬃcult to perform in general terms. The penalty approach does not suﬀer from this
limitation, but it needs some tuning parameters, which render solutions more laborious (besides
being non-unique) and less reliable for the user, than the LM method.

Another diﬃculty in dealing with spherical-only pinballs is the determination of the local contact
direction. The simplistic approach of using the line joining the two contacting pinball centres is
suﬃcient in some cases (e.g. in fast impact with perforation) but may introduce large errors in other

3

situations (such as sliding-dominated contact between smooth bodies). Recent (re-)developmeent of
the ASN technique (see [19]) which associates a unique normal direction with each pinball or subpinball
and then introduces rules for computing a “better” contact direction than the simple centresjoining
line can alleviate these problems in many, but not in all, cases.

In a still ongoing work [20] we explore the possibility of using “generalized” pinballs (GPINs),
of various geometrical shapes (not only spherical) in an attempt to avoid the problems highlighted
above (especially those aﬀecting the LM method), while retaining as far as possible the robustness
and simplicity of the original pinball approach. The use of a variety of shapes allows to get rid of the
necessity of a hierarchic procedure at the expense, however, of (slightly) more complex penetration
checks than with spheres. This should ensure that no (or fewer) redundant constraints appear and
therefore their elimination is no longer necessary, with positive eﬀects also on the treatment of rebound.

1.2 Adaptivity

In recent years (from 2010 on) mesh adaptivity (or AMR for Adaptive Mesh Reﬁnement) has been
implemented in EPX. Automatic mesh adaptation is now available in continuum as well as in structural
element types, and in solid as well as in ﬂuid materials, including both Finite Element (FE) and Finite
Volume (FV) formulations. Details of adaptivity developments in EPX can be found in references [21–
39].

Reference [21] presented the ﬁrst implementation in EPX of an adaptive mesh reﬁnement and
un-reﬁnement procedure, in two space dimensions (element shape QUA4) for solid mechanics. The
procedure was extended to ﬂuid mechanics (FE formulation) in 2D in reference [22]. Then, refer-
ence [23] applied a similar reﬁnement and un-reﬁnement procedure in three space dimensions to the
CUB8 element shape, both in solid mechanics and in ﬂuid mechanics (FE formulation).

All numerical examples presented in references [21–23] with a variable mesh used a so-called
“manual” mesh adaptation directive, the WAVE directive (see the code manual in reference [1]), ﬁrst
introduced in reference [21]. This directive reﬁnes the mesh along “wavefronts” that are speciﬁed by
the user, e.g. according to a known analytical solution to the problem considered. This technique
was used with success to simulate a bar problem (in solid mechanics) and a shock tube problem (in
ﬂuid mechanics) both in 2D and in 3D [21–23].

However, those solutions cannot be qualiﬁed as “true” adaptive solutions, because in (true) adap-
tivity mesh reﬁnement and un-reﬁnement should be completely automatic, based upon suitable error
estimators or error indicators. The formulation of error estimators in fast transient dynamics is chal-
lenging and is still a subject of research. The use of so-called error indicators, however, is much
simpler.

For this reason, subsequent work in EPX focused on error indicators. References [24] and [25]
document a ﬁrst prototype implementation of adaptivity based upon error indicators in EPX, limited
to 2D problems in continuum and ﬂuid mechanics. An extension of the indicator technique to 3D is
under development but has not been completed and documented yet.

Publications [26, 27] focus on the natural quantities of interest in goal-oriented error assessment

and adaptivity, but limited to the case of linear elasto-dynamics.

The adaptive technique was then applied to Cell-Centred Finite Volumes (CCFV) for the descrip-
tion of the ﬂuid domain, ﬁrst in 2D (see [28]) and then also in 3D [29]. More recently, the technique
has also been extended for use with the CDEM combustion model which makes use of the CCFV
formulation [30].

A complete description of the element reﬁnement and un-reﬁnement techniques used in mesh

adaptation has been published in a journal paper [31].

A ﬁrst contribution towards combination of mesh adaptivity with Fluid-Structure Interaction
(FSI) was given in reference [32], in which a model is described that automatically reﬁnes the ﬂuid
mesh in the vicinity of an embedded structure which can move and deform until and beyond rupture
(but without being itself subjected to adaptivity).

In [33] adaptivity was activated for simplex elements (triangles in 2D and tetrahedra in 3D).
The report [34] extends adaptivity to CEA’s family of ﬂuid elements. Finally, reference [35] extends
adaptivity to shell, beam and bar structural elements. It becomes therefore possible to have mesh

4

adaptivity both in a ﬂuid and at the same time in a structure (typically made of shells) embedded in
the ﬂuid.

Combined criteria for adaptive mesh reﬁnement were addressed in [36], while [37] introduced

simultaneous adaptation of both ﬂuid and structural mesh in FSI calculations.

Report [38] dealt with the interpretation of mesh-adaptive results and some peculiarities that
arise in the post-processing of such calculations. Finally, [39] proposed a decoupled formulation of
constraints on hanging nodes in adaptivity which sometimes allows to greatly reduce CPU time in
this types of simulations.

1.3 Element failure and erosion

Element failure and element erosion are treated as two separate models in EPX, although they are of
course inter-related.

Failure usually occurs at element Gauss (or integration) points, when the material model has
reached a certain threshold, e.g. a level of damage beyond which it provides no further resistance.
The material failure criterion often depends on the particular material model. Each Gauss point has
its own stress / strain history and its own set of hardening parameters, so it may fail individually.
Upon failure, the resistance of material at the concerned Gauss point is usually completely removed
and therefore the load will increase on the neighboring points due to re-distribution of equilibrium,
possibly leading to a chain failure. A failed Gauss point is usually not allowed to recover any resistance,
so it remains failed for the rest of the computation.

Once a certain fraction of an element’s Gauss points have failed, the complete element is ﬂagged
as failed and removed from the computation. The percentage of failed Gauss points for this to occur
may be set from the user and varies from 0 (brittlest behaviour: the element fails as soon as any of
its Gauss points fails) to 1 (toughest behaviour: the element fails when all of its Gauss points have
failed).

Other (more phenomenological) failure models are available, which act on the element as a whole.
For example, a criterion which states failure of a (brittle) glass panel when a certain displacement is
reached.

The two mechanisms of failure and erosion are kept separated in the input declaration in order to
achieve ﬁne-grain control over the propagation of structure degradation. Of course in most (but not
in all) cases, element erosion is a direct consequence of (and is piloted by) element failure.

Element failure / erosion is obviously interconnected with adaptive mesh reﬁnement. For example,
if an element is reﬁned and then some of its descendents fail and are eroded, then the element will no
longer be suitable for un-reﬁnement.

The present report deals mainly with the combination of mesh adaptivity with contact treated
by the PINB method in the same calculation. It also reviews the most common aspects of interaction
between mesh adaptivity and element failure / erosion. The document is organized as follows. Section
2 presents the proposed formulation. Section 3 shows some numerical examples, Section 4 gives some
conclusions and suggestions for future work. All the input ﬁles mentioned in the present report are
listed in the Appendix.

2 Combination of adaptivity with pinball contact

Combining contact with mesh adaptivity is a potentially vast subject. At least two types of interaction
(or relationship) between AMR and contact can be envisaged.

In the ﬁrst case, adaptivity is triggered by contact. We refer to this as contact-driven adaptivity.
For example, imagine two approaching bodies which are about to enter in contact with each other.
In order to increase the accuracy and resolution of contact treatment, it is desirable that the mesh be
particularly ﬁne near the contacting surfaces. Therefore, adaptivity can be triggered by the contact
model itself, in order to locally reﬁne the mesh just before contact ﬁrst occurs.

In the second case, adaptivity is triggered by a diﬀerent criterion than contact. We refer to this as
adaptivity-driven contact. In this case adaptivity is piloted by an error indicator or by a damage-based

5

threshold criterion, to name just a few of the possibilities available in EPX. If contact is foreseen (by
means of embedded pinballs) in some of the elements that are being reﬁned, then the descendents
of such elements must somehow inherit the contact capabilities of their ancestors. In other words,
descendents of pinball-endowed elements must also be suitably endowed by (smaller) pinballs.

2.1 Contact-driven adaptivity by point clouds

The ﬁrst type of relationship has been already addressed in EPX by a pilot development (undocu-
mented) performed at CEA and based upon the notion of point clouds (PCLD). The development is
limited to (and currently works only with) the parallel, MPI-based version of EPX. An example of this
model (from the standard suite of non-regression tests of EPX) is test BM MPI ADAP PINBALLS,
whose input ﬁle is listed in the Appendix.

This example is illustrated in Figure 1. In 1(a) the upper body is moving downwards at uniform
initial velocity towards the lower body, which is blocked at its base. Both bodies are endowed with
(0-level or parent) pinballs on their elements located along the respective outer surfaces. These are
represented by small dots in the drawings. Both bodies use the same elastic material. In 1(b) the
distance between the two bodies has diminished so that the contact algorithm starts to reﬁne the
mesh. New (parent) pinballs are automatically inserted in the created descendent elements which are
potentially subjected to contact. The reﬁnement process continues in 1(c), when contact ﬁrst occurs.
In 1(d) mesh reﬁnement is “spread” over the bodies by the error indicator (based upon the curvature
of the velocity ﬁeld), which follows the propagating stress wave fronts generated by the contact.
In 1(e) stress waves have spread over the entire bodies and some reﬂections have also occurred, so
that rebound starts taking place. The picture in 1(f) shows the ﬁnal conﬁguration. Some elastic
waves are still present in the rebounding bodies, so the mesh is not completely unreﬁned yet.

(a)

(b)

(c)

(d)

(e)

(f)

Figure 1: Contact-driven adaptivity in test case BM MPI ADAP PINBALLS.

6

2.2 Adaptivity-driven contact

The second type of relationship between adaptivity and contact is the subject of the present develop-
ment. In this case, mesh reﬁnement and un-reﬁnement is decided by a mechanism independent from
contact. The scope is then to propagate the contact model (i.e. the pinballs) to the newly created
descendent elements.

2.2.1 Rules for pinballs with adaptivity

The following rule related to element reﬁnement in adaptivity-driven contact may be postulated.
Rule 1. When an element containing a (parent) pinball is reﬁned (split), its descendents must inherit
(parent) pinballs with characteristics suitably derived from those of their parent element’s pinball.

This rule is of course recursive, i.e. it applies (recursively) to any level of mesh reﬁnement. A rule

must also be provided to govern mesh unreﬁnement.
Rule 2. When an element containing (parent) pinballs is unreﬁned its descendent elements are
destroyed, so any (parent) pinballs associated with such descendents must be destroyed as well.

2.2.2 Implementation details of standard model

The implementation of pinballs in EPX is based upon two Fortran90 derived types located in module
M PINBALL. The ﬁrst derived type (PINBALL) describes a parent (0-level) pinball:

TYPE PINBALL ! "PARENT" PINBALL DEFINITION

INTEGER :: ELEMENT
REAL(8) :: RADIUS
REAL(8) :: CENTER(3)
INTEGER :: MAXLEV
INTEGER :: SET

INTEGER :: HARDNESS

REAL(8) :: DTPINB

LOGICAL :: IS_ACTIVE
REAL(8) :: ASN(4)

END TYPE PINBALL

! ELEMENT INDEX
! RADIUS OF THE PINBALL
! CENTER OF THE PINBALL
! MAXIMUM LEVEL OF DESCENDENT PINBALLS
! SET TO WHICH PINBALL BELONGS
! (<0 IF SELF-CONTACT ENABLED)
! ASSOCIATED "HARDNESS" (ONLY FOR FLAT
! CONTACT)
! LIMIT TIME STEP ON THIS PINBALL’S
! ELEMENT AS DICTATED BY PCONTACTS
! (0 IF NONE)
! ACTIVE PINBALL OR NOT
! ASN OF THE PINBALL:
! (1)
!
! (2:) = COMPONENTS OF THE NORMALIZED
!
!

= LENGTH OF THE ASN BEFORE
NORMALIZATION (>= 0.0)

ASN (IDIM VALUES) OF LENGTH 1.0
(IF ASN(1)>0) OR 0.0 (IF ASN(1)=0)

The second derived type (DESCENDENT PINBALL) describes a descendent (higher-level) pinball:

TYPE DESCENDENT_PINBALL ! "DESCENDENT" PINBALL DEFINITION

! INDEX OF ANCESTOR (0-LEVEL) PINBALL
! LEVEL OF THIS PINBALL (>= 0)

INTEGER :: ANCESTOR
INTEGER :: LEVEL
REAL(8), POINTER :: XYZ(:,:) ! COORDS OF "NODES" OF PINBALL
REAL(8) :: RADIUS
REAL(8) :: CENTER(3)
INTEGER, POINTER :: IFACE(:) ! FACE INDEXES

! RADIUS OF THE PINBALL
! CENTER OF THE PINBALL

FOR CONTINUUM ELEMENTS:

!
! N>0=EXTERNAL, ON FACE N OF PARENT
! M<0=INTERNAL, SEES PAR. NEIGHBOUR M
0=INTERNAL (FROM CUT OF PARENT)
!
!
FOR BEAM/SHELL ELEMENTS:
! SPECIAL CONVENTION (SEE REPORT)

REAL(8) :: ASN(4)

= LENGTH OF THE ASN BEFORE

! ASN OF THE DESCENDENT PINBALL:
! (1)
!
NORMALIZATION (ALWAYS > 0.0)
! (2:) = COMPONENTS OF THE NORMALIZED
!

ASN (IDIM VALUES) OF LENGTH 1.0

END TYPE DESCENDENT_PINBALL

Module M PINBALLS DATA contains many additional data, among which the most notable are:

7

INTEGER :: N_PINBALLS ! TOTAL NUMBER OF PARENT (0-LEVEL) PINBALLS
TYPE(PINBALL), POINTER :: PINBALLS(:) ! ARRAY OF PARENT PINBALLS

The total number of parent pinballs (N PINBALLS) is static (constant) in EPX and is automatically
determined upon reading of the PINB directive in the EPX input ﬁle. The list of parent pinballs
(array PINBALLS) is built automatically immediately after, before starting the transient calculation.
No dimensioning concerning pinballs is necessary. The list of parent pinballs is never updated during
a calculation.

If a hierarchic pinball method is selected by the user (either directly by keywords MLEV or DMIN in
the input ﬁle, or indirectly by associating pinballs with shell elements), then descendent pinballs are
generated in order to increase the resolution and accuracy of contact detection. Descendent pinballs
are automatically and recursively created as long as contact (penetration) between (lower-level) pin-
balls is detected, and this up to the highest prescribed level. Only the contacts associated with the
descendent pinballs belonging to the highest speciﬁed level are retained. The information about one
such contact is stored in a derived type PCONTACT, which is deﬁned in module M PCONTACT:

TYPE PCONTACT

INTEGER :: PA, PB
REAL(8) :: NAB(3)

! INDEXES OF THE TWO (PARENT) PINBALLS
! UNIT NORMAL FROM A TO B
! "JOINS CENTERS"
! "MEAN" NORMAL
! "COMMON" NORMAL
! "ASN" BUILT NORMAL IF PINBALL_FNOR = 3

IF PINBALL_FNOR = 0,
IF PINBALL_FNOR = 1,
IF PINBALL_FNOR = 2,

REAL(8), POINTER :: SHA(:), SHB(:)

! SHAPE FUNCTIONS OF ELEMENT A AND B AT
! INTERACTION POINTS A’ AND B’

REAL(8) :: CSIA(3), CSIB(3) ! NORMALIZED COORS OF CONTACT POINTS

TYPE(DESCENDENT_PINBALL) :: DPI, DPJ ! DESCENDENT PINBALLS IN

! WITH RESPECT TO PARENT ELEMENTS

! CONTACT (WITH LEVEL=0 IF PARENT)
! THESE ARE COPIES (NOT POINTERS)

LOGICAL :: HAS_COMMON_NORMAL ! IS ASSOCIATED NORMAL "COMMON"?
INTEGER :: NODE1, NODE2 ! NODES OF THE CONTACT (EACH MAY BE 0)

--> NN CONSTRAINT
0 --> PP CONSTRAINT
0 OR

! N1 N2
! 0
! N1
! 0 N2 --> NP CONSTRAINT

INTEGER :: ELEM1, ELEM2 ! ELEMENTS OF THE CONTACT (EACH MAY BE 0)

0 --> NN CONSTRAINT
--> PP CONSTRAINT

! 0
! E1 E2
! 0 E2 OR
! E1
! GENERIC FLAG FOR VARIOUS OPERATIONS
! PENETRATION (ALONG NAB) IF USEFUL
! PENETRATION RATE (ALONG NAB) IF USEFUL

0 --> NP CONSTRAINT

LOGICAL :: FLAG
REAL(8) :: PENETR
REAL(8) :: PDOT
INTEGER :: TYPEI, TYPEJ ! TYPE OF CONTACTING (SUB-)PINBALL:

! 0 = ELEMENT (PARENT) PINBALL
! 1 = VERTEX SUB-PINBALL
! 2 = CORNER SUB-PINBALL (3D ONLY)
! 3 = FACE SUB-PINBALL

INTEGER :: NODEI(5), NODEJ(5) ! N. OF CONTACTING SUB-PINBALL NODES,

! THEN LIST OF THESE NODES (GLOBAL INDEXES):
! 1 NODE FOR A VERTEX SUB-PINBALL
! 2 NODES FOR A CORNER SUB-PINBALL (3D ONLY)
! 2, 3 OR 4 NODES FOR A FACE SUB-PINBALL

END TYPE PCONTACT

The contacts found in the current time step of the calculation are stored in PCONTACTS, a doubly-

linked list of derived types PCONTACT, which is deﬁned in module M PINBALLS DATA:

TYPE(BILINKED_LIST_PCONTACT) :: PCONTACTS

The linked data structure is necessary (as opposed to an array, for example) because the number

of potential contacts is unknown and hardly predictable.

For the scope of the current development, it is important to note that the descendent pinballs (and
the list of pinball contacts) are totally dynamic. They are automatically created at the beginning of
each time step and completely destroyed at the end of the step after the contact forces have been

8

computed. Also, no list of descendent pinballs is ever built. Only the parent pinballs and their
list (array PINBALLS) are kept throughout the calculation (and saved/restored in case of calculation
restart).

2.2.3 Strategy for the adaptive model

To cope with adaptivity, the following modiﬁcations are foreseen in the data structure.

First, some dimensioning related to pinballs is added in the directive related to adaptivity dimen-

sions DIME ADAP. The new syntax is:

DIME ... ADAP ... NPIN npin ... ENDA ... TERM

where npin is the (maximum) number of parent pinballs that will be possibly created during the
adaptive mesh reﬁnement process. This quantity is stored in a new variable N PINBALLS EXT, i.e.
the (maximum) number of (parent) pinballs in the “extension” zone, which is added to the module
M PINBALLS DATA. In the same module, the former variable N PINBALLS is renamed N PINBALLS -
BASE, i.e. the number of (parent) pinballs contained in the base mesh. Then, the total number of
(parent) pinballs N PINBALLS is re-deﬁned as the sum of N PINBALLS BASE and N PINBALLS EXT. A
list of parent pinballs is created containing ﬁrst all the N PINBALLS BASE parent pinballs and then
the N PINBALLS EXT pinballs in the extension zone. Initially, the extension pinballs are all “empty”:
their associated element ELEMENT is set to 0 and their activity ﬂag IS ACTIVE is set to .FALSE.. To
summarize:

INTEGER :: N_PINBALLS_BASE ! TOTAL NUMBER OF BASE PARENT (0-LEVEL) PINBALLS
INTEGER :: N_PINBALLS_EXT ! TOTAL NUMBER OF EXTENSION PARENT (0-LEVEL) PINBALLS
INTEGER :: N_PINBALLS ! TOTAL NUMBER OF PARENT (0-LEVEL) PINBALLS

TYPE(PINBALL), POINTER :: PINBALLS(:) ! ARRAY OF PARENT PINBALLS

! (= N_PINBALLS_BASE + N_PINBALLS_EXT)

The pinballs in the extension zone get used (in ascending order) as the mesh reﬁnement proceeds.
In module M ADAPTIVITY TREE a new subroutine GET FREE PINB ADAP is added (modelled
after the similar routine GET FREE ELEM ADAP used for elements) which returns the index of the
ﬁrst “free” (i.e. not used) pinball in the extension zone (or 0 if the extension zone is exhausted). When
invoked, the routine updates the index of the ﬁrst unused extension pinball FIRST FREE PINB ADAP
(added in M ADAPTIVITY DATA) by searching forward along the PINBALLS array. Further variables
FIRST PINB ADAP (simply equal to N PINBALLS BASE+1) and MAX USED PINB ADAP (the maximum pin-
ball index ever used in the calculation so far, which can be used after a calculation has been completed
in order to set the pinballs-related dimensioning npin to the minimum admissible value) are also added
to the module M ADAPTIVITY DATA:

INTEGER :: FIRST_FREE_PINB_ADAP ! FIRST FREE PINBALL IN THE EXTENSION ZONE
INTEGER :: FIRST_PINB_ADAP ! FIRST PINBALL IN THE EXTENSION ZONE (=N_PINBALLS_BASE+1)
INTEGER :: MAX_USED_PINB_ADAP ! MAX INDEX OF PINBALL USED SO FAR

2.2.4 Pinballs activation algorithm

The activation status of each (parent) pinball (IS ACIVE ﬂag in the derived type PINBALL) determines
whether or not the pinball is a candidate for contact (interpenetration) checks with other pinballs at
each given moment of the computation.

This status may change during the course of the computation. For example, an active pinball
may become inactive when the associated element fails and is eroded. Conversely, an inactive pinball,
embedded within the body of a continuum and (initially) not on its surface may become active when,
due to element erosion, the associated element ﬁnds itself on the (current) surface of the body. The
rules for pinball activation are stated next.

During the initialization phase, i.e. right after reading the PINB directive(s):

(cid:136) All (parent) pinballs associated with ﬂying debris (particle) elements (DEBR) which are initially
inactive, are ﬂagged as inactive. Recall that in EPX’s ﬂying debris model, inactive debris

9

particles are embedded in the elements which are candidate for failure. As one such element
fails and is eroded, the debris particles are activated and provide an approximated representation
of the structural (micro) fragments. Pinballs may be attached to such fragments so that their
impact on the surrounding structures is modelled.

(cid:136) All other (parent) “base” pinballs are ﬂagged as active. Base pinballs are those associated
with base elements in an adaptive computation (or simply with all elements in a non-adaptive
computation)

(cid:136) Any (parent) “extension” pinballs in a mesh adaptive calculation are ﬂagged as inactive.

Then, at each time step of the calculation (including step 0, i.e. at the initial time), a routine
UPDATE PINBALLS ACTIVATION (formerly named ACTIVATE PINBALLS) is invoked in order
to update the status of each (parent) pinball, and this before computing pinball interpenetrations and
contact forces. The algorithm for parent pinball status updating is as follows:

1. Loop over all (parent) pinballs. Let p be the current pinball and e the associated element.

2. If e = 0, then p (necessarily in the extension zone) is currently unused, so it must be inactive.

We check that p is indeed inactive, for consistency, then move on to the next pinball.

3. Else e > 0. If the case is adaptive, we check the adaptivity status of element e. If e has children
(i.e. it is currently inactive in adaptivity), then p must be inactive as well (pinball deactivation
should occur as part of the element adaptive splitting process). We check that p is indeed
inactive, for consistency, then move on to the next pinball.

4. Else e > 0 and e has no children. We check the erosion status of element e. If e is currently
eroded, then p must be inactive as well (pinball deactivation should occur as part of the element
erosion process). We check that p is indeed inactive, for consistency, then move on to the next
pinball.

5. Else e is currently active (in case of adaptivity) and is currently not eroded. We inspect the

type T of element e.

(cid:136) If (T = 140) then e is a debris (DEBR) element. If the debris element is currently active, the
associated pinball p must also be active, else p must be inactive. Pinball activation must
have been done as part of the debris activation process. We check that the status of p is
indeed the expected one, for consistency, then move on to the next pinball.

(cid:136) Else if (T = 79) then e is a ﬂuid SPH particle (BILL) element. If there is an explosive
JWLS material in the model and e has not yet been reached by the detonation front (this
is indicated by the element-based array FAILURE LEVEL), then p is ﬂagged as inactive.
Else, p is ﬂagged as active. We move on to the next pinball.

(cid:136) Else if T is such that e is a “continuum” element (not a “strucural” one, such as a shell,
plate, beam or bar element), then we inspect the element’s faces: if at least one face is free
(see deﬁnition below), e is on the current external surface of the body and p is ﬂagged as
active, else e is currently internal to the body and p is ﬂagged as inactive. We move on to
the next pinball.

(cid:136) Else T is such that e is not a “continuum” element, despite being a solid element (in fact,
it would not make sense to associate pinballs with ﬂuid elements, except in the special
case of SPH ﬂuid particles already considered above). For example, e may be a structural
element (shell, plate, beam, bar) or a material point (e.g. a PMAT). For these elements, an
associated pinball is always active (since, unlike for continuum, such elements are always
“on the surface” of the body) as long as the element itself is active, i.e. the element is not
eroded (which must be the case here, due to the above checks) and, in case of adaptivity,
the element has no children. For these elements we let the status of p unchanged, after

10

checking it for consistency: if the model is adaptive and e has children, then e is inactive
and p must be inactive as well (this must have been set as part of the element splitting
procedure), else e is active and p must be active as well.

6. If (parent) pinballs are not exhausted, loop on to the next pinball, else exit.

Note that this algorithm takes into account two diﬀerent eﬀects of element erosion on pinball
contact. The ﬁrst (direct) eﬀect is at point 3 of the algorithm for an eroded element itself. The
second (indirect) eﬀect is at point 5 of the algorithm, when it deals with continuum elements (third
sub-case). This accounts for the eﬀect that an element’s erosion has on its neighboring elements,
which become located on the (current) external surface of the body and therefore become candidates
for contact.

The above algorithm uses the notion of free face for a continuum element. In 2D, faces are 2-node
segments while in 3D faces are either 3-node triangles or 4-node quadrilaterals. The deﬁnition is as
follows (we distinguish between a non-adaptive and an adaptive case for simplicity).
In a non-adaptive case:

1. The face f of a continuum element e is not free if e has a neighbor element ν of continuum (not

CLxx) type across f , and ν is not eroded.

2. Otherwise, the face is free.

In an adaptive case:

1. Let f be the face of a continuum element e. Let ν be the neighbor (if any) of e across f and
let π be the pseudo-neighbor, or p-neighbor for brevity, (if any) of e across f . In adaptivity
the p-neighbor is the currently active (no children) lower-level (bigger) element located across
an element’s face, and results from the fact that the current element has been produced by
a localized mesh reﬁnement. Recall that: a) neighbor and p-neighbor are mutually exclusive,
i.e. it may not be ν > 0 and π > 0 at the same time; and b) a p-neighbor has no children by
deﬁnition.

2. If (ν = 0) and (π = 0), see Figure 2(a), then f is free.

3. Else if (ν = 0) and (π > 0), see Figure 2(b), then:

(cid:136) If π is eroded, then f is free.
(cid:136) Otherwise f is not free.

4. Otherwise (ν > 0) and (π = 0), see Figure 2(c) and 2(d). Then:

(cid:136) If ν has no children (is a leaf in the adaptivity tree), see Figure 2(c), then:

– If ν is eroded, then f is free.
– Otherwise f is not free.

(cid:136) Else ν has children (is a branch in the adaptivity tree), see Figure 2(d). We search all the
currently active descendents µi of ν (at any level of the adaptivity tree). A descendent
is currently active if it is a leaf, i.e.
if it has no children of its own. In the example of
Figure 2(d), these are µ1, µ2 and µ3. Then:

– If all µi are eroded, then f is free.
– Otherwise f is not free.

11

(a) ν = 0, π = 0

(b) ν = 0, π > 0

(c) ν > 0, π = 0, ν is a leaf

(d) ν > 0, π = 0, ν is a branch

Figure 2: Free faces of continuum elements in adaptivity.

2.3 Contact-driven adaptivity (new model)

In this Section we propose a new model of contact-driven mesh adaptivity (alternative to the point
cloud-based model shorty mentioned in a previous Section). For the moment, the model is operational
only in the sequential (not parallel) version of the code. The proposed algorithm is roughly similar
to the algorithm for FSI-driven adaptivity detailed in reference [32].

In adaptive calculations with contact-impact, mesh reﬁnement and un-reﬁnement should occur
in the vicinity of contacting surfaces (in order to enhance the resolution of contact detection and
the accuracy of contact force calculations), in addition (or in alternative) to the wavefronts which are
tracked via WAVE or INDI directives. Since this (contact-based) type of mesh adaptation is independent
from WAVE or INDI directives, but is related to the chosen contact model, it seems preferable to embed
the corresponding input directive within the contact directives themselves (e.g. PINB or GPIN).

In principle, the constraints on mesh size resulting from contact should have to be merged with any
constraints due to WAVE, INDI or any other (still to be developed) adaptivity directives. The minimum
local mesh size resulting from all such constraints would then have to be retained. However, at the
moment the implementation of WAVE and INDI are such that these models may not be combined in the
same calculation. For simplicity, also the present adaptive contact model is initially developed and
tested as an independent model, incompatible with WAVE or INDI (however, it should be compatible
with threshold-driven adaptivity THRS). Once all these models are well tested separately, they will
have to be re-implemented in a compatible way by developing a suitable combination strategy.

2.3.1 New syntax of the PINB directive

The PINB contact directive has the following syntax (see [1] for details):

PINB < PENA <SFAC sfac> >

( $ BODY ; SELF $

< $ DMIN dmin ; MLEV mlev $ >
< DIAM diam >
< HARD hard >
/LECT/ )

< EXCL (PAIR n1 n2) >
< ADAP LMAX lmax <SCAL scal> <SCAS scas> <NOUN> >

The new ADAP sub-directive (in red above) introduces adaptivity-related data for the pinball-based
contact model. At the moment, the only parameters that can be given are: LMAX (denoted Lmax in the
following), the desired maximum mesh reﬁnement level near the contacting surfaces; SCAL (denoted φ
or φn), an optional scaling factor applied to non self-contacting bodies and used to govern the extent
of the adapted zone; and SCAS (denoted φs), a similar factor for self-contacting bodies. The scaling
factors are discussed in detail in one of the following Sections. By default φn = 1.0 and φs = 0.55. The

12

optional keyword NOUN can be speciﬁed in order to disable mesh unreﬁnement due to contact-driven
adaptivity.

2.3.2 Choosing the maximum adaptive reﬁnement level

In analogy with FSI-driven adaptivity, the practical convention is adopted that the user always spec-
iﬁes the PINB data referred to the base mesh, also in the case of an adaptive calculation. Then, if
contact-driven adaptivity is needed, the ADAP keyword is added to the PINB directive and the LMAX
keyword is used to introduce the desired maximum reﬁnement level (lmax) of the mesh near the con-
tacting surfaces. In this way, various levels of contact-induced reﬁnement can be tried out by changing
only the lmax value.

2.3.3 Adapting the mesh

A conceptual example of contact-driven mesh reﬁnement is presented in Figure 3.

(a) Base mesh (t = t0)

(b) Reﬁnement check (t = t0)

(c) First reﬁnement (t = t0)

(d) Reﬁnement check (t = t0)

(e) Reﬁnement check (t = t1)

(f) Further reﬁnement (t = t1))

(g) Contacts detected (t = t2)

Figure 3: Example of contact-driven mesh reﬁnement.

Consider two solid bodies moving towards each other, as indicated by the arrows in Figure 3(a).
The bodies are meshed rather coarsely. In order to model the contact, (parent) pinballs are embedded
in each body. Assume (for simplicity) that no element failure (nor erosion) has to be modelled, so
that it is suﬃcient to embed pinballs only in the superﬁcial elements of the two bodies, as shown by
the black circles in 3(a).

13

Reﬁning the mesh near the contacting surfaces of the two bodies brings various beneﬁts. First,
the accuracy (resolution) of contact detection is improved. Since the pinballs extend slightly outside
the corresponding elements, contact has a tendency to be detected “too early”, when the real surfaces
aren’t touching each other yet. Therefore, using smaller pinballs reduces this type of inaccuracy.
Second, after contact has started the contact surface may deform in a complex way, so that using
smaller elements increases the accuracy of the solution.

However, it is also clear that in general there is no need to have too ﬁne a mesh in regions of the
bodies far from the contact zones, unless one wants to follow some sharp gradients travelling inside
the bodies themselves. So it is desirable that, when contact terminates, i.e. when the two bodies start
rebounding, the local mesh be progressively unreﬁned so as to speed up the calculation.

One essential aspect of this type of reﬁnement is that the mesh must be reﬁned before contact
ﬁrst starts, i.e. when there is still a certain gap between the bodies. Reﬁning when contact has been
already detected (with a coarse mesh) would be “too late” and would spoil the accuracy of the model.
The reﬁnement is therefore based on the distance between the two candidate contacting surfaces.
As shown in Figure 3(b), one simple way to check for reﬁnement is to use some fake “magniﬁed”
pinballs, shown as red circles in 3(b), and to check the interpenetrations between them as if they were
the real pinballs. To each parent (0-level) pinball of the base mesh (black dotted circle) we associate a
magniﬁed pinball (red circle) with the same center. By default, a magniﬁcation factor of 2.0 is taken
(since the adaptive mesh reﬁnement and un-reﬁnement algorithm is based on powers of two), but
the value may be changed by means of the SCAL keyword (φ coeﬃcient). Then, interpenetrations are
checked and the elements associated with inter-penetrating (red) pinballs are reﬁned (once). In doing
so, the algorithm presented in the previous Sections ensures that the created children elements will
also be endowed with (smaller) pinballs, as shown in 3(c). For simplicity of drawing, and assuming
that no element erosion is activated, only the “external” children elements would actually receive
pinballs (a strategy for ensuring this behaviour must be devised).

Next, a further check takes place, now involving (only) pinballs of the next level (level 1), as shown
in Figure 3(d). Again, each one of these pinballs is replaced by a magniﬁed fake pinball (now in green).
No interpenetration is detected, and so no further reﬁnement takes place at this step. A fortiori, no
contact is detected between the real (not magniﬁed) pinballs at this step, and the calculation goes on.
After some time steps (t = t1), the gap between the two bodies has narrowed and some inter-
penetrations between the (green) fake (magniﬁed) pinballs is detected, as shown in 3(e). Then, the
corresponding elements are (futher) reﬁned, see 3(f). Let us assume for simplicity that, with this
second reﬁnement, the maximum prescribed reﬁnement level has been reached, so that no further
reﬁnement can take place.

In the conﬁguration shown in 3(f) no contacts between real pinballs are detected, so the calculation
goes on. Finally, after some more time (t = t2) the gap between the two bodies has become so small
that some real contacts are detected, as shown in Figure 3(g).

At this moment the pinballs have become so small that the inaccuracy of penetration detection is
negligible. Furthermore, the ﬁne discretization (small elements) along the contacting surfaces ensures
high accuracy of contact force calculations.

The actual reﬁnement (and unreﬁnement) procedures, inspired by the simple example considered
above, will now be detailed. In the following, the (parent) pinball associated with an element i is
indicated by pi, while the corresponding magniﬁed pinball is indicated by πi (where πi is φ times
bigger than pi).

Two loops are performed at the beginning of each time step to adapt the mesh parts potentially
subjected to contact. In the ﬁrst loop, “coarse” contact-candidate elements which now ﬁnd themselves
“near” some other contact-candidate elements are (progressively) reﬁned, while in the second loop
“ﬁne” contact-candidate elements which now ﬁnd themselves “far” from any other contact-candidate
elements are (progressively) unreﬁned.

Each loop proceeds by examining one level at a time. The reﬁnement loop does this in increasing
level order (from level 0 to level Lmax − 1), while the unreﬁnement loop does this in decreasing level
order (from level Lmax − 1 to level 0). Note that elements at level Lmax are never examined directly.
In fact, they need no reﬁnement since they are already at the maximum reﬁnement level. Nor are

14

they (directly) examined during unreﬁnement, because the unreﬁnement process is nominally applied
to the parent element and not to its children.

2.3.4 Mesh reﬁnement loop

The following reﬁnement criterion is adopted. An active element a at level L is reﬁned (once) if it
has an associated (parent) pinball pa which penetrates another pinball pb not belonging the same body
(unless self-contact has been prescribed), associated with another active element b of level M ≥ L.
Recall that active elements in adaptivity are those which are currently used but have no children, i.e.
they are leaves in the elements tree.

Therefore, starting at level 0, all active elements at level 0 (i.e. all active base elements) which
satisfy the reﬁnement criterion are reﬁned to level 1. Next, we examine active elements at level 1. If
such an element satisﬁes the reﬁnement criterion, then it is reﬁned to level 2. And so on, until we
examine elements in level Lmax − 1. The proposed algorithm (provisional) is shown in Algorithm 1.

Algorithm 1 Provisional algorithm for contact-driven mesh reﬁnement.

1. Initialize the level counter: L = −1.
2. Increment the level counter: L = L + 1.
3. Loop over the elements i.
4. If element i has no (parent) pinball pi, cycle.
5. If element i is unused, cycle.
6. If element i has a level Li (cid:54)= L, cycle.
7. If element i is inactive, i.e. if it has children, cycle.
8. If the magniﬁed pinball πi of element i does not penetrate the magniﬁed pinball πj of any other

element j such that:

(cid:136) j has a (parent) pinball pj,
(cid:136) j is used,
(cid:136) j has level Lj ≥ L,
(cid:136) j is active (i.e., it has no children),

then cycle.

9. Reﬁne element i.

10. End loop over the elements.
11. If L < Lmax − 1, GO TO 2.
12. End of reﬁnement.

It is clear that immediate unreﬁnement of an element following a reﬁnement of the same element
performed during the same time step (so-called ping-pong eﬀects) should be avoided. To this end,
we state the following rule, which is quite general and should be satisﬁed by any mesh adaptation
algorithm.
Rule (ping-pong). An unreﬁnement algorithm should not immediately undo what a reﬁnement
algorithm has just done.

2.3.5 Mesh unreﬁnement loop

The following unreﬁnement criterion is adopted. An inactive element i at level L is unreﬁned
(once) if all its children are active (i.e. they have no children of their own) and i has an associated
(parent) pinball pi which does not penetrate any other pinball pj not belonging to the same body
(unless self-contact has been prescribed), associated with another active element j of level M ≥ L.

Therefore, starting at level Lmax − 1, all inactive elements at this level satisfying the unreﬁnement
criterion are unreﬁned once to level Lmax − 2, and in doing so they become active while their children
become unused. At this particular level there would be no need to check that the children are active,
since they are at the maximum level Lmax. Next, we examine inactive elements at level Lmax − 2. If
such an element has all active children and satisﬁes the unreﬁnement criterion, then it is unreﬁned to
level Lmax − 3. And so on, until we examine elements at level 0, i.e. the base elements. The proposed
algorithm (provisional) is shown in Algorithm 2.

15

Algorithm 2 Provisional algorithm for contact-driven mesh unreﬁnement.

1. Initialize the level counter: L = Lmax.
2. Decrement the level counter: L = L − 1.
3. Loop over the elements i.
4. If element i has no (parent) pinball pi, cycle.
5. If element i is unused, cycle.
6. If element i has a level Li (cid:54)= L, cycle.
7. If element i is active, i.e. if it has no children, cycle.
8. If any of the children c of element i is inactive, i.e. if c has its own children, cycle.
9. If the magniﬁed pinball πi of element i penetrates the magniﬁed pinball πj of at least another

element j such that:

(cid:136) j has a (parent) pinball pj,
(cid:136) j is used,
(cid:136) j has level Lj ≥ L,
(cid:136) j is active (i.e., it has no children),

then cycle.

10. Unreﬁne element i.
11. End loop over the elements.
12. If L > 0, GO TO 2.
13. End of unreﬁnement.

2.3.6 Dealing with pinball size options and with numbering indepence

The provisional versions of the reﬁnement and unreﬁnement algorithms sketched in the previous
Section will now be ﬁnalized. First, the algorithms must be rendered compatible with the various
options existing in the code, which may aﬀect the size of the pinballs used to detect the contact.
Second, one must ensure that the algorithms are numbering-independent, i.e. that results do not
depend upon the particular numbering of the elements (and thus of the pinballs) in the mesh.

In EPX various input options can be used to control the size of pinballs used to detect the contact.
For a parent (0-level) pinball, the center is always computed as the centroid of the element nodes, i.e.
as the arithmetic average of the element’s nodal coordinates.

By default (no option speciﬁed) or by specifying the NEQV option (OPTI PINS NEQV), the parent
pinball diameter is computed so as to exactly contain all the nodes of the element (encompassing
pinball), as shown by the black circle in Figure 4(a). Note that in this Figure we consider a regular
(square) element for simplicity, but the rule holds for any shape of the element. As the element is
reﬁned, its children have size one half of the parent, see the green square for example. The same
happens to children pinballs (green circle).

By specifyng the EQVL, EQVD or EQVF options, the pinball size is computed such that the pinball’s
volume equals the volume of the element (equivalent pinball), thus resulting in a smaller pinball, see
the black solid circle in Figure 4(b), than the default (dotted circle). The diﬀerence between EQVL,
EQVD and EQVF is that the ﬁrst one applies to parent (0-level) pinballs only, the second one applies
to descendent pinballs (at any level) which are generated if a hierarchic pinball method is activated,
and the third one applies ony to descendents at the ﬁnal (i.e. highest) level of the hierarchy (see [1]
for details).

The reason for using an equivalent as opposed to an encompassing pinball is that in most cases
the former is a better approximation of the real element shape, thus leading to slightly more accurate
contact detection. Note in fact that equivalent pinballs “protrude” outside the element boundaries less
than encompassing ones. Therefore, contact detection occurs at a smaller (spurious) gap between real
elements. However, this introduces the risk of overlooking some contacts near the element corners,
which are not contained within the pinball as shown in 4(b).

Although the default in EPX is to use encompassing pinballs, according to the users’ manual in
most applications it is preferable to use equivalent pinballs at the highest level, that is option EQVF if
a hierarchic pinball method is chosen, or option EQVL if a basic pinball method is chosen.

16

(a) Encomapssing pinball

(b) Equivalent pinball

Figure 4: Options aﬀecting the size (volume) of pinballs.

Returning now to contact-driven adaptivity algorithms, one sees that the use of encompassing fake
(magniﬁed) pinballs for the detection of elements (and pinballs) to be reﬁned is probably a better
In fact, note (Figure 4(a)) that in this case all children pinballs
choice than equivalent pinballs.
(green circles) lie inside the parent pinball (black circle), and this at any level of the hierarchy. This
ensures “safer” (more conservative) detection of the mesh zones (elements and associated pinballs) to
be reﬁned in view of possible contact.

In principle, the above property could be exploited in order to simplify the algorithms. In fact,
it would allow to restrict the number of pj pinballs to be checked for penetration of the pi pinball at
step 8 of the reﬁnement algorithm and at step 9 of the unreﬁnement algorihm. The condition Lj ≥ Li
could be replaced by Lj = Li (i.e., considering only pinballs at the same level), but provided one
would check inactive pinballs (inactive elements) in addition to active ones, i.e. provided one at the
same time would remove the condition “j is active”. However, since the internal status of an inactive
pinball cannot be guaranteed to be consistent (such pinballs are not updated at every step), it is
preferred to leave this part of the algorithm as in the provisional version.

For the sake of simplicity, we retain that the fake pinballs to be used for contact-driven adaptivity
be constructed by magnifying the corresponding real (parent) pinballs, whatever their type (encom-
passing or equivalent). Note incidentally that, even in the case of a hierarchic pinball method, only
parent pinballs, at each level of adaptive mesh reﬁnement, are used to construct the fake ones. Thus,
the chosen type of parent pinball will be retained also for the fake pinballs.

If necessary, any negative eﬀect of using equivalent (i.e., smaller) parent pinballs and thus equiva-
lent fake pinballs can be easily compensated by choosing a scaling factor (SCAL keyword of the PINB
directive, see above) greater than 1.0 (the default value).

Next, we examine the independence of the algorithmic results from the actual numbering order
chosen for the elements (and the pinballs) in the mesh. This property is crucial for an industrial use
of the code and must be satisﬁed.

The provisional algorithms sketched above are directly derived from the similar ones of refer-
ence [32], conceived for FSI-driven adaptivity. However, while FSI algorithms deal with one element
at a time, here we deal with couples of elements because contact (or, more precisely, interpenetration)
checks are symmetric: if pinball pi penetrates pinball pj, then pj penetrates pi (and reciprocally). This
implies that at point 9 of the reﬁnement algorithm one has to reﬁne element (pinball) j in addition
to element i.

Furthermore, a pinball pi can penetrate more than one other pinball at the same time (say pj1,
pj2 etc.). Therefore, in order to be sure to achieve mesh-numbering independence it seems necessary
to check pi for interpenetration with every other pj satisfying the conditions stated above, before
possibly reﬁning pi and all the penetrated pjk. Hence, the algorithms must be modiﬁed so that any
reﬁnement or unreﬁnement operations are performed at the end of each pass over a level L, rather than
immediately as in the provisional versions. The complete versions of the algorithms (now including
also consideration of element erosion and contact “bodies”, also in the case of self-contact, but not
yet optimized) are given below in Algorithms 3 and 4. By convention, if an element i belongs to a
self-contacting body Bi, its body index is set to −Bi.

17

Algorithm 3 Non-optimized algorithm for contact-driven mesh reﬁnement.

1. Initialize the level counter: L = −1.
2. Increment the level counter: L = L + 1.
3. Wipe out the list of elements to be reﬁned.
4. Loop over the (parent) pinballs pi. Let i be the element and Bi be the body index associated

with pi.
(a) If element i has been eroded, cycle on i.
(b) If element i is unused, cycle on i.
(c) If element i has a level Li (cid:54)= L, cycle on i.
(d) If element i is inactive, i.e. if it has children, cycle on i.
(e) Loop over the (parent) pinballs pj with pj > pi. Let j be the element and Bj be the body

index associated with pj.

i. If element j has been eroded, cycle on j.
ii. If element j is already in the list of elements to be reﬁned, cycle on j.
iii. If element j is unused, cycle on j.
iv. If element j has a level Lj < L, cycle on j.
v. If element j is inactive, i.e. if it has children, cycle on j.
vi. If pj belongs to the same body as pi (i.e. if Bj = Bi) and self-contact (SELF) has not

been activated on Bi (i.e., if Bi > 0), then cycle on j.

vii. If the magniﬁed pinball πi penetrates the magniﬁed pinball πj, then add both element
i and element j to the list of elements to be reﬁned and continue loop on j. Note
that element i might already be in the list.

(f) End loop over the elements j.

5. End loop over the elements i.
6. Reﬁne all the elements in the list.
7. If L < Lmax − 1, GO TO 2.
8. End of reﬁnement.

2.3.7 Optimized algorithms using fast search

The mesh-adaptation algorithms presented above in Algorithms 3 and 4 are not directly suitable for
use in large applications because they are not optimized. Therefore, such algorithms have not been
implemenetd in the code.

Fast search of contacting (magniﬁed) pinballs must be performed to achieve reasonable computing
times. Using a fast search algorithm as opposed to the trivial, brute-force strategy that would consist
in simply checking each pinball for penetration with any other pinball, has some implications in the
form of the algorithm itself.

The fast search strategy adopted is based upon a search by box procedure, see [40]. The space is
subdivided into hexagonal boxes (rectangular parallelepipeds) oriented along the global axes. Then,
a list of the items (i.e., the magniﬁed pinball centers) to be checked contained inside each box is built
up. Finally, the search for inter-penetration between couples of magniﬁed pinballs is performed by
neighboring boxes. That is, each magniﬁed pinball is checked for interpenetration not with all other
magniﬁed pinballs, but only with those contained either in the same box, or in a directly neighboring
box. For each box, there are (up to) 8 neighboring boxes in 2D, or 26 neighboring boxes in 3D. This
greatly reduces the number of interpenetration checks to be performed and so speeds up the search.
For optimum performance, the size of the boxes must be as small as possible, but not too small
so that some interpenetrations could be overlooked. The chosen size of the box is taken equal to
the maximum diameter of the magniﬁed pinballs to be checked. To achieve element reﬁnement, we
proceed as shown in Algorithm 5 (this is the version actually implemented in EPX).

In order to illustrate the optimized mesh unreﬁnement algorithm, we introduce ﬁrst the notion of

unreﬁnable pinball.
Deﬁnition. An unreﬁnable pinball pi is a (parent) pinball associated with an element i which could
be unreﬁned, i.e. which is currently used but inactive in the adaptivity tree, and whose children are

18

Algorithm 4 Non-optimized algorithm for contact-driven mesh unreﬁnement.

1. Initialize the level counter: L = Lmax.
2. Decrement the level counter: L = L − 1.
3. Wipe out the list of elements to be unreﬁned.
4. Loop over the (parent) pinballs pi. Let i be the element and Bi be the body index associated

with pi.
(a) If element i has been eroded, cycle on i.
(b) If element i is unused, cycle on i.
(c) If element i has a level Li (cid:54)= L, cycle on i.
(d) If element i is active, i.e. if it has no children, cycle on i.
(e) If any of the children c of element i is inactive, i.e. if c has its own children, cycle on i.
(f) Provisionally add element i to the list of elements to be unreﬁned.
(g) Loop over the (parent) pinballs pj with pj > pi. Let j be the element and Bj be the body

index associated with pj.

i. If element j has been eroded, cycle on j.
ii. If element j is already in the list of elements to be unreﬁned, cycle on j.
iii. If element j is unused, cycle on j.
iv. If element j has a level Lj < L, cycle on j.
v. If element j is inactive, i.e. if it has children, cycle on j.
vi. If pj belongs to the same body as pi (i.e. if Bj = Bi) and self-contact (SELF) has not

been activated on Bi (i.e., if Bi > 0), then cycle on j.

vii. If the magniﬁed pinball πi penetrates the magniﬁed pinball πj, then remove i from the

list of elements to be unreﬁned and exit loop on j.

(h) End loop over the elements j.

5. End loop over the elements i.
6. Unreﬁne all the elements in the list.
7. If L > 0, GO TO 2.
8. End of unreﬁnement.

all currently active.

Based upon this deﬁnition, and by directly exploiting the no ping-pong rule ﬁtsy introduced in a
previous Section, the unreﬁnement criterion can be reformulated as follows. An unreﬁnable pinball
pi associated with an element i at level L is unreﬁned (once) if, by pretending that i would be active
(i.e. with no children), pi would not be reﬁned by the previously deﬁned reﬁnement algorithm.

To achieve element unreﬁnement, we proceed as shown in Algorithm 6 (this is the version actually

implemented in EPX).

2.3.8 Treatment of self-contact

In case of self-contact, straightforward application of the algorithms detailed above with default values
of reﬁnement parameters often produces a completely reﬁned mesh. That is, the mesh of the contacting
body declared by the SELF keyword in the pinball directive is immediately and uniformly reﬁned to
the maximum chosen level LMAX.

This is illustrated in Figure 5. Consider a simple patch of (regular) quadrilateral elements
(square), declared as a self-contacting body (SELF) with adaptive reﬁnement up to MLEV 3 upon
contact:

LINK COUP SPLT NONE

PINB SELF MLEV 0 LECT square TERM

ADAP LMAX 3 SCAL 1.0

Then, if the patch contains only 2 × 2 elements like in 5(a) we obtain the expected result: at
time 0 no reﬁnement is performed. However, if we use a larger patch of, say, 3 × 3 elements, then an
unexpected behaviour appears. In 5(b) we see the base mesh for this case, i.e. without activating the

19

Algorithm 5 Optimized algorithm for contact-driven mesh reﬁnement.

1. Initialize the level counter: L = −1.
2. Increment the level counter: L = L + 1.
3. Wipe out the list R of pinballs to be reﬁned.
4. Prepare a list C of candidate magniﬁed pinballs for reﬁnement. These are all the (parent)
magniﬁed pinballs πi satisfying all following conditions (where i is the element to which πi is
associated):
(a) πi is currently active.
(b) i is not eroded.
(c) i is at a level Li of the adaptivity tree equal to or higher than L (Li ≥ L). Note that
this also ensures that i is used in the adaptivity, since unused elements in adaptivity have
Li = 0. (Note, however, that i could be inactive in adaptivity, hence we need the next
test.)

(d) i has no children, i.e. it is active (a leaf) in adaptivity.
The list is stored in the array ACTIVE PINBALLS. Note that further checks concerning the pinballs
body, also accounting for self-contact if necessary, are performed as part of the inter-penetration
calculations below, see Step 6(e) of this algorithm.

5. Build up the box-based fast search data structure for the candidate (magniﬁed) pinballs.
6. Execute the fast search algorithm. For each box:

(a) Prepare a list N of all magniﬁed pinballs πi from C contained (i.e. whose centroid lies)

either in the current box or in one of the direct neighbor boxes.
(b) Loop on all πI in the current box only (not in the neighbor ones).
(c) Loop on all πJ in the list N , such that J > I. (Note that here we use capital indexes to
indicate that I and J are the indexes of the pinballs and not the indexes of the associated
elements.)

(d) Let BI and BJ denote the bodies to which the two pinballs belong.
(e) If BI < 0 and BJ = BI (i.e. the two pinballs belong to the same self-contacting body), or
BI (cid:54)= BJ (i.e. the two pinballs belong to diﬀerent bodies), then check for penetration: if
penetration is detected, add both pinball pI and pinball pJ to the list R of pinballs to be
reﬁned (note that they could be already in the list).

7. Destroy the box-based fast search data structure for the candidate (magniﬁed) pinballs.
8. Reﬁne (once) all the elements i associated with a pinball pi in the list R, provided i is not yet

at the maximum reﬁnement level (i.e. if Li < Lmax).

9. If L < Lmax − 1, GO TO 2.
10. End of reﬁnement.

Algorithm 6 Optimized algorithm for contact-driven mesh unreﬁnement.

1. Initialize the level counter: L = Lmax.
2. Decrement the level counter: L = L − 1.
3. Wipe out the (fake) list R of pinballs to be reﬁned.
4. Build up a list U of unreﬁnable pinballs at level L.
5. Prepare a list C of candidate pinballs for (fake) reﬁnement exactly like in the reﬁnement loop

(ACTIVE PINBALLS). This corresponds to Step 4 of Algorithm 5

6. Add to this list all the unreﬁnable pinballs: C = C ∪ U . Note that these are guaranteed not to
be already on the list, since they are currently inactive. Sort the list C in ascending order (just
for clarity).

7. Search all pinballs to be reﬁned and put them in a (fake) list R. This corresponds to Steps 5–7

of Algorithm 5

8. Unreﬁne all the elements i associated with an unreﬁnable pinball pi which would not be reﬁned.

That is, pi is in the list U but it is not in the (fake) reﬁnement list R.

9. If L > 0, GO TO 2.
10. End of unreﬁnement.

20

PINB ... ADAP keyword. The picture in 5(c) shows what happens by activating adaptivity. The entire
mesh, with the notable exception of the central element, is immediately reﬁned to the maximum level.

(a) SELF01

(b) SELF02

(c) SELF03

Figure 5: Spurious mesh reﬁnement (chain reaction) in the self-contact case.

The reason for this apparently weird behaviour is explained in Figure 6. Consider for simplicity
a patch of three regular square elements A, B and C in 2D. The encompassing pinballs pA, pB and
pC are shown as black circles, while the corresponding magniﬁed pinballs πA, πB and πC are shown
as green circles. The default magniﬁcation factor µ0 = 2.0 has been assumed, i.e. the radius of the
green pinballs is twice the radius of the black pinballs.

One sees that the magniﬁed pinball πA penetrates both πB and πC. Now, the interpenetration
between πA and πB does not induce any reﬁnement, because the geometrical checking algorithm
considers as invalid (and therefore skips) the penetration between two pinballs belonging to elements
which share a common face, like in the case of A and B. However, the penetration between πA and
πC is valid, since elements A and C do not have any common face, so that both elements are reﬁned.
It is now clear why a row of just two elements is not spuriously reﬁned, as shown in Figure 5(a)
while in a row of three elements the outer elements are reﬁned, but not the central one, as shown
in Figure 5(c). With 4 or more elements in a row, a sort of chain rection is triggered, which causes
reﬁnement of all elements, and this up to the maximum allowed reﬁnement level.

Figure 6: Illustration of the chain reaction phenomenon in the self-contact case.

In order to avoid a chain reaction the only possibility seems to use a smaller value of the magniﬁ-
cation factor µ. In fact, any ad-hoc tests trying, for example, to establish whether elements A and C
are second-level contiguous (they are both contiguous to a common element B) would be extremely
expensive and, more importantly, would completely spoil the purpose of the self-contact algorithm. In
fact, elements A and B could eventually come into (self) contact, either due to extreme deformation
of the body or, perhaps more likely, due to failure and erosion of element B.

Note, incidentally, that activation of self contact is in principle necessary for any body which can
undergo severe failure and element erosion, if one wants to avoid non-physical inter-penetration of

21

the macroscopic fragments (i.e. patches of not yet eroded elements) produced by the element erosion
process.

The (upper) limit of the magniﬁcation factor µ can be easily computed in an ideal situation (regular
elements) such as that of Figure 6. Let h be the mesh size, i.e. the side of the square elements. Then,
the radius r of the encompassing pinballs is:

r =

√

2

h
2

=

h
√
2

The radius R of the magniﬁed pinballs is:

R = µ r

(1)

(2)

where µ is the magniﬁcation factor (µ = R/r by deﬁnition). The maximum value of R in order to
avoid the chain reaction is clearly given by the distance between the centres of two elements:

Therefore, one obtains for the maximum magniﬁcation factor:

Rmax = h

(3)

2
h
The values of the maximum magniﬁcation factor in other situations, such as when using equivalent
instead of encompassing pinballs, or in a regular 3D mesh of cubes, can be obtained similarly and are
summarized in Table 1.

Rmax
r

2 = 1.414

µmax =

= h

(4)

=

√

√

Case
2D continuum (squares)

3D continuum (cubes)

Encompassing pinballs Equivalent pinballs

√

2 = 1.414

2√
3

= 1.154

√
(cid:113) 4π

3

π = 1.772
3 = 1.611

Table 1: Maximum magniﬁcation factor µmax in 2D and 3D regular continuum meshes.

As shown in the Table, in all cases µmax is less than the value 2.0 which had been assumed so
far by default. Smaller values of µmax hold in 3D with respect to 2D. Also, the values of µmax for
encompassing pinballs are smaller than those for equivalent pinballs, as it could be expected. This
shows the interest of using equivalent pinballs whenever possible, especially in 3D calculations.

In order to avoid the chain reaction problem in practical applications, various alternative strategies

could be set up. For example:

a) Use the optional SCAL keyword (φ coeﬃcient) to scale down the default magniﬁed pinballs so

that the actual magniﬁcation factor falls below µmax.

b) Allow the user to override the (default) magniﬁcation factor (µ0 = 2.0) by means of a (new)

ad-hoc optional keyword.

c) Treat the problem internally by automatically using a smaller magniﬁcation factor than the
default for all pinballs which have the self-contact property enabled (i.e. whose body has a
negative index).

Each strategy has it own advantages and drawbacks. The ﬁrst one is also the simplest, but it
leaves responsibility entirely to the code user. However, this may not be a serious drawback, since in
any case it should be kept in mind that the above values of µmax are valid only in the ideal case of
regular continuum elements. If the elements are irregular or get distorted, or in case one uses other
element shapes (e.g. triangles, tehtrahedra) or other element classes (e.g. shells), the limiting value is
much harder (or impossible) to determine exactly, so in any case the user would have to choose it. If
too large a magniﬁcation factor is chosen, the mesh will be excessively reﬁned, possibly also leading
to a chain reaction.

22

According to strategy a), the value of the SCAL parameter (φ factor) to be chosen in order to avoid

chain reaction is given by:

where µ0 is the default magniﬁcation factor (µ0 = 2.0). The values of φmax for the various ideal cases
are shown in Table 2.

φmax =

µmax
µ0

(5)

Case
2D continuum (squares)
3D continuum (cubes)

Encompassing pinballs Equivalent pinballs

√
2
2 = 0.707
1√
= 0.577
3

√
π
2 = 0.886
3(cid:112) π
6 = 0.806

Table 2: Maximum scaling factor φmax for self-contact in 2D and 3D regular continuum meshes.

In order to check the above values, the test of Figure 5(b) is repeated by adding a “safe” value of

the φ coeﬃcient (e.g., φ = 0.880 in this particular case) by means of the SCAL keyword:

LINK COUP SPLT NONE

PINB SELF MLEV 0 LECT square TERM
ADAP LMAX 3 SCAL 0.880

This avoids the chain reaction, as shown in Figure 7(a). A value of φ = 0.890, instead, triggers

the reaction, see 7(b).

(a) SELF04, φ = 0.880

(b) SELF05, φ = 0.890

Figure 7: Eﬀects of the choice of the scaling factor φ in the self-contact case.

2.3.9 Choice of the scaling factor

By summarizing the above ﬁndings, one might state the following practical guidelines for the choice
of the scaling factor φ in contact-driven adaptivity models.

If the model has no self-contacting body (no PINB SELF is present), then the choice of the
scaling factor φ (SCAL keyword) is free. By default the code will use φ = φ0 = 1.0 which, combined
with the (default) pinball magniﬁcation factor µ0 = 2.0 produces magniﬁed pinballs twice the size
of real ones. The extent of the reﬁned zone can be adjusted by the user, if needed, by choosing a
value of φ greater than one (to enlarge the reﬁned zone) or smaller than one (to reduce it). Enlarging
the reﬁnement zone usually produces a more smoothly-graded reﬁned mesh, but it also increases the
number of elements to be computed.

If the model has at least one self-contacting body, then leaving the φ factor to its default
value of 1.0 will most probably induce a uniform reﬁnement (chain reaction) in the self-contacting
body (or bodies), although not in ordinary bodies. This is usually not acceptable. The user may
avoid chain reaction by prescribing a scaling factor φ < 1.0. The values in Table 2 are indications
of maximum values of φ for various ideal cases. In real cases, the value to be chosen will probably

23

have to be smaller (in order to account for element deformation), and some experimentation might
be required.

An obvious pitfall of the above strategy is that, in cases with self-contact, the use of a single
(global) value of φ for all the bodies is penalizing. A small (possibly very small) value is necessary
to avoid chain reactions in the self-contacting bodies but the same value will apply also to ordinary
bodies, so that the extent of the reﬁned zone will be dictated and no longer freely selectable for such
bodies.

An improvement consists in allowing two diﬀerent scaling factors:

(cid:136) A scaling factor for ordinary (not self-contacting) bodies, φn, with a default value of 1.0, which

can be changed (if necessary) by the optional SCAL phin keyword in the PINB directive.

(cid:136) A scaling factor for self-contacting bodies, φs, with a default value of 0.55, which can be changed

(if necessary) by the optional SCAS phis keyword in the PINB directive.

3 Numerical examples

We consider a series of numerical examples in order to test the models proposed in the previous
Sections. All input ﬁles for these examples are listed in the Appendix.

3.1 Simple adaptivity-driven contact test

A simple 2D impact test between two elasto-plastic metal blocks is performed. The two blocks
have opposite initial velocities of 100 m/s and collide when the gap existing at the beginning of the
calculation gets closed. The calculations performed are summarized in Table 3.

Case

Mesh Description

ADPI05 Q42L
ADPI04 Q42L

“Manual” mesh reﬁnement by INIT ADAP SPLI directive
“Manual” mesh reﬁnement by PLAY ADAP SPLI directive

Table 3: Calculations for the simple adaptivity-driven contact test.

The initial mesh is extremely coarse. It consists of just one quadrilateral element measuring 1 × 1
units for each block. Of course this not particularly realistic, but the test just aims at verifying the
basic mesh adaptation mechanism in the presence of contact modelled by pinballs.

At the initial time, the mesh is adaptively reﬁned by suitable commands up to a hierarchy level
of 3 near the two faces of the blocks that will undergo contact. This generates a graded mesh with 8
Q4GL “smaller” elements along the contacting faces, each with a side of 0.125 units.

In the input ﬁle speciﬁcation, the user provides only the information concerning the base mesh. To
model contact between the two blocks, one (parent) pinball is embedded in each block. Each pinball
is assigned to a diﬀerent “body” (by the PINB BODY directive) so that contact between the two bodies
is checked for:

LINK COUP

PINB BODY LECT 1 TERM
BODY LECT 2 TERM

3.1.1 ADPI05

In this model, the mesh is reﬁned during the initialization phase (by means of the INIT ADAP SPLI
directive). This requires using the actual element indexes and would not be realistic in even slightly
more complex applications, but it is acceptable for the purpose of this simple test:

INIT VITE 2 -100 LECT 1 PAS 1 4 TERM
100 LECT 5 PAS 1 8 TERM

VITE 2
ADAP SPLI LEVE 2 LECT 1 2 TERM

SPLI LEVE 3 LECT 3 4 9 10 TERM
SPLI LEVE 4 LECT 11 12 15 16 21 22 25 26 TERM

24

The resulting mesh at step 0, i.e. at the beginning of the transient calculation, is shown in
Figure 8(a). The (parent) pinballs that would be embedded in the two base elements, if these would
not be reﬁned, are also shown (note that in that case contact would occur already at step 0).

Figure 8(b) shows the reﬁned mesh at step 0 with the element indexes in red, and 8(c) shows the
(parent) pinballs which are automatically inserted in the reﬁned mesh (active descendents of the base
mesh) by the strategy illustrated in the previous Section.

(a) Base mesh and pinballs

(b) Reﬁned mesh

(c) Reﬁned pinballs

Figure 8: Initial mesh reﬁnement in case ADPI05.

The initial gap between the two blocks is computed so that no contact between the pinballs
associated with the reﬁned elements occurs at step 0, but it will occur at step 1 as the blocks have
slightly moved towards each other. This is illustrated in Figure 9. By default, a parent pinball
encompasses all nodes of the associated element. Therefore, the radius R of the pinball equals the
semi-diagonal of the (regular square) element:

1
2
where h indicates the side of the square. The pinball circle “protrudes” from the element shape by
an “excentricity”:

R =

2h2

(6)

√

In the present case, contact between the two pinballs starts when the distance between the elements

reaches the value:

e = R −

h
2

(7)

For h = 0.125 we obtain R = 8.83883 × 10−2, e = 2.58883 × 10−2 and d = 5.17767 × 10−2. To

avoid contact at the initial time, we choose a slightly larger initial gap: g = 5.2 × 10−2.

d = 2e = 2R − h

(8)

Figure 9: Computing the initial gap in case ADPI05.

25

The results calculation ADPI05 are illustrated in Figure 10. The colors indicate the level of
plastiﬁcation in the material, the arrows indicate the nodal velocities and the red thick lines (when
present) indicate the “joints” between contacting pinballs (such lines join the centers of each couple
of contacting pinballs).

In 10(a) one can see the situation at the initial time, when no contact occurs. First contact
is detected at step 1, see 10(b), and then contact continues until about 1.5 ms inducing progressive
plastiﬁcation of the two blocks as shown in 10(c) and 10(d). At 2 ms (see Figure 10(e)) rebound starts
from the center of the contacting zone and at the ﬁnal time the two bodies are slowly rebounding,
see 10(e). Since the material is elasto-plastic, much of the initial kinetic energy is absorbed in the
material plastiﬁcation process and only a fraction of this energy remains available as elastic waves
which provoke the rebound of the two bodies.

(a) Step 0

(b) Step 1

(c) t = 1 ms

(d) t = 1.5 ms

(e) t = 2 ms

(f) t = 3 ms

Figure 10: Results of test case ADPI05.

3.1.2 ADPI04

This is a variant of case ADPI05 where a diﬀerent approach for reﬁning the initial mesh is taken.
Instead of using the INIT ADAP directive, the mesh is reﬁned by issuing “interactive” commands ADAP
SPLI at the initial step. Interactive commands are meant to be executed from a console when the
EPX code is launched in interactive execution mode (as speciﬁed by the CONV WIN directive included
in the ﬁrst part of the input ﬁle). However, by including such commands within a PLAY ... ENDPLAY
pair of lines in the input, they are interpreted in “batch” (non-interactive) mode:

PLAY
...
ADAP

SPLI 1
SPLI 2
SPLI 3

26

SPLI 4
SPLI 9
SPLI 10
SPLI 11
SPLI 12
SPLI 15
SPLI 16
SPLI 21
SPLI 22
SPLI 25
SPLI 26

TERM
...

ENDPLAY

The other interactive commands present in the input ﬁle in the PLAY ... ENDPLAY sequence (and
which are omitted in the above ﬁle snippet) are used to pilot the calculation and to produce an
animation of the computed results (see the User’s manual [1] for details).

Note that in this case the commands are not executed during the initialization phase (unlike in
the previous test, where the INIT directive was used to reﬁne the mesh), but after the 0 step (i.e. the
initial equilibrium of the body) has been evaluated. This has consequences on the results. In fact, if
one would use the same initial gap as in the previous test, contact would be detected between the two
“big” parent pinballs at step 0 (see Figure 8(a)) before the mesh is reﬁned, thus leading to completely
diﬀerent results from the previous simulation.

In order to obtain the same contact behaviour as in the previous test, a larger gap G must be
initially assumed between the two bodies. The value to take for G is 8 times the one of the previous
calculation, i.e. G = 8g = 41.4214 × 10−2. We assume here G = 41.5 × 10−2 in order to avoid contact
at 0 step (between the unreﬁned pinballs), see Figure 11(a).

Immediately after step 0 the mesh is reﬁned, so the large pinballs are desactivated, being replaced
by the smaller ones shown in Figure8(c). Therefore, contact does not occur in this simulation until
the gap has reduced to the value it had in the previous calculation at step 1. This requires after 61
steps and about 1.8 ms of “free ﬂight” of the two bodies, as shown in Figure 11(b). The ﬁnal situation
at 4.8 ms is similar to the one in the previous solution at 3 ms, see Figure 11(c). This solution is very
similar to case ADPI05, only shifted in time by 1.8 ms, due to the larger initial gap.

(a) Step 0

(b) Step 61, t = 1.8 ms

(c) t = 4.8 ms

Figure 11: Results of test case ADPI04.

3.2 Blast-loaded plate test

We consider now a more realistic example of adaptivity in combination with contact. This is the
simulation of a real experiment that is being conducted at NTNU Trondheim. A thin metallic square
plate is clamped along its perimeter by a stiﬀ bolted ﬂange and is loaded in its central part by the blast
wave resulting from the detonation of a high explosive charge located nearby. With certain values
of the charge mass and distance, the plate is completely teared apart along the boundary of the

27

exposed area and ﬂies away, bending upon itself and forming a characteristic “X”-shaped macroscopic
fragment.

Contact occurs in various parts of the numerical model. First, between the plate and the frame
and between the plate and the bolts. These contats are simulated by the GLIS model of EPX, which
is optimally suitable for smooth contact between solids and includes friction modelling. Second, self-
contact also accurs in the late phase of the experiment when the detached plate fragment bends up
upon itself so that several parts of the plate fragment touch one another. For this type of contact,
the pinball model is best used. At the moment, friction is not available in the pinball model but this
is expected to play no role since the self-impact occurs normally to the involved surfaces.

In order to capture plate deformation and localized failure with the necessary accuracy and res-
olution, threshold-based adaptivity is activated in the central part of the plate, exposed to the blast
wave, which will form the free ﬂying fragment after rupture. Since pinballs are attached to this zone
of the mesh in order to treat self-contact, this is a good test for the adaptivity-driven contact models
presented above. The calculations performed for this test are summarized in Table 4.

Case

Mesh

Description

A0BG02 CUB8 and Q4GS Threshold-driven adaptivity and self-contact by pinballs

Table 4: Calculations for the blast-loaded plate test.

3.2.1 A0BG02

Only the adaptivity- and (self) contact-related directive of the EPX input ﬁle are shortly commented
below. The complete input ﬁle is listed in the Appendix, as usual.

A0BG02
ECHO
!CONV WIN
CAST mesh
EROS 1.0

The EROS 1.0 directive activates element erosion when complete failure of an element occurs, i.e.
when all of its Gauss points have failed. Of course, this concerns only elements associated with a
material which admits failure.

ADAP THRS ECRO 11 TMIN 0.1 TMAX 0.5 MAXL 3

LECT pinada TERM

The ADAP THRS directive introduces threshold-based adaptivity. Here the monitored quantity is
ECR(11), which is the damage value for the VPJC material used to model the plate (see below). A
maximum reﬁnement level of 3 (thus two reﬁnements) is prescribed as the monitored qiuantity (the
damage in this case) passes between 0.1 (minimum threshold value TMIN) and 0.3 (maximum threshold
value TMAX). Note that these values are much lower than 1.0 (full damage). The reason is that we
want to anticipate local failure by reﬁning the mesh well in advance, in order to capture the rupture
in an accurate manner. Reﬁning the mesh after rupture has started would not be very useful. The
threshold model is applied to the central (exposed) part of the plate (pinada), which is also endowed
by pinballs in order to treat self-contact in the macro fragment (see below).

MATE VPJC RO 2700.0 YOUN 70.0E9 NU 0.3 ELAS 80.0E6 mxit 500

QR1 49.3E6 CR1 1457.1 QR2 5.2E6 CR2 121.5
PDOT 5.E-4 C 0.014 TQ 0.9 CP 910.0
TM 893.0 M 0.0 DC 1.0 WC 44.6E6

LECT plate _q4gs TERM

The material model VPJC, that is a visco-plastic Johnson-Cook model, is applied to the plate. This
material model has the notion of damage. This allows its use in conjunction with threshold-based
adaptivity to track failure.

28

LINK COUP SPLT NONE SOLV PARD

BLOQ 123 LECT bloc TERM
BLOQ 1 LECT symx TERM
BLOQ 2 LECT symy TERM
BLOQ 56 LECT symxr TERM
BLOQ 46 LECT symyr TERM
PINB SELF MLEV 0 LECT pinada TERM
GLIS 2 FROT MUST 0.1 MUDY 0.1 GAMM 0 ! Contact surface #1

PGAP 0.4E-3
MAIT LECT lframe TERM
PESC LECT plateN TERM
FROT MUST 0.1 MUDY 0.1 GAMM 0 ! Contact surface #2
PGAP 0.4E-3
MAIT LECT uframeb TERM
PESC LECT plateN

TERM

Boundary conditions are relatively complex in this test. Note the use of the pinballs (PINB) to
deﬁne a self-contacting object (SELF) coincident with the exposed part of the plate (pinada). The
GLIS contact model is used to treat the other contacts present, including the friction. This is a good
exemple of the combination of two very diﬀerent contact models in the same calculation.

The simulation until t = 10 ms takes 69 369 time steps and 4 040 s of CPU time on a laptop PC,

by using only one processor (sequential version of EPX).

Some general results of this calculation are illustrated in Figure 12. Only 1/4 of the plate is
represented in the numerical model, thanks to symmetry. In 12(a) the initial geometry (t = 0) is
represented. The situation at t = 1 ms is depicted in 12(b), where the main fragment has just
detached from the rest of the plate.
In 12(c) one can see the ﬁnal conﬁguration at t = 10 ms.
Several self-conatcts occur during the free-ﬂying phase of the main fragment. Without self-contact
the fragment parts would penetrate into one another thus leading to a non-physical shape of the
residual fragment.

(a) t = 0

(b) t = 1.0 ms

(c) t = 10.0 ms

Figure 12: Results of test case A0BG02 (general view).

More detailed results of the same calculation are presented in Figure 13. Picture 13(a) shows the
initial conﬁguration (t = 0) from a viewpoint normal to the plate. In 13(b) one sees the detachment
of the main fragment, at t = 0.5 ms. Note the localized reﬁnement of the plate mesh near the rupture
zone by means of threshold-driven adaptivity. The threshold is set on ECR(11) of the plate material
(VPJC), which is a measure of the damage in the material. Although not shown in the picture, the
pinballs embedded in the central part of the plate are also reﬁned by constantly following the plate
reﬁnement. The other images 13(c) to 13(f) show the free ﬂight of the fragment with the self-contact
by pinballs preventing non-phisical interpenetrations. The fragment looks smaller and smaller in the
perspective view, as its distance from the plate increases.

Figure 14 shows a symmetrized view (full model) of the plate simulation at various time instants,
including the material damage represented by a scale of colors. Completely damaged parts of the
plate have been eroded (EROS 1.0) and are not visible.

29

(a) t = 0

(b) t = 0.5 ms

(c) t = 1.0 ms

(d) t = 2.0 ms

(e) t = 6.0 ms

(f) t = 10.0 ms

Figure 13: Results of test case A0BG02 (details).

(a) Initial time

(b) Fragment detaches

(c) Fragment’s free ﬂight

Figure 14: Symmetrized results of test case A0BG02 (full model view).

Finally, some comparisons between the computed and experimental results are made in Figure 15.
In the top row 15(a) and 15(b) present the ﬁnal shape of the ruptured plate and of the main fragment,
with or without FE mesh lines. In the bottom row 15(c) depicts the two parts of the broken plate,
while 15(d) and 15(e) show details of the real plate central fragment (front and rear views). The
agreement between simulation and experiment is quite good.

3.3 Simple contact-driven adaptivity test

Let us now consider a very simple example of contact-driven adaptivity. We take a geometry similar
to the one sown if Figure 11. The two bodies are modelled as linear elastic by means of a VM23
material with a very high elastic limit.

The base mesh is very coarse, consisting of only 6 quadrilaterals in the projectile (upper body) and

30

(a) Final with mesh

(b) Final without mesh

(c) Broken plate

(d) Fragment (front)

(e) Fragment (rear)

Figure 15: Comparison of test case A0BG02 with experimental results.

5 quadrilaterals in the target (lower body). These represent the parts of Figure 11 near the surfaces
that will come into contact.

The triangular elements in the projectile of Figure 11 are not included in the model because at
the moment quadrangles and triangles cannot be merged in the same adaptive calculation (the EPX
adaptivity model will have to be completed in order to allow for this).

The calculations performed are summarized in Table 5.

Case

Mesh Description

PIAD01 Q42L Optional NOUN keyword prevents mesh un-reﬁnement after contact
PIAD02 Q42L Mesh un-reﬁnement is allowed
PIAD03 Q42L Hierarchic pinballs (MLEV 2), not adaptive
PIAD04 Q42L Hierarchic pinballs (MLEV 3), adaptive

Table 5: Calculations for the simple contact-driven adaptivity test.

3.3.1 PIAD01

In this simulation, the mesh is automatically reﬁned by anticipating possible contact, but mesh un-
reﬁnement is inhibited by the NOUN optional keyword. The complete contact directive reads:

LINK COUP SPLT NONE

PINB BODY MLEV 0 LECT target TERM
BODY MLEV 0 LECT projec TERM

ADAP LMAX 3 SCAL 1.0 NOUN

Contact-driven mesh adaptivity is activated by the ADAP keyword in the PINB directive. A maxi-
mum reﬁnement level of 3 is chosen (LMAX 3) at the default scaling factor (SCAL 1.0, which could as

31

well be omitted).

max , and not of the pinballs (contact) Lpinb

Note that the above value of Lmax refers to the maximum reﬁnement level of the elements (adap-
tivity) Ladap
max. This distinction is unfortunate and is only
needed due to historical reasons: the pinball models was developed and implemented in EPX long
before the adaptivity model. The relation between the levels is as follows: a base (not reﬁned) element
in adaptivity has by convention Ladap = 1, while a base (parent) pinball in the contact model has by
convention Lpinb = 0. Thus, it should be kept in mind that:

Ladap = Lpinb + 1

(9)

It seems preferable and more consistent with other adaptivity directives of EPX to use the LMAX
keyword in the PINB ... ADAP directive to deﬁne Ladap
max. In any case, it should be
rarely necessary to use a hierarchic pinball method in combination with contact-driven adaptivity, so
the level of the generated pinballs (attached to the smaller and smaller elements) will be zero, and
the user can safely ignore this.

max rather than Lpinb

Some results of this test case are shown in Figure 16, where the mesh and the current (parent)
pinballs are shown at various time instants. The color of each pinball indicates whether the pinball is
external (i.e. it is located on the outer surface of a body), in green, or internal, in red.

Note that the base mesh is never visible in these images. In fact, the chosen parameters (initial
gap between the bodies, size of the pinballs etc.) are such that the mesh is immediately reﬁned (to
level 2) due to contact anticipation at the initial time step (t = 0), see 16(a). It is highly desirable
that the algorithm implementation allows for such a condition, because this is likely to be a common
situation in practical applications.

In 16(b) the gap between the two bodies has narrowed and further reﬁnement (to the level 3,
which is the chosen maximum level) occurs locally, and then again in 16(c). Contact ﬁrst occurs at
about 10 ms, as shown in 16(d). Then, the target deform visibly and starts to oscillate elastically, as
rebound starts, see 16(e) and 16(f).

As the two bodies are detached, no mesh unreﬁnement id performed as prescribed in the input

ﬁle (NOUN keyword).

3.3.2 PIAD02

This calculation is a repetition of case PIAD01 but with mesh unreﬁnement enabled. The NOUN
keywprd is removed from the input ﬁle.

Of course, the solution until ﬁrst contact (i.e. during the mesh reﬁnement phase) is identical to
the one obtained in the previous case. These results are not shown for brevity. After contact the
mesh is now progressively unreﬁned as the two objects come apart, as shown in Figure 17. The ﬁrst
unreﬁnement occurs at 28.0 ms, as shown in 17(a). Unreﬁnement continues during the subsequent
steps until at 50.5 ms the mesh is completely unreﬁned and we can ﬁnally see the base mesh of the
problem, see Figure 17(f).

Figure 18 compares the (ﬁnal) results of cases PIAD01 and PIAD02 at t = 60 ms. The solutions
are similar. Some discrepancies are acceptable, given the great diﬀerence in mesh size between the
two solutions in the rebound phase.

3.3.3 PIAD03

We want now to explore the use of hierarchic pinballs in combination with (or in alternative to)
contact-driven adaptivity. First, we obtain a solution of the problem without adaptivity, but by
prescribing hierarchich pinballs at MLEV 2 (recall that this is the pinball level, not the element level).

The input directive for contact in this case becomes:

LINK COUP SPLT NONE

PINB BODY MLEV 2 LECT target TERM
BODY MLEV 2 LECT projec TERM

32

(a) t = 0

(b) t = 4.0 ms

(c) t = 6.5 ms

(d) t = 10.0 ms

(e) t = 11.5 ms

(f) t = 15.5 ms

Figure 16: Results of case PIAD01.

Results of this calculation are presented in Figure 19. In 19(a) one can see the initial conﬁguration.
Since no adaptivity is prescribed, this corresponds to the base mesh of the previous simulations. The
mesh is extremely coarse, deﬁnitely too coarse to get accurate results, but one should at least obtain
a qualitatively correct response.

First contact occurs at t = 9.0 ms, see 19(b). The dark red spheres show the contacting hierarchic
pinballs. These are the pinballs at the speciﬁed maximum level of the hierarchy (Lpinb
max = 2) which
happen to be in contact with one another at this time. The light green spheres represent the parent
pinballs, as usual. Note that there are 3 × 4 = 12 contacting couples of pinballs (12 contacts), exactly
like in cases PIAD01 (see Figure 16(d)) and PIAD02. The diﬀerence is that in those (adaptive) cases,
the mesh had been reﬁned so the contacting pinballs were 0-level (parent) pinballs, while in this case
the contacting pinballs are sub-pinballs at a higer level. At t = 10 ms contact has already terminated
and the rebound phase has started, see 19.

3.3.4 PIAD04

This is a repetition of case PIAD02 (adaptive) but by using hierarchic pinballs in combination with
adaptivity. The maximum level of the hierarchic pinballs is set to 3 (Lpinb
max = 3) instead of 0 while the
maximum level for adaptivity is left to 3 (Ladap

max = 3) like in the previous cases:

LINK COUP SPLT NONE

PINB BODY MLEV 3 LECT target TERM
BODY MLEV 3 LECT projec TERM

ADAP LMAX 3 SCAL 1.0

Because of eq. (9), we expect to get once-reﬁned pinballs within the twice-reﬁned smallest elements
along the contacting surfaces, thus twice the number of contacting pinballs with respect to the previous
cases.

33

(a) t = 28.0 ms

(b) t = 30.5 ms

(c) t = 31.0 ms

(d) t = 32.0 ms

(e) t = 44.5 ms

(f) t = 50.5 ms

Figure 17: Results of case PIAD02 (rebound phase only).

(a) PIAD01, t = 60 ms

(b) PIAD02, t = 60 ms

Figure 18: Results of cases PIAD01 and PIAD02 at the ﬁnal time.

Results of this calculation are presented in Figure 20. As a matter of fact, when ﬁrst contact is
detected at 10.0 ms, there are 24 contacts, see the dark red spheres in 20(c) (the light red spheres
indicate internal pinballs).

Figure 21 compares the (ﬁnal) results of cases PIAD03 and PIAD04 at t = 60 ms.

3.4 Combined threshold- and contact-driven adaptivity test

The next tests aim at verifying the combination of contact-driven adaptivity with another type of
adaptivity. In fact, in some real applications the use of contact-driven adaptivity could be insuﬃcient,
if for some reason the mesh has to be adapted also far from the contacting surfaces.

34

(a) t = 0

(b) t = 9.0 ms

(c) t = 10.0 ms

Figure 19: Results of case PIAD03.

(a) t = 0

(b) t = 9.0 ms

(c) t = 10.0 ms

Figure 20: Results of case PIAD04.

(a) PIAD03, t = 60 ms

(b) PIAD04, t = 60 ms

Figure 21: Results of cases PIAD03 and PIAD04 at the ﬁnal time.

As anticipated in a previous Section, some of the other adaptivity models present in EPX cannot
be combined together at the moment of this writing.
In particular, this is the case for the wave
tracking directive (WAVE) and for the error indicators (INDI). However, other types of adaptivity could
in principle be combined. In particular, the threshold-based adaptivity (THRS) is a good candidate
since it is particularly simple. In fact, the threshold model in its current impementation is mainly
used to track damage and failure of the structural domain (although other types of threshold could be
prescribed in principle) and in the current version it reﬁnes but never un-reﬁnes the adapted mesh.

35

For this reason, it is less likely that it could enter in conﬂict with other more general adaptivity models
present in the same calculation.

In principle, the new contact-driven adaptivity model has been programmed and implemented in
such a way that it should be compatible with threshold-driven adaptivity. Of course, tests must be
conducted to verify this useful property, which is absolutely essential in realistic applications.

The problem considered is the impact of a free-falling arch made of concrete onto a much stiﬀer
metallic obstacle, blocked at its base. No reinforcement is present in the concrete, so the arch is
expected to undergo severe failure and fragmentation. Contact-driven adaptivity is used for an ac-
curate representation of the impact and (at the same time) threshold-based adaptivity anticipates
and tracks material failure. Element erosion is also activated in order to allow separation of the
macroscopic fragments expected from the failure of the concrete arch.
The numerical simulations performed are summarized in Table 6.

Case

Mesh

Description
PITH07 CUBE Only threshold-based adaptivity
PITH08 CUBE Only contact-based adaptivity
PITH08 CUBE Combined threshold- and contact-based adaptivity

Table 6: Calculations for the free falling concrete arch impact test.

3.4.1 PITH07

The ﬁrst simulation uses only threshold-based adaptivity (in the arch). No contact-driven adaptivity
is activated. The input ﬁle for this test case is shortly commented below, as concerns the aspects
relevant for the present report.

PITH07
ECHO
!CONV WIN
EROS 1.0

Erosion is activated (EROS) with the least possible fragile behaviour (1.0) of the material.

CAST mesh
LAGR TRID
DIME ADAP NPOI 2993 CUBE 2152 NPIN 2152 ENDA TERM
GEOM CUBE target projec TERM
COMP COUL VERT LECT target TERM
TURQ LECT projec TERM

NGRO 1 ’bloc’ LECT target TERM COND Y LT -2.99

ADAP THRS ECRO 13 TMIN 0.1 TMAX 0.5 MAXL 3

LECT projec TERM

Threshold-based adaptivity (ADAP THRS) is set to reﬁne the mesh in the projectile (the arch) up to
level 3 (MAXL 3) as the monitored threshold quantity passes from 0.1 to 0.5. See comments on these
parameters in a previous test case. The ECR(13) quantity for the DPDC material of the arch is the
current damage, ranging from 0 (virgin material) to 1 (fully damaged material).

MATE LINE RO 8000. YOUN 1.D11 NU 0.3
LECT target TERM

DPDC RO 2360 YOUN 40.1E+9 NU 0.2
FC 75.E+6 DAGG 16.0E-3
EROD ENDT 0.99 ENDC 0.99 DVOL 0.3
LECT projec _cube TERM

VERS 8 EFVI

The metallic obstacle has a linear elastic material (LINE) while the DPDC model (Dynamic Plastic

Damage Concrete) is used to represent the arch.

OPTI PINS EQVL
LINK COUP SPLT NONE

BLOQ 123 LECT bloc TERM
PINB BODY MLEV 0 LECT target TERM
SELF MLEV 0 LECT projec TERM

36

INIT VITE 2 -100 LECT projec TERM
ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5
ADAP RCON
PINS GRID DPIN 1.01
CALC TINI 0. TEND 0.02D0
FIN

The pinball model (PINB) is used to treat contact. The obstacle (target) is modelled as a body
(BODY) since it may not fail and will undergo minimal deformations. The arch (projec), however, is
modelled as a self-contacting body (SELF). This is to avoid inter-penetration of the arch fragments
that are formed after failure of some parts of the arch and erosion of the corresponding elements.

This calculation runs until the chosen ﬁnal time t = 20 ms in 2 316 time steps and 105 s of CPU
time. Some results are presented in Figure 22. The overall behaviour seems fairly realistic. In the
initial conﬁguration 22(a) one can observe the base mesh. At t = 1.5 ms the threshold algorithm
begins reﬁning the mesh in zones where damage starts to build up, see 22(b). These should be zones
where the concrete experiences some traction, because compression does not produce (or produces
less) damage in this particular material. At t = 2 ms, see 22(c), the mesh has been further reﬁned
in these zones and the ﬁrst cracks (localized element erosion) start to appear. Mesh reﬁnement and
cracking continue, see 22(d) and 22(e), until the calculation is stopped at t = 20 ms, see 22(f).
Between 15 and 20 ms erosion has produced some macroscopic fragments, which enter in contact with
one another (and with the obstacle) thanks to the self-contact directive of the pinball algorithm.

The ﬁnal result, shown in 22(f), does not look fully realistic. In fact, no failure and no element
reﬁnement (thus indicating unrealistically low levels of damage) are observed in the central part of the
arch, despite the fact that the upper-central part undergoes a clear change of curvature, which should
lead to large local tractions in the central-upper part of the arch. However, this is more likely to be a
problem in the material formulation (or possibly in the choice of DPDC material parameters, which
are quite complex) than in the (threshold-driven) adaptivity algorithm. For this reason, investigation
of the problem is outside the scope of the present work.

Since no contact-driven adaptivity is activated in this ﬁrst simulation, the elements in the central
part of the arch remain coarse (base mesh) and contact is detected by the associated (large-size)
pinballs. The contact seems to work quite well, but the use of such large pinballs leaves a certain gap
between the two bodies.

3.4.2 PITH08

This test case is similar to the previous one but only contact-driven adapativity (no threshold-driven
adaptivity) is activated. In the input ﬁle, the ADAP THRS directive is completely removed and the ADAP
sub-directive is added in the contact deﬁnition by pinballs:

LINK COUP SPLT NONE

BLOQ 123 LECT bloc TERM
PINB BODY MLEV 0 LECT target TERM
SELF MLEV 0 LECT projec TERM
ADAP LMAX 3 SCAL 1.0 SCAS 0.55

This calculation fails at t = 13.1 ms, after 1 470 time steps and 63 s of CPU time. Reason of the
failure is a problem in the geometric routine FIND CORFACP which is used to compute the so-called
corner star of elements (in this case, hexahedra) attached to a given corner. The problem is under
investigation. It might be due to combination of adaptivity with element erosion.

Some results of this calculation are presented in Figure 23 at the same times as in the previous

case until t = 6 ms, and at the last stored time station which is at t = 13 ms.

3.4.3 PITH09

This is the simulation with combined threshold- and contact-driven adaptivity. Both the ADAP THRS
(like in case PITH07) and the ADAP sub-directive of pinballs deﬁnition are present:

37

(a) t = 0

(b) t = 1.5 ms

(c) t = 2 ms

(d) t = 6 ms

(e) t = 15 ms

(f) t = 20 ms

Figure 22: Results of case PITH07.

ADAP THRS ECRO 13 TMIN 0.1 TMAX 0.5 MAXL 3

LECT projec TERM
MATE LINE RO 8000. YOUN 1.D11 NU 0.3
LECT target TERM

DPDC RO 2360 YOUN 40.1E+9 NU 0.2
FC 75.E+6 DAGG 16.0E-3
EROD ENDT 0.99 ENDC 0.99 DVOL 0.3
LECT projec _cube TERM

VERS 8 EFVI

OPTI PINS EQVL
LINK COUP SPLT NONE

BLOQ 123 LECT bloc TERM
PINB BODY MLEV 0 LECT target TERM
SELF MLEV 0 LECT projec TERM
ADAP LMAX 3 SCAL 1.0 SCAS 0.55

The solution of this test case becomes extremely slow starting at around 9 ms. Some of the concrete
elements undergo very large distortions, but without failing and being eroded. Their stability step
becomes very small and this slows down the entire calculation. This behaviour might be due to the
use of an under-integrated element (CAR1), or to a problem in the DPDC material (either due to the
chosen input parameters or in the material routine itself). It is strange, however, that this type of
diﬃculties did not emerge in the previous two simulations.

Since both such aspects are out of scope in the present work, an optional keyword TFAI 3.E-6 is
tentatively added in the CALC directive. This causes immediate failure of any erodible elements (i.e.
elements associated with an erodible material, such as DPDC) as soon as their stability step falls
below the chosen limit of 3 µs.

CALC TINI 0. TEND 0.02D0 TFAI 3.E-6

With this modiﬁcation the calculation proceeds more quickly, but it fails at t = 12.9 ms, after
3 332 time steps and 710 s of CPU time. The reason for failure is a message from the DPDC material

38

(a) t = 0

(b) t = 1.5 ms

(c) t = 2 ms

(d) t = 6 ms

(e) t = 13 ms

Figure 23: Results of case PITH08.

routine, saying that the number of sub-steps is too large. Again, this might indicate that the concerned
element should have perhaps been eroded before, but investigation of such aspects is out of scope here.
Some results of this calculation are presented in Figure 24 at the same times as in the previous

case until t = 6 ms, and at the last stored time station which is at t = 12.5 ms.

Another strange result of this calculation is that just before failure of the run the target deforms
heavily near the contact zone, see Figure 24(e), a phenomenon that was not observed in the previous
simulations. This might indicate an incipient instability of the calculation. The energy balance and
even the mass balance become very bad (unlike in the previous solutions) and the contact forces are
huge. For all this reasons, results of this calculation beyond, say, 10 ms or so are not reliable.

Figure 25 compares the three solutions PITH07, PITH08 and PITH09 at t = 12.5 ms. The solution
with only threshold-driven adaptivity 25(a) runs smoothly but suﬀers from poor resolution in the
contact zone, since the mesh is never reﬁned there. The solution with only contact-driven adaptivity
presents the wanted reﬁnement near the contacting surfaces but the rest of the arch is never reﬁned
and so the falure of the arch is treated a bit too coarsely, see 25(b). The combined solution of 25(c)
shows the potential for obtaining an optimal combination of both adaptation strategies, but the reason
for numerical diﬃculties must be investigated and solved ﬁrst.

References

[1] EUROPLEXUS User’s Manual, on-line version: http://europlexus.jrc.ec.europa.eu.

[2] Cast3m Software: http://www-cast3m.cea.fr/.

39

(a) t = 0

(b) t = 1.5 ms

(c) t = 2 ms

(d) t = 6 ms

(e) t = 12.5 ms

Figure 24: Results of case PITH09.

(a) Threshold

(b) Contact

(c) Threshold and contact

Figure 25: Comparison of solutions PITH07, PITH08 and PITH09 at t = 12.5 ms.

[3] J.O. Hallquist, G.L. Goudreau, D.J. Benson. Sliding interfaces with contact-impact in large-scale
Lagrangian computation. Computer Methods in Applied Mechanics and Engineering 51 : 107–
137, 1985.

[4] D.J. Benson, J.O. Hallquist. A single surface contact algorithm for the postbuckling analysis of

shell structures. Report to the University of California at San Diego, CA, 1987.

[5] T. Belytschko, S.E. Law. An Assembled Surface Normal Algorithm for Interior Node Removal in

Three-Dimensional Finite Element Meshes. Engineering with Computers 1 : 55–60, 1985.

40

[6] T. Belytschko, J.I. Lin. A Three-Dimensional Impact-Penetration Algorithm with Erosion. Com-

puters and Structures 25 : 95–104, 1987.

[7] T. Belytschko, M.O. Neal. Contact-Impact by the Pinball Algorithm with Penalty, Projection and
Lagrangian Methods. Computational Techniques for Contact, Impact, Penetration and Perfora-
tion of Solids, Winter Annual Meeting of the American Society of Mechanical Engineers, San
Francisco, California AMD 103 : 97–140, December 10–15, 1989.

[8] T. Belytschko, M.O. Neal. The Vectorized Pinball Contact Impact Routine. SMiRT-10 Conference,

1989.

[9] R.E. Sarwas. Hidden Line Elimination and a Modiﬁed Pinball Algorithm for Finite Ele-
ment Contact-Impact Problems with Shell Elements. Master’s Thesis, Northwestern University,
Evanston, Illinois, December 1989.

[10] T. Belytschko, M.O. Neal. Contact-Impact by the Pinball Algorithm with Penalty and Lagrangian
Methods. International Journal for Numerical Methods in Engineering 31 : 547–572, 1991.

[11] T. Belytschko, I.S. Yeh. The Splitting Pinball Method for Contact-Impact Problems. Computer

Methods in Applied Mechanics and Engineering 105 : 375–393, 1993.

[12] E. Plaskacz, T. Belytschko, H.Y. Chiang. Contact-Impact Simulations on Massively Parallel

SIMD Supercomputers. Argonne National Laboratory Report ANL/CP-76686, 1993.

[13] M. Lepareux, B. Schwab, A. Hoﬀmann, P. Jamet, H. Bung. Un programme g´en´eral pour l’analyse
dynamique rapide – Cas des tuyauteries. Colloque: Tendances Actuelles en Calcul des Structures,
Bastia, 6–8 November, 1985.

[14] F. Casadei. A Hierarchic Pinball Method for Contact-Impact in Fast Transient Dynamics. VI
Congresso Nazionale della Societ`a Italiana di Matematica Applicata e Industriale (SIMAI 2002),
Chia (Cagliari), Italy, 27–31 May 2002.

[15] F. Casadei. A General Impact-Contact Algorithm Based on Hierarchic Pinballs for the EURO-

PLEXUS Software System. Joint Research Center Report N. I.03.176, December 2003.

[16] F. Casadei. Implementation of Fast Search Algorithms in EUROPLEXUS. Technical Note,

PUBSY N. JRC38086, 2007.

[17] F. Casadei. Validation of the EUROPLEXUS Pinball Impact-Contact Model on an Indentation

Problem. Technical Note N. I.05.51, July 2005.

[18] F. Casadei, M. Larcher, G. Valsamos, B. Langrand. Pinball-based Contact-Impact Model with
Parabolic Elements in EUROPLEXUS. Technical Note JRC Pubsy N. JRC89913, EUR Report
26629 EN, 2014.

[19] F. Casadei, M. Larcher, G. Valsamos, V. Faucher. Implementation of Assembled Surface Normals
and of a Penalty Contact Formulation in the Pinball Model of EUROPLEXUS. Technical Note,
PUBSY No. JRC90939, EUR 26714 EN, 2014.

[20] F. Casadei, M. Larcher, G. Valsamos. A contact model based on generalized pinballs in EURO-

PLEXUS. Technical Note in preparation, 2016.

[21] F. Casadei, P. D´ıez, F. Verdugo. A Data Structure for Adaptivity in EUROPLEXUS. JRC Tech-

nical Note PUBSY N. JRC60795, September 2010.

[22] F. Casadei, P. D´ıez, F. Verdugo. Adaptivity in FE Models for Fluids in EUROPLEXUS. JRC

Technical Note PUBSY N. JRC61622, November 2010.

[23] F. Casadei, P. D´ıez, F. Verdugo. Adaptive 3D Reﬁnement and Un-reﬁnement of 8-node Solid and

Fluid Hexahedra in EUROPLEXUS. JRC Technical Note PUBSY N. JRC63833, March 2011.

41

[24] F. Casadei, P. D´ıez, F. Verdugo. Implementation of a 2D Adaptivity Indicator for Fast Transient

Dynamics in EUROPLEXUS. JRC Technical Note PUBSY N. JRC64506, April 2011.

[25] F. Casadei, P. D´ıez, F. Verdugo. Further Development of 2D Adaptivity Error Indicators in

EUROPLEXUS. JRC Technical Note, PUBSY No. JRC66337, September 2011.

[26] F. Verdugo, P. D´ıez, F. Casadei. Natural quantities of interest in linear elastodynamics for goal
oriented error estimation and adaptivity. Proceedings of the V International Conference on Adap-
tive Modeling and Simulation (ADMOS 2011), D. Aubry and P. D´ıez (Eds), Paris, France, 6–8
June 2011.

[27] F. Verdugo, P. D´ıez, F. Casadei. General form of the natural quantities of interest for goal
oriented error assessment and adaptivity in linear elastodynamics. Submitted for publication in
the International Journal for Numerical Methods in Engineering, DOI: 10.1002/nme, PUBSY
No. JRC65788, July 2011.

[28] F. Casadei, G. Valsamos, P. D´ıez, F. Verdugo. Implementation of Adaptivity in 2D Cell Centred
Finite Volumes in EUROPLEXUS. Technical Note, PUBSY No. JRC67859, December 2011.

[29] F. Casadei, P. D´ıez, F. Verdugo. Implementation of Adaptivity in 3D Cell Centred Finite Volumes

in EUROPLEXUS. Technical Note, PUBSY No. JRC68168, December 2011.

[30] F. Casadei, P. D´ıez, F. Verdugo. Testing Adaptivity in 2D Cell Centred Finite Volumes with the
CDEM Combustion Model in EUROPLEXUS. Technical Note, PUBSY No. JRC68333, December
2011.

[31] F. Casadei, P. D´ıez, F. Verdugo. An algorithm for mesh reﬁnement and un-reﬁnement in
transient dynamics. International Journal of Computational Methods, DOI 10.1142/

fast
S0219876213500187, Vol. 10, No. 4, pp. 1350018-1 / 1350018-31, 2013.

[32] F. Casadei, G. Valsamos, M. Larcher, A. Beccantini. Combination of Mesh Adaptivity with Fluid-
Structure Interaction in Europlexus. Technical Note, PUBSY No. JRC89728, EUR Report 26617
EN, 2014.

[33] F. Casadei, M. Larcher, G. Valsamos. Adaptivity with Simplex Elements in Europlexus. Technical

Note, PUBSY No. JRC89894, EUR Report 26630 EN, 2014.

[34] F. Casadei, M. Larcher, G. Valsamos. Adaptivity in CEA’s Fluid Elements in Europlexus. Tech-

nical Note, PUBSY No. JRC89953, EUR Report 26632 EN, 2014.

[35] M. Larcher, F. Casadei, G. Valsamos. Adaptivity in Shell/Beam/Bar Elements in Europlexus.

Technical Note, PUBSY No. JRC90456, EUR Report 26697 EN, 2014.

[36] V. Faucher, F. Casadei. Adaptive mesh reﬁnement with combined criteria for fast transient ﬂuid-
structure dynamics. 5th International Conference on Computational Methods in Structural Dy-
namics and Earthquake Engineering, COMPDYN 2015, Crete, Greece, 25–27 May 2015.

[37] F. Casadei, V. Faucher, M. Larcher, G. Valsamos. Combined Fluid and Structure Mesh Adaptivity
with Fluid-Structure Interaction in EUROPLEXUS. Technical Note, PUBSY No. JRC96043,
EUR Report 27276 EN, 2015.

[38] F. Casadei, G. Valsamos, M. Larcher. On the interpretation and post-processing of mesh-adaptive
numerical results in EUROPLEXUS. Technical Note, PUBSY No. JRC96386, EUR Report 27316
EN, 2015.

[39] F. Casadei, V. Faucher, M. Larcher, G. Valsamos. Decoupled formulation of constraints on adap-
tive hanging nodes in EUROPLEXUS. Technical Note, PUBSY No. JRC96807, EUR Report
27347 EN, 2015.

42

[40] F. Casadei. Implementation of Fast Search Algorithms in EUROPLEXUS. Technical Note,

PUBSY No. JRC38086, October 2007.

43

Appendix — Input ﬁles

All the input ﬁles used in the previous Sections are listed below.

a0bg02.dgibi

N*’ENTIER’ TOL*’FLOTTANT’;

’DEBPROC’ pxbox3d x0*’FLOTTANT’ y0*’FLOTTANT’ z0*’FLOTTANT’
lx*’FLOTTANT’ ly*’FLOTTANT’ lz*’FLOTTANT’
dd*’FLOTTANT’;

x0,y0,z0 : coordinates of ’origin’ of the box
lx,ly,lz : length of the box sides
dd : "density" (size) of the mesh (the same in all directions)

*
*--------------------------------------------------
* Generates a parallelepiped mesh with origin in point
* (x0,y0,z0), sides of length (lx,ly,lz) and density (mesh size) dd.
* The mesh consists of CUB8 hexahedral elements and is oriented
* along the global axes.
*
* Input :
* -----
*
*
*
* Output :
* ------
*
box : mesh consisting of CUB8 hexahedra
*--------------------------------------------------
*
dens dd;
p1 = x0 y0 z0;
p2 = (x0 + lx) y0 z0;
p3 = (x0 + lx) (y0 + ly) z0;
p4 = x0 (y0 + ly) z0;
*
c1 = p1 d p2;
c2 = p2 d p3;
c3 = p3 d p4;
c4 = p4 d p1;
base = dall c1 c2 c3 c4 plan;
*
box = base volu tran (0 0 lz);
*
finproc box;
*-----------------------------------------------------------------------
’DEBPROC’ pxrec3d x0*’FLOTTANT’ y0*’FLOTTANT’ z0*’FLOTTANT’

lx*’FLOTTANT’ ly*’FLOTTANT’
dd*’FLOTTANT’;

: length of the box sides

x0,y0,z0 : coordinates of ’origin’ of the box
lx,ly
dd : "density" (size) of the mesh (the same in all directions)

*
*--------------------------------------------------
* Generates a rectangle mesh with origin in point
* (x0,y0,z0), sides of length (lx,ly) and density (mesh size) dd.
* The mesh consists of QUA4 quadrilateral elements and is oriented
* along the global axes.
*
* Input :
* -----
*
*
*
* Output :
* ------
*
box : mesh consisting of CUB8 hexahedra
*--------------------------------------------------
*
dens dd;
p1 = x0 y0 z0;
p2 = (x0 + lx) y0 z0;
p3 = (x0 + lx) (y0 + ly) z0;
p4 = x0 (y0 + ly) z0;
*
c1 = p1 d p2;
c2 = p2 d p3;
c3 = p3 d p4;
c4 = p4 d p1;
rect = dall c1 c2 c3 c4 plan;
*
finproc rect;
*-----------------------------------------------------------------------
*$$$$ PX4CIR3D
*
* Pour generer le maillage 3D (plan) d’un quart de cercle
* avec seulement des quadrilateres a 4 noeuds.
* Le quart de cercle est defini par les deux extremes
* d’un arc (de 90 degrees), par le centre du cercle
* et par un autre point qui definit l’axe de rotation
* (axe perpendiculaire au plan du cercle, passant pour son centre).
*
* Input:
* =====
* P1 = premiere extremite de l’arc
* P2 = deuxieme extremite de l’arc
* PC = centre de l’arc
* PZ = autre point de l’axe
* N
* TOL= tolerance pour l’elimination des noeuds doubles
*
* Output:
* ======
* SUR = objet MAILLAGE d’elements de type QUA4
* IER = 0: pas d’erreur, .NE.0: erreur dans la generation de SUR
*
’DEBPROC’ PX4CIR3D P1*’POINT’ P2*’POINT’ PC*’POINT’ PZ*’POINT’

= nombre de mailles a generer sur chaque cote (doit etre pair)

*------------------------------------------------------------------
*
ier=0;
n2 = n / 2;
p0 = 0 0 0;
pm1 = p1 plus p0;
depl pm1 tour 45 pc pz;
pm2 = 0.5*(pc plus p2);
pm3 = 0.5*(pc plus p1);
pm = 0.5*(pc plus pm1);
c1a = cerc n2 p1 pc pm1;
c1b = cerc n2 pm1 pc p2;
c2a = droi n2 p2 pm2;
c2b = droi n2 pm2 pc;
c3a = droi n2 pc pm3;
c3b = droi n2 pm3 p1;
c4a = droi n2 pm pm1;
c4b = droi n2 pm pm2;
c4c = droi n2 pm pm3;
sur1 = dall plan c4c c3b c1a (inve c4a);
sur2 = dall plan c4a c1b c2a (inve c4b);
sur3 = dall plan c2b c3a (inve c4c) c4b;
sur = sur1 et sur2 et sur3;
*
elim tol sur;
*
’FINPROC’ sur ier;
*-----------------------------------------------------------------------
*
opti echo 1;
opti dime 3 elem cub8;
opti trac psc ftra ’a0bg02_mesh.ps’;
opti sauv form ’a0bg02.msh’;
*
*dd = 0.0025;
dd = 0.00625;
dens dd;
tol = 0.1*dd;
*
* Plate
*
0.0
pla1 = pxrec3d 0.0
pla2 = pxrec3d 0.15
0.15
pla3 = pxrec3d 0.0875 0.15
0.15
pla4 = pxrec3d 0.03
0.0875 0.0 0.05
pla5 = pxrec3d 0.15
pla6 = pxrec3d 0.15
0.0 0.05
0.03
trac qual cach (pla3 ET pla4);
*
p0 = 0 0 0;
***/*/*/*/*/cont = p0 d (0.025 0 0) d (0.025 0.0185 0) c 4 (0.025 0.025 0)
cont = p0 d (0.025 0 0) d (0.025 0.0185 0) c 2 (0.025 0.025 0)

dd;
dd;
dd;
dd;
0.0125 dd;
0.0075 dd;

0.15
0.0 0.15
0.0 0.05
0.05
0.0 0.0125 0.05
0.0 0.0075 0.05

(0.0185 0.025 0) d (0 0.025 0) d p0;

trac qual cach cont;
qua1 = cont surf plan;
trac qual cach qua1;
qua2 = qua1 syme plan (0.025 0 0) (0.025 0.025 0) (0.025 0 0.025);
qua12 = qua1 et qua2;
qua34 = qua12 syme plan (0 0.025 0) (0.025 0.025 0) (0 0.025 0.025);
q1 = qua12 et qua34;
elim tol q1;
trac qual cach q1;
orie q1 dire (0 0 1);
*
pla7 =
pla8 =
pla9 =
depl pla9 tour 90 (0.175 0.125 0) (0.175 0.125 1);
pla10 = q1 plus (0.15
depl pla10 tour 90 (0.175 0.0625 0) (0.175 0.0625 1);
*
dens dd;
*con5 = p0 d (0.030 0 0) d (0.030 0.025 0) d (0.012 0.025 0)
*
con5 = p0 d (0.0375 0 0) d (0.0375 0.025 0) d (0.012 0.025 0)

q1 plus (0.0375 0.15
0.15
q1 plus (0.10
0.10
q1 plus (0.15

c (0 0.025 0) (0 0.013 0) d p0;

0);
0);
0);

0.0375 0);

c 2 (0 0.025 0) (0 0.013 0) d p0;

trac qual cach con5;
qua5 = con5 surf plan;
trac qual cach qua5;
orie qua5 dire (0 0 1);
qua6 = qua5 syme plan (0 0.025 0) (0.030 0.025 0) (0 0.025 0.025);
orie qua6 dire (0 0 1);
q56 = qua5 et qua6;
elim tol q56;
trac qual cach q56;
orie q56 dire (0 0 1);
*
pla11 = q56 plus (0 0.15 0);
pla12 = q56 plus (0 0 0);
depl pla12 tour 90 (0 0.025 0) (0 0.025 0.025);
depl pla12 plus (0.175 -0.025 0);
*
*plate = pla1 et pla2 et pla3 et pla4 et pla5 et pla6 et
*
plate = pla1 et pla2 et pla3 et pla5 et

pla7 et pla8 et pla9 et pla10 et pla11 et pla12;

44

pla7 et pla8 et pla9 et pla10 et pla11 et pla12;

elim tol plate;
orie plate dire (0 0 1);
trac qual cach plate;
*
*platet = plate elem tri3;
*orie platet dire (0 0 1);
plateq = plate elem qua4;
orie plateq dire (0 0 1);
*
* Lower frame
*
blf = (plate diff pla1) plus (0 0 -0.0154);
lframe = blf volu tran (0 0 0.015);
trac qual cach lframe;
lfra8 = lframe elem cub8;
*lfra6 = lframe elem pri6;
*
* Upper frame (without the bolts)
*
uf2 = pla2 plus (0 0 0.0004);
uf3 = pla3 plus (0 0 0.0004);
uf4 = pla4 plus (0 0 0.0004);
uf5 = pla5 plus (0 0 0.0004);
uf6 = pla6 plus (0 0 0.0004);
uf11 = pla11 plus (0 0 0.0004);
uf12 = pla12 plus (0 0 0.0004);
couf = p0 d (0.025 0 0) d (0.025 0.0190 0) c 2 (0.025 0.025 0)

(0.0190 0.025 0) d (0 0.025 0) d p0;

quf1 = couf surf plan;
quf2 = quf1 syme plan (0.025 0 0) (0.025 0.025 0) (0.025 0 0.025);
quf12 = quf1 et quf2;
quf34 = quf12 syme plan (0 0.025 0) (0.025 0.025 0) (0 0.025 0.025);
u1 = quf12 et quf34;
elim tol u1;
orie u1 dire (0 0 1);
*
uf7 =
u1 plus (0.0375 0.15
0.0004);
0.15
uf8 =
u1 plus (0.10
0.0004);
0.0004);
0.10
u1 plus (0.15
uf9 =
uf10 = u1 plus (0.15
0.0375 0.0004);
*
*buf = uf2 et uf3 et uf4 et uf5 et uf6 et
*
buf = uf2 et uf3 et uf5 et

uf7 et uf8 et uf9 et uf10 et uf11 et uf12;

uf7 et uf8 et uf9 et uf10 et uf11 et uf12;

elim tol buf;
uframe = buf volu tran (0 0 0.015);
trac qual cach uframe;
ufra8 = uframe elem cub8;
*ufra6 = uframe elem pri6;
*
* Bolts
*
*n = 4;
n = 2;
pz = 0 0 1;
b1 ier = px4cir3d (0.006 0 0) (0 0.006 0) p0 pz n tol;
b2 = b1 tour 90 p0 pz;
b3 = b2 tour 90 p0 pz;
b4 = b3 tour 90 p0 pz;
basu = b1 et b2 et b3 et b4;
elim tol basu;
basl = basu plus p0;
depl basu plus (0 0 0.0004);
bolu = basu volu tran 2 (0 0 0.0150);
boll = basl volu tran 2 (0 0 0.0158);
depl boll plus (0 0 -0.0154);
bolt = boll et bolu;
elim tol bolt;
trac qual cach bolt;
*
bolt1 = bolt plus (0.0625 0.1750 0);
bolt2 = bolt plus (0.1250 0.1750 0);
bolt3 = bolt plus (0.1750 0.1250 0);
bolt4 = bolt plus (0.1750 0.0625 0);
bolts = bolt1 et bolt2 et bolt3 et bolt4;
*
uframeb = uframe et bolts;
elim tol uframeb;
*
* Pressurized surfaces
*
pairb = pla1 coul noir;
ppimp = blf coul noir;
*ppimp3 = ppimp elem tri3;
ppimp4 = ppimp elem qua4;
trac qual cach (pairb et ppimp);
*
mesh = plate et lframe et uframeb et pairb et ppimp;
tass mesh noop;
sauv form mesh;
trac qual cach mesh;
*
fin;

a0bg02.epx

A0BG02
ECHO
!CONV WIN

CAST mesh
EROS 1.0
TRID LAGR
DIME ADAP NPOI 2000 Q4GS 2000 CL3D 2000 NPIN 2000 ENDA TERM
GEOM CUB8 lfra8 ufra8 bolts

Q4GS plateq CL3D pairb ppimp4 TERM

COMP ORIE OBJE LECT plate TERM POIN 0 0 1

EPAI 0.0008 LECT plate _q4gs TERM
GROU 8 ’pbol1’

LECT ppimp TERM
COND SPHE XC 0.0625 YC 0.175

’pbol2’ LECT ppimp TERM

ZC -0.0154 R 10.E-3

COND SPHE XC 0.125

YC 0.175 ZC -0.0154 R 10.E-3

’pbol3’ LECT ppimp TERM

COND SPHE XC 0.175

YC 0.125 ZC -0.0154 R 10.E-3

’pbol4’ LECT ppimp TERM

COND SPHE XC 0.175

YC 0.0625 ZC -0.0154 R 10.E-3

’pbolts’ LECT pbol1 pbol2 pbol3 pbol4 TERM
’PrCen’ LECT pairb TERM

COND NEAR POIN 0.0 0.0 0.0

’PrSen6’ LECT pairb TERM

COND NEAR POIN 0.175 0.0 0.0

’pinada’ LECT plate TERM

COND BOX X0 0.0 Y0 0.0 Z0 -0.1
DX 0.15 DY 0.15 DZ 0.2

LECT uframe TERM COND Z GT 0.01539
LECT mesh TERM COND X LT 0.0001
LECT mesh TERM COND Y LT 0.0001

NGRO 9 ’bloc’
’symx’
’symy’
’symxr’ LECT plate TERM COND X LT 0.0001
’symyr’ LECT plate TERM COND Y LT 0.0001
’cen’
’axis1’ LECT plate TERM COND X LT 0.0001
’axis2’ LECT plate TERM COND Y LT 0.0001
’plateN’ LECT plate DIFF axis1 axis2 TERM

LECT plate TERM COND NEAR POIN 0.0 0.0 0.0

COUL VERT LECT plate

TERM
ROSE LECT lframe TERM
TURQ LECT uframe bolts TERM
ROUG LECT pairb
TERM
JAUN LECT pbolts TERM
GR50 LECT ppimp DIFF pbolts TERM
ADAP THRS ECRO 11 TMIN 0.1 TMAX 0.5 MAXL 3

LECT pinada TERM

MATE VPJC RO 2700.0 YOUN 70.0E9 NU 0.3 ELAS 80.0E6 mxit 500

QR1 49.3E6 CR1 1457.1 QR2 5.2E6 CR2 121.5
PDOT 5.E-4 C 0.014 TQ 0.9 CP 910.0
TM 893.0 M 0.0 DC 1.0 WC 44.6E6

LECT plate _q4gs TERM
VPJC RO 7850.0 YOUN 2.1E11 NU 0.33 ELAS 3.7E8 mxit 500

QR1 2.364E8 CR1 39.3 QR2 4.081E8 CR2 4.5
PDOT 5.E-4 C 1.E-3 TQ 0.9 CP 452.0
TM 1800.0 M 0.0 DC 0.9 WC 473.0E6
LECT lframe uframe bolts TERM

IMPE PIMP RO 7850.0 PRES 0 PREF 0

LECT ppimp DIFF pbol1 pbol2 pbol3 pbol4 TERM

IMPE PIMP RO 7850.0 PRES 340.e6 PREF 0
LECT pbol1 pbol2 pbol3 pbol4 TERM

IMPE AIRB X 0.0 Y 0.0 Z -0.25

MASS 0.0402 TAUT ANGL COEF 1.0
LECT pairb _cl3d TERM

LINK COUP SPLT NONE SOLV PARD

BLOQ 123 LECT bloc TERM
BLOQ 1 LECT symx TERM
BLOQ 2 LECT symy TERM
BLOQ 56 LECT symxr TERM
BLOQ 46 LECT symyr TERM
PINB SELF MLEV 0 LECT pinada TERM
GLIS 2 FROT MUST 0.1 MUDY 0.1 GAMM 0 ! Contact surface #1

PGAP 0.4E-3
MAIT LECT lframe TERM
PESC LECT plateN TERM
FROT MUST 0.1 MUDY 0.1 GAMM 0 ! Contact surface #2
PGAP 0.4E-3
MAIT LECT uframeb TERM
PESC LECT plateN

TERM

ECRI VITE TFRE 1.E-3

POIN LECT 1 TERM
NOEL

FICH SPLI ALIC TFRE 1.0E-4

OPTI NOTE
JAUM
CSTA 0.5
GLIS NORM ELEM
LOG 1
LMST
ADAP RCON
PINS GRID DPIN 1.01

MEAS ! Measurement commands (batch)

OBJE LECT pbolts TERM
EMIN LECT pbolts TERM
EMAX LECT pbolts TERM
CALC TINI 0.0 TEND 10.E-3
FIN

a0bg02a.epx

A0BG02A
ECHO

CONV WIN
OPTI PRIN
RESU SPLI ALIC ’a0bg02.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================

45

PLAY
CAME
!

1 EYE -7.24266E-01 -6.53429E-01

1.00071E+00 ! Tilted view

8.72148E-01 3.06624E-01 -3.77772E-01 5.12661E-02

Q
VIEW 6.27507E-01 5.73576E-01 -5.26541E-01
RIGH 7.09321E-01 -1.42244E-01 6.90385E-01
UP
4.96109E-01
FOV

-3.21091E-01
2.48819E+01

8.06707E-01

3.09460E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 9.95290E-02 9.95654E-02
!RSPHERE: 3.54812E-01
!RADIUS : 1.31281E+00
!ASPECT : 1.00000E+00
: 9.57994E-01
!NEAR
!FAR
: 2.02243E+00
CAME
!

9.95290E-02

9.95654E-02 -5.77571E-01! View from back

0.00000E+00

2 EYE
Q
-2.05103E-10 0.00000E+00 -1.00000E+00
VIEW -4.10207E-10 0.00000E+00 1.00000E+00
RIGH -1.00000E+00 0.00000E+00 -4.10207E-10
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

3.09460E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 9.95290E-02 9.95654E-02
!RSPHERE: 3.54812E-01
!RADIUS : 8.87031E-01
!ASPECT : 1.00000E+00
: 5.32219E-01
!NEAR
!FAR
: 1.59666E+00
SCEN GEOM NAVI FREE
FACE SBAC
PINB CDES JOIN

!
!VECT SCCO FIEL VITE SCAL USER PROG 0 PAS 10 70 TERM
!ISO FELE FIEL ECRO 3 SCAL USER PROG 0.02 PAS 0.02 0.28 TERM

LIMA ON
SLER CAM1 1 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 101 FPS 15 KFRE 10 COMP -1

OBJE LECT tous DIFF pairb TERM NFAI REND

GOTR LOOP 99 OFFS FICH AVI CONT NOCL

OBJE LECT tous DIFF pairb TERM NFAI REND

GO
TRAC OFFS FICH AVI CONT

OBJE LECT tous DIFF pairb TERM NFAI REND

ENDPLAY
*=======================================================================
FIN

a0bg02z.epx

A0BG02Z
ECHO

CONV WIN
OPTI PRIN
RESU SPLI ALIC ’a0bg02.ali’ GARD PSCR
SORT VISU NSTO 101
FIN

adpi04.epx

ADPI04
ECHO

CONV WIN
LAGR CPLA
DIME ADAP NPOI 62 Q42L 56 NPIN 56 ENDA TERM
GEOM LIBR POIN 8 Q42L 2 TERM

1 0.415 1 1.415

0 1.415

1 -1 1 0 0 0

0 0.415
0 -1
1 2 3 4
5 6 7 8

COMP EPAI 1. LECT 1 2 _q42l TERM
MATE VM23 RO 8000. YOUN 1.D11 NU 0.3 ELAS 2.D8

TRAC 3 2.D8 2.D-3 3.D8 1. 3.1D8 2.
LECT 1 2 _q42l TERM

LINK COUP

PINB BODY LECT 1 TERM
BODY LECT 2 TERM
INIT VITE 2 -100 LECT 1 PAS 1 4 TERM
100 LECT 5 PAS 1 8 TERM

VITE 2

ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 1.E-3

FICH ALIC FREQ 1

OPTI PAS AUTO NOTE LOG 1
PINS DUMP STAT

CALC TINI 0. TEND 0.0048D0
PLAY
CAME
!

2.60000E-02

5.00000E-01
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

5.71296E+00

0.00000E+00

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 5.00000E-01 2.60000E-02
!RSPHERE: 1.32860E+00
!RADIUS : 5.71296E+00
!ASPECT : 1.00000E+00
: 4.38437E+00
!NEAR
!FAR
: 8.37016E+00
SCEN GEOM NAVI FREE
PINB JOIN

ISO FELE FIEL ECRO 3 SCAL USER PROG 0.02 PAS 0.02 0.28 TERM

SLER CAM1 1 NFRA 1
ADAP

SPLI 1
SPLI 2
SPLI 3
SPLI 4
SPLI 9
SPLI 10
SPLI 11
SPLI 12
SPLI 15
SPLI 16
SPLI 21
SPLI 22
SPLI 25
SPLI 26

TERM
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 200 FPS 15 KFRE 10 COMP -1 REND
GOTR LOOP 198 OFFS FICH AVI CONT NOCL REND
GO
TRAC OFFS FICH AVI CONT REND
ENDPLAY
FIN

adpi05.epx

ADPI05
ECHO

CONV WIN
LAGR CPLA
DIME ADAP NPOI 62 Q42L 56 NPIN 56 ENDA TERM
GEOM LIBR POIN 8 Q42L 2 TERM

1 0.052 1 1.052

0 1.052

1 -1 1 0 0 0

0 0.052
0 -1
1 2 3 4
5 6 7 8

COMP EPAI 1. LECT 1 2 _q42l TERM
MATE VM23 RO 8000. YOUN 1.D11 NU 0.3 ELAS 2.D8

TRAC 3 2.D8 2.D-3 3.D8 1. 3.1D8 2.
LECT 1 2 _q42l TERM

LINK COUP

PINB BODY LECT 1 TERM
BODY LECT 2 TERM
INIT VITE 2 -100 LECT 1 PAS 1 4 TERM
100 LECT 5 PAS 1 8 TERM

VITE 2
ADAP SPLI LEVE 2 LECT 1 2 TERM

SPLI LEVE 3 LECT 3 4 9 10 TERM
SPLI LEVE 4 LECT 11 12 15 16 21 22 25 26 TERM

ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 1.E-3

FICH ALIC FREQ 1

OPTI PAS AUTO NOTE LOG 1
PINS DUMP STAT
CALC TINI 0. TEND 0.003D0
PLAY
CAME
!

5.00000E-01 2.60000E-02
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

5.71296E+00

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 5.00000E-01 2.60000E-02 0.00000E+00
!RSPHERE: 1.32860E+00
!RADIUS : 5.71296E+00
!ASPECT : 1.00000E+00
: 4.38437E+00
!NEAR
!FAR
: 8.37016E+00
SCEN GEOM NAVI FREE
PINB JOIN

VECT SCCO FIEL VITE SCAL USER PROG 0 PAS 10 70 TERM
ISO FELE FIEL ECRO 3 SCAL USER PROG 0.02 PAS 0.02 0.28 TERM

SLER CAM1 1 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 141 FPS 15 KFRE 10 COMP -1 REND
GOTR LOOP 139 OFFS FICH AVI CONT NOCL REND
GO
TRAC OFFS FICH AVI CONT REND
ENDPLAY
FIN

bm mpi adap pinballs.epx

$ BM_MPI_ADAP_PINBALLS
Test MPI 2D adap + pinballs

TOUS VFAUCHER 15/01/21 21:41:02 #2816

ECHO BMPI

DPLA SCLM ROB DACT 1
ADAP MLVL 4

CASTEM TOUT

DIME TERM

GEOM CAR1 STR1 STR2 TERM

ADAP
!

Criterion based on the velocity curvature
INDI VITE

VECT SCCO FIEL VITE SCAL USER PROG 0 PAS 10 70 TERM

EMIN 1.E-3

46

TYPE CURV
STRA PELE 5000 ALFA 4
CERR 1.0 LECT STR1 STR2 TERM

PCLD

GAP MASTER LECT STR1 TERM
SLAVE LECT STR2 TERM
MAXL 3
RADI 0.06

GAP MASTER LECT STR2 TERM
SLAVE LECT STR1 TERM
MAXL 3
RADI 0.06

INDI NIND 1

ELEM LECT STR1 STR2 TERM
MAXL 3

MATE

CSTA 0.5

CALC TINI 0. TEND 0.06D0
*=======================================================================
PLAY
CAME
!

2.50000E+00 2.02417E-01
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.11668E+01

0.00000E+00

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 2.50000E+00 2.02417E-01
!RSPHERE: 4.60149E+00
!RADIUS : 2.11668E+01
!ASPECT : 1.00000E+00
: 1.65654E+01
!NEAR
!FAR
: 3.03698E+01
SCEN GEOM NAVI FREE
FACE HFRO
PINB PARE

LINE YOUN 210.E7 NU 0.3 RO 7800. LECT STR1 STR2 TERM

VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LINK COUP

BLOQ 12 LECT LBL1 TERM
PINBALL BODY LECT STR1 TERM
BODY LECT STR2 TERM

INIT VITE 2 -10. LECT STR2 TERM

ECRI COOR DEPL VITE ACCE FINT FEXT CONT ECRO FREQ 10

NOPO NOEL
FICH FORM PVTK TFREQ 4.E-4

MPI
GROUP AUTO
VARI DEPL VITE ACCE FEXT FINT ECRO INDI
PCLD
PINB

OPTI NOTE STEP IO CSTA 0.5

PINS EQVL
ADAP STAT

MAXL 4
PCLD MODE 2

CALC TINI 0. TEND 2.E-2

QUALIFICATION

DEPL COMP 1 LECT 232 TERM REFE -2.28660E-02 TOLE 5.E-2
DEPL COMP 2 LECT 232 TERM REFE -4.23665E-02 TOLE 1.E-2

FIN

BEGIN DESCRIPTION
Bench for 2D-adaptivity contact by pinballs with MPI.
Impact and rebound of a solid on another.
Combined adaptivity criteria near the contact surface and linked to the
curvature of the velocity field.
Qualification on the displacement of the bottom left corner of the
impacting solid.
END DESCRIPTION

piad01.epx

PIAD01
ECHO

CONV WIN
LAGR CPLA
DIME ADAP NPOI 92 Q42L 88 NPIN 88 ENDA TERM
GEOM LIBR POIN 24 Q42L 11 TERM
4 0 5 0
4 1 5 1

0 0
0 1

1 0 2 0 3 0
1 1 2 1 3 1
1 2
1 3
1 4

2 2 3 2 4 2
2 3 3 3 4 3
2 4 3 4 4 4

1 2 8 7
2 3 9 8
3 4 10 9
4 5 11 10
5 6 12 11
13 14 18 17
14 15 19 18
15 16 20 19
17 18 22 21
18 19 23 22
19 20 24 23

COMP GROU 2 ’target’ LECT 1 PAS 1 5 TERM

’projec’ LECT 6 PAS 1 11 TERM

EPAI 1.0 LECT target projec _q42l TERM
MATE VM23 RO 8000. YOUN 1.D11 NU 0.3 ELAS 1.D11

TRAC 1 1.D11 1.0
LECT target projec _q42l TERM

OPTI PINS EQVL
LINK COUP SPLT NONE

PINB BODY MLEV 0 LECT target TERM
BODY MLEV 0 LECT projec TERM

ADAP LMAX 3 SCAL 1.0 NOUN

INIT VITE 2 -100 LECT projec TERM
ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

SLER CAM1 1 NFRA 1
FREQ 0 TFRE 0.5E-3
TRAC OFFS FICH AVI NOCL NFTO 121 FPS 15 KFRE 10 COMP -1 REND
GOTR LOOP 119 OFFS FICH AVI CONT NOCL REND
GO
TRAC OFFS FICH AVI CONT REND
ENDPLAY
*=======================================================================
FIN

piad02.epx

PIAD02
ECHO

CONV WIN
LAGR CPLA
DIME ADAP NPOI 92 Q42L 88 NPIN 88 ENDA TERM
GEOM LIBR POIN 24 Q42L 11 TERM
4 0 5 0
4 1 5 1

0 0
0 1

1 0 2 0 3 0
1 1 2 1 3 1
1 2
1 3
1 4

2 2 3 2 4 2
2 3 3 3 4 3
2 4 3 4 4 4

1 2 8 7
2 3 9 8
3 4 10 9
4 5 11 10
5 6 12 11
13 14 18 17
14 15 19 18
15 16 20 19
17 18 22 21
18 19 23 22
19 20 24 23

COMP GROU 2 ’target’ LECT 1 PAS 1 5 TERM

’projec’ LECT 6 PAS 1 11 TERM

EPAI 1.0 LECT target projec _q42l TERM
MATE VM23 RO 8000. YOUN 1.D11 NU 0.3 ELAS 1.D11

TRAC 1 1.D11 1.0
LECT target projec _q42l TERM

OPTI PINS EQVL
LINK COUP SPLT NONE

PINB BODY MLEV 0 LECT target TERM
BODY MLEV 0 LECT projec TERM

ADAP LMAX 3 SCAL 1.0

INIT VITE 2 -100 LECT projec TERM
ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5

CALC TINI 0. TEND 0.06D0
*=======================================================================
PLAY
CAME
!

2.50000E+00 2.02417E-01
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.11668E+01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 2.50000E+00 2.02417E-01 0.00000E+00
!RSPHERE: 4.60149E+00
!RADIUS : 2.11668E+01
!ASPECT : 1.00000E+00
: 1.65654E+01
!NEAR
!FAR
: 3.03698E+01
SCEN GEOM NAVI FREE
FACE HFRO
PINB PARE

VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

SLER CAM1 1 NFRA 1
FREQ 0 TFRE 0.5E-3
TRAC OFFS FICH AVI NOCL NFTO 121 FPS 15 KFRE 10 COMP -1 REND
GOTR LOOP 119 OFFS FICH AVI CONT NOCL REND
GO
TRAC OFFS FICH AVI CONT REND
ENDPLAY
*=======================================================================
FIN

47

piad03.epx

PIAD03
ECHO

CONV WIN
LAGR CPLA
GEOM LIBR POIN 24 Q42L 11 TERM
4 0 5 0
4 1 5 1

0 0
0 1

1 0 2 0 3 0
1 1 2 1 3 1
1 2
1 3
1 4

2 2 3 2 4 2
2 3 3 3 4 3
2 4 3 4 4 4

1 2 8 7
2 3 9 8
3 4 10 9
4 5 11 10
5 6 12 11
13 14 18 17
14 15 19 18
15 16 20 19
17 18 22 21
18 19 23 22
19 20 24 23

COMP GROU 2 ’target’ LECT 1 PAS 1 5 TERM

’projec’ LECT 6 PAS 1 11 TERM

EPAI 1.0 LECT target projec TERM

MATE VM23 RO 8000. YOUN 1.D11 NU 0.3 ELAS 1.D11

TRAC 1 1.D11 1.0
LECT target projec TERM

OPTI PINS EQVL
LINK COUP SPLT NONE

PINB BODY MLEV 2 LECT target TERM
BODY MLEV 2 LECT projec TERM

INIT VITE 2 -100 LECT projec TERM
ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5

CALC TINI 0. TEND 0.06D0
*=======================================================================
PLAY
CAME
!

2.50000E+00
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

2.02417E-01

2.11668E+01

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
1.00000E+00 0.00000E+00
UP
FOV

0.00000E+00
2.48819E+01

0.00000E+00

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 2.50000E+00 2.02417E-01
!RSPHERE: 4.60149E+00
!RADIUS : 2.11668E+01
!ASPECT : 1.00000E+00
: 1.65654E+01
!NEAR
!FAR
: 3.03698E+01
SCEN GEOM NAVI FREE
FACE HFRO
PINB PARE CDES

VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

SLER CAM1 1 NFRA 1
FREQ 0 TFRE 0.5E-3
TRAC OFFS FICH AVI NOCL NFTO 121 FPS 15 KFRE 10 COMP -1 REND
GOTR LOOP 119 OFFS FICH AVI CONT NOCL REND
GO
TRAC OFFS FICH AVI CONT REND
ENDPLAY
*=======================================================================
FIN

piad04.epx

PIAD04
ECHO

CONV WIN
LAGR CPLA
DIME ADAP NPOI 92 Q42L 88 NPIN 88 ENDA TERM
GEOM LIBR POIN 24 Q42L 11 TERM
4 0 5 0
4 1 5 1

0 0
0 1

1 0 2 0 3 0
1 1 2 1 3 1
1 2
1 3
1 4

2 2 3 2 4 2
2 3 3 3 4 3
2 4 3 4 4 4

BODY MLEV 3 LECT projec TERM

ADAP LMAX 3 SCAL 1.0

INIT VITE 2 -100 LECT projec TERM
ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5

CALC TINI 0. TEND 0.06D0
*=======================================================================
PLAY
CAME
!

2.50000E+00 2.02417E-01
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

2.11668E+01

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 2.50000E+00 2.02417E-01 0.00000E+00
!RSPHERE: 4.60149E+00
!RADIUS : 2.11668E+01
!ASPECT : 1.00000E+00
: 1.65654E+01
!NEAR
!FAR
: 3.03698E+01
SCEN GEOM NAVI FREE
FACE HFRO
PINB PARE CDES

VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

SLER CAM1 1 NFRA 1
FREQ 0 TFRE 0.5E-3
TRAC OFFS FICH AVI NOCL NFTO 121 FPS 15 KFRE 10 COMP -1 REND
GOTR LOOP 119 OFFS FICH AVI CONT NOCL REND
GO
TRAC OFFS FICH AVI CONT REND
ENDPLAY
*=======================================================================
FIN

pith07.dgibi

opti echo 1;
opti titr ’pith07’;
opti dime 3 elem cub8;
opti trac psc ftra ’pith07_mesh.ps’;
opti sauv form ’pith07.msh’;
*
p1 = -3 -3 0;
3 -3 0;
p2 =
3 0 0;
p3 =
p4 = -3
0 0;
c1 = p1 d 12 p2;
c2 = p2 d 6 p3;
c3 = p3 d 12 p4;
c4 = p4 d 6 p1;
bastar = dall c1 c2 c3 c4 plan;
target = bastar volu tran 1 (0 0 0.5);
*
gap = 0.1;
tol = 0.01;
*
p5 = -5
p6 =
p7 =
p8 =
p9 =
p10= -4
pc =
c5 = p10 d 2 p5;
proj1 = c5 rota 16 90 pc (pc plus (0 0 1));
c6 = p9
proj2 = c6 rota 16 90 pc (pc plus (0 0 1));
baspro = proj1 et proj2;
elim tol (baspro et p7 et p8);
projec = baspro volu tran 1 (0 0 0.5);
*
mesh = target et projec;
*
tass mesh noop;
trac cach qual mesh;
*
sauv form mesh;
fin;

(5 + gap) 0;
0 (0 + gap) 0;
5 (5 + gap) 0;
4 (5 + gap) 0;
0 (1 + gap) 0;
(5 + gap) 0;
0 (5 + gap) 0;

d 2 p6;

1 2 8 7
2 3 9 8
3 4 10 9
4 5 11 10
5 6 12 11
13 14 18 17
14 15 19 18
15 16 20 19
17 18 22 21
18 19 23 22
19 20 24 23

COMP GROU 2 ’target’ LECT 1 PAS 1 5 TERM

’projec’ LECT 6 PAS 1 11 TERM

EPAI 1.0 LECT target projec _q42l TERM
MATE VM23 RO 8000. YOUN 1.D11 NU 0.3 ELAS 1.D11

TRAC 1 1.D11 1.0
LECT target projec _q42l TERM

OPTI PINS EQVL
LINK COUP SPLT NONE

PINB BODY MLEV 3 LECT target TERM

pith07.epx

PITH07
ECHO
!CONV WIN
EROS 1.0
CAST mesh
LAGR TRID
DIME ADAP NPOI 2993 CUBE 2152 NPIN 2152 ENDA TERM
GEOM CUBE target projec TERM
COMP COUL VERT LECT target TERM
TURQ LECT projec TERM

NGRO 1 ’bloc’ LECT target TERM COND Y LT -2.99

ADAP THRS ECRO 13 TMIN 0.1 TMAX 0.5 MAXL 3

LECT projec TERM
MATE LINE RO 8000. YOUN 1.D11 NU 0.3
LECT target TERM

DPDC RO 2360 YOUN 40.1E+9 NU 0.2

FC 75.E+6 DAGG 16.0E-3 VERS 8 EFVI

48

EROD ENDT 0.99 ENDC 0.99 DVOL 0.3
LECT projec _cube TERM

OPTI PINS EQVL
LINK COUP SPLT NONE

BLOQ 123 LECT bloc TERM
PINB BODY MLEV 0 LECT target TERM
SELF MLEV 0 LECT projec TERM

INIT VITE 2 -100 LECT projec TERM
ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

!RSPHERE: 6.47808E+00
!RADIUS : 2.26733E+01
!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
!FAR
: 3.56294E+01
SCEN GEOM NAVI FREE
FACE HFRO

!LINE HEOU SSHA
PINB PARE CDES

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5
ADAP RCON
PINS GRID DPIN 1.01
CALC TINI 0. TEND 0.02D0
FIN

pith07a.epx

PITH07A
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith07.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

0.00000E+00
2.61623E+01 ! Front view
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
!FAR
: 3.88685E+01
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
UP
9.31096E-01 -2.76477E-01
FOV

2.37951E-01
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.26733E+01
!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
!FAR
: 3.56294E+01
SCEN GEOM NAVI FREE
!FACE HFRO
!PINB PARE

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 41 FPS 15 KFRE 10 COMP -1 NFAI REND
GOTR LOOP 39 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith07b.epx

PITH07B
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith07.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

0.00000E+00
2.61623E+01 ! Front view
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
!FAR
: 3.88685E+01
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
UP
9.31096E-01 -2.76477E-01
FOV

2.37951E-01
2.48819E+01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00

2.50000E-01

49

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 41 FPS 15 KFRE 10 COMP -1 NFAI REND
GOTR LOOP 39 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith07c.epx

PITH07C
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith07.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

2.61623E+01 ! Front view
0.00000E+00
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
!FAR
: 3.88685E+01
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
UP
9.31096E-01 -2.76477E-01
FOV

2.37951E-01
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.26733E+01
!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
!FAR
: 3.56294E+01
SCEN GEOM NAVI FREE
FACE HFRO

!LINE HEOU SSHA

PINB CDES

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 41 FPS 15 KFRE 10 COMP -1 NFAI REND
GOTR LOOP 39 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith07d.epx

PITH07D
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith07.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

0.00000E+00
2.61623E+01 ! Front view
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
1.00000E+00 0.00000E+00
UP
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
!FAR
: 3.88685E+01
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
UP
9.31096E-01 -2.76477E-01
FOV

2.37951E-01
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.26733E+01
!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
!FAR
: 3.56294E+01
SCEN GEOM NAVI FREE
FACE HFRO

!LINE HEOU SSHA

PINB PARE

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 41 FPS 15 KFRE 10 COMP -1 NFAI REND
GOTR LOOP 39 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith07z.epx

PITH07Z
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith07.ali’ GARD PSCR
SORT VISU NSTO 41
FIN

pith08.dgibi

opti echo 1;
opti titr ’pith08’;
opti dime 3 elem cub8;
opti trac psc ftra ’pith08_mesh.ps’;
opti sauv form ’pith08.msh’;
*
p1 = -3 -3 0;
3 -3 0;
p2 =
3 0 0;
p3 =
p4 = -3
0 0;
c1 = p1 d 12 p2;
c2 = p2 d 6 p3;
c3 = p3 d 12 p4;
c4 = p4 d 6 p1;
bastar = dall c1 c2 c3 c4 plan;
target = bastar volu tran 1 (0 0 0.5);
*
gap = 0.1;
tol = 0.01;
*
p5 = -5
p6 =
p7 =
p8 =
p9 =
p10= -4
pc =
c5 = p10 d 2 p5;
proj1 = c5 rota 16 90 pc (pc plus (0 0 1));
c6 = p9
proj2 = c6 rota 16 90 pc (pc plus (0 0 1));
baspro = proj1 et proj2;
elim tol (baspro et p7 et p8);
projec = baspro volu tran 1 (0 0 0.5);
*
mesh = target et projec;
*
tass mesh noop;
trac cach qual mesh;
*
sauv form mesh;
fin;

(5 + gap) 0;
0 (0 + gap) 0;
5 (5 + gap) 0;
4 (5 + gap) 0;
0 (1 + gap) 0;
(5 + gap) 0;
0 (5 + gap) 0;

d 2 p6;

pith08.epx

PITH08
ECHO
!CONV WIN
EROS 1.0
CAST mesh
LAGR TRID
DIME ADAP NPOI 6714 CUBE 5368 NPIN 5368 ENDA TERM
GEOM CUBE target projec TERM
COMP COUL VERT LECT target TERM
TURQ LECT projec TERM

NGRO 1 ’bloc’ LECT target TERM COND Y LT -2.99

MATE LINE RO 8000. YOUN 1.D11 NU 0.3
LECT target TERM

DPDC RO 2360 YOUN 40.1E+9 NU 0.2
FC 75.E+6 DAGG 16.0E-3
EROD ENDT 0.99 ENDC 0.99 DVOL 0.3
LECT projec _cube TERM

VERS 8 EFVI

OPTI PINS EQVL
LINK COUP SPLT NONE

BLOQ 123 LECT bloc TERM
PINB BODY MLEV 0 LECT target TERM
SELF MLEV 0 LECT projec TERM
ADAP LMAX 3 SCAL 1.0 SCAS 0.55

INIT VITE 2 -100 LECT projec TERM
ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5
ADAP RCON
PINS GRID DPIN 1.01
CALC TINI 0. TEND 0.02D0
FIN

pith08a.epx

PITH08A
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith08.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

0.00000E+00
2.61623E+01 ! Front view
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
: 3.88685E+01
!FAR
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
UP
9.31096E-01 -2.76477E-01
FOV

2.37951E-01
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.26733E+01
!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
!FAR
: 3.56294E+01
SCEN GEOM NAVI FREE
!FACE HFRO
!PINB PARE

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
!TRAC OFFS FICH AVI NOCL NFTO 41 FPS 15 KFRE 10 COMP -1 NFAI REND
TRAC OFFS FICH AVI NOCL NFTO 27 FPS 15 KFRE 10 COMP -1 NFAI REND
!GOTR LOOP 39 OFFS FICH AVI CONT NOCL NFAI REND
GOTR LOOP 25 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith08b.epx

PITH08B
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith08.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

0.00000E+00
2.61623E+01 ! Front view
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
!FAR
: 3.88685E+01
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
UP
9.31096E-01 -2.76477E-01
FOV

2.37951E-01
2.48819E+01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.26733E+01

2.50000E-01

50

!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
!FAR
: 3.56294E+01
SCEN GEOM NAVI FREE
FACE HFRO

!LINE HEOU SSHA
PINB PARE CDES

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 27 FPS 15 KFRE 10 COMP -1 NFAI REND
GOTR LOOP 25 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith08c.epx

PITH08C
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith08.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

2.61623E+01 ! Front view
0.00000E+00
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
!FAR
: 3.88685E+01
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
UP
9.31096E-01 -2.76477E-01
FOV

2.37951E-01
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.26733E+01
!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
!FAR
: 3.56294E+01
SCEN GEOM NAVI FREE
FACE HFRO

!LINE HEOU SSHA

PINB CDES

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 27 FPS 15 KFRE 10 COMP -1 NFAI REND
GOTR LOOP 25 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith08d.epx

PITH08D
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith08.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

0.00000E+00
2.61623E+01 ! Front view
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
!FAR
: 3.88685E+01
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
9.31096E-01 -2.76477E-01
UP

2.37951E-01

2.50000E-01

FOV

2.48819E+01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.26733E+01
!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
!FAR
: 3.56294E+01
SCEN GEOM NAVI FREE
FACE HFRO

!LINE HEOU SSHA

PINB PARE

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 27 FPS 15 KFRE 10 COMP -1 NFAI REND
GOTR LOOP 25 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith08z.epx

PITH08Z
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith08.ali’ GARD PSCR
SORT VISU NSTO 41
FIN

pith09.dgibi

opti echo 1;
opti titr ’pith09’;
opti dime 3 elem cub8;
opti trac psc ftra ’pith09_mesh.ps’;
opti sauv form ’pith09.msh’;
*
p1 = -3 -3 0;
3 -3 0;
p2 =
3 0 0;
p3 =
p4 = -3
0 0;
c1 = p1 d 12 p2;
c2 = p2 d 6 p3;
c3 = p3 d 12 p4;
c4 = p4 d 6 p1;
bastar = dall c1 c2 c3 c4 plan;
target = bastar volu tran 1 (0 0 0.5);
*
gap = 0.1;
tol = 0.01;
*
p5 = -5
p6 =
p7 =
p8 =
p9 =
p10= -4
pc =
c5 = p10 d 2 p5;
proj1 = c5 rota 16 90 pc (pc plus (0 0 1));
c6 = p9
proj2 = c6 rota 16 90 pc (pc plus (0 0 1));
baspro = proj1 et proj2;
elim tol (baspro et p7 et p8);
projec = baspro volu tran 1 (0 0 0.5);
*
mesh = target et projec;
*
tass mesh noop;
trac cach qual mesh;
*
sauv form mesh;
fin;

(5 + gap) 0;
0 (0 + gap) 0;
5 (5 + gap) 0;
4 (5 + gap) 0;
0 (1 + gap) 0;
(5 + gap) 0;
0 (5 + gap) 0;

d 2 p6;

pith09.epx

PITH09
ECHO
!CONV WIN
EROS 1.0
CAST mesh
LAGR TRID
DIME ADAP NPOI 7000 CUBE 6000 NPIN 6000 ENDA TERM
GEOM CUBE target projec TERM
COMP COUL VERT LECT target TERM
TURQ LECT projec TERM

NGRO 1 ’bloc’ LECT target TERM COND Y LT -2.99

ADAP THRS ECRO 13 TMIN 0.1 TMAX 0.5 MAXL 3

LECT projec TERM
MATE LINE RO 8000. YOUN 1.D11 NU 0.3
LECT target TERM

DPDC RO 2360 YOUN 40.1E+9 NU 0.2

FC 75.E+6 DAGG 16.0E-3 VERS 8 EFVI
EROD ENDT 0.99 ENDC 0.99 DVOL 0.3
LECT projec _cube TERM

51

OPTI PINS EQVL
LINK COUP SPLT NONE

BLOQ 123 LECT bloc TERM
PINB BODY MLEV 0 LECT target TERM
SELF MLEV 0 LECT projec TERM
ADAP LMAX 3 SCAL 1.0 SCAS 0.55

INIT VITE 2 -100 LECT projec TERM
ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

!RADIUS : 2.26733E+01
!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
: 3.56294E+01
!FAR
SCEN GEOM NAVI FREE
FACE HFRO

!LINE HEOU SSHA
PINB PARE CDES

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5
ADAP RCON
PINS GRID DPIN 1.01

CALC TINI 0. TEND 0.02D0 TFAI 3.E-6
FIN

pith09a.epx

PITH09A
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith09.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

0.00000E+00
2.61623E+01 ! Front view
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
!FAR
: 3.88685E+01
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
9.31096E-01 -2.76477E-01
UP
FOV

2.37951E-01
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.26733E+01
!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
: 3.56294E+01
!FAR
SCEN GEOM NAVI FREE
!FACE HFRO
!PINB PARE

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 26 FPS 15 KFRE 10 COMP -1 NFAI REND
GOTR LOOP 24 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith09b.epx

PITH09B
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith09.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

2.61623E+01 ! Front view
0.00000E+00
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
!FAR
: 3.88685E+01
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
UP
9.31096E-01 -2.76477E-01
FOV

2.37951E-01
2.48819E+01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00

2.50000E-01

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 26 FPS 15 KFRE 10 COMP -1 NFAI REND
GOTR LOOP 24 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith09c.epx

PITH09C
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith09.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

0.00000E+00
2.61623E+01 ! Front view
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
!FAR
: 3.88685E+01
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
UP
9.31096E-01 -2.76477E-01
FOV

2.37951E-01
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.26733E+01
!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
!FAR
: 3.56294E+01
SCEN GEOM NAVI FREE
FACE HFRO

!LINE HEOU SSHA

PINB CDES

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 26 FPS 15 KFRE 10 COMP -1 NFAI REND
GOTR LOOP 24 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith09d.epx

PITH09D
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith09.ali’ GARD PSCR
SORT VISU NSTO 1
*=======================================================================
PLAY
CAME
!

0.00000E+00
2.61623E+01 ! Front view
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1.01980E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

2.50000E-01

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.59123E+01
!ASPECT : 1.00000E+00
: 1.94342E+01
!NEAR
: 3.88685E+01
!FAR
CAME
!

2 EYE -1.56209E+01 9.23770E+00 1.44814E+01 ! Tilted view

9.00472E-01 -1.77386E-01 -3.93317E-01 -5.46453E-02

Q
VIEW 6.88956E-01 -3.62449E-01 -6.27671E-01
RIGH 6.84631E-01 4.11253E-02 7.27729E-01
UP
9.31096E-01 -2.76477E-01
FOV

2.37951E-01
2.48819E+01

!NAVIGATION MODE: ROTATING CAMERA

52

2.50000E-01

!CENTER : 0.00000E+00 1.01980E+00
!RSPHERE: 6.47808E+00
!RADIUS : 2.26733E+01
!ASPECT : 1.00000E+00
: 1.61952E+01
!NEAR
!FAR
: 3.56294E+01
SCEN GEOM NAVI FREE
FACE HFRO

!LINE HEOU SSHA

PINB PARE

!VECT SCCO FIEL VITE SCAL USER PROG 10 PAS 10 140 TERM

LIMA ON
SLER CAM1 2 NFRA 1
FREQ 1
TRAC OFFS FICH AVI NOCL NFTO 26 FPS 15 KFRE 10 COMP -1 NFAI REND
GOTR LOOP 24 OFFS FICH AVI CONT NOCL NFAI REND
GO
TRAC OFFS FICH AVI CONT NFAI REND
ENDPLAY
*=======================================================================
FIN

pith09z.epx

PITH09Z
ECHO

CONV WIN
OPTI PRIN
RESU ALIC ’pith09.ali’ GARD PSCR
SORT VISU NSTO 26
FIN

self01.epx

SELF01
ECHO

CONV WIN

EROS 1.0
LAGR CPLA
DIME ADAP NPOI 10 CAR1 10 NPIN 10 ENDA TERM
GEOM LIBR POIN 9 CAR1 4 TERM

1 0 2 0
1 1 2 1
1 2 2 2

0 0
0 1
0 2
1 2 5 4
2 3 6 5
4 5 8 7
5 6 9 8

COMP GROU 1 ’square’ LECT 1 PAS 1 4 TERM

COUL ROSE LECT square TERM
MATE LINE RO 8000. YOUN 1.D11 NU 0.3

LECT square _car1 TERM

OPTI PINS EQVL
LINK COUP SPLT NONE

PINB SELF MLEV 0 LECT square TERM

ADAP LMAX 3 SCAL 1.0 SCAS 1.0

ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5

CALC TINI 0. TEND 0.D0 NMAX 0
PLAY
CAME
!

1.00000E+00

1.00000E+00
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

6.42907E+00

3 4 8 7
5 6 10 9
6 7 11 10
7 8 12 11
9 10 14 13
10 11 15 14
11 12 16 15

COMP GROU 1 ’square’ LECT 1 PAS 1 9 TERM

COUL ROSE LECT square TERM
MATE LINE RO 8000. YOUN 1.D11 NU 0.3

LECT square _car1 TERM

OPTI PINS EQVL
LINK COUP SPLT NONE

PINB SELF MLEV 0 LECT square TERM

ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5

CALC TINI 0. TEND 0.D0 NMAX 0
PLAY
CAME
!

1.50000E+00 1.50000E+00
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
1.00000E+00 0.00000E+00
UP
FOV

0.00000E+00
2.48819E+01

9.13165E+00

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 1.50000E+00 1.50000E+00 0.00000E+00
!RSPHERE: 2.28291E+00
!RADIUS : 9.13165E+00
!ASPECT : 1.00000E+00
: 6.84874E+00
!NEAR
!FAR
: 1.36975E+01
SCEN GEOM NAVI FREE
FACE HFRO
PINB PARE

SLER CAM1 1 NFRA 1
TRAC OFFS FICH BMP REND
ENDPLAY
FIN

self03.epx

SELF03
ECHO

CONV WIN

EROS 1.0
LAGR CPLA
DIME ADAP NPOI 144 CAR1 160 NPIN 160 ENDA TERM
GEOM LIBR POIN 16 CAR1 9 TERM

1 0 2 0 3 0
1 1 2 1 3 1
1 2 2 2 3 2
1 3 2 3 3 3

0 0
0 1
0 2
0 3
1 2 6 5
2 3 7 6
3 4 8 7
5 6 10 9
6 7 11 10
7 8 12 11
9 10 14 13
10 11 15 14
11 12 16 15

COMP GROU 1 ’square’ LECT 1 PAS 1 9 TERM

COUL ROSE LECT square TERM
MATE LINE RO 8000. YOUN 1.D11 NU 0.3

LECT square _car1 TERM

OPTI PINS EQVL
LINK COUP SPLT NONE

PINB SELF MLEV 0 LECT square TERM

ADAP LMAX 3 SCAL 1.0 SCAS 1.0

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 1.00000E+00 1.00000E+00
!RSPHERE: 1.60727E+00
!RADIUS : 6.42907E+00
!ASPECT : 1.00000E+00
: 4.82180E+00
!NEAR
!FAR
: 9.64361E+00
SCEN GEOM NAVI FREE
FACE HFRO
PINB PARE

SLER CAM1 1 NFRA 1
TRAC OFFS FICH BMP REND
ENDPLAY
FIN

self02.epx

SELF02
ECHO

CONV WIN

EROS 1.0
LAGR CPLA
GEOM LIBR POIN 16 CAR1 9 TERM

1 0 2 0 3 0
1 1 2 1 3 1
1 2 2 2 3 2
1 3 2 3 3 3

0 0
0 1
0 2
0 3
1 2 6 5
2 3 7 6

0.00000E+00

ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5

CALC TINI 0. TEND 0.D0 NMAX 0
PLAY
CAME
!

1.50000E+00 1.50000E+00
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

9.13165E+00

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 1.50000E+00 1.50000E+00 0.00000E+00
!RSPHERE: 2.28291E+00
!RADIUS : 9.13165E+00
!ASPECT : 1.00000E+00
: 6.84874E+00
!NEAR
!FAR
: 1.36975E+01
SCEN GEOM NAVI FREE
FACE HFRO
PINB PARE

SLER CAM1 1 NFRA 1
TRAC OFFS FICH BMP REND
ENDPLAY
FIN

self04.epx

53

SELF04
ECHO

CONV WIN

EROS 1.0
LAGR CPLA
DIME ADAP NPOI 144 CAR1 160 NPIN 160 ENDA TERM
GEOM LIBR POIN 16 CAR1 9 TERM

1 0 2 0 3 0
1 1 2 1 3 1
1 2 2 2 3 2
1 3 2 3 3 3

0 0
0 1
0 2
0 3
1 2 6 5
2 3 7 6
3 4 8 7
5 6 10 9
6 7 11 10
7 8 12 11
9 10 14 13
10 11 15 14
11 12 16 15

COMP GROU 1 ’square’ LECT 1 PAS 1 9 TERM

COUL ROSE LECT square TERM
MATE LINE RO 8000. YOUN 1.D11 NU 0.3

LECT square _car1 TERM

OPTI PINS EQVL
LINK COUP SPLT NONE

PINB SELF MLEV 0 LECT square TERM

ADAP LMAX 3 SCAL 0.880 SCAS 0.880

ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5

CALC TINI 0. TEND 0.D0 NMAX 0
PLAY
CAME
!

1.50000E+00

1.50000E+00
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

9.13165E+00

0.00000E+00

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 1.50000E+00 1.50000E+00
!RSPHERE: 2.28291E+00
!RADIUS : 9.13165E+00
!ASPECT : 1.00000E+00
: 6.84874E+00
!NEAR
: 1.36975E+01
!FAR
SCEN GEOM NAVI FREE
FACE HFRO
PINB PARE

SLER CAM1 1 NFRA 1
TRAC OFFS FICH BMP REND
ENDPLAY
FIN

self05.epx

SELF05
ECHO

CONV WIN

EROS 1.0
LAGR CPLA
DIME ADAP NPOI 144 CAR1 160 NPIN 160 ENDA TERM
GEOM LIBR POIN 16 CAR1 9 TERM

1 0 2 0 3 0
1 1 2 1 3 1
1 2 2 2 3 2
1 3 2 3 3 3

0 0
0 1
0 2
0 3
1 2 6 5
2 3 7 6
3 4 8 7
5 6 10 9
6 7 11 10
7 8 12 11
9 10 14 13
10 11 15 14
11 12 16 15

COMP GROU 1 ’square’ LECT 1 PAS 1 9 TERM

COUL ROSE LECT square TERM
MATE LINE RO 8000. YOUN 1.D11 NU 0.3

LECT square _car1 TERM

OPTI PINS EQVL
LINK COUP SPLT NONE

PINB SELF MLEV 0 LECT square TERM

ADAP LMAX 3 SCAL 0.890 SCAS 0.890

ECRI DEPL VITE ACCE FINT FEXT FLIA FDEC CONT ECRO TFRE 0.005

FICH ALIC TFRE 0.0005

OPTI PAS AUTO NOTE LOG 1

CSTA 0.5

CALC TINI 0. TEND 0.D0 NMAX 0
PLAY
CAME
!

1.50000E+00 1.50000E+00
1.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

1 EYE
Q
VIEW 0.00000E+00 0.00000E+00 -1.00000E+00
RIGH 1.00000E+00 0.00000E+00 0.00000E+00
UP
1.00000E+00 0.00000E+00
FOV

0.00000E+00
2.48819E+01

9.13165E+00

!NAVIGATION MODE: ROTATING CAMERA
!CENTER : 1.50000E+00 1.50000E+00 0.00000E+00
!RSPHERE: 2.28291E+00
!RADIUS : 9.13165E+00
!ASPECT : 1.00000E+00
: 6.84874E+00
!NEAR
!FAR
: 1.36975E+01
SCEN GEOM NAVI FREE
FACE HFRO
PINB PARE

SLER CAM1 1 NFRA 1
TRAC OFFS FICH BMP REND
ENDPLAY
FIN

54

List of input ﬁles

A
a0bg02.dgibi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
a0bg02.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
a0bg02a.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
a0bg02z.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
adpi04.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
adpi05.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

B
bm mpi adap pinballs.epx . . . . . . . . . . . . . . . . . . . . 46

P
piad01.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
piad02.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
piad03.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
piad04.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
pith07.dgibi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
pith07.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
pith07a.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
pith07b.epx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
pith07c.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
pith07d.epx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
pith07z.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
pith08.dgibi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
pith08.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
pith08a.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
pith08b.epx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
pith08c.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
pith08d.epx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
pith08z.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
pith09.dgibi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
pith09.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
pith09a.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
pith09b.epx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
pith09c.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
pith09d.epx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
pith09z.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

S
self01.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
self02.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
self03.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
self04.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
self05.epx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

55

Europe Direct is a service to help you find answers to your questions about the European Union 
Free phone number (*): 00 800 6 7 8 9 10 11 
(*) Certain mobile telephone operators do not allow access to 00 800 numbers or these calls may be billed. 

A great deal of additional information on the European Union is available on the Internet. 
It can be accessed through the Europa server http://europa.eu 

How to obtain EU publications 

Our publications are available from EU Bookshop (http://bookshop.europa.eu), 
where you can place an order with the sales agent of your choice. 

The Publications Office has a worldwide network of sales agents. 
You can obtain their contact details by sending a fax to (352) 29 29-42758. 

L
B
-
N
A
-
2
7
8
8
8
-
E
N
-
N

JRC Mission 

As the Commission’s  
in-house science service,  
the Joint Research Centre’s  
mission is to provide EU  
policies with independent,  
evidence-based scientific  
and technical support  
throughout the whole  
policy cycle. 

Working in close  
cooperation with policy  
Directorates-General,  
the JRC addresses key  
societal challenges while  
stimulating innovation  
through developing  
new methods, tools  
and standards, and sharing  
its know-how with  
the Member States,  
the scientific community  
and international partners. 

Serving society  
Stimulating innovation 
Supporting legislation 

doi:10.27888/333017 

ISBN 978-92-79-57972-1 

2