Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
NASA-CR-195152 ///-/B "c'/Z.--
FINAL REPORT
submitted to
k., ..... _:_ _-_-_fional Aeronautics _dSpace Administration
Lyndon B. Johnson Space Centeri :_ : +__ _-:::= Space Science Branch
.............................. _ .......... A_: Eric L. ChristiansenHouston, TX 77058
for researchentitled
DESIGN OF ORBITAL DEBRIS SHIELDS FOR OBLIQUE
" : : .......... --:_ HYPERVELOCITY IMPACT
I[
L,r "; : _::
Submitted by
Eric P. Fahrenthold
Department of Mechanical EngineeringUniversity of TexasAustin, "IX 78712
- : -- . ......................
I
i ;:-[_ 7
February 14, 1994- 7:
rM
,,I" _ 0',
r_ fl_ 0I _".,I" _ oo- cZ _ 0
..J
I--
c_
0
ij.o
o
ua
,-4
!
I
Z
o
C_ C
.J_--
uJ _-* >
U3
_Z_ X
0
https://ntrs.nasa.gov/search.jsp?R=19940020355 2020-04-21T01:45:19+00:00Z
FINAL REPORT
submitted to
L,a National Aeronautics and Space AdministrationLyndon B. Johnson Space Center
Space Science BranchATTN: Eric L. Christiansen
Houston, TX 77058
for research entitled
DESIGN OF ORBITAL DEBRIS SHIELDS FOR OBLIQUE
HYPERVELOCITY IMPACT
Submitted by
Eric P. Fahrenthold
Department of Mechanical EngineeringUniversity of TexasAustin, TX 78712
February 14, 1994
w
w
w
w
- J
w
ABSTRACT
A new impact debris propagation code has been written to link CTH simulations
of space debris shield perforation to the Lagrangian finite element code DYNA3D, for
space structure wall impact simulations. This software (DC3D) simulates debris cloud
evolution using a nonlinear elastic-plastic deformable particle dynamics model, and
renders computationally tractable the supercomputer simulation of oblique impacts on
Whipple shield protected structures. Comparison of three dimensional, oblique impact
simulations with experimental data shows good agreement over a range of velocities of
interest in the design of orbital debris shielding.
Source code developed during this research is provided on the enclosed floppy
disk. An abstract based on the work described in this report has been submitted to the
1994 Hypervelocity Impact Symposium.
ii
==
i
. 1
i ¸
v
w
w
w
L
= ,i
-- iii
i
ACKNOWLEDGMENTS
w
= =
• -4
w
L t
i1¢
This work was funded under the NASA Regional Universities Grant Program.
The assistance of Eric L. Christiansen (NASA Technical Officer) and Jeanne Lee Crews
of the Space Science Branch of Johnson Space Center has been greatly appreciated.
Additional support was provided by Cray Research, Inc. under the Cray University
Research and Development Grant Program.
= ,
= =
w
= =
z
= =
w
w
w SOFTWARE COPYRIGHT NOTICE
iv
L .
Source code developed for NASA under this research project has been
copyrighted by the principal investigator.
w
W
W
m
L
W
= =
W
W
wV
TABLE OF CONTENTS
uv
Abstract
Acknowledgments
Software Copyright Notice
1. Introduction
2. Methodology
3. Particle Dynamics Model
4. Comparison to Experiments
5. Conclusion
References
Table 1. Example Impact Simulations
Table 2. Ballistic Limit Simulations
List of Figures
Appendix A: Example Input File (CTH simulation)
Appendix B: Example Input File (CTH simulation restart)
Appendix C: Example Input File (I)C3D)
Appendix D: Example Input File Header (DYNA3D)
Appendix E: Plotting Routine Source Code (DCMPLT)
Appendix F: Post-processor Source Code (DCPOST)
Appendix G: Analysis Source Code (DC3D)
Page
ii
111
iv
1
2
3
9
12
13
15
16
17
A-1
B-1
C-1
D-1
E-1
F-1
G-1
w
w
v
w
1. Introduction
The design of the space station Freedom and similar structures for earth orbit
must include provisions for the effects of hypervelocity impact, which may arise as a
result of space debris or micrometeorite encounters. This problem can be expected to
become increasingly important as longer duration space missions are launched,
increasing the exposure time of orbiting systems. Such missions provide increased
probability of impact damage while placing greater reliability demands on vehicles and
structures. Existing light gas gun facilities used in the study of hypervelocity impact
effects do not generally allow for tests at velocities above ten kilometers per second,
suggesting the use of computer simulation methods for orbital debris shield design at
those velocities.
The accomplishment of design goals for the space station and similar structures
depends in part upon the development and verification of computationally tractable
models capable of describing oblique hypervelocity impact effects at velocities beyond
existing experimental capabilities. Experience to date has shown that the extreme CPU
time and memory requirements of standard Eulerian hydrocodes (McGlaun et al., 1990)
make their use in direct simulation of three dimensional impacts on space debris shields
impractical, even given supereomputer resources. In addition, current Eulerian
hydfocodes do not in general rigorously account for material history effects on the failure
of space structures under impact debris loading. Conventional Lagrangian finite element
codes (Goudreau and l-lallquist, 1982), on the other hand, are not suitable for use in
simulating the shield perforation portion of the impact problem. Mesh distortion effects
greatly reduce the size of the time step used in the calculations, and mandate frequent
rezoning. As a result of the preceding difficulties, the only general simulation technique
demonstrated to date has involved the systematic linking of Eulerian hydrocodes (of
shield perforation) to Lagrangian finite element models (of debris cloud evolution and
debris impact on the protected structure). This approach has been developed and
implemented by the principal investigator (Fahrenthold, 1993).
-- 2
w
L
w
w
W
%
w
=w
w
w
The development of particle-based debris cloud evolution models [e.g. Fritts et
al. (1985), Trease et al. (1990), Monaghan (1988), and Trease (1988)], offers an
opportunity to directly simulate complete three-dimensional debris impact problems on
existing supercomputers. Particle-based methods address the previously discussed
shortcomings of Eulerian and Lagrangian codes in two ways: (1) they effectively
eliminate the mesh distortion problems of Lagrangian finite element codes, and (2) they
greatly improve on the CPU time efficiency of Eulerian hydrocodes while allowing for
accurate tracking of material history dependent effects such as plastic deformation. As an
application which has severely taxed the capabilities of conventional Eulerian and
Lagrangian computer codes, orbital debris shield design is well suited to capitalize on the
strengths of new particle-based modeling techniques. Hence the research presented here
has: (1) developed a debris cloud evolution code which links shield perforation and wall
impact simulations, (2) conducted three dimensional, supercomputer based simulations
of shield impact, debris cloud evolution, and wall impact problems, and (3) evaluated
and validated the computer models using data from experiments conducted at NASA
Johnson Space Center. This computer simulation methodology allows for the modeling
of impacts at velocities beyond ten kilometers per second which are very difficult to
duplicate in the laboratory.
2. Methodology
The problem of hypervelocity impact on space structures has been an object of
research since the 1950's, as reflected in the summary of Hypervelocity Impact
Symposia presented during recent conferences in that series (e.g. Anderson, 1986).
However both experimental and analytical research work has accelerated in recent years,
with most recent NASA interest focused on debris effects on the space shuttle and
planned space station. A significant data base exists for impacts at velocities below ten
kilometers per second (Tower et al., 1987), including studies aimed specifically at NASA
applications such as space shuttle windows (Schneider and Stilp, 1987) and debris shield
w i
design (Yew and Kendrick, 1986). However difficulties with conducting experiments at
higher velocities, relevant to both the space station and future programs, have limited the
ability to evaluate new designs in a laboratory setting.
The preceding facts suggest a combined experimental and analytical approach to
micrometeorite and debris shield design, using experimental data at velocities below ten
kilometers per second to critique and verify computer models, which then provide a basis
for higher velocity design calculations. The simulation work described here was
conducted on a Cray Y-MP/864 supercomputer at the University of Texas System Center
for High Performance Computing.
The principal investigator has made extensive use of existing supercomputer
based Eulerian and Lagrangian hydrocodes to evaluate theft use in orbital debris shield
design. In general Eulerian codes are best suited to hypervelocity impact simulations
where impact pressures are sufficiently large to render material strength effects generally
unimportant. An Eulerian code is best used to predict initial debris cloud mass and
distribution as a function of projectile material type and velocity, shield material type and
geometry, and other parameters. The protected space structure must be designed to avoid
spallation or fracture under the debts cloud impact. Since spaUation and fracture
processes are very stress and strain history dependent phenomena (Yew and Taylor,
1992, and Grady and Kipp, 1987), and since Lagrangian hydrocodes are best suited to
trace stress and strain history in solid materials, a Lagrangian hydrocode model of debris
cloud impact on the inner wall is most appropriate. The new modeling approach outlined
here links both parts of the impact event using a new analysis methodology, significantly
reducing computer resource requirements for oblique impact calculations.
3. Particle Dynamics Model
a. Introduction
This section describes a new modeling approach combining Lagrangian bond
graphs (Fahrenthold and Wargo, 1994) with a selected finite element discretization
wltm,
=
=.. ,,
w
w
L_
,,o
w
L
2
W
z
l
lii
w
w
scheme to allow for direct simulation of the dynamic evolution of debris particles arising
from hypervelocity impact.
b. Kinematics
The homogeneous deformation field associated with the finite element
discretization employed here allows the position x and velocity v of any mass particle
"P" in a particular element to be written in the form (Malvem, 1969)
x = F(t) ( r- r c ) + c(t) ; v = i_(t) ( r- r c ) + _(t) (la,b)
where c(t) and _z(t) are the position and velocity of the element center of mass "C", r and
r c are the position of P and C in the reference (initial undeformed) configuration of the
body, and F is the deformation gradient tensor. Note that since r and r c in equations (1)
are constants, the motion of any particle P in the element is determined by the motion of
C and by the time dependent components of the second order tensor F, related to the rate
of deformation (D) and velocity gradient (L) tensors by
D = (1/2) [ L + L T ] ; L - i_F -'1 (2a,b)
where the superscripts "-1" and "T" denote the inverse and the trarlspose. In the special
case where L is the skew-symmetric tensor whose axial vector is the angular velocity,
equation (lb) represents rigid body motion (Casey, 1983, and Fahrenthold and Wargo,
1991 a and b).
c. Kinetic energy
The homogeneous deformation kinematics of equations (1) allows the kinetic co-
energy (T*) of a single element of fixed mass "m" and variable volume "V" to be
expressed in the form
T* = (1/2) ] pv.v dV (3a)V
= (1/2) { _91:._ dV+ fpiT(r-rc)'i_(r-rc ) dV +2_:. i_ _p(r-rc)dV (3b)V V v
= (1/2) [ m'c.i: + tr(i_Ti _ J) l (3c)
where P is the density, "tr" is the trace operator, J is an inertia tensor,
4
W
s
F
j = f Po(r_rc)®(r_rc) dV o (3d)V
and conservation of mass requires
dm = p dV = 13o dV o (3e)
with Po the density in the reference configuration. Note that the third term in equation
(3b) is zero by definition of the center of mass. Since J is a constant tensor defined in the
reference configuration, the element momenta p and H are defined by
p = _T*/_ = m'c ; H = _T*/_i 7 = iTJ (4a,b)
Since the kinetic energy (T) of the finite element is
T = p._ + tr(HTi 7 )- T* (5a)
it follows that
T = (1/2) [ m -1 p.p + tr{(Hj'I)TH} ] (Sb)
The preceding results demonstrate that kinetic energy storage in a single finite
element may be modeled using the bond graph multiports shown in Figure 1. The kinetic
energy function may be represented in the most familiar form by the introduction of a
fourth order inertia tensor G, defined by
_2T*G - (6a)
so that
T* = (1/2) [ mi:._: + i_:G:i_ ] ; T = (1/2) [ m "1 p.p + H:G-I:H (6b,c)
Now the constitutive relation (4b) takes the form
H--G k (6d)
d. Internal energy
The preceding discussion of inertia effects must be augmented by an RC network
description of internal energy storage and energy dissipation in the material. Unlike the
inertia multiports, the capacitance and resistance multiports required to model a particular
material must be formulated for each material type. To illustrate this procedure, this
section considers the large strain deformation of an elastic-viscoplastic material (Haupt,
w
W
w
r
w
J
w
L_
L_
w
w
w
1985). This case emphasizes the applicability of the bond graph modeling methodology
described here to very complex engineering materials (Fahrenthold and Wu, 1988), and
hence to system dynamics and impact dynamics problems of a very general nature. Note
that the conventional assumptions of inf'mitesimal strain and linear stress-strain behavior,
included in the vast majority of mechanical vibrations models, are not adopted here.
Since the large strains and the relatively complex material response considered here often
calls for special purpose finite element code development work, the example material
selected demonstrates the simplicity of the proposed modeling methodology, as
compared to conventional displacement-based finite element analysis.
Before formulating a stored energy function for an elastic-plastic material, it is
appropriate to f'wst define the system kinematics. A very general description of the large
strain kinematics of elastic-plastic deformation is provided by a multiplicative
decomposition of the deformation gradient tensor F in the form (Haupt, 1985)
F = F e FP ; i_ = i_eFP + Fei_P (7a,b)
where F e describes the elastic deformation of the solid material from the unloaded
plastically deformed configuration and FP relates the unloaded plastically deformed
configuration of the material to the original undeformed reference configuration. Hence
the rate of change of F may be decomposed as in equation (7b) into a first term
governing the rate of elastic energy storage and a second term governing the rate of
plastic energy dissipation. In this case, the presence of both complex kinematics and
energy dissipation effects highlights the value of bond graphs in nonlinear system
modeling.
Since most elastic-plastic modeling work begins with a Helmholtz free energy
function and then derives the internal energy, that procedure is followed here. The
elastic-plastic kinematics just described are associated with a Helmholtz free energy
density function of the form (Dashner, 1986)
6
W
w7
w
L_w
= -
w
w
-s_ _
H = H( Fe, FP, 0) (7c)
Here H is assumed to take the conventional functional form (Bowen, 1989)
H = (1/Po_) { (M2) tr(Ee) 2 + I.t tr(Ee2) - [3(0-0 o) tr(E e) -[(cpcz)/(20o)](0-0o )2 } (7d)
where _. and I.t are Lame constants for an isotropic solid, c is the specific heat, 0 o is a
reference temperature, Pet is the density in the unloaded plastically deformed
configuration, and
E e = (1/2) [ FeTFe-I ] ; [3 = k (3_.+21.t) ; po/Pc_ = det(FP) (7e,f,g)
with "k" the thermal expansion coefficient and "det" the determinant operator. For an
element of mass "m", this corresponds to a (conserved) internal energy function
U = mH + 0S (Sa)
where S is the total entropy, defined by the thermodynamic identity
S = - 0(mH)o_O - (m/Pa) { cptt [ (O/0°) -1] + 13tr(E e) } (Sb)
Equations (7) and (8) may be combined to yield
U = (m/Po) det(FP) { I.t tr(E e2) + (k/2) tr(Ee) 2 + 130o tr(E e) } +
[(Cm0o)/2] { [ 1 + S/(mc) - (I]/(CPo)) det0FP) tr(E e) ]2 _ 1 } (8c)
The functional form for the internal energy
U = U(F e, FP, S) (9a)
leads to the multiport capacitor shown in Figure 2, where in this case
Ke = 0U0---'F_I FP,S = (m/Po_) F¢{ [_'+((1320o)/(cPct!)] tr(Ee) I +
2g.E e - [(lYloS)/(mc)] I } (9b)
KP 0U= 0F---if[ Fe,S = (m/Po _) { [(M2)+((1320o)/(cPa))] tr(Ee) 2 +
I.t tr(Ee2) - [(I]0oS)/(mc)] tr(E e) } F p-T (9c)
0U
0 = _-1Fe,FP = 0 o { 1+ S/(mc) - [13/(cpa)] tr(E e) } (9d)
L
w
8
m
_ i
= =
ELJ
U
t :
w
-
e. Plastic deformation
The material description is completed by defining the plastic constitutive relations.
For simplicity, the rate form
K d = rl (rrgpa) LP ; LP = iTPFP" 1
is adopted here, with rl a viscosity coefficient.
(10a,b)
The second order tensor K d
(dimensionally an extensive chemical potential) is the effort power conjugate to LP.
A model for the elastic-viscoplastic material just defined is shown in Figure 2.
Note that a transformer with fourth order tensor modulus M, defined by components
Mijrs = _SirFPj 1 (11)
is introduced in order to conform to the fundamental kinematic relation (10b).
f. Bond graph model
The bond graph structure of Figure 2 may be directly augmented with inertia
multiports representing the kinetic energy contributions associated with p and H. Finally
if the appropriate RC network model representing elastic-viscoplastic materials is
introduced, the result is the complete element-level bond graph shown in Figure 3,
representing the "ith" element of the system. Assuming adiabatic deformation, thermal
energy is stored, as indicated by the thermomechanical coupling shown in Figure 3. Note
that in Figure 3 transformers with moduli
_(_ 8jlF](_) 1 _,.p(i) " FP<i)-I= ; "'ijld = 8ik lj (12a, b)
are introduced in accordance with the kinematics of equations (7a and b).
g. State equation derivation
The causally augmented bond graph of Figure 3 and the constitutive relations
previously defined yield (Roscnberg and Karnopp, 1983) state equations for the "ith"
element of the form:
_(i) = 0 (13a)
(13b)/.i(i) =_ MP(i)T Ke(i)(Fe(i), FP(i), s(i))
==-_
U
-- 9
w
u
L_
m
w .
!
w
i_e(i) = MP(i)G(i)-I H(i)_ {p_)/(qm(i))} MP(i) Me(i)-I M(i)-lKd(i) (13c)
i_P(i) = {p(_)/(rlm(i))} M(i) -1 Kd(i)
_;(i) = [ 1/0(i)(Fe(i), FP(i), s(i))] {p_)/(rlm(i)) } tr{ Kd(i)TKd(i) /
(13d)
(13e)
where
Kd(i) = M(i)-T [ Me(i) -T MP(i)T Ke(i)(Fe(i), FP(i), s(i))
_KP(i)(Fe(i).FP(i),s(i))] (13f)
and the functions Ke(i), KP(i), and 0(i) are defined by equations (9). Note that
Me(i)-I . ..,c(i) ,,,p(i) i_(i)-I , (i)-I iP_i)ijkl = °jlrik ; '*'ijkl = CSikF ; _v_ ijkl = _ik F (14a,b,c)
Equations (13) are nonlinear equations in the state variables: p(i), H(i), Fe(i), FP(i), and
s(i).
h. Conclusion
The outlined modeling methodology may be implemented numerically, for a
variety of internal energy functions and plasticity models, for use in'engineering analysis
and design. The source code listing at Appendix G represents an isothermal, variable
compressibility implementation using the plasticity theory of Green and Naghdi (1971).
4. Comparison to Experiments
a. Introduction
Three dimensional simulation of hypervelocity impacts on space structures places
extreme demands on even supereomputer resources. To reduce the computer time and
memory requirements of oblique impact simulations, a three-dimensional, deformable
particle dynamics model of the type just described has been coded and linked to an
Eulerian hydrocode and a Lagrangian structural code, and applied in the simulation of
oblique hypervelocity impacts on Whipple shield protected structures. Comparison of the
results to experimental data shows good agreement at a computer time and memory cost
much less than that associated with conventional hydrocode calculations.
N
U
10
u
w
w
w
t__
This section describes evaluation of the preceding modeling approach using data
from Whipple shield impact experiments conducted at NASA Johnson Space Center,
including CPU time requirements for the simulation of representative oblique impact
problems.
b. Methodology
The deformable particle dynamics model of debris cloud evolution is referred to
here by the title DC3D. This numerical model is used in combination with the Eulerian
hydrocode CTH (McGlaun et al., 1990) and the structural finite element code DYNA3D
(Goudreau and Hallquist, 1982) as follows. An Eulerian simulation is f'trst employed to
model impact on the shield. Then post-processing of the velocity, mass density, and void
space distribution data from the Eulerian simulation is used to establish the initial state of
the elastic-plastic riaodel of the debris cloud. Numerical integration of the particle
dynamics model DC3D, using established system dynamics modeling techniques
(Rosenberg and Karnopp, 1983) provides a thermodynamically rigorous yet
computationally efficient basis for predictions of debris cloud evolution over the
relatively large spaces which normally separate shields from the space structure which
they protect. Output from the debris cloud evolution model then provides a basis for the
simulation of impact on the wall plate, using DYNA3D. Input data for the wall impact
simulation is generated automatically by DC3D, based on the final state of the debris
cloud propagation model. By using a momentum deposition representation of the debris
cloud loading on the wall plate (calculated from the DC3D results), meshing of each
debris particle in DYNA3D can be avoided, yielding additional reductions in computer
time and memory requirements.
c. Oblique impact example
The analysis procedure just discussed may be illustrated by considering an
oblique impact simulation for a Whipple shield configuration. Specifically, consider the
oblique (23 degree) impact of a 15/64 inch diameter aluminum (2017-T4) sphere, at 7.1
kilometers per second, on a 0.063 inch thick aluminum (7075-T6) shield, protecting a
-- 1i
-=w
0.125 inch thick aluminum (7075-T6) wall plate. The shield to wall plate spacing is 4.0
inches. Figure 4 sh_ws the CTH simulation results for impact on the shield, at four
microseconds after impact. (Note that due to symmetry, all of the figures discussed here
depict only one-half of the physical system modeled.) The code DC3D was then
employed to: (1) post-processes the CTH results to formulate a debris cloud model, (2)
propagate the debris to the wall plate, and (3) generate a DYNA3D input file for use in
modeling impact of the debris cloud on the wall plate. DC3D uses a variable step method
for numerical integration of the first order state equations describing the elastic-plastic
debris cloud dynamics, and commercial plotting routines for graphical representation of
the simulation results. Figure 5 shows the predicted impact momentum distribution on
the wall plate. Finally a DYNA3D simulation of the wall plate impact was conducted,
using a momentum deposition approach to represent the effects of the debris. Figures 6
and 7 show front and rear views of the wall plate impact simulation, including extensive
spallation observed in the experiment.
By making appropriate use of Eulerian and Lagrangian codes for those pans of
the simulation where they are both accurate and computationally tractable, this approach
does not suffer from the limiting assumptions of many previous attempts to model shield
impact problems (e.g. Swift et al., 1983), In addition, that portion of the total impact
simulation described by the debris cloud model incorporates arbitrarily nonuniform,
three-dimensional velocity, density, and void space distributions not admitted by many
simplified debris models published to date (Grady and Passman, 1990). In summary, the
approach used here makes use of the known strengths of available codes while providing
an essential improvement in computational efficiency for oblique impact simulation. Such
an improvement is essential before computer codes can provide a practical analytical
design tool.
The preceding example demonstrates the feasibility of the modeling approach. Its
computational efficiency is such that computer resource requirements are relatively
E
w
modest, considering the three dimensional nature of the simulations. Typical CPU time
requirements are listed in Table 1.
d. Ballistic limit calculations
12
Finally it is worthwhile to compare some hypervelocity impact simulation results
with ballistic limit calculations based on published experimental research. Figure 8
depicts a typical Ballistic limit curve, and in, cares the velocities and impact particle
diameters used in the simulations. Figures 9 through 20 show results of the simulation of
oblique Whipple shield impacts at 7 and 10 kilometers per second, using the debris
propagation code and the general modeling methodology developed under this project.
The cases represented are listed in Table 2.
= .
Note that the simulations were conducted for particle diameters above and below
the expected ballistic limits for the two velocities. The simulations are consistent with the
ballistic limit curve data at 7 km/sec. At 10 krn/sec, the simulations suggest slightly less
wall damage than might be expected from the ballistic limit curve. Computer time
requirements are very modest, considering the complexity of the problems.
= . 5. Conclusion
The outlined research has addressed fundamental problems relevant to the
development of space vehicles and structures for a variety of missions. It makes use of
state of the art supercomputer resources while applying the newest numerical modeling
techniques, designed to make oblique impact simulations computationally tractable. It
included numerical implementation of a nonlinear, elastic-plastic debris cloud dynamics
model important to accurate shield impact calculations. The resulting simulation capability
can provide an important adjunct to experimental work on space shield design for a
variety of future missions. The outlined work has been coordinated directly with NASA
JSC experimental research efforts, and the f'mal source code has been provided to
NASA. It is therefore suggested that the proposed research has addressed important
objectives of the NASA Regional Universities Grant Program.
13
REFERENCES
E
W
Anderson, C.E., Jr., ed., 1986, Hypervelocity Impact: Proceedings of the 1986Symposium, Pergammon Press, Oxford.
Bowen, R.M., 1989, Introduction to Continuum Mechanics fQr Engineers,Plenum Press, New York.
Budge, K.G., and Peery, J.S., 1993, "RHALE: a MMALE shock physics codewritten in C++," International Journal of Impact Engineering, Vol. 14, pp. 107-120.
Casey, J., 1983, "A Treatment of Rigid Body Dynamics," Journal of AppliedMechanics, Vol. 50, pp. 905-907 (see also errata listed in Vol. 51, p. 227).
Christiansen, E.L., 1990, "Advanced Meteoroid and Debris ShieldingConcepts," AIAA 90-1336, presented at the AIAA/NASA/DOD Orbital DebrisConference, Baltimore, April 16-19.
Cour-Palais, B.G., and Crews, J.L., 1990, "A Multi-Shock Concept forSpacecraft Shielding," International Journal of Impact Engineering, Vol. 10, pp. 135-146.
Dashner, P.A., 1986, "Invariance Considerations in Large Strain Elasto-plasticity," Journal of Applied Mechanics, Vol. 53, pp. 55-60.
Fahrenthold, E.P., 1993, "A Lagrangian Model for Debris Cloud DynamicsSimulation" International Journal of Impact Engineering, Vol. 14, pp. 229-240.
Fahrenthold, E.P., and Wargo, I.D., 1991a, "Vector and Tensor Based BondGraphs for Physical Systems Modeling," Journal of the Franklin Institute, Vol. 328, No.5/6, pp. 833-853.
Fahrenthold, E.P., and Wargo, J.D., 1991b, "Vector Bond Graph Analysis ofMechanical Systems," Journal of Dynnmic Systems, Measurement and Control, Vol.113, No. 3, pp. 344-353.
Fahrenthold, E.P., and Wargo, J.D., 1994, "Lagrangian Bond Graphs for SolidContinuum Dynamics Modeling," Journal of Dynamic Systems, Measurement, andControl, in press.
Fahrenthold, E.P., and Wu, A., 1988, "Bond Graph Modeling of ContinuousSolids in Finite Strain Elastic-Plastic Deformation," Journal of Dynamic Systems,Measurement, and Control, Vol. 110, pp. 284-287.
Fritts, M.J., Crowley, W.P., and Trease, H.E., eds., 1985, The Free-La_angeMethod, Springer-Verlag, New York.
Goudreau, G.L., and HaUquist, J.O., 1982, "Recent Developments in Large-Scale Finite Element Hydroctxie Technology," Computer Methods in Applied Mechanicshnd Engineering, Vol. 33, pp. 725-757.
Grady, D.E., and Kipp, M.E., 1987, "Dynamic Rock Fragmentation," in
Fracture Mechanics of Rock, ed. B.K. Atkinson, Academic Press, San Diego, pp. 429-475.
Grady, D.E., and Passman, S.L., 1990, "Stability and Fragmentation of Ejectain Hypervelocity Impact," International Journal oflmpact Engineering, Vol. 10, pp.197-212.
Green, A.E., and Naghdi, P.M., 1971, Int. J. of Eng. Science, Vol. 9, pp.1219.
Haupt, P., 1985, "On the Concept of an Intermediate Configuration and ItsApplication to a Representation of Viscoelastic-Plastic Material Behavior," InternationalJournal of Plasticity, Vol. 1, pp. 303-316.
Malvern, L.E., 1969, Introduction to the Mechanics of a Con_invou_ Medium,Prentice-Hall, Englewood Cliffs, New Jersey.
McGlaun, J.M., Thompson, S.L., and Elrick, M.G., 1990, "CTH: A Three
Dimensional Shock Wave Physics Code," International Journal oflmpact Engineering,Vol. 10, pp. 351-360.
w
14
Melosh, H.J., Ryan, E.V., and Asphaug, E., 1992, "Dynamic Fragmentation inImpacts," Journal of Geophysical Research, Vol. 97, No. E9, pp. 14,735-14,759.
Monaghan, J.J., 1988, "An Introduction to SPH," Computer PhysicsCommunications, Vol. 48, pp. 89-96.
Rosenberg, R.C., and Karnopp, D.C., 1983, Introduction to Physical SystemDynamics. McGraw-Hill, New York.
Schneider, E., and Stilp, A., 1987, "Micrometeorite Impact Simulation at EMI -A Review," International Journal of Impact Engineering, Vol. 5, pp. 561-568.
Stellingwerf, R.F., and Wingate, C.A., 1993, "Impact Modeling with SmoothParticle Hydrodynamics," International Journal oflmpact Engineering, Vol. 14, pp. 707-718.
Swift, H.F, Bamford, R., and Chem, R., 1983, "Designing Space VehicleShields for Meteoroid Protection: A New Analysis," Advances in Space Research, Vol.2, pp. 219-234.
Tower, M.M., Jackson, G.L., Farris, L.K., and Haight, C.H., 1987,"Hypervelocity Impact Testing Using an Electromagnetic Railgun Launcher,"International Journal of Impact Engineering, Vol. 5, pp. 635-644.
Trease, H.E., 1988, "Three-Dimensional Free-Lagrange Hydrodynamics,"Computer Physics Communications, Vol. 48, pp. 39-50.
Trease, H.E., Fritts, M.J., and Crowley, W.P., eds., 1990, Advance_ in theFree-La_ange Metho_i, Springer-Vedag, New York.
Yew, C.H., and Kendrick, R.B., 1986, "A Study of Damage in CompositePanels Produced by Hypervelocity Impact," International Journal of Impact Engineering,Vol. 5, No. 1-4, pp. 729-738.
Yew, C.H., and Taylor, P.A., 1992, "A Simple Theory of DynamicFragmentation," Sandia National Laboratories, Albuquerque, New Mexico.
w
m
w
W
15
Table 1. Example Oblique Impact Simulations
shield to wall spacing:shield thickness:wall thickness:
impact velocity:impact obliquity:impact mass:material:
4.0-8.0 inches0.063-0.071 inches0.125-0.160 inches7.1-7.6 km/sec
23.0-58.4 degrees0.202-0.376 gramsaluminum
w
F-
Simulation Computer Code Memory CPU time
type system
shield impact Cray Y-MP/864 CTH < 64 MB 2.0-6.0 hrs
debris evolution IBM RS/6000* DC3D < 16 MB 0.5-3.0 days
wall impact Cray Y-MP/864 DYNA3D < 64 MB 0.5-1.0 hrs
*The CPU time range given is for a Model 320, a very low performance system.
LJ
7. "
=
w
w 16
Table 2. Ballistic Limit Simulations
bumper thickness = 0.127 cmwall thickness -- 0.3175 cm
impact obliquity -- 25 degreesmaterial = A1 606 l-T6
(also see the ballistic limit plot in Figure 8)
Simulation # ...ILnpactvelocity Particle diameter
7a 7 krn/sec 0.575 cm 9 through I 17b 7 km/sec 0.475 cm 12 through 14
10a 10 km/sec 0.530 cm 15 through 1710b 10 km/sec 0.430 cm 18 through 20
CPU time rc,o_uirements
bumper impact simulations (CTH):debris transport calculations (DC3D):wall impact calculations (DYNA3D):
1.80-2.11 CPU hrs, Cray YMP3.34-5,67 CPU hrs, IBM RS/60000.27-0.28 CPU hrs, Cray YMP
w
w
w17
= , List of Figures
w
w
w
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
1. Inertia multiports: deformable particle dynamics model.
2. RC multiports: deformable particle dynamics model.
3. Bond graph: deformable particle dynamics model.
4. CTH simulation of oblique impact on a Whipple shield (t = 4 gsec).
5. DC3D simulation results for impact momentum distribution on the wall plate.
6. DYNA3D simulation results: front surface of the wall plate.
7. DYNA3D simulation results: rear surface of the wall plate.
8. Ballistic limit plot.
9. C'TH simulation 7a results: the shield and the debris cloud at four
microseconds after impact.
Figure 10. DC3D simulation 7a results: areal density of the debris cloud momentum
deposited on the wall plate. _
Figure 11. DYNA3D simulation 7a results: front surface of the wall plate.
Figure 12. CTH simulation 7b results: the shield and the debris cloud at fourmicroseconds after impact.
Figure 13. DC3D simulation 7b results: areal density of the debris cloud momentumdeposited on the wall plate.
Figure 14. DYNA3D simulation 7b results: front surface of the wall plate.
Figlare 15. CTH simulation 10a results: the shield and the debris cloud at threemicroseconds after impact.
Figure 16. DC3D simulation 10a results: areal density of the debris cloud momentumdeposited on the wall plate.
Figure 17. DYNA3D simulation 10a results: front surface of the wall plate.
Figure 18. CTH simulation 10b results: the shield and the debris cloud at threemicroseconds after impact.
Figure 19. DC3D simulation 10b results: areal density of the debris cloud momentum
deposited on the wall plate.
Figure 20. DYNA3D simulation 10b results: front surface of the wall plate.
Figure i
oo
Figure 2
w
L_ J
L
| J.
F_
I L-L..-¢o
_ :_-_
¢q
°_
Figure 3
w
_f
t
--I _ _'_
o__
°-r"
oT!
I---
v
w
L_
w
Figure 4
= :
w
w
-.w
u
= =
w
w
w
w
_00IW0_0
0
il
._E
CO
0 ,---4('qom
°IIO
; I I I I I I
_I_I
I I I
{.0I
I
I I
(_o) X
I
[-..
I I I I l I
1 I I i I I l
I I l I I I !
(_0) Z
bO
I
- 03I
I
O3
O
i
EO
v
>-
¢0COv
E0 0_-- Q_
EX
"ID
c-
Q_
3
0-o_
.O0
w
w
=
Figure 5
w
m
w
EL_
V
N
12.0
8.0
4.0
0.0
-4.0
0.0
mpoct
4.0
Momentum Areal Density
8.0
x(cm)
I12.0
I I I
g/cm- msec
+o.ooS +45.68
I +87.37
+131.05
+174.73
+218.41
+262.10
+305.78
i.O
w
w
- +
w
= =
w
w
w
=
w
w-q
"o0
u
•--. _r
(Jm
N--.L E.9 "_
+_
u
q.d
J,J
0
(',9
Figure 6
Win4
q-
U
"ov
v'q
+W
,,-4
I
L
0_JU
q-
U
O_
"0
= _ Figure 7
v,
w
"O_ 0
E
U
_ E N
z _ ,..4 _"
|
I. E
o- iU ._
u
i.
r,J
+_
q-IJ
"[3V
+W
|
I.0
O
q-
U
G.M
Figure 8
A
Eov
E.i1o
_o1=
o.
08
06
04
02
Whipple shield
J I Ibumper thickness = 0.127 cmwall thickness = 0,3175 cm
wali to bumper spacing = 10.16 cmimpact obliquity = 25 degrees
yield stress = 40 ksiprojectile density = 2.7 g/ccbumber density = 2.7 g/cc
.......................i.......................:.-".......................i.............................................................................................._ • .
i i i
........... ° ...................
i ! i i
i i • simulations !i i i i
i i i i
ballistic imlt
0 2 4 6 8 10 12 14
impact velocity (km/sec)
E .
i
Figure 9
I
o
m
COCDi
tLJO
(:D(:D
m
W _ CO ox ., 0
¢0
I I I I I I I
_- eO 0) o ,-4I I I ,--4 .--4
I I
(_o) A
I I I I I I I
_ .,i"fill''l:_'':"...._ ,l!!ill:,
Iil,III ,.i II i
II I I_ I . , !
!
,f, ; " i , ' ,11 --
I I I I I I I
I I I I I I I
CO ('4 ,-_ 0 ,-4I
(_o) Z
U_
COi
E0
v
• >_0
I
b_
i
Co
A
E
v
X
0
A
o
v
0oO_
E
-O
O)
O_O_
• (-
3
r_
Figure !0
E
v
U
12.0
8.0
4.0
Impact Momentum Areal Density
g/cm-msec
;iii!i!i+ooo+ 117.28
_ +254.57
+351.85
+469.14
+586.42
+703.71
+820.99
%--
-4.0
0.0 4.0 8.0 12.0x(cm)
16.0
w
L.
w
1
W
w
w
"00
U
c_E
+W
O_
I!
_. E
Figure ii
+J
4-U"0
+W
H
L0
O
9-
U
U
O.
,t-I
"0
Figure 12
L_
m
T
_L
_DCD
iIll
0CD
CD o(23 O9 o
X2 ,--4 ,---_ Q3
II O _
E "*"
I I I I I I I
I n..lQ_. • "q% • . eo
l _o- .o. , . .'_'.,il lid. lI- 11... -I
I I I ,--, ,-4i i
I I I I I I I
.,,,i_! )11111:"
i., !
i
i.u'l*, • 0
I ,
a,M .i !
C0_ 1
EO
• >_O
I
u
I
I I I I I I L
I I I I I I I
i
iiIiiiiiiiIiiiIiiIiiiiiIiiiiiiiiiiiiiii!!!!!i!!!! I
(_) Z
CO
0
A
EO
v O_
E
n_
o_o_
3
.o0
Figure 13
J
Li
w
w
w
Eo
N
12.0
8.0
4.0
0.0
-4.0
0.0
mpQct Momentum AreGI Density
I4.0 8.0 12.0
x(cm)
g/cm-msec
',_',_i_i_ii+ O. O0
_ +41.27
_ +82.54
+123.81
+165.09
+206.36
+247.63
+288.90
16.0
Figure 14
w
z
9 -
v
e,,,.I
IJ"0oE
.ia(JrO0_"E ,_
+,'. W,., _.*0 El
(_
U
tn
L E(3 ..._
[,.,l..,.,.li ,,.l,l,lg[TTr_lixlall
....... ::::::_::::;_[_[i[ !!![![
.o
3
I/"o
+W
|
Lo
L)
¢4-
la
(J{n
I
{2.(n
ll-m
"0
=
=
Figure [5
w
r .
COoI
i,lCO
CD(::3
CO
CO(7) _. .._4
W o:3= _ .. o
¢o
II o
E "_I-- _'-
I I I I I 1 I
I _,;,....,.,N ..1_._-" . _i..' ' . -I
b") 1.13 1.1'3 LI3 1.1'3
_'- CO 03 ¢D --_
t I
(wo) I
t I I I I I I
4 If I, I"..Ill IZl,_f,..
i I' , ' ,
I H. ii i" I' i
i
I • !• 0
'1
,i
. i
i L, I I I I I
I I I I I I I
illillliltllllllllllllllllllllllCO ("4 _ 0 "-"
I
(,.uo) Z
O7
COI
E(.)
v
I
Lr)
i
CO
E
v
X
oov
ooo_E
(1)OR
(/)
(D
{3_
3
Q0
Figure 16
L.
Iq
Ev
N
12.0
8.0
4.0
0.0
-4.0
0.0
Impact Momentum Areal Density
I
4.0 8.0 t2.0x(cm)
g/cm-msec:+:+.-+:.>
i',iiii!iiiii + 0.00
1 +64.88
_ +129.77
+194.65
+259.53
+,324.41
+,389.30
+454.18
16.0
[IW -
Figure 17
L ,
=
w
r_
W
B
w
r 7
T
h
w
w
U"0O
+J
o
O_EH
+
L_II
L E
p-q
U
÷W
|
LO-
U
U
u
o.
Ig-q
"0
Figure 18
O
IW
(Y3oo
CO
CO(7)
I I I I I I I
t._ I.l") If) L._ L._
L",- O0 0") c::)
1 I
I I t I I I I
_ i, ,
N II-- i iIJ'. ''m'
_lll! ,,,,;;i,_,,,, ,,,
., ,I ,i
. i
-- ! ,,i
i,I
i
I I 1 I I 1 I
I I I I I I I
I
(_0) Z
LO
O0I
E0
• >_o
I
LF]
I
CO
E
X
o
_Q0
v
0oo_E
-O
(I)
(I)r--r
Q_O_
c-
3
<I)
O-
.Q0
Figure 19
_-q
Eo
v
N
12.0
8.0
4.0
-4.0
0.0
lmpoct Momentum AreGl Density
I
4.0 8.0 12.0x(cm)
g/cm- msec
iSgii!+ooo_ +19.15
+38.31
+57.46
+76.61
+95.76
+ 11 4.92
+134.07
16.0
Figure 20
w
L
w
r_
E J
r_u
E
U"OO
O
O_E ,-4
+-- LJ-'. m
-_ 0_0_
UH
v)
L 6
P'N
"1
4-U
"0
+W
|
L0
0
4-
U
0
O.
_J
= =
w
APPENDIX A
Example Input File (CTH simulation)
A-!
w
= _
w
w
%.-
r
L L
I £
A-2
*eor* cgenin
* cthgen input
***********************************************************************
* Title record
Oblique whipple shield impact (7a)
* control records
control
ep
* mmp
endc
* edit records
edit
block 1
expanded
endb
ende
* mesh records
mesh
bleck 1 geom=3dr type=e
x0 0.0
xl n=50 w=l. 5875 rat=l.
endx
y0 -11.5
yl n=125 w=3.96875 rat=l.
endyz0 -1.000
zl n=125 w=3.96875 rat=l.
endz
xact = 0.0 1.00
yact = -11.5 -10.40
zact = -0.50 1.00
endb
endm
* material insertion records
L
w
w
w
u
w
J
A-3
insertion of materialw
block 1
package projectilematerial 1
numsub 49
velocities xvel 0.0 yvel 6.3441545e5 zvel 2.9583278e5
insert sphere
center 0.0 -10.5745 0.0
r 0.2875
endi
endp
package shield
material 1
numsub 49
velocities xvel O. yvel O. zvel O.
insert box
xl 0.0 yl -10.287 zl -i.00 x2 1.5875 y2 -10.16 z2 2.96875
endi
endp
endb
endi
* eos records
* eos
eos
matl
* matl
* mat2
num 2
mgrun eos=6061-t6_al
mgrun eos=2024-t4 al
mgrun eos=7075-t6_al
* aneosl -1 'Aluminum library' lib=6 type=4 rhug=-l, thug=-l.
ende
* material strength records
epdata
* matep 1
* matep 2
matep 1
* matep 1
* matep 2
* matep 1
* matep 2mix = 5
ende
jfrac=7
jfrac=8st=6061-t6 aluminum
st=2024-t4--aluminum
st=7075-t6 aluminum
st=user rO=l.O
st=user rO=l.O
-- A-4
=
w
w
w
w
• °-_,
endinput
* end of cthgen input
*eor* cthin
* cth input
* Title record
Oblique whipple shield impact (7a)
* control records
restart
nu = 1endr
control
tst = 1.0e-6
nsc = 5000
cpshift = 60.
* mmpendc
convect
convection = 1
endc
* time step records
mindt
time = 0. dt = 1.e-12
endn
maxdt
t ime=0, dt=0.5e-10
t ime=3 .e-10 dt=l.
endx
* tracer records
tracer
* add 0.0 -10.528
* add 0.0 -10.368
* add 0.0 -10.287
0.0
0.00.0
w
- A-5
w
w
i
w
w
* add 0.0 -9.368
* add 0 .0 -0 .127
* add 0.0 -9. 368 to 1.0 -9. 368 n 3
* add 0.0 -0. 127 to 1.0 -0. 127 n 9
endtw
* edit records
edit
shortt
time=O, dtf=5 .e-6
time=l .e-5 dtf=l.e-5
t ime=l .e-4 dtf=l .e-4
ends
longttime=O, dtf=5 .e-6
time=l.e-5 dtf=l .e-5
t ime=l .e-4 dtf=l .e-4
endl
plotttime=O, dtf=O. 5e-6
time=15.0e-6 dtf=l. Oe-6
time=30. Oe-6 dtf=2. Oe-6
endphistt
time = O. dtf -- l.e-8
* htracerl
* htracer2
* htracer3
* bxyz 1 0.0 -8 Ol 0 0
* bxyz 1 0.2 -80l 0 0
* bxyz 1 0.4 -80l 0 0
* bxyz 1 0.6 -80l 0 0
* bxyz 1 0.8 -80l 0 0
* bxyz 1 1.0 -80l 0 0
endh
ende
* boundary condition records
boundary
bhydroblock 1
bxb=O bxt=l byb=l byt=l bzb--I bzt=l
endb
endh
endb
* end of cth input
*eor* hisinp
w A-6
z
W
_ l
w
=
* hisplt input
bottom=off
plot time cpu v2=dt v3=etot
*plot time pressure.1 v2=pressure.2 v3=pressure.3
*plot time yvelocity.1 v2=yvelocity.2 v3=yvelocity.3
*plot time zvelocity.1 v2=zvelocity.2 v3=zvelocity.3
*plot time pressure.4 v2=pressure.5 v3=pressure.6
*plot time pressure.7 v2=pressure.8 v3=pressure.9
* end of hisplt input
*eor* pltinp
* cthplt input
units cgsk
bottom=off
*color table = 6
*color material m 16 112
*color nmaterial m 31 127
*3dplot*tcolor = 6
*3dline, mat=O
3dortho, mat=O
*2dfix x=O.0
*2dplot if tracer dots=density=3.0
* end of cthplt input
w
E
B-1
w
APPENDIX B
w
L
Example Input File (CTH simulation restart)
L_
w
w
w
w
B-2
w
E
= =
w
=
*eor* cgenin
* cthgen input
* Title record
Oblique whipple shield impact (7a)
* control records
control
ep
* mmp
endc
* edit records
edit
block 1
expanded
endb
ende
* mesh records
mesh
block 1. geom=3dr type=exO 0.0
xl n=50 w_1.5875 rat-l..
endx
y0 -11.5
yl n=125 w=3.96875 rat=l.
endyz0 -1.000
zl n=125 w=3.96875 rat=l.
endz
xact - 0.0 1.00
yact = -11.5 -10.40zact _ -0.50 1.00
endb
endm
* material insertion records
w
w
w
insertion of material
block 1
package projectile
material 1
numsub 49
velocities xvel 0.0 yvel 6.3441545e5
insert sphere
center 0.0 -10.5745 0.0
r 0.2875
endi
endp
zvel 2.9583278e5
package shield
material 1
numsub 49
velocities xvel O. yvel O. zvel O.
insert box
xl 0.0 yl -10.287 zl -1.00 x2 1.5875 y2 -10.16 z2 2.96875endi
endp
endb
"endi
* eos records
* eos
eos
matl
* matl
* mat2
num 2
mgrun eos=6061-t6 al
mgrun eos=2024-t4 al
mgrun eos=7075-t6--al
* aneosl -1 'Aluminum library' lib=6 type=4 rhug=-l, thug=-l.
ende
* material strength records
epdata
* matep 1
* matep 2
matep 1
* matep 1
* matep 2
* matep 1
* matep 2mix = 5
ende
jfrac=7
jfrac=8
st=6061-t6 aluminumm
st=2024-t4 aluminum
st=7075-t 6--aluminum
st=user rO=l.O
st=user rO=l.O
B-4
k
i J
! =i.w=
I | :!
i i i
w
endinput
* end of cthgen input
*eor* cthin
* cth input
* Title record
Oblique whipple shield impact (7a)
w
* control records
restart
newfile
nu = 3
endr
control
tst - 4.0e-6
nsc = 5000
cpshift = 60.
* mmp
endc
convect
convection = 1
endcw
* time step records
mindt
time = 0. dt = l.e-12
endn
maxdt
time=0, dr=0.5e-10
t ime=3 .e-10 dt=l.
endx
* tracer records
tracer
* add 0.0 -10.528
* add 0.0 -10.368
0.0
0.0
w
w
w
* add 0.0
* add 0.0
* add 0.0
endt
* add 0.0 -10.287 0.0
* add 0.0 -9.368
-0.127
-9.368 to 1.0 -9.368 n 3
-0.127 to 1.0 -0.127 n 9
* edit records
edit
shortt
time=O, dtf=5.e-6
time=l.e-5 dtf=l.e-5
time=l.e-4 dtf=l.e-4
ends
longttime=O, dtf=5.e-6
time=l.e-5 dtf=l.e-5
time=l.e-4 dtf=l.e-4
endl
plotttime=O, dtf=l.5e-6
time=15.0e-6 dtf=l. Oe-6
time=30.0e-6 dtf=2.0e-6
endp
histt
time = O. dtf = l.e-8
* htracerl
* htracer2
* htracer3
* bxyz 1 0.0 -8.01 0.0
* bxyz 1 0.2 -8.01 0.0
* bxyz 1 0.4 -8.01 0.0
* bxyz 1 0.6 -8.01 0.0
* bxyz 1 0.8 -8.01 0.0
* bxyz 1 1.0 -8.01 0.0
endh
_ende
* boundary condition records
boundary
bhydro
block 1
bxb=O bxt-i byb=l byt=l bzb=l bzt=lendb
endh
endb
* end of cth input
*eor* hisinp
-- B-6
w
zw
* hisplt input
bottom=off
plot time cpu v2=dt v3=etot
*plot time pressure.1 v2=pressure.2 v3=pressure.3
*plot time yvelocity.1 v2=yvelocity.2 v3=yvelocity.3
*plot time zvelocity.1 v2=zvelocity.2 v3=zvelocity.3
*plot time pressure.4 v2=pressure.5 v3=pressure.6
*plot time pressure.7 v2=pressure.8 v3=pressure.9
* end of hisplt input
*eor* pltinp
* cthplt input
***********************************************************************
units cqskbottom=off
*color table = 6
*color material - 16 112
*color nmaterial _ 31 127
*3dplot
*tcolor = 6
*3dline, mat=O
3dortho, mat=O
*2dfix x=O.O
*2dplot if tracer dots=density=3.0
* end of cthplt input
************************************************************************
i
L
=
C-!
w
L
. k
APPENDIX C
Example Input File (DC3D)
u
_ i._ ¸
iL-
-- C-2
E ;
t.
_zw
m
w
* dc3d input file
* itype jtype
2 1
* il i2
2 33
* jl j264 112
* kl k2
17 80
* xlow
0.0
* ylow"-II .5000
* zlow
-i .0000
* tcut
25.0
* idmax jdmax51 5
* xdmin
0.0
* ydmin
0.0
* zdmin
-4.00
* VTnU
0.259
* zeta
1.0e-9
* mdfactor
1.0
delta x
0.031750
delta y0.031750
delta z
0.031750
tmin
0.0
kdmax
I01
xdmax
8.00
ydmax
0.3175
zdmax
12.00
vlamb
0.503
epsI. 0e-6
dencut
0.01
idmaxn jdmaxn
51 5
xdminn
0.0
ydminn
0.0
zdminn
2.0
denref
2.703
ymxref
1.0e-6
kdmaxn
I01
xdma xn
4.00
ydmaxn0.3175
zdmaxn
I0.0
eta
1.0e-3
w D-1
APPENDIX D
Example Input File Header (DYNA3D)
w
mm_
D-2
Debris Cloud Wall Impact Model2 25763 20001
0 0 0 0 0 0 0
e20.O
o o 0
1 0
1. Oe-I 8o
lO0.Oe-Ol -2.e+4 50.e-Ol
0
00
1 13 2.703
e-p w/failure0.276 2.900e-03 3.88e-03 1.500e-O -12.e+33
7.20e-i
88 large
0 1619
I.d 2 1
elastic1.0
0.3
1.0
z
iiLi
L
E-1
w
-_ i
_LAPPENDIX E
L
Plotting Routine Source Code (DCMPLT)
z IL :
m
w
w
r_
L_
z
= :
= ,
L
w
w
=
c
c
c
c
c
c
c
c
c
c
c ii
c
c
c
program dcmplt
dimension x(500),y(500),z(500),
i zz (500,500) ,cval (i0)
external grctr, efsplt
external grctr,egsgl,efsplt
open (I, file='dcpost .plt ' )
open (2, file='dc3din ')
open ( 9, file= 'dcmplt, out ')
do ii i=1,500
x(i)=O.O
y(i)=O.O
z (i) =0.0
continue
scale=l.Oe+6
scale=l. Oe+3
c
i01
i0
98
jmax=l
kmax=l
zmax=O.O
do i0 i=I,500000
read (I, i01, end=98)
format (2i6,3e15.3)
x (j ) =xx
y (k) =yy
zz (j, k) =pmag*scale
if(zz(j,k) .gt.zmax)
if (j .gt. jmax)
if (k.gt .kmax)
continue
j,k, xx, yy, pmag
zmax=zz(j,k)
jmax=j
kmax=k
dummy= 1.0
iunit=O
idzz=500
iopt=l+2+4
iopt=2+8
ncv=8
cval (i) =i. 0e-33
cval (2) --zmax
call
call
call
call
call
grctr (jmax, kmax, x, y, zz, idzz, iopt, nov, cval)
egsgl(' !contour plot useS', 'dcmplt.dl$')
egsgl('.l useS', 'dcmplt.d2$')
egsgl('.l viewport$', 0.1,0.9,0.1,0.9)
efsplt (iunit, ' ')
stop
end
E-2
APPENDIX F
t •
Post-processor Source Code (DCPOST)
w
m_
Z :
w
w
_z
m
-- F-2
=
b
w
m_m
:i
U
L
w
r -W
L _
w
W
,L
L,
C
C****
C
C
C
C
C
c
c
c
c
c
c
c
c
c
c
program dcpost
program dcpost
dimension iflg(lOOOOO),px(lOOOOO),py(lOOOOO),pz(lO0000),
1 jenew (i00000)
dimension xcen(500),zcen(500),emom(500,500)
character*8 chO,chl,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9
open(l, file ='dc3din')
open (12, file='dc3d.dyn' )
open (61, file='dc3d.mom' )
open (13, file='dcbase' )
open (21, file='dcpost .out ' )
open (22, file='dcpost .plt ')
time=l.O
tlme=O.O
factor=0.75
factor=l.O
read(l,110) itype, jtype
ii0 format (///2ii0)
read (i, Iii) il,i2, jl, j2, kl,k2
iii format(/2ilO)
read(l, i12) xlow, deltx, ylow, delty, zlow, delt z
112 format (/2e15.6)
read(l, 113) tcut
113 format (/e15.3)
read (i, 114) idmax, jdmax, kdmax, idmaxn, jdmaxn, kdmaxn
114 format (/6ii0)
read (i, 115) xdmin, xdmax, xdminn, xdmaxn,
1 ydmin, ydmax, ydminn, ydmaxn,
2 zdmin, zdmax, zdminn, zdmaxn
115 format(/4el5.3)
read(l, I16) factor
116 format(/////el5.3)
ncnt=idmax*jdmax*kdmax+(idmax-l)*(jdmax-l)*(kdmax-l)+
1 8+1+5
202
if(jtype.ne.l) go to 777
if(jtype.eq.O) go to 777
do 14 i=l,ncnt
read(12,202) chO,chl,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9
format(lOaS)
if (jtype.eq. 3)
write(21,203)
203 format(lOa8)
14 continue
go to 14
chO,chl,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9
777 dummy=l. 0
[
i
F-3
L
= =
i
g
w
w
c
I0
C
C
102
II
c
75
C
C
711
710
C
C
C
do I0 j=i,100000
iflg(j)=O
px (j)--O .0
py(j)=0.0
pz(j)=0.0continue
do Ii i=1,500000
read(12,102,end=75) j,dpx, dpy,dpz
read(61,102,end=75) j,dpx, dpy, dpz
format(i8,3elO.3)
iflg(j)=l
px (j) =px (j) +dpx*factor
py (j) =py (j) +dpy*factor
pz (j) =pz (j) +dpz*factor
continue
dummy= i. 0
ridmax=idmax
r kdmax=kdmax
deldx= (xdmax-xdmin) / (ridmax-I. O)
deldz = (zdmax-zdmin) / (rkdmax-i. O)
r idmxn=idmaxn
rkdmxn=kdmaxn
de idxn= (xdmaxn-xdminn ) / (ridmxn- i. 0 )
deldzn-- (zdmaxn-zdminn) / (rkdmxn-i. 0 )
do 710 k=l,kdmax-i
do 711 i=l,idmax-irk=k
ri=i
zcen (k) =zdmin+deldz/2. O+ (rk-I. O) *deldz
xcen (i) =xdmin+deldx/2. O+ (ri-i. O) *deldx
emom (i, k) =0.0
jelem=i+ (idmax-l) * (k-l)
Jenew (jelem) =0
if(xcen(i) .it.xdminn) go to 711
if(xcen(i) .gt.xdmaxn) go to 711
if(zcen(k) .it.zdminn) go to 711
if(zcen(k) .gt.zdmaxn) go to 711
inew=int ( (xcen (i) -xdminn)/deldxn) +i
knew--int ( (zcen (k) -zdminn)/deldzn) +i
Jenew (jelem) =inew+ (idmaxn- 1 ) * (knew-I)
continue
continue
do 12 j--l, lO0000
jout=j
if(jtype.eq.3) jout=jenew(j)
if(jout.eq.O) go to 12
if(iflg(j) .eq.O) go to 12
write(21,201) jout,px(j),py(j),pz(j),time
F-4
w
w
201
c
c
c
c
c
c
c
c 212
c
12
c
213
722
721
c
99
c
format (i8, 4elO. 3)
if(jtype.eq.3) go to 12
ie l--mod ( j, idmax- 1 )
kel=j/ (idmax-l) +i
pmag= (px (j) **2+py (j) **2+pz (j) *'2) **0.5
emom (iel, kel) =pmag/(deldx*de idz)
emom ( iel, kel) =pmag
riel=iel
rkel=kel
xi=xdmin+deldx+ ( riel-i. 0 ) *deldx
zi=zdmin+deldz+ (rkel-l. O) *deldz
write (22,212) iel, kel,xi, zi,pmag, time
format (2i6, 4e15.3)
continue
if(jtype.eq.3) go to 99
do 721 k=l,kdmax-i
do 722 i=l,idmax-i
write (22,213) i,k, xcen(i),zcen(k),emom(i,k)
format (2i6, 3e15.5)
continue
continue
dummy=2.0
stop
end
w
APPENDIX G
Analysis Source Code (DC3D)
w
w
G-2
w
, b ,
w
w
rip,
c
c****
C
C
c
c
c
c
C
c
c
c
c
program dc3d
program dc3d
common/atype/itype, jtype
common/mesh/il,i2, jl, j2,kl,k2,deltx,delty, deltz,
1 xlow, ylow, zlow
common/waldat/ywall,tcut,tmin,dencut,
1 idmax, jdmax, kdmax, xdmin,xdmax, ydmin, ydmax, zdmin, zdmax
common/walnew/idmaxn, jdmaxn,kdmaxn,
1 xdminn,xdmaxn, ydminn, ydmaxn, zdminn, zdmaxn
common/props/den,denref,rmass,vmu,vlamb,eta, zeta,phi, rj(3,3)
common/intpar/epsint,ymxref
open (I, file='dc3din')
open(7,file='pltdat/dc3d.pltl ' )
open(8,file='pltdat/dc3d.plt2 ' )
open(4,file='dc3d.cth ')
open(9,file='dc3d.dyn ' )
open (61, file='dc3d.mom' )
open (I0, file ='dc3d.dbg')
2
115
read(l,110) itype, jtype
Ii0 format (///2ii0)
read(l, Iii) il, i2, jl, j2,kl, k2
Iii format(/2il0)
read(l,112) xlow, deltx, ylow, delty, zlow, deltz
112 format (/2e15.6)
read(l,113) tcut,tmin,dencut
113 format(/3el5.3)
read(l, 114) idmax, jdmax, kdmax, idmaxn, jdmaxn, kdmaxn
114 format (/6ii0)
read (1,115) xdmin, xdmax, xdminn, xdmaxn,
1 ydmin, ydmax, ydminn, ydmaxn,
zdmin, zdmax, zdminn, zdmaxn
format (/4e15.3)
read(l, 116) vmu, vlamb, denref,eta
116 format(/4el5.3)
read(l, 117) zeta,epsint,ymxref
117 format (/3e15.3)
ywall=ydmin
call rdavs
if(itype.eq.2) call dyngen
if(itype.eq.2.and.jtype.eq.l)
if(itype.eq.2.and.jtype.eq.2)
if(itype.eq.2.and.jtype.eq.3)
if(jtype.eq.2) go to 99
if(jtype.eq.3) go to 99
call dyngen
call dyngen
call dyngen
call rdavs
ifst=2
w
w
w
w
w
u
F_
w
C
C
C
C
C
13
12
ii
i0
C
99
C
C
C
C****
C
C
jfst=2
kfst=2
ilast=2
jlast=2
klast=2
ilast=i2-il
jlast=j2-91klast=k2-kl
Ifst=l
llast=5
do 10 i=ifst,ilast
do ii j=jfst,jlast
do 12 k=kfst,klast
do 13 l=ifst,llast
call dcelem(i,j,k,l)continue
continue
continue
continue
dummy= 1.0
stopend
88
subroutine dyngen
subroutine dyngen
common/atype/itype, jtype
common/walnew/idmaxn, jdmaxn, kdmaxn,
1 xdminn, xdmaxn,ydminn,ydmaxn, zdminn, zdmaxn
common/waldat/ywall,tcut,tmin,dencut,
1 idmax, jdmax, kdmax, xdmin,xdmax, ydmin, ydmax, zdmin, zdmax
dimension x(8),y(8),z(8),xn(5Ol),yn(5Ol),zn(501)
if (jtype.ne. 3)
idmax=idmaxn
jdmax=jdmaxnkdmax=kdmaxn
xdmin=xdminn
ydmin=ydminn
zdmin=zdminn
xdmax=xdmaxn
ydmax--ydmaxn
zdmax=zdmaxn
dummy= i. 0
go to 88
ridmax=idmax
delx= (xdmax-xdmin) / (ridmax-I. O)
r jdmax= jdmax
dely= (ydmax-ydmin) / (rjdmax-I. O)rkdmax=kdmax
G-5
w G-4
R
f
- =
w
w
w
I0
c
ii
c
12
c
c
c
c
c
c
c
c
c
761
c
c i01
i01
22
21
2O
c
delz= (zdmax-zdmin) / (rkdmax-i. 0)
do i0 i=l,idmax
ri=i
xn (i) = (ri-I. O) *delx
continue
do ii j=l,jdmax
rj=j
yn(j) = (rj-l. O) *dely
continue
do 12 k=i, kdmax
rk=k
zn (k) = (rk-i. O) *delz
continue
define the nodes
nconst=O
do 20 j=l, jdmax
do 21 k=l,kdmax
do 22 i=l,idmax
nconst=O
if(i.eq.l) nconst=l
go to 761
if(i.eq.idmax) nconst=4
if (k.eq. i) nconst-5
if(k.eq.kdmax) nconst=5
if (i.eq. l.and.k.eq. I)
if (i.eq. l.and.k.eq.kdmax)
if (i .eq.idmax.and.k.eq. i)
if (i.eq. idmax.and.k.eq.kdmax)
nconst=7
nconst=7
nconst=7
nconet=7
dummy-- i. 0
nnode=i+idmax*(k-l)+idmax*kdmax*(j-l)
write(9,101) nnode,nconst,xn(i),yn(j),zn(k)
format(i5,i5,3e20.8)
format(i8,i5,3e20.8)
continue
continue
continue
nconst=O
x ( 1 ) =xdmin
y (I) =ydmin-I. 0
z (1 ) = zdmin
x (2) =xdmin+l. 0
y (2) =ydmin-i. 0
z (2) =zdmin
x (3) =xdmin+l. 0
y (3) =ydmin-i. 0
- G-5
w
c
c
c
c
c
c
103
103
40
z (3) =zdmin+l. 0
x (4 )=xdmin
y (4) =ydmin-i. 0
z (4) =zdmin+l. 0
x (5 ) =xdmin
y (5) =ydmin-2.0
z (5) =zdmin
x (6) =xdmin+l. 0
y (6) =ydmin-2.0
z (6) =zdmin
x (7) =xdmin+l. 0
y (7 )=ydmin-2.0
z (7) =zdmin+l. 0
x (8 )=xdmin
y (8 )=ydmin-2.0
z (8) =zdmin+l. 0
do 40 1=1,8
nnode=idmax+idmax* (kdmax-l) +idmax*kdmax* (jdmax-l) +i
write (9,103) nnode, nconst,x(1),y(1),z(1)
format(i5,i5,3e20.8)
format (i8, i5,3e20.8)
continue
define the elements
nmat=l
ngen=O
do 30 j=l, jdmax-i
do 31 k=l,kdmax-I
do 32 i=l,idmax-I
nelem=i+ (idmax-l) * (k-l) + (idmax-l) * (kdmax-l) * (j-l)
nl=i+idmax* (k-l) +idmax*kdmax* (j-l)n2=nl+l
n3=n2+idmax
n4=n3-1
n5=nl+idmax*kdmax
n6=n5+l
n7=n6+idmax
nS=n7-1
write(9,102) nelem, nmat,ngen, nS,n6,n7,n8,nl,n2,n3,n4
102 format(lli5)
write(9,102) nelem, nmat,n5,n6,n7,n8,nl,n2,n3,n4
102 format(iS,i5,SiS)
32 continue
31 continue
30 continue
nmat=2
nelem=idmax-l+ (idmax-l) * (kdmax-l-l) +
1 (idmax-l) * (kdmax-l) * (jdmax-l-l) +I
nl=idmax+idmax* (kdmax-l) +idmax*kdmax* (jdmax-l) +in2=nl+l
n3=nl+2
n4=nl+3
n5=nl+4
-- G-6
=
c
c
c
c
c
c
c
c
c
c
c
c
104
104
n6=nl+5
n7=nl+6
n8=nl+7
write (9,104) nelem, nmat, ngen, nl, n2, n3, n4, n5, n6, n7, n8
format (Iii5)
write (9,104) nelem, nmat,nl,n2,n3,n4,n5,n6,n7,n8
format (i8, i5, 8i8)
write (9,110)
ii0 format(' 1 1 Ii',/, ' 1
idmpl=idmax+ 1
idmp2=idmax+2
write(9,111) idmp2,idmpl,n4,n3,n2,nl
iii format(' 1 0 1 2',2i5,
1 /, ' 1 0',4i5)
ii0
Iii
1
c
c
c****
c
0' I, ' i')f
c
c
c
c
c
write (9, ii0)
format(' 1 1 ii',/, '
idmpl=idmax+l
idmp2=idmax+2
write(9,111) idmp2,idmpl,n4,n3,n2,nl
format ( ' 1 1 2 ', 2i8,
/, ' I',4i8)
1 0',/, ' i')
return
end
subroutine rdavs
subroutine rdavs
common/mesh/il, i2, jl, j2, kl, k2, deltx, delty, deltz,
1 xlow, ylow, zlow
common/cthdat/ velx (75, 75,75) ,rely(75,75,75) ,
1 velz(75,75,75),pres(75,75,75),temp(75,75,75),
2 gama(75,75,75),spen(75,75,75),vmas(75,75,75),
3 vphi(75,75,75),cspd(75,75,75)
common/cthxyz/xcth (100) , ycth (100) , zcth (100)
common/vellng/vfx (75, 75, 75) , vfy (75, 75,75) , vfz (75, 75, 75)
character*l chdum
open (2, file= ' avsout ' )
open (3, file=' avschk' )
calculate the nodal coordinates
2O
do 20 ilil,i2
vi=i
xcth(i-il+l)=xlow+(vi-l.O)*deltx-deltx
continue
do 21 j=jl, j2
vj=j
ycth(j-jl+l)=ylow+(vj-l.O)*delty-delty
c
w
B
_ =
- i.a
21
c
22
c
c
c
901
400
c
c
902
C
C
C.
C
C
continue
do 22 k=kl,k2
vk=k
zcth(k-kl+l)=zlow+(vk-l.0)*deltz-deltz
continue
read in the mesh data
do 400 idum=l,27
read(2,901) chdum
format(al)
continue
do i0 k=l,k2-kl+l
do ii j=l,j2-jl+l
do 12 i=l,i2-il+l
read(2,902) velx (i, j, k) ,vely (i, j, k) , velz (i, j, k) ,
1 pres(i, j,k),temp(i,j,k),gama(i, j,k),spen(i,j,k)
read(2,902) vmas (i, j, k) ,vphi (i, j, k) ,
1 cspd (i, j, k)
unit conversion factors
velx(i, j,k)--velx(i, j,k)/l.0e+6
vely(i, j,k)=vely(i, j,k)/l.0e+6
velz (i, j, k) =velz (i, j, k)/I. 0e+6
pres (i, j, k) =pres (i, j, k)/i. Oe+12
format(7ell.3)
12 continue
ii continue
i0 continue
do 30 k=l,k2-kl+l
do 31 j=l,j2-jl+l
do 32 i--l,i2-il+l
write (3,903) "velx (i, j, k), vely (i, j, k) ,velz (i, j, k) ,
1 pres (i, J, k) ,temp (i, J, k) ,gama (i, j, k) ,spen (i, j, k)
write (3,903) vmas (i, J, k) ,yphi (i, j, k) ,cspd (i, j, k) ,
1 xcth(i),ycth(j),zcth(k)
903 format (7ell. 3)
32 continue
31 continue
30 continue
calculate the nodal velocities
do 40 k=2,k2-kl+l
do 41 jz2, j2-jl+l
do 42 i=2,i2-ii+i
wta=vmas (i, j, k-l)
wtb=vmas (i, j-l, k-l)
wtc=vmas (i, j-l, k)
wtd=vmas (i, j, k)
va=velx (i, J, k-l)
vb=velx (i, j-l, k-l)
vc=velx (i, j-l, k)
G-7
L.
-- G-8
l
w
c
c
c 910
c
c
c
c 911
c
c
c
c 912
c
42
41
4O
c
c
c
c****
c
vd=velx(i,j,k)
if(wta+wtb+wtc+wtd.gt.0.0) then
vfx(i,j,k)=(wta*va+wtb*vb+wtc*vc+wtd*vd)/
1 (wta+wtb+wtc+wtd)
else
vfx(i,j,k)=0.0
endif
write(10,910) wta,wtb,wtc,wtd, va,vb, vc,vd
format(Sel0.2)
wta=vmas (i-l, j, k-l)
wtb=vmas (i, j, k-l)
wtc=vmas (i, j, k)
wtd=vmas (i-l, j,k)
va=vely (i-l, j, k-l)
vb=vely (i, j, k-l)
vc=vely (i, j, k)
vd=vely (i-l, j, k)
if(wta+wtb+wtc+wtd.gt.0.0) then
vfy (i, j, k) --(wta *va+wtb*vb+wtc*vc+wtd*vd) /
1 (wta+wtb+wtc+wtd)
else
vfy (i, j, k)=0.0
endif
write(10,911) wta,wtb, wtc,wtd, va,vb,vc, vd
format (Se10.2)
wta=vmas (i, J, k)
wtb=vmas (i, j-l, k)
wtc=vmas (i-l, j-l, k)
wtd=vmas (i-l, j, k)
va=velz (i, j, k)
vb=velz (i, j-l, k)
vc=velz (i-l, j-l, k)
vd=velz (i-l, j, k)
if(wta+wtb+wtc+wtd.gt.0.0) then
vfz (i, j, k) --(wta*va+wtb*vb+wtc*vc+wtd*vd) /
1 (wta+wtb+wtc+wtd)
else
vfz (i, j,k)--0.0
endif
write(10,912) wta,wtb,wtc,wtd, va,vb, vc,vd
format (8e10.2)
continue
continue
continue
return
end
subroutine dcelem(ii, jj,kk, ll)
subroutine dcelem
L G-9
w
L
L
w
w
c
c
c 558
c
c
c 557
556
555
c
c
c
c
clO00
ii
i0
c
c
clO01
common/atype / itype, jtype
common/waldat/ywall, tcut, tmin, dencut,
1 idmax, jdmax, kdmax, xdmin, xdmax, ydmin, ydmax, zdmin, zdmax
common/props/den, denref, rmass, vmu, vlamb, eta, zeta, phi, rj (3, 3)
common/ndata/xl(3),x2(3),x3(3),x4(3),
1 vl (3) ,v2 (3) ,v3 (3) ,v4 (3), xc (3)
dimension h(3,3),f(3,3),e(3,3),ep(3,3),p(3),
1 y(33) ,yt (33, I01)
dimension param(50),time(lOl)
external fcn
call eldata(ii, jj,kk, ll)
rden=den/denref
if(rden.gt.lO00.O)
if(rden.lt.O.Ol)
if(phi.gt.O.999)
go to 99
go to 99
go to 99
denblk= (1. -phi) *den/denref
if(denblk.lt.O.Ol) go to 99
if(denblk.lt.dencut) go to 99
call nddata(ii, jj,kk, ll)
call jcalc(den, xl,x2,x3,x4,xc, rj)
call Jcalc(xl,x2,x3,x4,xc,rj)
call initlz(h,f,ep,p)
write (lO, 558) rmass
format(/, 'inertia tensor ( mass - ',ell.3, ' ) ',/)
do 555 io=i,3
do 556 jo=l,3
write(lO,557)
format(e20.8)
continue
continue
rj (io, jo)
set the state vector
do I0 i=1,3
do Ii j=l,3
y(3* (i-l) +j)
y(3* (i-l) +j+9)
y(3* (i-l) +j+lS)
write (I0, i000)
format (3e15.4)
continue
continue
h(i, j)
- f(i,j)
= ep(i, j)
h (i, j), f (i, j) ,ep (i, j)
do 12 i=I,3
y(i+27) = p(i)
y (i+30) =xc (i)
write (I0, i001)
format (2e15.4)
p(i) ,xc (i)
-- G-IO
w
' L
12
c
c
c
20
c
c
c
c
c
c
c
C
C
C
C
C
c
c
c
continue
set up and call the integration routine
ido=l
neq=33tol=l.Oe-6
do 20 i--I,50
param (i) =0.0
continue
param (i) =i. Oe-6
param (3) =i. Oe-3
param (4) --I00000
param(9) =I. Oe-i
param(lO) --3
param(12) --2
32
do 32 i--l,neq
yt(i,l)=y(i)
continue
iend=2
iend=l
fiend=lend
tarr=l. Oe+33
vceny=p(2)/rmass
avceny=abs(vceny)
if(avceny.gt.O.O)
1 tarr=abs((ywall-y(32))/vceny)
if(itype.eq.2.and.tarr.gt.tcut)
if(itype.eq.2.and.tarr.lt.tmin)
if(tarr.gt.tcut) go to 99
if(tarr.ge.tcut) go to 99
if(tarr.lt.tmin) go to 99
go to 99
go to 99
if(ii.n_.3) go to 99
if(jj.ne.38) go to 99
if(kk.ne.44) go to 99
delt=tarr/riend
if(itype.eq.2) delt=tarr/riend
if(itype.eq.l) delt-0.2
t=O.O
time (I)--0.0
do 30 i=l,iend
ri=i
t=(ri-l.O)*delt
tend=t+delt
call
call
call
ivprk (ido, neq, fcn, t, tend, tol, param, y)
ivpbs (ido, neq, fcn, t, tend, tol, param, y)
ivpag (ido, neq, fcn, fcnj, aaa, t, tend, tol, param, y)
G-II
w
u
w
w
c
c
c I01
C
31
c
c
3O
c
c
c
c
501
c
99
c
c
c****
c
call ifdcrk(ido,neq, t,tend, tol,param, y)
call ivdcrk(ido, neq, t,tend, tol,param, y)
write(lO, lOl) tarr, t,tend, y(32)
format(5el5.3)
do 31 j=l,neq
yt (j, i+l)=y(j)
continue
t=tend
time(i+l)=tend
continue
write cth input data
if (itype.eq. I)
1 call cthout (ii, jj,kk, ll,y)
if (itype.eq.2)
1 call dynout (ii, jj,kk, ll,y, tarr)
ido=3
call ivprk(ido,neq, fcn, t,tend, tol,param, y)
call ivpbs(ido,neq, fcn, t,tend, tol,param, y)
call ivpag(ido,neq, fcn, fcnj,aaa,t,tend, tol,param, y)
call prtout(iend, time,yt)
go to 99
write (7,501) ii, Jj,kk, ll,yt(31,1),yt(32,1),yt(33,1)
write (8,501) ii, jj, kk, ii,
1 yt (31, iend+l), yt (32, lend+l), yt (33, lend+l)
format (4i6, 3e15.4)
return
end
subroutine dynout(ip, jp,kp, lp, y, tarr)
subroutine dynout
common/props/den, denref, rmass, vmu, vlamb, eta, zeta, phi, rj (3,3)
con_non/ndata/xl (3) , x2 (3) , x3 (3) , x4 (3) ,
1 vl (3) ,v2 (3) ,v3 (3) ,v4 (3) ,xc (3)
common/waldat/ywall, tcut, tmin, dencut,
1 idmax, jdmax, kdmax, xdmin, xdmax, ydmin, ydmax, zdmin, zdmax
dimension y(33),f(3,3),xtl(3),xt2(3),xt3(3),xt4(3),xt5(3),
1 ptc(3),id(5),jd(5),kd(5)
cl= (denref/den) ** (-i./3. )
do I0 i=1,3
do ii j=l,3
f (i, j) =y(3* (i-l) +j+9)
G-12
=
=== :
o
c
c
c
write(4,101) i,j,f(i,j)
i01 format(i5,i5,el5.6)
Ii continue
i0 continue
call detcal(f,detf)
denout=denref/detf
momentum enhancement
ridmax=idmax
r jdmax= jdmax
rkdmax=kdmax
tmass--denref* ((xdmax-xdmin) / (ridmax-i. O) ) *
1 ((ydmax-ydmin) / (rjdmax-l.O)) * ((zdmax-zdmin) / (rkdmax-I .0) )
enhmom = ((tmass+rmass)/rmass) **0.5
enhmom=l. 0
12
do 12 i=1,3
ptc (i) =enhmom*y (27+i)/5.0
continue
do 20 i=l, 3
xtl (i) =0.0
xt2(i)=O.O
xt3 (i) =0.0
xt4 (i)--O. 0
xt5 (i)=O.O
20 continue
21
23
do 23 i=1,3
do 21 j--l, 3
xtl(i)-xtl(i)+cl*f(i,j)*(xl(j)-xc(j))
xt2(i)=xt2(i)+cl*f(i, j)*(x2(j)-xc(j))
xt3(i)wxt3(i)+cl*f(i, j)*(x3(j)-xc(j))
xt4(i)=xt4(i)+cl*f(i, j)*(x4(j)-xc(j))
continue
continue
22
do 22 i--l, 3
xtl (i) =xtl (i) +y (30+i)
xt2 (i) =xt2 (i) +y (30+i)
xt3 (i)=xt3 (i) +y(30+i)
xt4 (i) =xt4 (i) +y (30+i)
xt5 (i) =y (30+i)
continue
calculate the element numbers
nelmax-(idmax-l) * (jdmax-l) * (kdmax-l)
ridmax=idmax
delx= (xdmax-xdmin) / (ridmax-I [0 )
r jdmax-- jdmax
dely= (ydmax-ydmin) / (rjdmax-i. O)
rkdmax=kdmax
delz--(zdmax-zdmin) / (rkdmax-I. O)
F
-- G-13
w
w
Ii)
i
= ,
I
c
c
c 501
c
c
c 503
503
303
c
c
506
5O7
5O8
598
597
c
301
c
o
c
c****
c
id (1 ) --int ( (xt I (1 ) -xdmin
kd (i)=int ( (xtl (3) -zdmin
id (2) =int ( (xt2 (i) -xdmin
kd (2) =int ( (xt2 (3) -zdmin
id (3)=int ( (xt3 (I) -xdmin
kd(3) =int ( (xt3 (3) -zdmin
id (4 ) =int ( (xt 4 (1 ) -xdmin
kd (4) =int ( (xt4 (3) -zdmin
id(5) =int ( (xt5 (i) -xdmin
kd (5) =int ( (xt5 (3) -zdmin
/delx) +i
/delz) +i
/delx) +i
/delz) +I
/delx) +I
/delz) +I
/delx) +I
/delz) +I
/delx) +I
/delz) +i
write(9,501) ip, jp,kp, lp
format (4i5)
do 303 ic=l,5
ia=id (ic)
if(ia.gt.idmax-l) go to 303
if(ia.lt.l) go to 303
ka=kd (ic )
if(ka.gt.kdmax-l) go to 303
if(ka.lt.l) go to 303
nelem=ia+ (idmax-l) * (ka-l)
write (9,503) nelem, ptc(1),ptc(2),ptc(3),tarr
write(61,503) nelem, ptc(1),ptc(2),ptc(3),tarr
format (i5, 4elO. 3)
format (i8, 4elO. 3)
continue
go to 301
write(9,506) xtl(1),xtl(2),xtl(3)
format (3e20.8)
write (9,507) xt2(1),xt2(2),xt2(3)
format (3e20.8)
write (9,508) xt3 (I) ,xt3 (2) ,xt3 (3)
format (3e20.8)
write (9,598) xt4(1),xt4(2),xt4(3)format (3e20.8)
write (9,597) xt5(1),xt5(2),xt5(3)
format (3e20.8)
dummy= 1.0
return
end
subroutine cthout(ip, jp, kp, lp, y)
subroutine cthout
common/props/den, denref, rmass, vmu, vlamb, eta, zeta, phi, rj (3,3)
common/ndata/xl (3) ,x2 (3) ,x3 (3) ,x4 (3) ,
1 vl (3) ,v2 (3) ,v3 (3) ,v4 (3) ,xc (3)
dimension y(33),f(3,3),xtl(3),xt2(3),xt3(3),xt4(3),vtc(3)
nummat=l
numsub=49
w
-- G-14
w
w
_=_
c
c
c
c
c
c
- c
c
c
c
I01
ii
i0
12
102
20
21
23
22
301
cl= (denref/den) ** (i./3.)
c2= (I. -phi) ** (I./3. )
c3=c2/ci
do I0 i=i,3
do Ii j=l, 3
f(i, j)=y(3*(i-1)+j+9)
write (4, I01) i, j,f(i, j)
format (i5, i5,e15.6)
continue
continue
call detcal(f,detf)
den out =den re f / det f
do 12 i=I,3
vtc (i) =I. Oe+6*y (27+i)/rmass
continue
do 20 i--i,3
xtl (i) =0.0
xt2(i)=O.O
xt3 (i) --0.0
xt4 (i) =0.0
write (4,102) xl(i),x2(i),x4(i),x4(i),xc(i)
format (5e15.6)
continue
do 23 i=l, 3
do 21 j--l, 3
xtl (i) =xtl (i) +c3*f (i, j) * (xl (j)-xc (j))
xt2 (i) =xt2 (i) +c3*f (i, j) * (x2 (j) -xc (j))
xt3(i)--xt3(i)+c3*f(i,j)*(x3(j)-xc(j))
xt4(i)--xt4(i)+c3*f(i,j)*(x4(j)-xc(j))
continue
continuet
go to 301
do 22 i=l, 3
xtl (i) =xtl (i) +y (30+i)
xt2 (i) =xt2 (i) +y (30+i)
xt3 (i) =xt3 (i) +y (30+i)
xt4 (i)=xt4 (i)+y (30+i)
continue
dummy= 1.0
write(4,501) ip, Jp, kp, lp
501 format(5x, 'package ',i3, ',',i3, ',',i3, ', ',i3)
write (4,502) nummat,numsub
502 format(7x, 'material ',i3,/7x, 'numsub ',i3)
write (4,532) denout
532 format(7x, 'density = ',e20.8)
write (4,503) vtc(1)
503 format(7x,'xvel = ',e20.8)
write (4,504) vtc(2)
iG-15
w )m
504
594
505
506
507
5O8
598
509
591
c
c
c
c****
c
c
c
c
c
c
c
format(7x, 'yvel - ',e20.8)
wrlte (4,594) vtc (3)
format(7x, 'zvel m ',e20.8)
write (4,505)
format(7x, 'insert pyramid')
write (4,506) xtl (i) ,xtl (2) ,xtl (3)
format(9x, 'point = ',e15.6, ', ',e15.6, ',
write (4,507) xt2(1),xt2(2),xt2(3)
format(9x, 'point = ',e15.6, ', ',e15.6, ',
write (4,508) xt3 (I) ,xt3 (2) ,xt3 (3)
format(9x, 'point = ',e15.6, ', ',e15.6, ',
wrlte (4,598) xt4 (i) ,xt4 (2) ,xt4 (3)
format(9x, 'vertex = ',e15.6, ', ',e15.6, ',
wrlte (4,509)
format (7x, 'endinsert' )
wrlte (4,591)
format (5x, 'endpackage' )
',e15.6)
',e15.6)
',e15.6)
',e15.6)
return
end
subroutine prtout (iend, time, yt)
subroutine prtout
dimension yt(33,101)
dimension time(lO1),out(18,1Ol),f(3,3),e(3,3),ep(3,3),
1 c (3, 3)
print output
open ( 9, file- 'pltdat/dc3d, out ' )
open(ll,file='pltdat/hll.plt')
open(12,file='pltdat/hl2.plt')
open(13,file='pltdat/hl3.plt')
open(14,file='pltdat/h21.plt')
open(15,file='pltdat/h22.plt')
open(16,file='pltdat/h23.plt')
open(17,file='pltdat/h31.plt')
open(18,file='pltdat/h32.plt')
open(19,file='pltdat/h33.plt')
open (20, file='pltdat/fll.plt ')
open (21, file='pltdat/fl2 .plt ' )
open (22, file='pltdat/fl3.plt')
open (23, file='pltdat/f21.plt' )
open (24, file=' pltdat/f22 .plt ' )
open (25, file='pltdat/f23 .plt ' )
open (26, file='pltdat/f31 .plt ' )
open (27, file='pltdat/f32 .plt ' )
open (28, file='pltdat/f33.plt ' )
open(29,file='pltdat/epll.plt')
open(30,file='pltdat/epl2.plt')
open(31,file='pltdat/epl3.plt')
open(32,file='pltdat/ep21.plt')
-- G-16
)_a
!
w
C
C
C
C
IIi
80
61
60
612
611
open
open
open
open
open
(33, file =
(34, file=
(35, file=
(36, file=
(37, file=
'pltdat/ep22 .plt')
'pltdat/ep23.plt')
'pltdat/ep31 .plt ')
'pltdat/ep32 .plt ')
'pltdat/ep33 .plt ')
open
open
open
(38,
(39,
(40,
file=
file=
file=
'pltdat/pl.plt')
'pltdat/p2.plt')
'pltdat/p3.plt')
open
open
open
(41,
(42,
(43,
file =
file=
file=
'pltdat/xcl.plt')
'pltdat/xc2.plt')
'pltdat/xc3.plt')
open (44,
open (45,
open (46,
open (47,
open (48,
open (49,
open (50,
open (51,
open (52,
file='pltdat/detf.plt ')
file='pltdat/ile.plt'
file='pltdat/j2e.plt'
file='pltdat/ilep.plt )
file='pltdat/j2ep.plt )
file='pltdat/detc.plt )
file='pltdat/out7.plt )
file='pltdat/out8.plt )
file='pltdat/outg.plt )
print out the states
do 80 i=l,iend+l
write (9, iii) (yt (j,i), j=l, 33)
format(llel5.6)
continue
calculate output variables
do 60 i=i,18
do 61 j=l,iend+l
out(i,j)=O.Ocontinue
continue
do 610 i=l,iend+l
do 611 j=l,3
do 612 k=l,3
f(j,k) -yt(3*(j-1)+k+9,i)
ep (j, k) =yt (3* (j-l) +k+lS, i)
continue
continue
call detcal(f,detval)
call ecalc(f,e)
do 614 j=l,3
do 615 k=l,3
if (j.eq.k) then
del jk=l. 0
else
deljk=O. 0
endif
-- G-17
w
_
C
C
C
C
c(j,k)=deljk+2.0*e(j,k)615 continue
614 continue
610
112
51
52
102
54
53
113
56
55
i01
50
call detcal(c,detc)
out (i, i) =detval
out (2, i) = (I./3. ) * (e (I, i) +e (2, 2) +e (3, 3) )
out (4, i)=(l./3.)*(ep(l,l)+ep(2,2)+ep(3,3))
out (6, i)=detc
continue
do 52 j=1,9
jl=j
j2=j+9
j3=j+18
kl=j+lO
k2=j+19
k3=j+28
do 51 i=l,iend+l
write (kl, 112)
write (k2,112)
write (k3,112)
format (2e20.8)
continue
continue
do 53 j=1,3
91=9+27
92=9+30
ki=j+37
k2=j+40
do 54 i=l,iend+l
write (kl, 102)
write (k2,102)
format (2e20.8)
continue
continue
time (i) ,yt (jl, i)
time (i), yt (j2, i)
time (i) ,yt (j3, i)
time (i), yt (jl, i)
time (i) ,yt (j2, i)
do 55 j=1,9
9J=9+43
do 56 i--l,iend+l
write(jj,ll3) time(i),out(j,i)
format (2e20.8)
continue
continue
do 50 isl,iend+l
outl (i) =yt (19, i) +yt (23, i) +yt (27, i)
out2 (i) =abs (yt (19, i) -yt (23, i) )
out3 (i) =abs (yt (23, i) -yt (27, i) )
out4 (i) =abs (yt (19, i) -yt (27, i) )
write(ll, lOl) time(i),outl(i),out2(i),out3(i),out4(i)
format (5e15.6)
continue
return
G-18
w
w
w
c
c
c****
c
c
c
c
c
c****
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c****
c
c
c
end
subroutine detcal (a, deta)
subroutine detcal
dimension a(3,3)
deta--a(l,l)*(a(2,2)*a(3,3)-a(3,2)*a(2,3))-
1 a(l,2)*(a(2,1)*a(3,3)-a(2,3)*a(3,1))+
2 a (i, 3) * (a (2, i) *a (3,2) -a (3, i) *a (2,2))
return
end
subroutine eldata(ii, jj,kk, ll)
subroutine eldata
common/props/den,denref, rmass,vmu,vlamb,eta,zeta,phi, rj(3,3)
common/mesh/il,i2,jl, j2,kl,k2,deltx, delty, deltz,
1 xlow, ylow, zlow
con_non/cthdat/ velx (75, 75, 75) , vely (75, 75, 75) ,
1 velz(75,75,75),pres(75,75,75),temp(75,75,75),
2 gama (75,75, 75), spen (75,75, 75) , vmas (75, 75, 75) ,
3 vphi(75,75,75),cspd(75,75,75)
rmass=vmas (ii, j j, kk)
den=gama (ii, j j, kk)
phi-vphi (ii, J j, kk)
denref=2.7
dmge= 0.0
vmu z (i. -dmge) *i.0
vlamb= (I. -dmge) *i. 0
eta=l. 0
write(lO,lO0) velx(ii, jj,kk),vely(ii, jj,kk),velz(ii, jj,kk),
1 pres(ii, jj,kk),temp(ii, jj,kk),gama(ii, jj,kk),spen(ii, jj,kk),
2 vmas (ii, jj, kk) ,vphi (il, jJ, kk), cspd(ii, jj, kk)
i00 format(/7ell.3,/3ell.3,/)
return
end
subroutine nddata(ii, JJ,kk, ll)
subroutine nddata
common/ndata/xl (3) , x2 (3) , x3 (3) , x4 (3) ,
1 vl (3) , v2 (3) , v3 (3) , v4 (3) , xc (3)
common/mesh/il,i2,jl, j2,kl,k2,deltx, delty, deltz,
1 xlow, ylow, zlow
-.- G-19
w
w
c
c
c
c
c
c
c
- c
c
common/cthdat / velx (75,75,75), rely (75, 75, 75) ,
1 velz(75,75,75),pres(75,75,75),temp(75,75,75),
2 gama(75,75,75),spen(75,75,75),vmas(75,75,75),
3 vphi(75,75,75),cspd(75,75,75)
common/cthxyz/xcth (I00) , ycth (100) , zcth (i00)
common/vellng/vfx (75, 75, 75) , vfy (75,75,75) , vfz (75, 75,75)
set cell coordinates
xnl=xcth (ii)
xn2=xcth (.ii+l)
xn3=xcth (ii+l)
xn4=xcth (ii)
xn5--xcth (ii)
xn 6--xcth (ii+l )
xn7--xcth (ii+l )
xn8=xcth (ii)
ynl=ycth (j j)
yn2--ycth ( j j )
yn3=ycth (j j+l)
yn4=ycth (j j+l)
yn5=ycth (j j)
yn6=ycth (j j)
yn7--ycth (j j+l)
yn8=ycth (j j+l)
znl_zcth (kk)
zn2=zcth (kk)
zn3=zcth (kk)
zn4mzcth (kk)
zn5=zcth (kk+l)
zn6=zcth (kk+l)
zn7=zcth (kk+l)
zn8--zcth (kk+l)
set element coordinates
go to (301,302,303,304,305) ii
301 xl (i) =xnl
xl (2) --ynl
xl (3)zznl
x2 ( 1 ) =xn2
x2 (2) =yn2
x2 (3) =zn2
x3 (i) =xn4
x3 (2) myn4
x3 (3) =zn4
x4 (I) =xn5
x4 (2) =yn5
x4 (3) =zn5
go to 306
302 xl (i) =xn3
xl (2) =yn3
7
w G-20
w
_=
w
w
w
L
_=,=a
=
c
303
c
304
c
305
c
306
c
c
c
xl
x2
x2
x2
x3
x3
x3
x4
x4
x4
go
(3) =zn3
(i) =xn4
(2) =yn4
(3) =zn4
(1 ) =xn2
(2 ) =yn2
(3) =zn2
(i) =xn7
(2 ) =yn7
(3) =zn7
to 306
xl (i) =xn4
xl (2) =yn4
xl (3) =zn4
x2 (1 ) =xn2
x2 (2 ) =yn2
x2 (3)=zn2
x3 (I) =xn7
x3 (2) =yn7
x3 (3) =zn7
x4 (I) =xn5
x4 (2) =yn5
x4 (3) =zn5
go to 306
xl (I)--xn8
xl (2) =yn8
xl (3)=zn8
x2 (i) =xn5
x2 (2)=yn5
x2 (3) =zn5
x3 (1 ) -xn7
x3 (2) =yn7
x3 (3) =zn7
x4 (i) =xn4
x4 (2) =yn4
x4 (3) =zn4
go to 306
xl (i) =xn6
xl (2) =yn6
xl (3) =zn6
x2 ( 1 ) =xn7
x2 (2) -yn7
x2 (3)-zn7
x3 (I) =xn5
x3 (2) =yn5
x3 (3) --zn5
x4 (I)-xn2
x4 (2 ) -yn2
x4 (3) --zn2
go to 306
d_y=l.O
set cell velocities
L
-- G-21
_=
= •
= •
= =
_I
E •
c
c
c
c
c
331
332
vxnl=vfx
vxn2=vfx
vxn3=vfx
vxn4=vfx
vxn5=vfx
vxn6=vfx
vxn7=vfx
vxn8=vfx
(ii, jj, kk)
(ii+l, jj,kk)
(ii+l, jj+l,kk)
(ii, jj+l, kk)
(ii, jj,kk+l)
(ii+l, jj, kk+l)
(ii, j j+l, kk+l)
(ii+l,jj+l,kk+l)
vynl=vfy
vyn2=vfy
vyn3=vfy
vyn4=vfy
vyn5=vfy
vyn6=vfy
vyn7=vfy
vyn8=vfy
(ii, jj,kk)
(ii+l, jj,kk)
(ii+l, jj+l, kk)
(ii, j j+l, kk)
(ii, 9J, kk+l)
(ii+l, j j, kk+l)
(ii, j j+l, kk+l)
(ii+l, jj+l,kk+l)
vznl=vfz
vzn2=vfz
vzn3=vfz
vzn4=vfz
vzn5=vfz
vzn6=vfz
vzn7=vfz
vznS=vfz
ii, j j, kk)
ii+l, j j, kk)
ii+l, j j+l, kk)
ii, jj+l,kk)
ii, 99, kk+l)
ii+l, j 9, kk+l)
ii, jj+l,kk+l)
ii+l, j j+l, kk+l)
set nodal velocities
go to (331,332,333,334,335) ii
vl (I) =vxn 1
vl (2)=vynl
vl (3)=vznl
v2 (i) =vxn2
v2 (2 )=vyn2
v2 (3) =vzn2
v3 (I) =vxn4
v3 (2 )=vyn 4
v3 (3) =vzn4
v4 (I) =vxn5
v4 (2) =vyn5
v4 (3) =vzn5
go to 336
vl (i) =vxn3
vl (2) =vyn3
vl (3)--vzn3
v2 (1 )=vxn 4
v2 (2 )=vyn 4
v2 (3) --vzn4
v3 (1 )--vxn2
v3 (2 )=vyn2
v3 (3) =vzn2
v4 (i) =vxn7
v4 (2) =vyn7
v4 (3) =vzn7
go to 336
-- G-22
=- :
W
= :
w
c
333
334
335
336
vl (i)=vxn4
v i (2 )=vyn 4
vl (3) =vzn4
v2 (i) =vxn2
v2 (2) =vyn2
v2(3)=vzn2
v 3 (1 ) =vxn 7
v3 (2) =vyn7
v3 (3) =vzn7
v4 (i) =vxn5
v4 (2) =vyn5
v4 (3) =vzn5
go to 336
v I (1 )=vxn 8
vl (2) =vyn8
vl (3) =vzn8
v2 (I)=vxn5
v2 (2)=vyn5
v2 (3) =vzn5
v3 (i) =vxn7
v3 (2) =vyn7
v3 (3) =vzn7
v4 (i) =vxn4
v4 (2) =vyn4
v4 (3) =vzn4
go to 336
vl (I) =vxn6
vl (2) =vyn6
vl (3) =vzn6
v2 (1 )--vxn7
v2 (2 )=vyn7
v2 (3)=vzn7
v3 (I) svxn5
v3 (2) =vyn5
v3 (3) =vzn5
v 4 (1 )svxn2
v4 (2) =vyn2
v4 (3) =vzn2
go to 336
dummy=2.0
set initial coordinates
go to 337
xl (I) =0.0
xl (2) =0.0
xl (3) sO. 0
x2 (i) =i. 0
x2 (2) =0.0
x2 (3)=0.0
x3 (i) sO. 5
x3(2)=sqrt(0.75)
x3 (3) =0.0
w
G-23
w
w
h
_==w
_z
F2I a
=
t_
| i
|i_ e
c
c
c
c
337
c
c
c 340
350
c
c 341
c
c 342
352
c
c 337
c
c
c
C****
c
c
C
c
c
c
x4 (i)=0.5
x4 (2)--sqrt (0.75) /3.
x4 (3) =I. 0
set initial velocities
vl (i)=i. 0
vl (2) =0.0
vl (3) =0.0
v2 (i) =0.0
v2 (2) =0.0
v2 (3) =0.0
v3 (i) =0.0
v3 (2) =0.0
v3 (3) =0.0
v4 (I)=0.0
v4 (2) =0.0
v4 (3) =0.0
dummy=3.0
do 350 ip=l,3
write(lO,340) xl(ip),x2(ip),x3(ip),x4(ip)
format (4e15 .-3)
continue
write (I0,341)
format (' ')
do 352 ip=l,3
write (lO, 342) vl(ip),v2(ip),v3(ip),v4(ip)
format ( 4e 15.3 )
continue
dummy=3.0
return
end
subroutine initlz(h,f,ep, p)
subrouitne initlz
common/props/den, denref, rmass, vmu, vlamb, eta, zeta, phi, r j (3,3 )
common/ndata/xl (3) ,x2 (3) ,x3 (3) ,x4 (3) ,
1 vl(3),v2 (3),v3(3),v4(3),xc(3)
dimension h(3,3),f(3,3),ep(3,3),p(3)
set initial conditions
f(l,l)=l.O
f(l,2)=O.O
f (I, 3) =0 . 0
f(2,1)=O.O
f (2,2)=I.0
f (2,3)--0.0
f (3, I) =0.0
f(3,2)=0.0
w
w
w
=
h.w
c
c
c
c
c
c
c
c
c
c
c
c
c
-c
c
c
c
c
c
c
c
c
c
c 103
c
c
c
c
c
c
c
c
c****
c
c
f(3,3)=I.0
detf=denref/den
f (I, i) =detf** (I./3.)
f (2,2) =det f** (I./3. )
f(3,3)--detf**(l./3.)
det f=f (i, i) * (f (2,2) *f (3, 3) -f (3,2) *f (2, 3) ) -
1 f(l,2)*(f(2,1)*f(3,3)-f(2,3)*f(3,1))+
2 f (i, 3) * (f (2, I) *f (3,2) -f (3, I) *f (2,2))
den=denref/detf
write (I0,103) den
format (e20.8)
ep (I, i) =0 . 0
ep(l,2)=O.O
ep (i, 3) =0 . 0
ep (2, i) =0.0
ep(2,2)=O.O
ep(2,3)=O.O
ep (3, i) =0.0
ep(3,2)=O.O
ep(3, 3)=0.0
h(l,l)=O.O
h(l,2)--O 0
h(l,3)=O 0
h(2, i)=0 0
h(2,2)=0 0
h(2,3)=0 0
h (3, I) =0 0
h(3,2)=0 0
h(3,3)--0.0
p(1)=O.Op(2)=O.O
p(3)=O.O
call ivcalc(h,p)
xc(1)--0.5
xc (2) -sqrt (0.75)/3.xc (3)=i.0/4.0
return
end
subroutine fcn (neq, t, y, yprime)
subroutine fcn
common/props/den, denre f,rmass, vmu, vlamb, eta, zeta, phi, r j (3, 3)common/ndata/xl (3) ,x2 (3) ,x3 (3) ,x4 (3) ,
1 vl (3) ,v2 (3) ,v3 (3) ,v4 (3) ,xc(3)
G-24
-- G-25
w
=
= =
w
=
w
_ i
w
w
m
= =
) 4
L
w
c
c
c
c
ii
i0
15
14
13
c
c
c
c
dimension y(33),yprime(33)
dimension h(3,3),f(3,3),fi(3,3),e(3,3),ep(3,3),p(3),
1 rji (3,3), rm(3, 3,3, 3) , rk (3, 3) , rkp (3, 3) , c (3,3) , ci (3, 3) ,
2 vg(3,3),dd(3,3),rn(3,3,3,3),vkv(3,3),xct(3)
dimension hd(3,3),fd(3,3),ed(3,3),epd(3,3),pd(3),xcd(3)
define variables
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
do i0 i=1,3
do Ii j=l,3
h(i,j) = y(3*(i-l)+j)
f(i,j) = y(3*(i-l)+j+9)
ep(i, j)= y(3* (i-l) +j+18)
continue
continue
do 13 i=I,3
do 14 j=l, 3
c(i, j)=O.O
do 15 ia=l,3
c (i, j)=c (i, j) +f (ia, i) *f (ia, j)
continue
continue
continue
ninv=3
Idc=3
idcinv=3
call linrg(ninv, c,ldc, ci,ldcinv)
iflag=l
call matvO3(iflag, ninv, c,ci)
12
do 12 i=1,3
p(i) = y(i+27)
xct(i)-- y(i+30)
continue
call ecalc(f,e)
write (lO,104)
104 format('subroutine fcn')
call Jcalc(den,xl,x2,x3,x4,rj)
write (i0,105)
105 format('subroutine fcn jcalc')
do 201 ii=l,3
do 202 jj=l,3
write (i0,102)
102 format(e20.8)
202 continue
201 continue
rj (ii, jj)
call jinv (rj, rji)
w G-26
=
L
L
m
u
__
E
c
c
c
23
22
21
20
31
3O
52
51
5O
calculate transformer modulus
do 20 i=1,3
do 21 j=l,3
do 22 ia=l,3
do 23 ib=l,3
if(i.eq.ib) then
delib=l.O
else
delib=O.O
endif
if(j.eq.ib) then
deljb=l.O
else
deljb=O.Oendif
rm(i,J,ia,ib)=O.5*(delib*f(ia, j)+f(ia,i)*deljb)
continue
continue
continue
continue
do 30 i=I,3
do 31 j_l,3
if(i.eq.j) then
delij=l.Oelse
delij-O.O
endif
rk (i, j) = (rmass/denref) * (2. *vmu* (e (i, j) -ep (i, j) ) +
1 delij*vlamb* ( (e (i, I) +e (2,2) +e (3, 3) ) -
2 (ep(l,l)+ep(2,2)+ep(3,3))))
rkp (i, j) =-rk (i, j)
call detcal(f,rvl)
rk(i, j)= (rmass/( (i .-phi) *denref) ) "2 .*vmu* ( (e (i, j) -
1 (1./3.)*deiij*(e(l,l)+e(2,2)+e(3,3)))-ep(i,j))
2 - (rmass/((l.-phi) *denref) ) * (vlamb+ (2./3. ) *vmu) * (i./rvl-I. )
3 * (l./rvl) *ci (i, j)
rkp (i, j) -- (rmass/( (i.-phi) *denref) ) "2. *vmu* ( (e (i, j) -
1 (1./3.)*delij*(e(l,l)+e(2,2)+e(3,3)))-ep(i, j))
continue
continue
do 50 i=1,3
do 51 jml, 3
fd(i,j)=0.O
do 52 ia=l,3
fd(i, j) =fd(i, j) +h (i, ia) *rji (ia, j)continue
continue
continue
ninv=3
idf=3
w
G-27
i i
)*m
w
w
b=-
b==_
|
w
w
H
c
c
c
302
301
300
c
304
303
c
c
c
223
_222
221
220
c
c
c
idfinv=3
call linrg(ninv, f,ldf,fi,ldfinv)
if lag=2
call matvO3(iflag, ninv, f, fi)
do 300 i=l, 3
do 301 j--l,3
vg (i, j) =0.0
do 302 ia=l, 3
vg(i,j)=vg(i, j)+fd(i,ia)*fi(ia, j)continue
continue
continue
do 303 i--i,3
do 304 j=l,3
dd(i, j)=O.5*(vg(i,j)+vg(j,i))continue
continue
calculate transformer modulus
do 220 i=1,3
do 221 j=l,3
do 222 ia=l,3
do 223 ib=l,3
if(i.eq.ib) then
delib=l.O
else
delib=0.O
endif
if(j.eq.ib) then
deljb=l.Oelse
deljb=0.O
endif
rn (i, j, ib, ia) =0.5* (delib*fi (ia, j) +fi (ia, i) *deljb)continue
continue
continue
continue
zeta=l.O
call detcal(f, rvl)
do 231 i=I,3
do 232 jml, 3
vkv (i, J)=0.0
do 233 ia-l,3
do 234 ib-l,3
if (ia.eq. ib) then
delab=l. 0
else
delab=O. 0
endif
vkv (i, j) =vkv (i, j) +zeta*rn (ia, ib, i, j) *dd (ia, ib)
vkv (i, j) =vkv(i, j) +zeta* (rmass*rvl/((l.-phi) *denref) )
U
G-28
w
w
I
=w
w
w
c
c
c
c
c
c
234
233
232
231
43
42
41
40
61
6O
70
81
80
82
102
202
201
1 *rn (ia, ib, i, j) *
1 delab* (i./3. ) *(dd (i, I) +dd (2,2) +dd (3,3))
2 delab*(1./3.)*aminl(O.O,dd(l,l)+dd(2,2)+dd(3,3))
2 dd (ia, ib)
3 *(0.5*(dd(l,l)**2+dd(l,2)**2+dd(l,3)**2+
4 dd(2, i) **2+dd (2,2) **2+dd(2,3) **2+
5 dd (3, I) **2+dd (3,2) **2+dd (3, 3) **2) ) **2
continue
continue
continue
continue
do 40 i--I,3
do 41 j--l,3
hd (i, j ) =0.0
do 42 ia=l,3
do 43 ib=l,3
hd(i,j)=hd(i,j)-rm(ia,ib, i, j)*rk(ia,ib)
continue
continue
hd(i,j)=hd(i,j)-vkv(i,j)
continue
continue
do 60 i=1,3
do 61 j=l,3
epd (i, j) =- (i./eta) *rkp (i, j)
continue
continue
do 70 i=i,3
pd (i) =0.0
xcd (i) = (i./rmass) *p (i)
continue
set the vector yprime
do 80 i=1,3
do 81 j=l,3
yprime (3* (i-l) +j)
yprime (3* (i-l) +j+9)
yprime (3* (i-l) +j+lS)continue
continue
- hd(i, j)
- fd(i, j)
= epd(i, j)
do 82 i=i,3
yprime(i+27)- pd(i)
yprime(i+30)=xcd(i)
continue
do 201 ii=l,3
do 202 jj=l,3write(lO,102)
format(Sel5.3)
continue
continue
f(ii, jj),fd(ii, Jj),h(ii, jj),hd(ii, j j)
return
w G-29
w
=_ -
w
= =
w
L_
w
=._w
c
C****
C
c
c
c
c
c
12
c
C
Ii
i0
c
c
C****
c
c
C
c
end
subroutine ecalc(f,e)
subroutine ecalc
dimension f(3,3),e(3,3),c(3,3)
calculate e
do i0 i=1,3
do ii j=l,3
e(i,j)=O.O
c(i,j)=O.O
if(i.eq.j) then
delij=l.O
else
delij=O.O
endif
do 12 ia=l,3
c (i, j) =c (i, j) +f (ia, i) *f (ia, j)
continue
e(i, j)=0.50*(c(i, j)-delij)
continue
continue
return
end
subroutine jinv(z,zi)
subroutine jinv
inverts the symmetric 3x3 matrix
dimension z(3,3),zi(3,3)
zl=z (i, i)
z2=z (2,2)
z3--z (3, 3)
z4=z (i, 2)
zS=z (2,3)
z6=z (i, 3)
det=zl* (z2*z3-z5*z5) -z4* (z4*zS-z5*z6) +z6* (z4*z5-z2*z6)
zl (i, I)=+(I
z_ (2, i)=- (i
za(3, I)--+(izz (I, 2)--- (i
zl (2,2)=+(I
z± (3,2) =- (i
zl(l, 3) =+(I
zl (2,3)=- (I
/det) * (z2*z3-z5*z5)
/det) * (z4*z3-z5*z6)
/det) * (z4*z5-z2*z6)
/det) * (z4*z3-z5*z6)
/det) * (zl*z3-z6*z6)
/det) * (zl*z5-z4*z6)
/det) * (z4*z5-z2*z6)
/det) * (zl*z5-z4*z6)
G-30
= ,
J
w
w
w
c
c
C****
C
C
C
C
C
zi (3, 3) =+ (i./det) * (zl*z2-z4*z4)
return
end
subroutine jref(g, rjp)
subroutine jref
common/props/den, denref, rmass, vmu, vlamb, eta, zeta, phi, rj (3, 3)
common/rdata/xxl (3) ,xx2 (3) ,xx3 (3) ,xx4 (3) ,xxc (3) ,vref
dimension g(3,3),rjp(3,3)
detg=g (i, I) * (g (2,2) *g (3, 3) -g (3,2) *g (2,3)) -
1 g(l, 2) * (g(2, I) *g(3, 3) -g(2,3) *g(3, I) ) +
2 g (i, 3) * (g(2, i) *g (3,2) -g(3, I) *g (2,2))
rmass=(l.O-phi)*den*vref*detg
rmass=abs((l.O-phi)*den*vref*detg)
calculate the reference inertia tensor
hl = sqrt ( (xxl (I) -xxc (I)) **2+ (xxl (2) -
1 xxc (2)) **2+ (xxl (3) -xxc (3)) **2)
h2 = sqrt ( (xx2 (i) -xxc (i)) *'2+ (xx2 (2) -
1 xxc (2)) **2+(xx2 (3)-xxc(3)) **2)
h3 = sqrt ( (xx3 (I) -xxc (I)) *'2+ (xx3 (2) -
1 xxc (2)) *'2+ (xx3 (3)-xxc (3)) **2)
h4 -- sqrt((xx4(1)-xxc(1))**2+(xx4(2)-
1 xxc(2) ) **2+(xx4 (3)-xxc(3)) **2)
epll - (xxl(1)-xxc(1))/hl
epl2 = (xxl(2)-xxc(2))/hl
epl3 = (xxl(3)-xxc(3))/hl
ep21 = (xx2(1)-xxc(1))/h2
ep22 -- (xx2(2)-xxc(2))/h2
ep23 = (xx2(3)-xxc(3))/h2
ep31 = (xx3(1)-xxc(1))/h3
ep32 -- (xx3(2)-xxc(2))/h3
ep33 = (xx3(3)-xxc(3))/h3
ep41 - (xx4(1)-xxc(1))/h4
ep42 = (xx4(2)-xxc(2))/h4
ep43 -- (xx4(3)-xxc(3))/h4
rjpll=(rmass/20.)*((hl**2)*epll*epll+(h2**2)*ep21*ep21
1 +(h3**2)*ep31*ep31+(h4**2)*ep41*ep41)
rjp12=(rmass/20.)*((hl**2)*epll*ep12+(h2**2)*ep21*ep22
1 +(h3**2)*ep31*ep32+(h4**2)*ep41*ep42)
rjp13=(rmass/20.)*((hl**2)*epll*ep13+(h2**2)*ep21*ep23
1 +(h3**2)*ep31*ep33+(h4**2)*ep41*ep43)
rjp21= (rmass/20.) * ((hl**2) *epl2*epll+ (h2"'2) *ep22*ep21
+ (h3"'2) *ep32*ep31+ (h4"'2) *ep42*ep41)
r jp22= (rmass/20.) * ((hl**2) *epl2*epl2+ (h2"'2) *ep22*ep22
•- G-31
w
=- :
b
C
c
c
C****
C
C
C
C
C
C
1 + (h3"'2) *ep32*ep32+(h4**2) *ep42*ep42)
rjp23= (rmass/20.) * ((hl**2) *epl2*epl3+ (h2"'2) *ep22*ep23
1 + (h3"'2) *ep32*ep33+ (h4"'2) *ep42*ep43)
rjp31=(rmass/20.)*((hl**2)*ep13*epll+(h2**2)*ep23*ep21
1 +(h3**2)*ep33*ep31+(h4**2)*ep43*ep41)
rjp32=(rmass/20.)*((hl**2)*ep13*ep12+(h2**2)*ep23*ep22
1 +(h3**2)*ep33*ep32+(h4**2)*ep43*ep42)
rjp33=(rmass/20.)*((hl**2)*ep13*ep13+(h2**2)*ep23*ep23
1 +(h3**2)*ep33*ep33+(h4**2)*ep43*ep43)
rjp (i, i) =rjpll
rJp (i, 2)--rjpl2
rjp (i, 3) =rjpl3
rjp (2, i) =rjp21
rjp (2,2) =rjp22
rjp (2,3) =rjp23
rjp (3, i) =rjp31
rjp (3, 2) =rjp32
rip (3, 3) =rjp33
return
end
subroutine jcalc(xl,x2,x3,x4,xc,rj)
subroutine jcalc(den,xl,x2,x3, x4,xc, rj)
subroutine jcalc
common/rdata/xxl (3) ,xx2 (3) ,xx3 (3) ,xx4 (3) , xxc (3) ,vref
dimension xl(3),x2(3),x3(3),x4(3),rj(3,3),
1 rjp(3,3),a(12,12),b(12),s(12),ainv(12,12),
2 g (3, 3) ,ginv (3,3) ,xc (3) ,aml (12, 12) ,am2 (12, 12)
set the reference tetrahedron
xxl(l
xxl(2
xxl(3
xx2(l
xx2(2
xx2(3
xx3(l
xx3(2
xx3(3
xx4(l
xx4
xx4
)=0 0)=0 0)=0 0
)=i 0
)=0 0
)=0 0)=0 5)=s(rt(0.75)
)=0.0)=0.5
(2)=sqrt(0.75)/3.
(3)=1.0
xxc (I) =0.5
xxc(2)=sqrt(0.75)/3.
xxc (3) =i. 0/4.0
vref= (i./3. ) * (i./2. ) *sqrt (0.75)
set the right hand side vector
-- G-32
:i
w
w
L_
w
w
m
t_
c
b(1) =xl(1)
b(2) =xl(2)
b(3) =xl(3)
b(4) =x2(1)
b(5) =x2(2)
b(6) =x2(3)
b(7) =x3(1)
b(8) =x3(2)
b(9) --x3(3)
b (i0) =x4 (i)
b (Ii) =x4 (2)
b(12) =x4 (3)
set the coefficient matrix
a(l,l) =xxl(1)-xxc(1)
a(l,2) =xxl(2)-xxc(2)
a (I, 3) =xxl (3)-xxc(3)
a(l,4) =0.0
a(l,5) =0.0
a(l,6) =0.0
a(l,7) --0.0
a(l,8) =0.0
a(l,9) =0.0
a(l, lO)=l.O
a(l, Ii)=0.0
a(l, 12)=0.0
a(2,1)
a (2,2)
a (2,3)
a (2,4)
a(2,5)
a(2,6)
a(2,7)
a(2,8)
a(2,9)
a(2,10
a(2,11
a (2, 12
=0.0
=0.0
=0.0
=xxl (i) -xxc (I)
--xxl (2) -xxc (2)
=xxl (3) -xxc (3)
=0 0
=0 0
=0 0
)=o o)=I 0
)=0 0
a(3,1) =0.0
a (3,2) =0.0
a (3,3) =0.0
a (3, 4) -0.0
a (3, 5) =0.0
a(3, 6) =0.0
a(3,7) --xxl(1)-xxc(1)
a (3, 8) =xxl (2)-xxc(2)
a(3,9) =xxl(3)-xxc(3)
a(3, I0)=0.0
a(3, ii)=0.0
a (3, 12)=1.0
a(4,1) --xx2(1)-xxc(1)
a(4,2) --xx2(2)-xxc(2)
a (4, 3) =xx2 (3) -xxc (3)
a(4,4) =0.0
-- G-33
=
w
_=_
t
=
u
m
u
w
w
w
w
z z
_- {
i |4
C
C
a(4,
a(4,
a(4,
a(4,
a(4,
a(4,
a(4,
a(4,
5) =0.0
6) --0.0
7) =0.0
8) =0.0
9) =0.0
i0)=i.0
Ii)=0.0
12)=0.0
a(5,1)
a(5,2)
a(5,3)
a(5,4)
a(5,5)
a(5, 6)
a(5,7)
a(5,8)a(5,9)
a(5,10)
a(5,11)
a(5,12)
a(6,1)
a(6,2)
a(6,3)
a(6,4)
a(6,5)
a(6, 6)
a(6,7)
a(6,8)
a(6, 9)
a(6,10)
a(6,11)
a(6,12)
=0.0
=0.0
=0.0
_xx2 (I) -xxc (I)
=xx2 (2) -xxc (2)
=xx2 (3 ) -xxc (3 )
=0.0
=0.0
=0.0
=0.0
=i.0
=0.0
=0 0
=0 0 _
=0 0
=0 0
=0 0
=0 0
=xx2 (1 )-xxc (1 )
=xx2 (2) -xxc (2)
--xx2 (3 )-xxc (3 )
=0.0
=0.0
=I.0
a(7,1) --xx3(1)-xxc(1)
a(7,2) =xx3(2)-xxc(2)
a(7,3) --xx3(3)-xxc(3)
a(7,4) =0.0
a(7,5) =0.0
a (7, 6) --0.0
a(7,7) =0.0
a(7,8) _O.O
a(7,9) =0.0
a(7,10)--l.O
a(7,11)ffiO.O
a(7,12)=0.0
a(8,1) =0.0
a(8,2) -0.0
a(8,3) =-0.0
a(8,4) =xx3(1)-xxc(1)
a(8,5) =xx3(2)-xxc(2)
a(8,6) --xx3(3)-xxc(3)
a (8,7) =0.0
a(8,8) =0.0a(8, 9) =0.0
a(8, i0)=0.0
El
w
w
i
w
m_
a(8,11)=l.O
a(8, 12)=0.0
a(9,1)
a(9,2)
a(9,3)
a(9,4)
a(9,5)
a(9,6)
a(9,7)
a(9,8)
a(9,9)
=0.0
=0.0
=0.0
=0.0
=0.0
=0.0
=xx3 (1 )-xxc (1 )
=xx3 (2) -xxc (2)
=xx3 (3) -xxc (3)
a(9,10)=O.O
a(9, ii)=0.0
a(9,12)=i.0
a(lO,l) =xx4(1)-xxc(1)
a(lO,2) =xx4(2)-xxc(2)
a(lO,3) --xx4(3)-xxc(3)
a(lO, 4) =0.0
a(lO,5) =0.0
a(lO, 6) =0.0
a(lO,7) =0.0
a(lO,8) =0.0
a (I0, 9) =0.0
a (i0, i0)=1.0
a (i0, II) =0.0
a(I0,12)=0.0
a(ll, i) =0.0
a (II,2) =0.0
a(ll,3) =0.0
a(ll,4) =xx4(1)-xxc(1)
a(ll,5) =xx4(2)-xxc(2)
a(ll,6) -xx4(3)-xxc(3)
a(ll,7) =0.0
a(ll,8) =0.0
a(ll,9) _0.0
a (ii, I0)=0.0
a (II, Ii) =I. 0
a(ll,12)=O.O
a (12, I) =0.0
a (12,2) =0.0
a (12,3) =0.0
a(12,4) =0.0
a (12, 5) _0.0
a(12, 6) =0.0
a(12,7) =xx4(1)-xxc(1)
a(12,8) =xx4(2)-xxc(2)
a(12,9) =xx4(3)-xxc(3)
a (12, I0) =0 .0
a (12, ii)=0.0
a (12, 12) =I. 0
call inverse solver
ninv=12
G-34
-- G-35
I
w
w
! 2w
c
c
c 106
c
c
c
c
c ii0
c 109
c 108
c
c
c
c
c
c
c
c 107
c
c
c
c
c
c
c
c
c
c
c
c
c
c
Ii
876
I0
ida=12
idainv=12
write (lO,106)
format('sub jcalc before solver')
do 108 iii=l,12
do 109 jjj=l,12
write (i0, ii0) a(iii, jjj)
format (e20.8)
continue
continue
call linrg(ninv, a,lda,ainv, ldainv)
if lag=3
call matvl2(iflag, ninv, a,ainv)
call amodl(a,aml)
call matinv (ninv, aml, am2)
call amod2 (am2, ainv)
write (i0,107)
format('sub Jcalc after solver')
calculate the solution vector
do I0 i=I,12
s (i) =0.0
do II j=I,12
s (i)=s (i)+ainv (i, j) *b(j)continue
write(4,876) i,b(i),s(i)
format (ix, i5, 2e15.3)
continue
set the tensor g
g (I, I) =s (I)
g (i, 2)=s (2)
g(l, 3) =%(3)
g (2, I) =s (4)
g (2,2)=s (5)
g(2, 3)--s (6)
g (3, i)=s (7)
g (3, 2)=s (8)
g(3,3)=s (9)
xc (1)=s (i0)
xc (2) =s (II)
xc (3) ms (12)
invert the tensor g
call inverse solver
ninv=3
idg=3
idginv=3
= =
w
J
= =
w
w
_me
u
w
w
i
- =
UE
w
c
c
C
C
C
23
22
21
20
c
C
C
c
C****
c
c
c
c
c
call linrg (ninv, g, idg, ginv, Idginv)
i flag=4
call matvO3(iflag, ninv, g, ginv)
call jref(g, rjp)
calculate the inertia tensor
do 20 i=1,3
do 21 j=l, 3
rj (i, j)=O.O
do 22 ia=l,3
do 23 ib=l,3
rj (i, j)=rj (i,j)+ginv (ia, i) *rip (ia, ib) *ginv (ib, j)continue
continue
continue
continue
return
end
subroutine ivcalc(h,p)
subroutine ivcalc
common/props/den, denref, rmass, vmu, vlamb, eta, zeta, phi, rj (3,3)
common/rdata/xxl (3) ,xx2 (3) ,xx3 (3) ,xx4 (3) ,xxc (3) ,vref
common/ndata/xl (3) ,x2 (3) ,x3 (3) ,x4 (3) ,
1 vl (3) ,v2 (3) ,v3 (3) ,v4 (3) ,xc (3)
dimension a(12,12),b(12),s(12),ainv(12,12),
1 g(3,3),h(3,3),p(3),aml(12,12),am2(12,12)
set the right hand side vector
b(1) =vl(1)
b(2) =vl(2)
b(3) =vl(3)
b(4) =v2(1)
b(5) =v2(2)
b(6) =v2(3)
b(7) =v3(1)
b(8) =v3(2)
b(9) --v3(3)
b (i0) =v4 (I)
b (II) =v4 (2)
b(12) =v4 (3)
set the coefficient matrix
a(l,l) =xl(1)-xc(1)
a(l,2) --xl(2)-xc(2)
a(l,3) =xl(3)-xc(3)
a(l, 4) =0.0
a (i, 5) =0.0
a(l, 6) =0.0
G-36
w
-- G-37
w
===_z
w
w
w
u
E_
m
L_
u
w
U
t_
c
c
a(l,7)
a(l,8)
a(l,9)
a(l, lO)
a(l,ll)
a(l,12)
a(2,1)
a(2,2)
a(2,3)
a(2,4)
a (2,5)
a(2, 6)
a(2,7)
a(2,8)
a(2,9)
a(2,10
a(2,11
a (2, 12
a(3,1)
a(3,2)
a(3,3)
a(3,4)
a(3,5)
a(3,6)
a(3,7)
a(3,8)
a(3,9)
a(3,10)
a(3,11)
a (3, 12)
a(4,1)
a(4,2)
a(4,3)
a(4,4)
a(4,5)
a(4,6)
a(4,7)
a(4,8)
a(4,9)
a(4,10)
a(4,11)
a (4, 12)
a(5,1)
a(5,2)
a(5,3)
a(5,4)
a(5,5)
a(5, 6)
a(5,7)
a(5,8)
a(5, 9)
a(5,10)
a(5,11)
a (5, 12)
=0 0
=0 0
=0 0
=i 0
=0 0
=0 0
=0.0
=0.0
=0.0
=xl (i) -xc (I)
=xl (2) -xc (2)
=xl (3) -xc (3)
=0.0
=0.0
--0.0
)=0.0
)=i.0
)=0.0
=0.0
=0.0
=0.0
=0.0
=0.0
=0.0
=xl (i) -xc (I)
=xl (2) -xc (2)
--xl (3) -xc (3)
=0.0
=0.0
=i.0
=x2 (i) -xc (I)
--x2 (2) -xc (2)
--x2 (3) -xc (3)
=0.0
--0.0
--0.0
=0.0
--0.0
=0.0
=i .0
=0.0
=0.0
=0.0
=0.0
=0.0
--x2 (i) -xc (I)
--x2 (2) -xc (2)
=x2 (3) -xc (3)
=0.0
=0.0
=0.0
=0.0
=i.0
--0.0
w
U
N
U
C
a(6, i) =0.0
a (6,2) =0.0
a(6,3) =0.0
a (6,4) =0.0
a (6,5) =0.0
a(6, 6) =0.0
a(6,7) =x2(1)-xc(1)
a(6,8) =x2 (2)-xc(2)
a(6, 9) =x2 (3)-xc(3)
a(6, i0)=0.0
a (6, ii)=0.0
a(6, 12)=i.0
a(7,1) =x3(1)-xc(1)
a(7,2) =x3(2)-xc(2)
a(7,3) --x3(3)-xc(3)
a(7,4) =0.0
a(7, 5) =0.0
a(7,6) -0.0
a(7,7) -=0.0
a(7,8) =0.0
a (7, 9) =0.0
a (7, i0)=i.0
a (7,11)=0.0
a (7, 12) =0.0
a(8,1) =0.0
a(8,2) =0.0
a(8,3) =0.0
a(8,4) =x3(1)-xc(1)
a(8,5) --x3(2)-xc(2)
a(8,6) --x3(3)-xc(3)
a(8,7) --0.0
a(8,8) =0.0
a(8,9) =0.0
a (8,10)=0.0
a(8, ii)=I.0
a(8,12)_0.0
a(9, i) =0.0
a(9,2) =0.0
a(9,3) -0.0
a(9,4) =0.0
a(9,5) =0.0
a(9,6) --0.0
a(9,7) =x3(1)-xc(1)
a(9,8) --x3(2)-xc(2)
a(9,9) =x3(3)-xc(3)
a (9, I0)-.0.0
a(9, ii)=0.0
a (9, 12)=1.0
a(lO,l) --x4(1)-xc(1)
a(lO,2) =x4(2)-xc(2)
a(lO,3) =x4(3)-xc(3)
a (i0, 4) =0.0
a (i0,5) --0.0
G-38
G-39
°c
c
c 106
c
c
c
c
c ii0
c 109
c 108
c
c
a(lO,6) =0 0
a(10,7) =0 0
a(lO,8) =0 0
a(lO,9) =0 0
a(lO,lO)=l 0
a(lO,ll)=O 0
a(i0,12)=0 0
a (ii, I) =0.0
a(ll,2) =0.0
a(ll, 3) =0.0
a(ll,4) =x4(1)-xc(1)
a(ll,5) =x4(2)-xc(2)
a(ll,6) =x4(3)-xc(3)
a(ll,7) =0.0
a(ll, 8) =0.0
a(ll,9) =0.0
a (ii, 10) =0.0
a (Ii, Ii) =I. 0
a (Ii, 12) =0.0
a (12, I) =0.0
a (12,2) =0.0
a(12,3) =0.0
a(12,4) =0.0
a(12,5) =0.0
a (12, 6) =0.0
a(12,7) =x4(1)-xc(1)
a(12,8) --x4(2)-xc(2)
a(12,9) --x4(3)-xc(3)
a (12, I0)=0.0
a (12, II) =0.0
a(12,12)-i.0
call inverse solver
ninv=12
ida=12
idainv=12
write(lO,106)
format('sub jcalc before solver')
do 108 iii=l,12
do 109 jjj=l,12
write(lO,llO) a(iii, jjj)
format(e20.8)
continue
continue
call linrg(ninv, a, ida,ainv, ldainv)
if lag=5
call matvl2(iflag, ninv, a, ainv)
call amodl(a,aml)
call matinv(ninv, aml,am2)
call amod2 (am2, ainv)
write (i0,107)
"-" G-40
=
=_
= .
I
c 107
c
c
c
ii
i0
c
c
c
c
c
c
c
c
c
c
format('sub jcalc after solver')
calculate the solution vector
do I0 i=i,12
s(i)=O.0
do ii j=I,12
s (i) =s (i) +ainv (i, j) *b(j)
continue
continue
set the tensor g
const=(denref/den)**(i./3.)
g(l, l)=s (I) *const
g(l, 2) =s (2) *const
g(l, 3)=s (3) *const
g(2, I) =s (4) *const
g(2,2) =s (5) *const
g(2,3) =s (6) *const
g (3,1) =s (7) *const
g (3,2) =s (8) *const
g(3, 3) =s (9) *const
p (i) =s (I0) *rmass
p (2) =s (II) *rmass
p (3) =s (12) *rmass
calculate the tensor h
22
21
20
do 20 i=l, 3
do 21 j--l, 3
h(i,j)=O.O
do 22 ia--l,3
h(i, j)--h(i,j)+g(i,ia)*rj (ia, j)
continue
continue
continue
return
end
subroutine ifdcrk(ido,neq, t,tend, tol,param, y)
dimension
dimension
1 y4(33)
y (33), yprime (33) ,param(50)
fl(33),f2(33),f3(33),f4(33),yl(33),y2(33),y3(33),
external fcn
nstep=lO00
rnstep=nstep
delt=(tend-t)/rnstep
do I0 i=l, nstep
ri=i
G-41
11111
_ _ L
wm
w
L ,
V
C
21
c
C
22
C
C
23
c
c
24
c
C
30
c
10
c
c
c
c
c
o
c
c
c
c
c
c
tl--t+ (ri-I. O) *delt
t2=t l+delt/2.0
t 3=tl+delt/2.0
t 4 =t 1 +de it
do 21 j=l,neq
yl(j)=y(j)
c ont inue
call fcn(neq, tl,yl, fl)
do 22 j--l,neq
y2 (j)=y(j)+ (delt/2. O) *fl (j)
continue
call fcn (neq, t2, y2, f2)
do 23 j=l,neq
y3 (j) =y (j) + (delt/2. O) *f2 (j)
continue
call fcn(neq, t3,y3,f3)
do 24 j--l,neq
y4(j)=y(j)+delt*f3(j)
continue
call fcn(neq, t4,y4,f4)
do 30 j=l,neq
y (j)--y (j) + (delt/6.0) * (fl (j) +2. O'f2 (j) +2. O'f3 (j) +f4 (j))
continue
continue
return
end
subroutine ivdcrk (ido, neq, tbeg, tend, tol, param, y)
common/intpar/eps int, ymxre f
dimension y(33),yw(33),ymax(33),param(50),err(33)
dimension fl(33),f2(33),f3(33),f4(33),yl(33),y2(33),y3(33),
1 y4 (33)
eps=l. Oe-6
ymxref=l. 0e-6
eps=epsint
delmin--I. Oe-24
nstep=lO00000
rnstep=nstep
delt = (tend-tbeg)/rnstep
delmin--delt / 10.0
= -
L
LJ
L
L
F_
W
11
c
ci00
91
c
12
.c
21
c
c
- I01
c
98
Ii0
c ii0
c
99
c
c 120
c
c
c
do Ii i=l,neq
ymax (i) =amaxl (ymxref, abs (y (i)) )continue
t=tbeg
tl=t
if(t+delt.gt.tend)
t2=t+delt/2.0
t3=t+delt
delt=tend-t
do 91 i=l,neq
yl(i)=y(i)continue
call
call
call
rkstep(ido,neq, tl,t3,tol,param, yl,y2)
rkstep(ido,neq, tl,t2,tol,param, yl,y3)
rkstep(ido,neq, t2,t3,tol,param, y3,y4)
errmax=0.0
do 12 i=l,neq
err(i)=abs(y4(i)-y2(i))/(eps*ymax(i))errmax=amaxl(errmax, err(i))
continue
if (errmax. le. 0.0)
if (errmax.gt. i. 0)
if (errmax.gt. 0.0)
delt=2.0*delt
go to I01delt=0.99*delt*errmax**(-l.0/5.0)
do 21 i=l,neq
y(i)=y4(i)
ymax(i)=amaxl(ymax(i),abs(y(i)))continue
t=t3
if(t.ge.tend) go to 99
if(delt.lt.delmin) go to 98
go to I00
delt=delt/2.0
if(delt.lt.delmin) go
go to I00
to 98
ido=98
write(10,110) ido, t,delt
format(ix, i5,2el5.3)
format(Ix,'time step less than minimum,
return
ido =' i5)
ido=99
write (I0,120) ido, t, delt
format (Ix, i5,2e15.3)
return
end
subroutine rkstep(ido,neq, tbeg, tend, tol,param, y, yout)
G-42
L
E E
w
L_w
|lL !
r .
c
c
21c
c
22c
c
23c
24c
30c
c
c
c
c
c
c 101
c
c
c
c
c 422
dimension y(33),param(50),yout(33)
dimension fl(33),f2(33),f3(33),f4(33),yl(33),y2(33),y3(33),
1 y4 (33)
delt=tend-tbeg
tl=tbeg
t2=tl+delt/2.0
t3=tl+delt/2.0
t4=tl+delt
do 21 j=l,neq
yl(j)=y(j)
continue
call fcn (neq, tl, yl, fl)
do 22 j=l,neq
y2(j)=y(j)+(delt/2.0)*fl(j)
continue
call fcn(neq, t2,y2,f2)
do 23 j=l,neq
y3(j)=y(j)+(delt/2.0)*f2(j)
continue
call fcn(neq, t3,y3,f3)
do 24 j=l,neq
y4(j)=y(j)+delt*f3(j)
continue
call fcn (neq, t4, y4, f4)
do 30 j=l,neq
yout (j)=y(j) + (delt/6.0) * (fl (j) +2.0"f2 (j) +2 .O'f3 (j) +f4 (j))
continue
return
end
subroutine matvl2 (iflag, n, rm, rmi)
gauss-jordon elimination
dimension rm(12,12),rmw(12,12),rmi(12,12),chk(12,12),
1 v(12),vw(12),itrak(12)
open (i, file='gauss.inp' )
open (2, file-'gauss.out' )
write (I0, I01) n
format(/'n =',i5)
do 40 i=l,n
do 41 j=l,n
write (i0,422)
format (el5.3)
rm(i, j)
G-43
! m j
=
G-44
w
c 41
c 40
C
C
c
c 423
C
c 42
c
C
C
C
C
"C
C
C
continue
continue
do 42 i=l,n
read(l, 423) v(i)
format (el5.3)
vw (i) =v (i)
continue
21
20
do 20 i=l,n
itrak(i) =i
do 21 j=l,n
rmw (i, j) =rm(i, j)
chk (i, j)=O .0
rmi(i,j)=O.O
if (i.eq.j) rmi(i, j) =i.0
continue
continue
do i0 i=l,n
isav=i
pmag=abs (rmw (i, i) )
do 301 irow--i,n
tmpnum=abs (rmw (irow, i) )
if (tmpnum.gt .pmag) isav=irow
301 continue
itrak (i) =isav
do 302 jcol=l,n
hold=rmw (i, jcol)
rmw (i, jcol) =rmw (isav, jcol)
rmw (isav, jcol) =hold
hold=rmi (i, jcol)
rmi (i, jcol) =rmi (isav, jcol)
rmi (isav, Jcol) =hold
302 continue
pivot=rmw (i, i )
vw (i) =vw (i)/pivot
ii
do Ii jj=l,n
rmi(i, jj)=rmi(i, jj)/pivot
rmw(i, jj)=rmw(i, jj)/pivot
continue
13
12
do 12 k=l,n
if(k.eq.i) go to 12
scale=rmw (k, i)
vw (k) =vw (k) -scale*vw (i)
do 13 j_l,n
rmi (k, j) =rmi (k, j) -scale*rmi (i, j)
rmw (k, j) =rmw (k, j) -scale*rmw (i, j)
continue
continue
I0 continue
go to 99
2
G-45
w
_=
w
c
52
51
5O
c
222
c
223
31
30
c
99
c
c
c
c 223
c 44
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
chksum=O. 0
do 50 i=l,n
do 51 j=l,n
do 52 k=l,n
chk (i, j) =chk (i, j) +rm (i, k) *rmi (k, j)
continue
if (i.eq. j) chk (i, j) =chk (i, j) -I. 0
chksum=chksum+chk (i, j ) **2
continue
continue
if(iflag.ne.4) go to 99
ichk=O
if(chksum.ge.l.Oe-12) ichk=-999
write(4,222) ichk, iflag, n, chksum
format(Ix, 3i5,el5.3)
do 30 i=l,n
do 31 j=l,n
write (4,223) i, J, rm(i, j) , rmw (i, j) , rmi (i, j) ,chk (i, j)
format (ix, 2i5, 4e15.3)
continue
continue
dummy= I. 0
do 44 i=l,n
write(2,223) i,v(i),vw(i)
format(ix, i5,2el5.3)
continue
return
end
subroutine matvO3(iflag, n, rm, rmi)
gauss- jordon elimination
dimension rm(3,3),rmw(3,3),rmi(3,3),chk(3,3),
1 v(3),vw(3),itrak(3)
open (I, file='gauss .inp' )
open (2, file= 'gauss .out' )
write (I0, I01) n
101 format(/'n -',i5)
do 40 iml,n
do 41 j=l,n
write (I0,422)
422 format (e15.3)
41 continue
40 continue
rm(i, j)
423
do 42 i=l,n
read(l, 423) v(i)
format (el5.3)
G-46
= =
=
w
=
w
=
w
c
c
c
c
c
c
c
c
c
c
c
42
21
20
vw (i) =v (i)
continue
do 20 i=l,n
itrak (i) =i
do 21 j=l,n
rmw (i, j)=rm(i, j)
chk(i, j)=O.O
rmi(i, j)=O.O
if (i.eq. j) rmi (i, j)=l.O
continue
continue
do i0 i--l,n
isav=i
pmag=abs (rmw (i, i) )
do 301 irow=i,n
tmpnum=abs (rmw (irow, i) )
if (tmpnum.gt .pmag) isav--irow
301 continue
itrak (i) =isav
do 302 jcol--l,n
hold=rmw (i, jcol)
rmw (i, jcol) =rmw (isav, Jcol)
rmw (isav, jcol) =hold
hold=rmi (i, Jcol)
rmi (i, jcol) =rmi (isav, jcol)
rmi (isav, jcol) =hold
302 continue
ii
13
12
i0
pivot=rmw (i, i)
vw (i) =vw (i)/pivot
do ii jj=l,n
rmi (i, j j) =rmi (i, j j)/pivot
rmw (i, j j)=rmw (i, j j)/pivot
continue
do 12 k=l,n
if(k.eq.i) go to 12
scale=rmw (k, i)
vw (k) =vw (k) -scale*vw (i)
do 13 j=l,n
rmi (k, j) =rmi (k, j) -scale*rmi (i, j)
rmw (k, j ) =rmw (k, j ) -scale*rmw (i, j )
continue
continue
continue
go to 99
chksum=O. 0
do 50 i=l,n
do 51 j--l,n
do 52 k=l,n
chk(i, j)=chk(i,j)+rm(i,k)*rmi(k, j)
G-47
w
C
c
c
c
c
c
c
222
223
31
30
52 continue
if (i.eq. j) chk (i, j) =chk (i, j) -i. 0
chksum=chksum+chk(i,j)**251 continue
50 continue
99
223
44
if(iflag.ne.4) go to 99ichk=O
if(chksum.ge.l. Oe-12) ichk=-999
write(4,222) ichk, iflag, n, chksum
format(ix,3i5,el5.3)
do 30 i=l,n
do 31 j=l,n
write(4,223) i,j,rm(i,j),rmw(i, j),rmi(i, j),chk(i, j)format (Ix, 2i5, 4e15.3)
continue
continue
dummy= 1.0
do 44 i=l,n
write(2,223) i,v(i),vw(i)
format (Ix, i5, 2e15.3)
continue
return
end