pressure-time functions air blast_jrc46829
TRANSCRIPT
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
1/32
PUBSY JRC 46829
Pressure-Time Functions for theDescription of Air Blast Waves
Martin Larcher
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
2/32
The Institute for the Protection and Security of the Citizen provides researchbased, systems-oriented support to EU policies so as to protect the citizen against economic and technologicalrisk. The Institute maintains and develops its expertise and networks in information,communication, space and engineering technologies in support of its mission. The strongcrossfertilisation between its nuclear and non-nuclear activities strengthens the expertise it canbring to the benefit of customers in both domains.
European Commission
Joint Research CentreInstitute for the Protection and Security of the Citizen
Contact informationAddress: Martin Larcher, T.P. 480, Joint Research Centre, I-21027 Ispra, ITALYE-mail: [email protected].: +390332789004Fax: +390332789049
http://ipsc.jrc.ec.europa.euhttp://www.jrc.ec.europa.eu
Legal NoticeNeither the European Commission nor any person acting on behalf of the Commission isresponsible for the use which might be made of this publication.
A great deal of additional information on the European Union is available on the Internet.It can be accessed through the Europa serverhttp://europa.eu/
JRC 46829
European Communities, 2008
Reproduction is authorised provided the source is acknowledged
Printed in Italy
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
3/32
CONTENTS
1 Introduction ................................................................................................................................... 42 Air Blast Waves ............................................................................................................................. 5
2.1 Introduction .......................................................................................................................... 5
2.2 Literature Data ..................................................................................................................... 6
2.2.1 Maximum Pressure........................................................................................................... 8
2.2.2 Impulse ............................................................................................................................. 9
2.2.3 Negative Phase ................................................................................................................. 9
2.2.4 Wave Form Parameter ................................................................................................... 11
3 Air Blast Loading Function in EUROPLEXUS .......................................................................... 13
3.1 Used Function .................................................................................................................... 13
3.2 Implementation .................................................................................................................. 13
3.3 AIRB and Debris ................................................................................................................ 143.4 AIRB for Z>40 ................................................................................................................... 14
3.4.1 Arrival Time ................................................................................................................... 15
3.4.2 Peak Pressure ................................................................................................................. 15
3.4.3 Time of Duration ............................................................................................................ 16
4 External Program for AIRB Calculations.................................................................................... 18
5 Conclusion ................................................................................................................................... 20
6 References ................................................................................................................................... 21
7 Apendix ....................................................................................................................................... 22
7.1 EUROPLEXUS Code ........................................................................................................ 22
7.2 AIRB Program ................................................................................................................... 27
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
4/32
4
1 Introduction
This work is being conducted in the framework of the project RAILPROTECT, which deals with
the security and safety of rail transport against terrorist attacks. The bombing threat is only
considered, and focus is placed on predicting the effects of explosions in railway and metro stations
and rolling stock and on assessing the vulnerability of such structures.
The project is based on numerical simulations, which are carried out with the explicit Finite
Element Code EUROPLEXUS that is written for the calculation of fast dynamic fluid-structure
interactions. This code has been developed in a collaboration of the French Commissariat
l'Energie Atomique (CEA Saclay) and the Joint Research Centre of the European Commission (JRC
Ispra).
There are several possibilities to simulate explosions, e.g., in trains and stations. The fasted one is to
neglect the influence of the air and to use only the structural part of the geometry. Then, the
behaviour of the explosion can be simulated by using a pressure-time function, which can be
applied on the structure. This technical note presents the pressure-time functions, which are
implemented in EUROPLEXUS. In addition to this implementation, an external routine is
developed, which allows the calculation of several values of the pressure-time function. This
program allows also to calculate, e.g., the charge by a given peak pressure and positive impulse,which is helpful by fitting experiments to a pressure-time function.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
5/32
5
2 Air Blast Waves
2.1 Introduction
The pressure that arrives at a certain distance from the explosive depends on the distance and on the
size of the explosive. The form of the pressure wave can be idealised with the form presented in
Figure 1.
p
p
p
p
0
min
max
ta
t
td tn
Figure 1: Pressure-time curve for a free air blast wave
The main characteristics of the development of this pressure wave are the following:
- The arrival time ta of the shock wave to the point under consideration. This includes the time
of the detonation wave to propagate through the explosive charge.
- The peak overpressure pmax. The pressure attains its maximum very fast (extremely short
rise-time), and then starts decreasing until it reaches the reference pressure po (in most cases
the normal atmospheric pressure).
- The positive phase duration td, which is the time for reaching the reference pressure. After
this point the pressure drops below the reference pressure until the maximum negative
pressure pmin. The duration of the negative phase is denoted as tn.
- The incident overpressure impulse, which is the integral of the overpressure curve over the
positive phase td.
All these parameters can be found in several diagrams, equations and tables. These parameters are
presented later.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
6/32
6
The form of this pressure-time curve can be described by the modified Friedlander equation (see
e.g. Baker [1]) and depends on the time t, which starts at the arrival of the pressure wave at this
point (0 at t t ):
0 max( ) 1
d
bt
t
d
tp t p p
t(1)
The parameter b describes the decay of the curve.
All parameters of the pressure-time curve are normally written in terms of a scaled distance:
3
dZ
W(2)
where W is the mass of the explosive charge and d the distance from the centre of the charge.
Beside much more complex geometries four conditions can be distinguish:
Spherical incident: No boundaries violate the development of the air blast wave. The
pressure is determined without a reflection on a body.
Spherical reflected: The pressure is determined considering the reflection of the
wave on a surface orthogonal to the wave development. The pressure increases due
to the additional pressure resulting from the stopping of the material velocity.
Hemispherical incident: The explosive lays on a ground. By neglecting any effects
on the ground (displacements), the charge is doubled compared to the spherical case.
More realistic is a value of approx. 1.8, which takes also into account the destruction
of the ground.
Hemispherical reflected: Combination of hemispherical and reflected conditions.
2.2 Literature Data
All parameters for the pressure-time curve can be taken from several diagrams and equations. Only
the literature, which is implemented in EUROPLEXUS, is shown here.
The following literature is used mainly:
Kingery [5]: Experimental diagrams up to Z = 40 (see Figure 2). These diagrams are also
described by several polynomial equations. These equations can only be used up to Z = 40.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
7/32
7
Kinney [6]: Equations for conventional and nuclear explosions. These equations have no
limitations.
Baker [2]: Diagrams similar to them from Kingery. The diagrams are available up to Z =
1000.
Figure 2: Model of Kingery [5] with scaled distances
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
8/32
8
The Kingerys equations for the pressure seem to be not correct for the reflected, hemispherical
case. The equation for the reflected, spherical condition should therefore be used with a factor of
1.8 for the charge.
2.2.1 Maximum Pressure
Kingery [5], Kinney [6], and Baker [2] present diagrams for the maximum (peak) pressure. All
diagrams used a double logarithmic scale. Kingery and Kinney present also equations for the peak
pressure.
The equations of Kingery enjoy the greatest overall acceptance and are widely used as reference by
most researchers. They are available for incident and reflected as well as for spherical and
hemispherical conditions up to a scaled distance of 40 m/kg1/3. The diagrams of Baker can be used
as an alternative. They are available up to Z = 1000 m/kg1/3.
The equation proposed by Kinney [6] describes the overpressure-distance relation for chemical
explosions as:
2
max
2 2 20
808 14.5
1 1 1
0.048 0.32 1.35
Z
p
p Z Z Z
(3)
Figure 3 shows the small differences between the equations of Kingery and Kinney.
Figure 3: Difference of the model of Kingery and the model of Kinney with 1kg TNT
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
9/32
9
2.2.2 Impulse
The impulse of the air blast wave has a big influence on the response of the structures. The impulse
is defined here as the area under the pressure-time curve with the unit of pressure * s. The impulse
can be calculated with (Kinney [6]):
4
1/33
2 33
0.067 1 ( / 0.23)100 with [ ], [ / ], [ ]
1 ( /1.55)
ZI W I Pa s Z m kg W kg
Z Z
(4)
Another possibility is the polynomial equation of Kingery [5]. The comparison of the impulse
resulting from both equations shows that the equation of Kinney simplifies the curve of the impulse
between a scaled distance of 0.5 and 1.5 m/kg1/3.
0
200
400
600
800
0 0.5 1 1.5 2 2.5 3
scaled distance [m/kg1/3
]
imp
ulse[Pasec]
Kinney
Kingery
Figure 4: Different equations for the impulse (Kinney [6] and Kingery [1])
2.2.3 Negative Phase
Detonations produce an overpressure peak, and afterwards the pressure decreases and drops below
the reference pressure (generally the atmospheric pressure). The influence of the so-called negative
phase depends on the scaled distance. For scaled distances Z larger than 20 and especially for Z
larger than 50 the influence of the negative phase cannot always be neglected. The size of the
positive impulse and of the negative impulse is then nearly the same. If the structure can react
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
10/32
10
successfully to the positive pressure but is more sensitive to a negative pressure, failure of parts of
the structure can result from this negative pressure phase (see Krauthammer [7]). However, in
several cases the negative phase is neglected e.g. in the air blast function of the CONWEP-Code.
The size of the negative pressure as well as the duration of the negative part can be taken from a
diagram (see Figure 5) from Drake [3] (also shown from Krauthammer [7]). Drake has used
experimental data to obtain this diagram. The diagramm can be approximated by:
5
min
4
min
1/3
0.3510 Pa for 3.5
10 Pa for 3.5
with Z [m/kg ]
p ZZ
p Z
(5)
The duration of the negative phase tn in the diagram of Krauthammer can be described with the
following function:
1/ 3
1/ 3
1/ 3
1/3
0.0104 [s] for 0.3
0.003125 log( ) 0.01201 [s] for 0.3 1.9
0.0139 [s] for 1.9
with Z [m/kg ], W [kg]
n
n
n
t W Z
t Z W Z Z
t W Z
(6)
Figure 5: Different parameters for the negative phase (from Krauthammer [7])
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
11/32
11
The form of the negative phase is approximated by a bilinear equation (see also Figure 6):
0 max
0
0
0
1 for
2( ) for
2
2( ) for
2
for
d
bt
t
d
d
min nd d d
n
min n
d n d d n
n
d n
tp p p t t
t
p tp p t t t t t t
t
p tp p t t t t t t t t
t
p p t t t
(7)
Figure 6: Pressure-time curve for a free air blast wave approximation of the negative phase
2.2.4 Wave Form Parameter
The decay or form parameter b in the Friedlander equation (1) describes the decay of the pressure-
time curve.
Kinney [6] and Baker [2] calculate the parameter b by using the impulse of the positive phase. This
is also done in a former report Larcher [8]. The differences are shown in Figure 7.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
12/32
12
0
2
4
6
8
10
0 5 10 15 20 25 30 35 40
Z [m/kg1/3
]
b[-]
Kinney
Baker
Parameter b by using the impulse of thepostive phase
Figure 7: Wave form parameter b different methods
The exponential trend line for the curve generated by the impulse function has the following
equation:
1.1975
1/3
5.2777
with Z [m/kg ]
b Z
(8)
The presented equations describe the complete behaviour of an air blast wave under spherical or
hemispherical conditions.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
13/32
13
3 Air Blast Loading Function in EUROPLEXUS
There are several simulation models for air blast waves (see technical note, Larcher [8]). One
possibility is a calculation, which uses only the structural part. The behaviour of the explosive and
the behaviour of the intermediate air are considered by using a pressure-time function.
The pressure-time function is applied by using an impedance material (IMPE), which can be used
with special elements to load a structure. The name of this material is AIRB. The pressure-time
functions shown in chapter 2 are implemented.
3.1 Used Function
The modified Friedlander equation (1) is used for the implementation. Both, the parameters of
Kingery [5] and Baker [1] are implemented for the maximum pressure. The values of Kingery are
used for both types to calculate the arrival time and the time of duration.
The decay parameter b is calculated using the formula in section 2.2.4.
The Friedlander equation can not be used for the negative part of the pressure-time function.
Therefore, the procedure presented in section 2.2.3 is used to calculate the negative pressure pmin
and the duration of the negative phase tn. The form of the negative part is represented with a bilinear
curve. The pressure before and after the positive and negative phase is set to 0 Pa.
The loading of the air blast wave acts in a short time. If big elements are used, the time steps
calculated by using the size of the elements could be too long to resolve the peak pressure.
Therefore, the time step in the positive phase is chosen to the twentieth part of the time of duration.
3.2 Implementation
There are several possibilities to adapt the pressure-time function in EUROPLEXUS:
The location of the charge can be defined by choosing a node with the keyword NODE.
Alternatively, the coordinates of the charge can be given by using the keywords X, Y, and
Z.
The mass of the charge (in kg) has to be specified with the keyword MASS.
The function for the peak pressure (Kingery, Kinney) can be chosen by the keyword CONF.
The keyword OPOS indicates a pressure-time function, which uses only positive values and
disregards the negative part of the wave. In this part, the pressure is set to 0 Pa. This feature
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
14/32
14
could be helpful for shock tube tests, which show a behaviour similar to air blast waves in
the positive part but not in the negative part.
The start time of the detonation can be defined with TINT. The default value is 0 s. To avoid
a long calculation of the structure without any loading of the structure (up to the arrival of
the air blast wave to the first element loaded), the start time of the detonation con be defined
as negative. This can also be done automatically in a way that the calculation starts shortly
before the air blast wave reaches the first element. The keyword TAUT indicates this
automatic start time.
Details are described in the EUROPLEXUS Users Manual [4].
3.3 AIRB and DebrisEUROPLEXUS provides the possibility to develop flying particles (so-called debris) from failed
elements. This can be used to simulate the behaviour of glass splinters after the failure of the glass.
A debris has only a diameter and a mass. The influence of the air blast on the debris should also be
considered. Due to the fact that the geometry of the debris is not known especially the size of the
surface, which is loaded by the air blast wave an intermediate value between the minimum surface
and the maximum surface of the debris can be chosen for the calculation of the AIRB parameter.
For each shell element and beam element a minimum and a maximum area are estimated. By using
the keyword AFLY the minimum (AFLY = 0.0) or the maximum (AFLY = 1.0) value is used.
Values of ALFY between 0.0 and 1.0 interpolate linearly between these two values. The default
value is 0.5. This possibility is only available for shell elements. For solid elements, the cross
section of the debris is used.
3.4 AIRB for Z>40
The equation from Kingery [5] are not applicable for values of Z>40 (polynomial base). Due to the
fact, that the debris are also loaded from the AIRB command and the distance of the debris to the
charge could be big, the values for bigger scaled distances should be available also for the AIRB
command.
Several assumptions are done for the arrival time, the peak pressure and the time of duration. The
negative part of the equation is not changed due to the fact that these equations are not polynomial
one.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
15/32
15
3.4.1 Arrival Time
The arrival time for a scaled distance Z>40 is calculated in a way, that the sound velocity is used
from reaching the scaled distance of Z=40 m/kg1/3. This is done by the following equation:
( ) ( 40)( ) ( 40)343 m/s
a a
d Z d Z t Z t Z (9)
3.4.2 Peak Pressure
For the peak pressure, the equations of Kinney [6] can be used. This equation does not use
polynomial base and therefore, this equation does not have a limit. The diagram of Baker [2] shows
for the peak pressure (incident as well as reflected condition) a quasi linear behaviour in the double
logarithmic scale. This linear curve is used to expand the equations from Kingery also for higher
distances. The hemispherical case is considered by using a factor 2.0 of spherical case.
The incident pressure can be approximated with:
p = 10 -1.10 log(Z) + 5.00 for Z>40 m/kg1/3
The junction between both parts of the equations (Kingery [5] and Baker [2]) is not possible on an
analytic way. It can be shown (see Figure 8) that the difference between both equations is very
small in the range of Z=40 m/kg1/3. Therefore, the equation of Baker is used for values Z>40
without any intersection to the equation of Kingery.
1000
1500
2000
2500
3000
3500
4000
10 20 30 40 50 60 70 80 90 100
Z [m/kg1/3
]
p
[Pa]
Kingery
Baker
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
16/32
16
Figure 8: Comparison between the equations of Kingery and Baker for incident peak pressure
The reflected peak pressure of Baker can be approximated with:
p = 10-1.147 log (Z) + 5.375 Pa for Z>40 m/kg1/3
The comparison between the curve of Kingery and the curve of Baker in the range of Z=40 shows
(Figure 9) that an intersection is also not necessary for the reflected pressure.
0
4000
8000
12000
16000
20000
0 10 20 30 40 50 60 70 80 90 100
Z [m/kg1/3
]
p[Pa]
Kingery
Baker
Figure 9: Comparison between the equations of Kingery and Baker for reflected peak pressure
3.4.3 Time of Duration
The time of duration in the diagram of Baker can also be approximated with a line, which has the
following equation:
td = 100.230 log(Z) - 2.594 s for Z>40 m/kg1/3
There is a bigger difference in the time of duration between Kingery and Baker. Both curves not cut
themself. Therefore, for values Z>40 the diagram of Baker is used accepting a step at this point.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
17/32
17
0
2
4
6
8
10
0 10 20 30 40 50 60 70 80 90 100
Z [m/kg1/3
]
t[ms]
Kingery
Baker
Figure 10: Comparison between the equations of Kingery and Baker for time of duration
All these functions are implemented in the AIRB command in EUROPLEXUS for values of
Z>40 m/kg1/3.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
18/32
18
4 External Program for AIRB Calculations
The functions described in chapters 2 and 3 are implemented in EUROPLEXUS. Sometimes these
values are also needed e.g. only for one point. To simplify the calculation of these values, a small
program is written (airb.f), which uses the same subroutine for the calculation of the parameter as
EUROPLEXUS.
In addition, this program can be used for several special calculations. The units used for this
program are: s, kg, Pa. The names of the parameters and their units are shown in Table 1.
Parameter Description Unit
Z_BLAST scaled distance m/kg1/3
P_MAX peak pressure Pa
T_START arrival time s
T_D time of duration (positive) s
P_NEG minimum pressure Pa
T_NEG time of duration (negative) s
B_BLAST form parameter b -
I_POS positive impulse Pa s
D distance m
CHARGE charge kg
P pressure Pa
Table 1: Parameters of the program AIRB
The program has the following possibilities:
Main values (1): scaled distance, peak pressure, arrival time, time of duration of the positive
phase, positive impulse, minimum pressure, time of duration of the negative phase, form
parameter
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
19/32
19
Function of distance: (2): for a given charge, several parameters can be calculated as a
function of the distance.
Pressure-time curve (3): for a given distance and charge, the pressure-time function is
calculated.
Pressure-distance curve (4): for a given time and charge, the pressure is calculated as a
function of the distance. This results in the form of the wave at a certain time.
Given: P_MAX Z_BLAST (5): this function interpolates the pressure-distance function
to get for a maximum pressure the corresponding scaled distance. To get also the charge and
the distance, a second parameter is needed (see 6)
Given: P_MAX, I_POS
D, CHARGE (6): this function calculates the scaled distanceand, in addition to the function 5, also the distance and the charge by using the positive
impulse. If the peak pressure and the positive impulse are coming from experiments, the
result should be compared with the time of duration (if given) to see the correspondence.
Given: I_POS, CHARGE D, Z_BLAST (7): this function calculates the distance (and
also the scaled distance) for a given charge and a given positive impulse.
All calculations need the input of the equation chosen. This could be a Kingery or a Kinney
approximation with several conditions (spherical/hemispherical/incident/reflected). For the
functions 2, 3, and 4 also the range for the output and the step size has to be defined.
The output can also be done into a file.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
20/32
20
5 Conclusion
The usage of a pressure-time function for a structure loaded by an air blast wave is a very effective
method. Indeed, this method neglects the influence of reflections, shadowing and channelling.
The AIRB function, used in EUROPLEXUS is presented, which uses several equation from the
literature to describe an air blast wave. The AIRB function is also used from the batch program
airb.exe. This program is helpful to determine the parameters of an air blast wave in an easy way
and allows also the calculation of missing air blast parameters, if only some of them are given.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
21/32
21
6 References
[1] Baker, Wilfrid E.: Explosions in the Air, University of Texas Pr., Austin, 1973.
[2] Baker, W.E.; Cox, P.A.; Westine, P.S.; Kulesz, J.J.; Strehlow, R.A.: Explosion Hazards and
Evaluation, Elsevier, Amsterdam, 1983.
[3] Drake, J.; Twisdale, L.; Frank, R.; Dass, W.; Rochefort, M.; Walker, R.; Britt, J.; Murphy, C.;Slawson, T.; Sues, R.: Protective construction design manual, Tech. Rep. ESL-TR-87-57, Air
Force Engineering and Services Center, Tyndall Air Force Base, Florida (1989).
[4] EUROPLEXUS, Users Manual, online version.
[5] Kingery, Charles N.; Bulmash, Gerald: Airblast Parameters from TNT Spherical Air Burstand Hemispherical Surface Burst, Defence Technical Information Center, Ballistic Research
Laboratory, Aberdeen Proving Ground, Maryland, 1984.
[6] Kinney, Gilbert F.; Graham, Kenneth J.: Explosive Shocks in Air, Springer, Berlin, 1985.
[7] Krauthammer, T.; Altenberg, A.: Negative phase blast effects on glass panels, InternationalJournal of Impact Engineering, 24 (1), pp. 1-18; 2000.
[8] Larcher, M.: Simulation of the Effects of an Air Blast Wave. JRC Technical Note, PubsyJRC41337, Ispra 2007.
[9] Protective Design Center, United States Army Corps of Engineers: CONWEP, ConventionalWeapons Effects, https://pdc.usace.army.mil/software/conwep/, 22.May 2007.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
22/32
22
7 Apendix
7.1 EUROPLEXUS Code
m_material_i_airb.ffC M_MATERIAL_I_AIRB TOUS FCASADEI 08/07/2502:11:54
MODULE M_MATERIAL_I_AIRB*
* material of type "air blast" (16_26)*
USE M_MATERIALS
USE M_MATERIALS_ARRAY*
IMPLICIT NONESAVE
*
PRIVATEPUBLIC :: MI_AIRB, CL_AIRB, INIT_AIRB
*CONTAINS
*=============================================SUBROUTINE MI_AIRB (INUMLDC, X)
* ------------------------------------------------------------------* impedance : air blast m.larcher 04-07* ------------------------------------------------------------------
* iop=26 (airb)* xmut(1) = x-coordinate of explosive charge* xmut(2) = y-coordinate of explosive charge
* xmut(3) = z-coordinate of explosive charge* xmut(4) = mass of explosive charge (in kg)
* xmut(5) = initial time of the explosion
* xmut(6) = choose of different explosion models* 1 = unconfined (full space), reflected (kingery)* 2 = unconfined (full space), not reflected (kingery)* 3 = unconfined (full space), not reflected (baker)
* 4 = half-confined (half space), reflected (kingery)* 5 = half-confined (half space), not reflected
(kingery)* xmut(8) = flag for only positive pressure
*INCLUDE 'NONE.INC'
*
INCLUDE 'CARMA.INC'INCLUDE 'CONTRO.INC'INCLUDE 'POUBTX.INC'
INCLUDE 'REDCOM.INC'*
*----- variables globales :INTEGER, INTENT(IN) :: INUMLDC
REAL(8), INTENT(IN) :: X(IDIM,*)*
*----- variables locales :INTEGER, PARAMETER :: NMOT=9 , LENX=8 , LENI =
1
CHARACTER*4 :: MOT(NMOT)INTEGER :: KOPT(NMOT), IOP, IH, NC(NPTL), NODELOGICAL :: IMPRIM
*DATA MOT/'X ','Y ','Z
','MASS','TINT','CONF','NODE',& 'TAUT','OPOS'/
*INTEGER, PARAMETER :: N_MSG = 8 , LG_FMT = 350
CHARACTER(LG_FMT) :: GET_FMT(N_MSG)*IF FRANCAIS
CHARACTER(32), PARAMETER :: NOM='IMPEDANCE
(EXPLOSION EN AIR)'DATA GET_FMT(:) /
>'X-COORD DE LA CHARGE',>'Y-COORD DE LA CHARGE',>'Z-COORD DE LA CHARGE',
>'MASSE DE LA CHARGE',>'TEMPS INITIAL DE L EXPLOSION',>'CONFINEMENT (1=LIBRE, REFLECHIE, KINGERY,
>2=LIBRE, NO REFLECHIE,KINGERY,>3=LIBRE, REFLECHIE,BAKER,
>4=DEMI-ESPACE, REFLECHIE,KINGERY,>5=DEMI-ESPACE, NO REFLECHIE,KINGERY)',
>'NOEUD DE LA CHARGE',>'ONLY POSITIVE PRESSURE?'/
CELSE
CHARACTER(32), PARAMETER :: NOM='IMPEDANCE(AIR BLAST)'
DATA GET_FMT(:) />'X-COOR OF THE CHARGE',>'Y-COOR OF THE CHARGE',
>'Z-COOR OF THE CHARGE',>'MASS OF THE CHARGE',
>'INITIAL TIME OF THE EXPLOSION',>'CONFINEMENT (1=UNCONFINED,
REFLECTED,KINGERY,>2=UNCONFINED, NOT REFLECTED,KINGERY,
>3=UNCONFINED, REFLECTED,BAKER,>4=HALF-SPACE, REFLECTED,KINGERY,>5=HALF-SPACE, NOT REFLECTED,KINGERY)',
>'NODE OF THE CHARGE',>'ONLY POSITIVE PRESSURE?'/
CENDIF*
CALL CREATE_MATERIAL (LENX, LENI, 0)
NEWMAT%NAME = NOMNEWMAT%TYPE = 16 !! IMPEDANCE
NEWMAT%MATENT(1) = 26 !! NUMERO DEL'IMPEDANCE
NEWMAT%NUMLDC = INUMLDCNEWMAT%LGECR = LGECR(NEWMAT%TYPE)
**----- lecture des parametres! CALL
LIRVAL(NMOT,MOT,NEWMAT%MATVAL,KOPT)
KOPT(:) = 0*
11 CALL LIRMOT (MOT, NMOT, IOP)IF (IOP > 0) THENKOPT(IOP) = 1
SELECT CASE (IOP)CASE (1:4,6) ! X, Y, Z, MASS, TINT, CONF
CALL LIRE(3)NEWMAT%MATVAL(IOP) = DPREC
CASE (5) ! TINTIF (KOPT(8) /= 0) THEN
CALL ERRMSS('MAT_AIRB',> 'TINT AND TAUT CANT BE USED
TOGETHER')
STOP 'MAT_AIRB 5'ENDIF
CALL LIRE(3)NEWMAT%MATVAL(IOP) = DPREC
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
23/32
23
CASE (7) ! POIN
CALL LIRLEC (1, NC, IH)IF (IH /= 1) THENCALL ERRMSS('MAT_AIRB','ONLY ONE NODE
MUST BE GIVEN')STOP 'MAT_AIRB 4'
ENDIF
NEWMAT%MATVAL(IOP) = NC(1)CASE (8) ! TAUTIF (KOPT(5) /= 0) THEN
CALL ERRMSS('MAT_AIRB',> 'TINT AND TAUT CANT BE USED
TOGETHER')
STOP 'MAT_AIRB 5'ENDIFNEWMAT%MATVAL(5)=HUGE(0.D0) ! TAUT
CASE (9) ! OPOSNEWMAT%MATVAL(8)=1.D0 ! TAUT
END SELECTGO TO 11
ENDIF
**----- donnees completes ? (1, 2, 4 ou 4, 7 indispensables)
IF((KOPT(1)+KOPT(2)+KOPT(4)) /= 3) THEN
IF((KOPT(4)+KOPT(7)) /= 2) THENWRITE(BLABLA,1001)CALL ERRMSS('MAT_AIRB',BLABLA)
STOP 'MAT_AIRB 3'ENDIF
ENDIF
** consistency checks
IF (KOPT(1)+KOPT(7) == 2 .OR. KOPT(2)+KOPT(7) == 2.OR.
> KOPT(3)+KOPT(7) == 2) THENCALL ERRMSS ('MI_AIRB','X,Y,Z AND NODE ARE
MUTUALLY EXCLUSIVE')
ENDIFIF (KOPT(7) /= 0) THEN
* user has specified node: extract its coordinatesNODE = INT (NEWMAT%MATVAL(7) + 0.1)NEWMAT%MATVAL(1) = X(1,NODE)
NEWMAT%MATVAL(2) = X(2,NODE)IF (IDIM == 3) NEWMAT%MATVAL(3) = X(3,NODE)
ENDIFIF (KOPT(3) /= 0) THENIF (IDIM < 3) CALL ATTMSS ('MI_AIRB','Z UNUSED
IN 2D')ENDIF
*
* default valuesIF((KOPT(5) == 0).AND.(KOPT(8) == 0))
NEWMAT%MATVAL(5)=-HUGE(0.D0)
! TINTIF(KOPT(6) == 0) NEWMAT%MATVAL(6)=1.D0 !
CONF
**----- impressions
WRITE(BLABLA,1000)
NEWMAT%NUMLDC,NEWMAT%NAMECALL MECTSG(BLABLA)
IF(IMPRIM(8)) THENCALL
MECVAL(GET_FMT(1),NEWMAT%MATVAL(1))
CALLMECVAL(GET_FMT(2),NEWMAT%MATVAL(2))CALL
MECVAL(GET_FMT(3),NEWMAT%MATVAL(3))
CALL
MECVAL(GET_FMT(4),NEWMAT%MATVAL(4))IF(NEWMAT%MATVAL(5)>1.D20) THENCALL MECTEX(GET_FMT(5),'START TIME')
ELSEIF(NEWMAT%MATVAL(5)0.5D0) THENCALL MECTEX(GET_FMT(8),'ONLY POSITIVE
PRESSURES')ELSE
CALL MECTEX(GET_FMT(8),'ALSO NEGATIVE
PRESSURES')ENDIF
ENDIF
**IF FRANCAIS1000 FORMAT('LOI NUMERO',I5,' : ',A)
1001 FORMAT('LA DIRECTIVE "AIRB" ESTINCOMPLETE')CELSE
1000 FORMAT('LAW NUMBER',I5,' : ',A)1001 FORMAT('THE DIRECTIVE "AIRB" IS
INCOMPLETE')CENDIF
*END SUBROUTINE MI_AIRB
*==========================================
SUBROUTINE CL_AIRB (MAT_CUR, ECR, D, P,DTAIRB)
* ------------------------------------------------------------------* cond. aux limites air blast m.larcher 04-07* ------------------------------------------------------------------
* mat_cur : current material* matval(1) = x-coordinate of explosive charge
* matval(2) = y-coordinate of explosive charge* matval(3) = z-coordinate of explosive charge* matval(4) = mass of explosive charge (in kg)
* matval(5) = initial time of the explosion* matval(6) = choose of different explosion models
* 1 = unconfined (full space), reflected (kingery)
* 2 = unconfined (full space), not reflected(kingery)* 3 = unconfined (full space), not reflected (kinney)
* 4 = half-confined (half space), reflected (kingery)* 5 = half-confined (half space), not reflected(kingery)
* matval(8) = flag only positive pressure* d : distance between charge and clxx element centroid* (already computed in the clxx element)
* p : blast pressure (output)* ecr(1) : pressure (output)
* dtairb : maximal time step (output)*
IMPLICIT NONE
* INCLUDE 'TEMPX.INC' ! T = CURRENT TIMEINCLUDE 'TEMPS1.INC' ! TINIZI = INITIAL TIME
*
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
24/32
24
*--- variables globales
TYPE(MATERIAL), INTENT(INOUT) :: MAT_CURREAL(8), INTENT(IN) :: DREAL(8), INTENT(OUT) :: P
REAL(8), INTENT(INOUT) :: DTAIRBREAL(8), INTENT(INOUT) :: ECR(*)
*--- variables locales
REAL(8) :: T_START ,T_D , T_CURR, T_NEGREAL(8) :: PARAM1, PARAM2, PARAM3,PARAM4REAL(8) :: PARAM5, PARAM6, PARAM7,PARAM8
REAL(8) :: P_MAX, B_BLAST , Z_BLAST, U_T_D,Y_CONWEP,TINT,
> P_MAX1, T_MAX1, T_D1, U_P_MAX, P_NEG,
DTSTAB, CHARGE,Z_BLAST1REAL(8), DIMENSION(9) :: POLY_T_DREAL(8), DIMENSION(12) :: POLY_P_MAX
INTEGER :: I, COND, EQU*
P = 0.D0 ! INITIALIZATIONDTSTAB = DTAIRB !STORING OF THE STABLE TIME
STEP SIZE TO USE
!ALSO SMALLER TIME STEPS FOR THEFIRST TIME
!STEP WITH AIRB
DTAIRB = HUGE(DTAIRB)! INITIALISATION - ONLY IN THE POSITIVE
PHASE THE
! TIME STEP SIZE WILL BE CHANGEDEQU = MAT_CUR%MATVAL(6)CHARGE = MAT_CUR%MATVAL(4)
TINT = MAT_CUR%MATVAL(5)*----- time of explosion-------------------------------------------
IF (MAT_CUR%MATVAL(5) P_NEG, T_NEG, B_BLAST)
*end different models
1000 P = P_MAX*(1.D0-T_CURR/T_D)*EXP(-B_BLAST*T_CURR/T_D)
IF (T_CURRT_D) THEN ! NO NEGATIVE
PRESSUREP=0.D0
ENDIF
IF (T_CURR0)
IF(P MATERIALS(FNUMAT(IEL))
IOP=MAT_CUR%MATENT(1)IF(IOP==26) THEN !AIRBIF(MAT_CUR%MATVAL(5)>1.D20) THEN
TAUTO = .TRUE.XC = 0.D0YC = 0.D0
ZC = 0.D0NNO = NCEL(1,ITYP)IAD = INDOX(IEL,3)
DO I = 1, NNO ! CENTROID COORDINATESXC = XC + X(1,NUMN(IAD+I-1))
YC = YC + X(2,NUMN(IAD+I-1))ZC = ZC + X(3,NUMN(IAD+I-1))
END DO
XC = XC / NNOYC = YC / NNOZC = ZC / NNODX = MAT_CUR%MATVAL(1) - XC ! DISTANCE
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
25/32
25
DY = MAT_CUR%MATVAL(2) - YC
DZ = MAT_CUR%MATVAL(3) - ZC* additional calculations for dtstab required for the partitioning
D = SQRT (DX*DX + DY*DY + DZ*DZ)
IF(MAT_CUR%MATVAL(6) MATERIALS(FNUMAT(IEL))IOP=MAT_CUR%MATENT(1)IF(IOP==26) THEN !AIRB
MAT_CUR%MATVAL(5) = T_ARR1ENDIF
ENDIFEND DO
ENDIF
*END SUBROUTINE INIT_AIRB
*=============================================SUBROUTINE AIRB_PARAMETER (EQU, CHARGE, D,
P_MAX, T_START, T_D,
> P_NEG, T_NEG, B_BLAST)* ------------------------------------------------------------------
* cond. aux limites air blast m.larcher 04-07
* ------------------------------------------------------------------* charge = mass of explosive charge (in kg)* equ = choose of different explosion models
* 1 = unconfined (full space), reflected (kingery)* 2 = unconfined (full space), not reflected (kingery)* 3 = unconfined (full space), not reflected (kinney)
* 4 = half-confined (half space), reflected (kingery)* 5 = half-confined (half space), not reflected (kingery)* d : distance between charge and clxx element centroid
* p_max : max peak blast pressure (output)*
IMPLICIT NONE*
*--- variables globales
REAL(8), INTENT(IN) :: D, CHARGEINTEGER, INTENT(IN) :: EQUREAL(8), INTENT(OUT) :: P_MAX, T_START, T_D,
P_NEG, T_NEG, B_BLAST
*--- variables locales
REAL(8) :: PARAM1, PARAM2, PARAM3,PARAM4REAL(8) :: PARAM5, PARAM6, PARAM7,PARAM8REAL(8) :: Z_BLAST, U_T_D, Y_CONWEP,
> P_MAX1, T_MAX1, T_D1, U_P_MAX, Z_BLAST1REAL(8), DIMENSION(9) :: POLY_T_D
REAL(8), DIMENSION(12) :: POLY_P_MAX
INTEGER :: I,COND**----- air blast pressure
*----- parameters of detonation for all modelsZ_BLAST = D/CHARGE**0.333333D0B_BLAST = 5.2777D0*(Z_BLAST**(-1.1975D0))
P_NEG = MIN(1.D5,79433.D0/(Z_BLAST**1.05D0))IF(Z_BLAST1.9D0) THENT_NEG = 0.0139D0 * CHARGE**(1./3.)
ELSET_NEG = (3.125D0 * LOG10(Z_BLAST) + 12.01D0)*
> CHARGE**(1./3.)*1D-3
END IF*----- conwep is used for all models with different parameters*----- arrival time
IF(EQU
PARAM5/(PARAM6*PARAM7*PARAM8)RETURNEND IF
*--------------------------------------------------------------------* formula for hemispherical reflected in kingery seems to bewrong.
* therefore, the hemispherical formula is used for the pressure* by dividing the charge with 1.8
*IF(EQU==1) THEN
Z_BLAST1 = D/((CHARGE/1.8)**0.33333333D0)
ELSEZ_BLAST1=Z_BLASTENDIF
* kingery spherical
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
26/32
26
IF(EQU==1 .OR. EQU==2) THEN
IF(Z_BLAST 0.00291430135946, 0.00187957449227,
0.0173413962543,> 0.00269739758043, -0.00361976502798, -
0.00100926577934/)
ELSE IF(Z_BLAST>2.28) THENU_T_D = -3.130058+3.152472*LOG10(Z_BLAST)POLY_T_D = (/0.62103, 0.096703, -0.00801302,
0.00482705,> 0.00187587,-0.002467385,-0.000841116668,
0.00061932910, 0.0/)
ELSEU_T_D = -
1.33361206714+9.2996288611*LOG10(Z_BLAST)POLY_T_D = (/ 0.23031841078,-
0.0297944268969,0.0306329542941,
> 0.0183405574074, -0.0173964666286, -0.00106321963576,
> 0.0056206003128, 0.0001618217499, -
0.0006860188944 /)END IF
*--------------------------------------------------------------------
* kingery hemisphericalELSEIF(Z_BLAST -0.00475933, -0.00428144, 0.0, 0.0, 0.0/)ELSE IF(Z_BLAST>2.78) THENU_T_D = -3.53626+3.463497*LOG10(Z_BLAST)
POLY_T_D =(/0.6869066, 0.09330353, -0.00058494, -0.0022688499,
> -0.000295908, 0.0014802986, 0.0, 0.0, 0.0 /)ELSEU_T_D = -2.124925+9.2996288*LOG10(Z_BLAST)
POLY_T_D = (/0.31540924, -0.0297944, 0.0306329,0.018340557,
> -0.0173964,-0.00106321,0.0056206,0.000161821,-0.00068601889/)
END IF
END IF*--------------------------------------------------------------------
* kingery spherical, reflected
* the formula in kingery seems to be wrong. therefore, thehemispherical* formula is used by dividing the charge with 1.8
** if(equ==1) then* u_p_max = -
0.214362789151+1.35034249993*log10(z_blast)* poly_p_max = (/3.22958031387, -2.21400538997,0.35119031446,
* > 0.657599992109, 0.0141818951887, -0.243076636231,* > -0.0158699803158, 0.0492741184234,
0.00227639644004,* > -0.00397126276058, 0.0 , 0.0/)
*--------------------------------------------------------------------
IF(Z_BLAST1 0.336743114941, -0.00516226351334, -0.0809228619888,> -0.00478507266747, 0.00793030472242,
0.0007684469735,
> 0.0, 0.0, 0.0/)*--------------------------------------------------------------------* kingery hemispherical, reflected (also spherical reflected)
ELSE IF((EQU==1).OR.(EQU==4)) THENU_P_MAX = -
0.240657322658+1.36637719229*LOG10(Z_BLAST1)
POLY_P_MAX = (/3.4028321, -2.2103087, -0.218536586,0.89531958,
> 0.24989, -0.569249, -0.1179168, 0.2241311, 0.0245620, -0.0455116,
> -0.001909307, 0.003614711/)
*--------------------------------------------------------------------* kingery hemispherical, incident
ELSE IF (EQU==5) THEN
U_P_MAX = -0.214362789151+1.35034249993*LOG10(Z_BLAST1)
POLY_P_MAX = (/2.780769, -1.6958988, -0.1541937,
0.514050,> 0.0988534, -0.2939126, -0.02681123,
0.109097,0.001628467,
> -0.0214631, 0.0001456723, 0.001678477/)END IF
*--------------------------------------------------------------------
* kingery calculationDO I = 1, 12
P_MAX1 = P_MAX1 +POLY_P_MAX(I)*U_P_MAX**(I-1)
END DOP_MAX= 1D3 * 10 ** P_MAX1DO I = 1, 9
T_D1 = T_D1 + POLY_T_D(I)*U_T_D**(I-1)END DO
T_D= (1D-3 * 10 ** T_D1)*CHARGE**(1./3.)ELSE !Z>40SELECT CASE (EQU)
CASE (1) !KINGERY SPHERICAL REFLECTEDP_MAX = 10 ** (-1.147D0 * LOG10(Z_BLAST1) +
5.375D0)CASE (2) !KINGERY SPHERICAL, INCIDENTP_MAX = 10 ** (-1.1D0 * LOG10(Z_BLAST1) + 5.D0)
CASE (4) !KINGERY HEMISPHERICAL, REFLECTEDZ_BLAST1 = D/(CHARGE*1.8)**0.333333D0
P_MAX = 10 ** (-1.147D0 * LOG10(Z_BLAST1) +
5.375D0)CASE(5) !KINGERY HEMISPHERICAL, INCIDENTZ_BLAST1 = D/(CHARGE*1.8)**0.333333D0
P_MAX = 10 ** (-1.1D0 * LOG10(Z_BLAST1) + 5.D0)END SELECTT_D = 10 ** (0.23D0 * LOG10(Z_BLAST1) - 2.594D0)
END IF !Z>40*
END SUBROUTINE AIRB_PARAMETER
*=============================================SUBROUTINE TARRIVE_AIRB (MASS, D,
COND,T_ARR)* ------------------------------------------------------------------
* arrival time air blast m.larcher 02-08
* ------------------------------------------------------------------* mass = mass of explosive charge (in kg)* cond = choose of different explosion models* 1 = unconfined (kingery)
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
27/32
27
* 2 = half-confined (kingery)
* d = distance between charge and clxx element centroid* t_arr = arrival time of the explosion (output)*
IMPLICIT NONE*
*--- variables globales
REAL(8), INTENT(IN) :: MASS,DINTEGER, INTENT(IN) :: CONDREAL(8), INTENT(OUT) :: T_ARR
*--- variables localesREAL(8) :: T_START, Z_BLAST, Z_BLAST1,
Y_CONWEP, U_T_START, D_40
REAL(8), DIMENSION(10) :: POLY_T_STARTINTEGER :: I
*----- air blast pressure*----- parameters of detonation for all models
Z_BLAST = D/MASS**0.333333D0*----- z bigger than 40 --> sound speed is used from the distance
z=40 on
IF (Z_BLAST > 40.D0) THENZ_BLAST1 = 40
ELSE
Z_BLAST1 = Z_BLASTEND IF
*----- time of explosion-------------------------------------------
*----- conwep is used for all models with different parametersIF(COND==1) THENPOLY_T_START = (/0.07207,1.36456,-0.057003,-
0.18283,0.011885,> 0.043265, -0.000799736, -0.00436073, 0.0, 0.0/)
U_T_START = -0.25327+1.37407*LOG10(Z_BLAST1)ELSE
POLY_T_START = (/-0.059163, 1.357064, 0.052492, -0.19656395,
> -0.06017700, 0.0696360, 0.0215297, -0.01616589, -
0.0023253,> 0.00147752/)
U_T_START = -0.2024257+1.37784*LOG10(Z_BLAST1)END IFY_CONWEP = 0.0
DO I = 1, 10Y_CONWEP = Y_CONWEP +
POLY_T_START(I)*U_T_START**(I-1)END DOT_ARR = (1D-3 * 10 ** Y_CONWEP)*MASS**(1./3.)
IF (Z_BLAST > 40.D0) THEND_40 = 40.D0 * MASS**0.333333D0
T_ARR = T_ARR + (D-D_40)/343.D0
END IF*
END SUBROUTINE TARRIVE_AIRB
*============================================END MODULE M_MATERIAL_I_AIRB
7.2 AIRB Program
airb.f
PROGRAMM AIRB
*--- variables localesREAL(8) :: T_START ,T_D , T_NEG, T, P_MAX,
B_BLAST , Z_BLAST, D,> P_MAX1, P_NEG, CHARGE,Z_BLAST1, I_POS, INCR,
I_POS1, TB, TE, TS,
> DB, DE, DS
INTEGER :: I, COND, EQU, FUNC, SUB_FUNC,FILE_NUMBER
CHARACTER(255) :: FILE_NAME
*WRITE (*,*) " "
WRITE (*,*) " AA I RRRRR BBBBB"
WRITE (*,*) " A A R R B B"WRITE (*,*) " A A I R R B B"WRITE (*,*) " A A I RRRRRR BBBBB"
WRITE (*,*) " AAAAAAAAAA I R RR B B"WRITE (*,*) " A A I R RR B B"WRITE (*,*) "A A I R RR BBBBB"
WRITE (*,*) " "WRITE (*,*) "Air Blast Functions for EUROPLEXUS and
more..."
WRITE (*,*) " "WRITE (*,*) "Details of the program are described in the"
WRITE (*,*) "Technical Note 'Pressure-Time Functions forthe"
WRITE (*,*) "Description of Air Blast Waves' (Martin
Larcher)"WRITE (*,*) "PUBSY JRC 46829, 2008"WRITE (*,*) " "
P = 0.D0 ! INITIALIZATIONWRITE (*,*) "FUNCTION: 1 Main values"
WRITE (*,*) " 2 Function of distance (main values)"WRITE (*,*) " 3 Pressure-time curve (distance fix)"WRITE (*,*) " 4 Pressure-distance curve (time fix)"
WRITE (*,*) " 5 Given: P_MAX --> Z_BLAST"WRITE (*,*) " 6 Given: P_MAX, I_POS -->
D,CHARGE"WRITE (*,*) " 0 Stop"
READ (*,*) FUNCIF(FUNC==0) STOPWRITE (*,*) "Write to a file. 0 for screen output."
WRITE (*,*) "FILENAME: "READ (*,*) FILE_NAME
IF(FILE_NAME=="0") THENFILE_NUMBER = 6
ELSE
FILE_NUMBER = 1OPEN(1,FILE=FILE_NAME)
ENDIFWRITE (*,*) "EQUATION: 1 Kingery spherical reflected"WRITE (*,*) " 2 Kingery spherical, incident"
WRITE (*,*) " 3 Kinney spherical, incident"WRITE (*,*) " 4 Kingery hemispherical, reflected"
WRITE (*,*) " 5 Kingery hemispherical, incident"
READ (*,*) EQU*----- air blast pressure*----- parameters of detonation for all models
SELECT CASE (FUNC)CASE (1)WRITE (*,1101, ADVANCE='NO')
READ (*,*) CHARGEWRITE (*,1105, ADVANCE='NO')READ (*,*) D
Z_BLAST = D/CHARGE**0.333333D0CALL AIRB_PARAMETER (EQU, CHARGE, D,
P_MAX, T_START, T_D,> P_NEG, T_NEG, B_BLAST)
CALL AIRB_IMPULSE (EQU, CHARGE, D, I_POS)
WRITE(FILE_NUMBER,1001)"Z_BLAST","P_MAX","T_START","T_D",> "P_NEG", "T_NEG", "B_BLAST","I_POS"
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
28/32
28
WRITE(FILE_NUMBER,1002)
Z_BLAST,P_MAX,T_START,T_D,P_NEG,T_NEG,> B_BLAST, I_POSCASE (2)
WRITE (*,*) "Parameter over Distance"WRITE (*,*) " 1 Peak pressure (P_MAX)"
WRITE (*,*) " 2 Arrival time (T_START)"
WRITE (*,*) " 3 Time of duration (positive) (T_D)"WRITE (*,*) " 4 Minimum pressure (P_NEG)"WRITE (*,*) " 5 Time of duration (negative) (T_NEG)"
WRITE (*,*) " 6 Form Parameter (B_BLAST)"WRITE (*,*) " 7 Impulse (I_POS)"READ (*,*) SUB_FUNC
WRITE (*,1101, ADVANCE='NO')READ (*,*) CHARGEWRITE (*,1110, ADVANCE='NO')
READ (*,*) DBWRITE (*,1111, ADVANCE='NO')
READ (*,*) DEWRITE (*,1112, ADVANCE='NO')
READ (*,*) DS
SELECT CASE (SUB_FUNC)CASE (1)WRITE(FILE_NUMBER,1003)
"D","Z_BLAST","P_MAX"CASE (2)WRITE(FILE_NUMBER,1003)
"D","Z_BLAST","T_START"CASE (3)WRITE(FILE_NUMBER,1003) "D","Z_BLAST","T_D"
CASE (4)WRITE(FILE_NUMBER,1003)
"D","Z_BLAST","P_NEG"CASE (5)
WRITE(FILE_NUMBER,1003)"D","Z_BLAST","T_NEG"
CASE (6)
WRITE(FILE_NUMBER,1003)"D","Z_BLAST","B_BLAST"
CASE (7)WRITE(FILE_NUMBER,1003)
"D","Z_BLAST","I_POS"
END SELECTDO D = DB, DE, DS
Z_BLAST = D/CHARGE**0.333333D0CALL AIRB_PARAMETER (EQU, CHARGE, D,
P_MAX, T_START, T_D,
> P_NEG, T_NEG, B_BLAST)CALL AIRB_IMPULSE (EQU, CHARGE, D, I_POS)
SELECT CASE (SUB_FUNC)
CASE (1)WRITE(FILE_NUMBER,1004) D,Z_BLAST,P_MAX
CASE (2)
WRITE(FILE_NUMBER,1004) D,Z_BLAST,T_STARTCASE (3)WRITE(FILE_NUMBER,1004) D,Z_BLAST,T_D
CASE (4)WRITE(FILE_NUMBER,1004) D,Z_BLAST,P_NEG
CASE (5)
WRITE(FILE_NUMBER,1004) D,Z_BLAST,T_NEGCASE (6)
WRITE(FILE_NUMBER,1004)D,Z_BLAST,B_BLAST
CASE (7)
WRITE(FILE_NUMBER,1004) D,Z_BLAST,I_POSEND SELECTEND DO
CASE (3)
WRITE (*,1101, ADVANCE='NO')
READ (*,*) CHARGEWRITE (*,1105, ADVANCE='NO')READ (*,*) D
Z_BLAST = D/CHARGE**0.333333D0CALL AIRB_PARAMETER (EQU, CHARGE, D,
P_MAX, T_START, T_D,
> P_NEG, T_NEG, B_BLAST)WRITE(*,*) "The arrival time is : ", T_STARTWRITE (*,1107, ADVANCE='NO')
READ (*,*) TBWRITE (*,1108, ADVANCE='NO')READ (*,*) TE
WRITE (*,1109, ADVANCE='NO')READ (*,*) TSWRITE(FILE_NUMBER,1003) "T","T_CURR","P"
DO T = TB, TE, TST_CURR = T-T_START
P = P_MAX*(1.D0-T_CURR/T_D)*EXP(-B_BLAST*T_CURR/T_D)
IF (T_CURR>T_D . AND . T_CURRT_D+T_NEG/2. . AND .T_CURRT_D+T_NEG) THENP=0.D0 ! AFTER LOADING
END IFIF (T_CURRT_D . AND . T_CURRT_D+T_NEG/2. . AND .T_CURRT_D+T_NEG) THEN
P=0.D0 ! AFTER LOADINGEND IFIF (T_CURR
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
29/32
29
WRITE(FILE_NUMBER,1004) D,Z_BLAST,P
END DOCASE (5)WRITE (*,1103, ADVANCE='NO')
READ (*,*) P_MAX1CALL GET_Z (EQU, P_MAX1, Z_BLAST)
WRITE(FILE_NUMBER,*) "Z_BLAST = ", Z_BLAST
CASE (6)WRITE (*,1103, ADVANCE='NO')READ (*,*) P_MAX1
WRITE (*,1104, ADVANCE='NO')READ (*,*) I_POS1CALL GET_Z (EQU, P_MAX1, Z_BLAST)
INCR = 1.D0D = 0.1D0
DO WHILE (INCR>0.001)CHARGE = (D/Z_BLAST)**3.D0
CALL AIRB_IMPULSE (EQU, CHARGE, D, I_POS)IF(I_POS1 P_NEG, T_NEG, B_BLAST)WRITE(FILE_NUMBER,1001)
"Z_BLAST","P_MAX","T_START","T_D",> "P_NEG","T_NEG", "B_BLAST","I_POS"
WRITE(FILE_NUMBER,1002)
Z_BLAST,P_MAX,T_START,T_D,P_NEG,> T_NEG,B_BLAST, I_POS
END SELECTIF(FILE_NUMBER==1) CLOSE(1)
*--------------------------------------------------------------------
1001 FORMAT (8A12)1002 FORMAT (8E12.4)
1003 FORMAT (3A12)1004 FORMAT (3E12.4)1101 FORMAT (1X, 'CHARGE (kg) : ')
1102 FORMAT (1X, 'TIME (s) : ')1103 FORMAT (1X, 'P_MAX (Pa) : ')
1104 FORMAT (1X, 'I_POS (Pa s) : ')
1105 FORMAT (1X, 'DISTANCE (m) : ')1107 FORMAT (1X, 'FIRST TIME STEP : ')1108 FORMAT (1X, 'LAST TIME STEP : ')
1109 FORMAT (1X, 'TIME STEP SIZE : ')1110 FORMAT (1X, 'MINIMUM DISTANCE : ')1111 FORMAT (1X, 'MAXIMUM DISTANCE : ')
1112 FORMAT (1X, 'DISTANCE STEPS : ')END PROGRAMM AIRB
*=============================================
SUBROUTINE TARRIVE_AIRB (MASS, D,COND,T_ARR)
See m_material_i_airb.ff
*=============================================SUBROUTINE AIRB_PARAMETER (EQU, CHARGE, D,P_MAX, T_START, T_D,
> P_NEG, T_NEG, B_BLAST)
See m_material_i_airb.ff
*=============================================
SUBROUTINE AIRB_IMPULSE (EQU, CHARGE, D,I_POS)
* ------------------------------------------------------------------
* cond. aux limites air blast m.larcher 07-08* separet file - not used in EUROPLEXUS* ------------------------------------------------------------------
* charge = mass of explosive charge (in kg)* equ = choose of different explosion models* 1 = unconfined (full space), reflected (kingery)
* 2 = unconfined (full space), not reflected (kingery)* 4 = half-confined (half space), reflected (kingery)* 5 = half-confined (half space), not reflected (kingery)
* d : distance between charge and clxx element centroid* i_pos: positive impulse
*IMPLICIT NONE
*
*--- variables globalesREAL(8), INTENT(IN) :: D, CHARGEINTEGER, INTENT(IN) :: EQU
REAL(8), INTENT(OUT) :: I_POS*--- variables locales
REAL(8) :: Z_BLAST, U_I_P,I_P1
REAL(8), DIMENSION(9) :: POLY_I_PINTEGER :: I
*
*----- air blast pressure*----- parameters of detonation for all models
Z_BLAST = D/CHARGE**0.333333D0*----- conwep is used for all models with different parameters
*begin different modelsI_P1=0.0SELECT CASE(EQU)
CASE (1) !refleced sphericalU_I_P = -
0.204004553231+1.37882996018*LOG10(Z_BLAST)POLY_I_P = (/2.55875660396,-
0.903118886091,0.101771877942,
> -0.0242139751146,0.0,0.0,0.0,0.0,0.0/)CASE (2) !incident spherical
IF(Z_BLAST 0.0348138030308,-0.010435192824,0.0,0.0,0.0,0.0/)
ELSEU_I_P = -
1.75305660315+2.30629231803*LOG10(Z_BLAST)
POLY_I_P = (/1.55197227115,-0.40463292088,-0.0142721946082,
> 0.00912366316617,-0.0006750681404,-
0.00800863718901,> 0.00314819515931,0.00152044783382,-
0.0007470265099/)
END IFCASE (4) !reflected hemispheical
U_I_P = -0.246208804814+1.33422049854*LOG10(Z_BLAST)
POLY_I_P = (/2.70588058103,-
0.949516092853,0.112136118689,> -0.0250659183287,0.0,0.0,0.0,0.0,0.0/)CASE (5) !incident hemispheicalIF(Z_BLAST
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
30/32
30
U_I_P =
2.06761908721+3.0760329666*LOG10(Z_BLAST)POLY_I_P = (/2.52455620925,-
0.52992763686,0.171335645235,
> 0.0450176963051,-0.0118964626402,0.0,0.0,0.0,0.0/)ELSE
U_I_P = -
1.94708846747+2.40697745406*LOG10(Z_BLAST)POLY_I_P = (/1.67231645863,-0.384519026965,-
0.0260816706301,
> 0.00595798753822,0.014544526107,-0.00663289334734,
> -0.00284189327204,0.0013644816227,0.0/)
END IFCASE DEFAULTWRITE(*,*) "IMPUSLSE NOT YET DEFINED"
END SELECT*--------------------------------------------------------------------
* kingery calculationDO I = 1, 9
I_P1 = I_P1 + POLY_I_P(I)*U_I_P**(I-1)
END DOI_POS= (CHARGE**0.33333333)* 10 ** I_P1
*
END SUBROUTINE AIRB_IMPULSE*============================================
SUBROUTINE GET_Z (EQU, P_MAX1, Z_BLAST)
* ------------------------------------------------------------------* returns Z for a given p_max* ------------------------------------------------------------------
* equ = choose of different explosion models* 1 = unconfined (full space), reflected (kingery)
* 2 = unconfined (full space), not reflected (kingery)* 4 = half-confined (half space), reflected (kingery)
* 5 = half-confined (half space), not reflected (kingery)* p_max1: given p_max*
IMPLICIT NONE*
*--- variables globalesREAL(8), INTENT(IN) :: P_MAX1INTEGER, INTENT(IN) :: EQU
REAL(8), INTENT(OUT) :: Z_BLAST*--- variables locales
REAL(8) :: INCR, CHARGE, P_MAX, D, T_START, T_D,P_NEG,
> T_NEG, B_BLAST
*INCR = 1.D0
Z_BLAST = 1.D0
D = 1.D0DO WHILE (INCR>0.001)CHARGE = (D/Z_BLAST)**3.D0
CALL AIRB_PARAMETER (EQU, CHARGE, D,P_MAX, T_START, T_D,
> P_NEG, T_NEG, B_BLAST)
IF(P_MAX1 >P_MAX) THENINCR = INCR /2.D0Z_BLAST = Z_BLAST - INCR
ELSEZ_BLAST = Z_BLAST + INCR
ENDIFEND DO
END SUBROUTINE GET_Z
*============================================
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
31/32
31
European Commission
Joint Research Centre Institute for the Protection and Security of the CitizenTitle: Pressure-Time Functions for the Description of Air Blast WavesAuthor: Martin Larcher2008 33 pp. 21.0 x 29.7 cm
Abstract
This work is being conducted in the framework of the project RAILPROTECT, which deals with the security andsafety of rail transport against terrorist attacks. The bombing threat is only considered, and focus is placed onpredicting the effects of explosions in railway and metro stations and rolling stock and on assessing thevulnerability of such structures.The project is based on numerical simulations, which are carried out with the explicit Finite Element CodeEUROPLEXUS that is written for the calculation of fast dynamic fluid-structure interactions. This code has beendeveloped in a collaboration of the French Commissariat l'Energie Atomique (CEN Saclay) and the JointResearch Centre of the European Commission (JRC Ispra).
There are several possibilities to simulate explosions, e.g., in trains and stations. The fasted one is to neglectthe influence of the air and to use only the structural part of the geometry. Then, the behaviour of the explosioncan be simulated by using a pressure-time function, which can be applied on the structure. This technical notepresents the pressure-time functions, which are implemented in EUROPLEXUS. In addition to this
implementation, an external routine is developed, which allows the calculation of several values of the pressure-time function. This program allows also to calculate, e.g., the charge by a given peak pressure and positiveimpulse, which is helpful by fitting experiments to a pressure-time function.
-
8/2/2019 Pressure-Time Functions AIR BLAST_JRC46829
32/32
The mission of the JRC is to provide customer-driven scientific and technical supportfor the conception, development, implementation and monitoring of EU policies. As aservice of the European Commission, the JRC functions as a reference centre ofscience and technology for the Union. Close to the policy-making process, it servesthe common interest of the Member States, while being independent of specialinterests, whether private or national.