Software for modeling the motion of rigid triaxial ellipsoidal particles in viscous flow

Software for modeling the motion of rigid triaxial ellipsoidal particles in viscous flow

Computers & Geosciences Vol. 20, No. 3, pp. 409~,24, 1994 Pergamon 0098-3004(93)E0017-A Copyright © 1994ElsevierScienceLtd Printed in Great Britain...

780KB Sizes 45 Downloads 70 Views

Computers & Geosciences Vol. 20, No. 3, pp. 409~,24, 1994

Pergamon

0098-3004(93)E0017-A

Copyright © 1994ElsevierScienceLtd Printed in Great Britain.All rights reserved 0098-3004/94$7.00+ 0.00

S O F T W A R E FOR M O D E L I N G THE M O T I O N OF R I G I D T R I A X I A L ELLIPSOIDAL PARTICLES IN VISCOUS FLOW JOSEF JE~,EK Department of Applied Mathematics and Computer Science, Faculty of Science, Charles University, Albertov 6, 128 43 Praha 2, Czech Republic (Received 31 October 1993)

Abstract--Three MS-FORTRAN programs are presented which enable study of the behavior of rigid triaxial ellipsoidal particles in slowly moving viscous flow. The modeling is based on numerical solution of Jeffery's equations. These programs allow the investigation of individual particle motion as well as the evolution of a multiparticle system composed of noninteracting particles. In the combined pure shear and simple shear flow, it is possible to estimate the character of multiparticle system evolution by diagrams of time derivatives of Euler angles. The programs are interactive with graphical output on the screen and run on a standard IBM-PC with VGA. Some examples of graphical output of the modeling are presented. Key Words: Ellipsoidal particle motion, Viscous flow, Multiparticle system motion, Pure shear, Simple

shear

INTRODUCTION In the interpretation of preferred orientations of fabric elements in tectonites the model of Jeffery (1923) is used. Jeffery's model describes the behavior of a rigid ellipsoidal particle in slow viscous flow. Given the flow geometry (velocity gradient tensor), the particle axial ratio, and its starting position, the trajectory of the particle during the flow can be determined as the solution of Jeffery's equations. Analytical solutions of these equations of the particle motion have been determined only for biaxial particles (i.e. ellipsoids of revolution) and restricted types of flow geometry: simple shear flow (Jeffery, 1923), pure shear flow (Gay, 1968) axial flattening (Debat and others, 1975; Tulis, 1976), and general orthorhombic flow (Fernandez, 1988). These analytical solutions were used in modeling the motion of an individual biaxial particle and also in modeling multiparticle systems composed of noninteracting particles (Reed and Tryggvason, 1974; Tullis, 1976). In the situation of a triaxial ellipsoidal particle, numerical techniques can be used for solving Jeffery's equations as in Hinch and Leal (1979). Freeman (1985), and Fernandez and Laporte (1991). The results of investigating the motion of an individual triaxial particle with different initial orientations in different types of flow show a significant deviation of the particle behavior from that of a biaxial particle and the need of further work in this field. Modeling of a multiparticle system composed of noninteracting rind ellipsoidal triaxial particles has been also suggested by Freeman (1985), but such a work has not appeared up to this time.

The aim of this paper is the presentation of software enabling the user to investigate the motion of an individual triaxial ellipsoidal particle as well as the evolution of a multiparticle system composed of noninteracting triaxial particles, in different flow geometries. The programs presented could serve also as a tool for estimating the possible development of preferred orientation in real conditions. They were written in MS-FORTRAN, v. 5.0, and run on a standard IBM PC. The Intel 80486 or mathematical coprocessor is recommended for satisfactory speed. The programs are interactive, demand necessary input parameters from console, and yield graphical output of results on the screen. Program JEFF listed in the Appendix enables the modeling of an individual particle motion. The motion of the particle is drawn on the screen as the path of one of the particle axes in the selected type of projection. For solving the differential equations of the particle motion, subroutine DVERK from the IMSL Library, performing the fourth- and fifth-order Runge-Kutta method, was used. This subroutine is not listed here. The user also should provide his/her own subroutine performing print-screen on his type of printer. Program MUPLES allows the user to model and visualize a multiparticle system evolution. Because of its affinity to the program JEFF and the finite extent of the paper it is described only briefly and not listed, and the program TIDER, drawmg patterns of Euler angles derivatives, as well. These diagrams help in estimating the character of multiparticle system evolution, especially in the situation of combined pure shear and simple shear model,

409

410

J. JE~EK

which can be used as an approximation in many real situations. THE MODEL OF ,IEFFERY

The equations describing our model were given by Jeffery (1923). In his work, he considered a slowly moving Newtonian viscous fluid in which sufficiently small rigid and noninteracting particles of an ellipsoidal shape are immersed. Starting with the Navier-Stokes equations of motion of incompressible viscous fluid and neglecting the terms of the second order, Jeffery determined the equations of motion of the individual particle. Consider a right-handed orthogonal coordinate system (x ~, x ~, x ~) positioned at the particle mass center with axes in the directions fixed in space (further termed "fixed coordinate system") and let another coordinate system (x~, x2, x3) be coincident with the axes a, b, c of the ellipsoidal particle (further termed "rotating coordinate system"). Denote the velocity gradient tensor characterizing undisturbed flow at a large distance from the particle by V ~ = Ov~lt3x~, and suppose that V~ is constant in time and obeys the equation of continuity. Denote further by E~ and f ~ the symmetric and antisymmetric part of the velocity gradient tensor, respectively. Then, in the rotating coordinate system, the Jeffery equations can be written as ~01 = Bt E32 - ~'~32, 092 = B2E13

-

-

~'~13'

(1)

These equations can be solved numerically as an initial value problem. Given the velocity gradient tensor, axial ratio of the particle, and initial values of the Euler angles 4~, 0, ~ (the initial position of the particle), we compute the time evolution of these angles, that is the particle rotation.

INDIVIDUAL PARTICLE MOTION (Program JEFF)

For the numerical solution of the Equations (2) and display of the resulting particle motion, program J E F F was written. The program demands the following input parameters from console: --velocity gradient tensor V ~, --semiaxes of the ellipsoidal particle a, b, c, --initial Euler angles ~b, 0, ~, of the particle, - - t i m e increment for the Runge-Kutta method, - - n u m b e r of time steps performed at once (before the program again demands for continuation), --which of the particle axes will be traced (its path will be drawn on the screen), - - t y p e of projection for the display of this particle path (stereographic, Lambert, or perspective p l o ~ s e e Figs. 1 and 2), --optionally, if the c-axis is traced, the position of the a-axis can be sketched along the c-axis path, which allows to imagine the triaxial particle rotation around its c-axis.

093 = B3 E21 - ~21, where eg~, i = 1,2,3, are the angular velocities of the particle around its axes and the vector B l = (b 2 _ c 2)/(b 2 + c 2),

B2 = (c 2 - a 2)/(c 2 + a 2), B 3 = (a 2 _ b 2)/(a 2 + b 2)

corresponds to the axial ratio of the ellipsoidal particle. An analytical solution of Jeffery's equations has been determined only for biaxial particle in some flow geometry as was mentioned in the Introduction. These equations, however, can be reformulated to the form convenient for numerical solution. Describing the rotation of the particle with respect to the fixed coordinate system by Euler angles q% 0, ~b and using the known relations between the angular velocity ~0 and the time derivatives of the Euler angles we obtain three differential equations corresponding to (1) 4; = (~ol sin @ + ~o2cos ~, )/sin 0, = ol cos ~ - o~2 sin $, = ~o3 -

4; c o s 0.

(2)

The program is interactive. The path of a traced particle is drawn on the screen for the given number of time increments of the Runge-Kutta method and after that the program asks if continuation or printscreen is desired. If no continuation is selected, the program offers to rerun the model or exit. If rerun is desired, the user can keep some parameters from the preceding run. For solving the differential Equations (2), subroutine DVERK of the IMSL Library, performing the fourth- and fifth-order Runge-Kutta method, was precise by a comparison of its results with some solutions known analytically. The recommended value of the time step for the Runge-Kutta method is 0.1 Subroutine DVERK is not included in the listing of program J E F F (see Appendix) and neither is subroutine TOPRN for print-screen. The user should provide his/her own subroutine performing print-screen on his/her type of printer. Standard VGA is required in subroutines for graphical output on the screen. Examples of use of the program J E F F are in Figures 1 and 2. In Figure 1 one of classical Jeffery's orbits of a biaxial particle is drawn in perspective plot, representing the fact that biaxial particles in simple shear flow follow closed orbits and their

Rigid triaxial ellipsoidal particle motion

411

Ellipsoidal Particle Motion

Uelocity Gradient .000 .050 .000 Axial

Tensor

.000 .000 .OOO .OOO .000 .000 Ratio

1.00 : 1.00 : 3 . 0 0 Euler Rngles

Initial

O.

30.

O.

Time Increment :

.100

Time S t e p

SO00

:

Traced R x i s

:

C

/~//' ,

"~-'~-~--'--~-~

///// /

Figure 1. Jeffery's orbit of biaxial particle in perspective plot. See description of program JEFF for explanation of parameters of model.

motion is periodic. In Figure 2 a triaxial particle was traced. In the Lambert equal-area projection used, the a-axis has been sketched along the c-axis path, which allows to imagine the rotation of the particle around its c-axis. The same simple shear flow as in Figure 1 was used, but the triaxial particle motion is no longer periodic.

Ellipsoidal

Particle

MULTIPARTICLE SYSTEM EVOLUTION

(Program MUPLES) Supposing that there are no interactions among the individual particles rotating in viscous fluid, the multiparticle system can be investigated by Equations (2). For this purpose program M U P L E S was written.

X

Motion

I

Uelocity .000 .050 .000 Axial

Gradient

Tensor

~

.000 .OOO .OOO . ~ ,090 .000 Ratio

.67

Initial G.

: 1.50

: 3.00

¥

Failer nmjles 30.

0.

Time Increment :

.IO0

Time Step :

SO00

Traced

7

/

Axis : C

Figure 2. Behavior of triaxial particle in same flow as in Figure 1. In Lambert equal-area projection used, a-axis has been sketched along c-axis path.

412

J. JE~EK

Four - Groups System Motion

x

U e l o c i t y Gradient Tensor .010 .000 .050 - . 0 1 0 .000 .000

.GO0 .OO0 .000

o

[] \

o 0

1

:

2

:

3

o

1

:

Z

:

4

,~

1

:

4

:

6

[]

1

:

Z

:

6

STEP :

/

X

o

[]

\\o ~

A

o ~o ~>o o A

<6 no ~ ~

[]

\

0

~

o

o

6

1

/ /,'

100

Figure 3. Modeling of multiparticle system evolution by program MUPLES. Multiparticle system is composed of four groups of particles, each of them having about 100 particles of same axial ratio. Current positions of c-axes of particles are marked by symbols in Lambert equal-area projection. Different symbols correspond to different axial ratios. Because of the finite extent of this paper, the program MUPLES is not listed and only a brief description will be given here. The program can be created using some subroutines of program JEFF. The program input parameters are the velocity gradient tensor, time increment for the Runge-Kutta method, number of time steps performed at once, particle axis to be traced and type of projection. Initial Euler angles of the multiparticle system can be read from an ASCII file or randomly generated. A convenient selection is an initial is•tropic distribution of angles tk, 0 (similar to Sanderson and Meneilly, 1981) and a random distribution of the angle ~. During the time evolution of the multiparticle system studied, after the number of Runge-Kutta steps computed at once, the selected axis positions for all the particles are marked in the desired type of projection. Optionally, the orientation tensor (for definition, see e.g. Sanderson and Meneilly, 1981) and its eigenvalues and eigenvectors or intensity of the fabric (Lisle, 1985) can be computed and presented. In Figure 3 an example of output from program MUPLES is shown. A multiparticle system was composed of four groups of particles, each of them having about 100 particles of the same axial ratio. The system started with an initial is•tropic distribution of angles ~, 0 and a random distribution of the angle ~, which determine the position of the particle. EVALUATING

THE EULER ANGLES DERIVATIVES

TIME

(Program TIDER) The mentioned programs JEFF and MUPLES

compute and visualize the time evolution of a oneor multiparticle system. Program TIDER allows another type of view on the system development based on the fact that this model is stationary. The velocity gradient tensor V~. is constant in the fixed coordinate system and thus for particles of a given axial ratio the right-hand sides of the Equations (2) depend only on the Euler angles, that is on the instantaneous position of particles. The analysis of this dependence can help estimate the future or final state of the one- or multiparticle system. This is valid, for example in the combined pure shear and simple shear model given by the velocity gradient tensor

v~=

~

-~

0

0

1

(3)

where ~ and 7 are constant in time. Such a model may approximate many real geological situations. Therefore program TIDER was written.to p!ot the distribution patterns of the derivatives ~, 0, ~ given by the Equations (2) in an equal-area stere•graphic projection. Input parameters are the velocity gradient tensor V ~and the lengths of the particle semiaxes a, b, c. For the possibility of efficient print-screen the dithering technique was used in plotting these diagrams. Because of the finite extent of this paper, program TIDER is not listed here. The program uses some subroutines of program JEFF. As an example of the usefulness of program TIDER, Figure 4 shows a ~b-derivative pattern corresponding to a combined pure shear and simple shear flow. The

Rigid triaxial ellipsoidal particle motion

dPH/dt

Field

Oelocitg 6 r a d i e n t .010 .000 .050 -.el0 •0 0 0 .000 Axial

413

Tensor

.0~ .000 .000

Batio .33

: 1.50

: 6.00

dPH/dt

< -Z.O00 < -1.75o < -1.5oo <

< < <

< <

- 1 .zso -1.000

-no -.500 -.250 . O~



I M

.....

Figure 4. ~b-Derivative pattern corresponding to combined pure shear and simple shear flow. In gray-scale used white corresponds to nonnegative values of ~b and all gray grades correspond to negative values of

9.

values of ~b-derivative were computed for an isotropic distribution of angles 4), 0 and a random distribution of the angle ~k, and then plotted in the stereogram. In the gray-scale used the white corresponds to nonnegative values of ~b and gray grades correspond to negative values of qk The ~b-derivative pattern can be considered as representation of a multiparticle system composed of triaxial particles of the same axial ratio, with the position of particles given by the angles 4), 0, and ~b. The value of ~b has a strong influence on the next motion of the particles. In the next evolution of the system, the particles having nonnegative values of ~b will remain in their position or will rotate in such a way that their c-axis projection will move clockwise. On the other side, the projection of the c-axis of the particles having negative values of ~b will move counterclockwise. Ana!yzing simultaneously the patterns of the derivatives q~, 0, we can deduce the type of evolution of a given system. In the given example a stable preferred orientation will arise during the multiparticle system evolution. CONCLUSION The presented programs J E F F , MUPLES, and T I D E R can be used for a detailed discussion o f the one- and multiparticle system evolution in different flow geometries. The possibility of the preferred orientation development in the combined pure shear and simple shear flow was investigated by

Je2ek and others (1994). As a natural example to which the Jeffery's model can be applied, ultramylonites were mentioned. In the ultramylonites the matrix/clast proportion may be high. Thus, it is possible to investigate the rotation of relict clasts in the time of the development of fabric using the Jeffery's model.

Acknowledgments--I would like to thank Karel Schulmann who initiated this work. He and Radek Melka introduced me into this problem and had clear requirements on the capabilities of programs. Also, I thank Karel Segeth who kindly reviewed the paper.

REFERENCES Debat, P., Sirieys, P., Deramond, J., and Soula, J. C., 1975, Paleodrformations d'un massif orthogenessique (massif des Cammazes. Montagne Noire Occidentale. France): Tectonophysics, v. 28, no. 3, p. 159-183. Fernandez, A., 1988, Strain analysis from shape preferred orientation in magmatic flows: Bull. Geol. Inst. Univ. Uppsala, v. 14, p. 61~57. Fernandez, A., and Laporte, D., 1991, Significance of low symmetry fabrics in magrnatic flows: Jour. Struct. Geology, v. 13, no. 3, p. 337 347. Freeman, B., 1985, The motion of rigid ellipsoidal particles in slow flows: Tectonophysics, v. 113, no. 2, p. 163-183. Gay, N. C., 1968, The motion of rigid particles embedded in a viscous fluid during pure shear deformation of the fluid: Tectonophysics, v. 5, no. 2, p. 81-88. Hinch, E. J., and Leal, L. G., 1979, Rotation of small non-axisymetric particles in a simple shear flow: Jour. Fluid Mech., v. 92, pt. 3, p. 591~08.

414

J. JE~EK

Jeffery, G. B., 1923, The motion of ellipsoidal particles immersed in a viscous fluid: Proc. Roy. Soc. London, Ser. A, v. 102, p. 161 179. Je~ek, J., Melka, R., Schulmann, K., and Venera, Z., 1994, The behaviour of rigid triaxial ellipsoidal particles in viscous flows-modeling of fabric evolution in multiparticle system: Tectonophysics, v. 229, p. 165-180. Lisle, R. J., 1985, The use of the orientation tensor for the description and statistical testing of fabrics: Jour. Struct. Geology, v. 7, no. 1, p. 115-117.

Reed, L. J., and Tryggvason, E., 1974, Preferred orientations of rigid particles in a viscous matrix deformed by pure shear and simple shear: Tectonophysics, v. 24, no. 2, p. 85-98. Sanderson, D. J., and Meneilly, A. W., 1981, Analysis of three-dimensional strain modified uniform distributions: andalusite fabrics from a granite aureole: Jour. Struct. Geology, v. 3, no. 2, p. 109-116. Tullis, T. E., 1976, Experiments on the origin of slatey cleavage and schistosity: Geol. Soc. America Bull., v. 87, no. 5, p. 745-753.

APPENDIX Program Listing C C C C C C C C C C C C C C

P R O G R A M

JEFF

N U M E R I C A L S O L U T I O N OF J E F F E R Y ' S E Q U A T I O N S F O R T H E M O T I O N OF A R I G I D E L L I P S O I D A L P A R T I C L E IN S L O W F L O W S R U N S O N I B M - T Y P E PC W I T H VGA. M A T H E M A T I C A L C O P R O C E S S O R OR I N T E L 80486 IS R E C O M M E N D E D F O R S A T I S F A C T O R Y S P E E D INPUT

PARAMETERS:

SEE

SUBROUTINE

INPPAR

P R O G R A M U S E S S U B R O U T I N E D V E R K F R O M I M S L (NOT L I S T E D HERE) U S E R S H O U L D I N C L U D E A S U B R O U T I N E P E R F O R M I N G P R I N T - S C R E E N O N HIS O W N T Y P E OF P R I N T E R

***************************************************************************

INCLUDE 'FGRAPH.FI' INCLUDE 'FGRAPH.FD' INTEGER* 2 DUMMY C H A R A C T E R ANS, S T R 6 * 6 DOUBLE PRECISION X,Y(3),XEND,TOL,YPR(3),C(24),W(3,9),0(3) RECORD /RCCOORD/ CURPOS EXTERNAL FCN D I M E N S I O N D V ( 3 , 3 ) ,EF (3,3) ,OF(3,3) ,AX(3), B(3), YS (3) ,YPER(3) C O M M O N /O/ O D A T A LUP/15/ DEFAULT DATA DATA DATA

VALUES

OF

INPUT

((DV(I,J),J=I,3),I=I,3)/0.,0.,0.,0.05,0.,0.,0.,0.,0./

AX/I.,I.,3./,YS/O.,30.,O./,TI/O.I/,NINC/IO00/ YPER/-45.,45.,90/

S T A R T

S E S S I O N

i0 C O N T I N U E WRITE(*,11) ii F O R M A T * (///' M O V E M E N T .

e

INPUT

OF

RIGID

ELIPSOIDAL

PARTICLE

IN S L O W

*******************************************************

PARAMETERS

CALL

PARAMETERS

OF

THE

MODEL

I N P P A R ( D V , YS,AX, Y P E R , T I , N I N C , ITP,IAX, ISA)

C O M P U T E S Y M M E T R I C A N D A N T I S Y M M E T R I C P A R T OF THE V E L O C I T Y G R A D I E N T T E N S O R IN THE C O O R D I N A T E S Y S T E M F I X E D IN S P A C E DO 20 I = i , 3 DO 20 J = l , 3 EF(I,J)=(DV(I,J)+DV(J,I))*.5 OF(I,J)=(DV(I,J)-DV(J,I))*.5 20 C O N T I N U E PREPARE

VECTOR

B CHARACTERIZING

THE

PARTICLE

SHAPE

FLOWS'/

Rigid triaxial ellipsoidal particle motion

415

AI2=AX(1)*AX(1) A22=AX(2)*AX(2) A32=AX(3)*AX(3) B(1)=(A22-A32)/(A22+A32) B(2)=(A32-AI2)/(A32+AI2) B(3)=(AI2-A22)/(AI2+A22) SET PARAMETERS AND INITIAL VALUES FOR RUNGE KUTTA (SUBROUTINE X ..... I N I T I A L V A L U E OF I N D E P E N D E N T V A R I A B L E (TIME) Y(.) .. I N I T I A L V A L U E S OF E U L E R A N G L E S ( S T A R T I N G P O S I T I O N OF THE P A R T I C L E )

DVERK)

N=3 TOL=. 0001 IND=I NW=3 X=0. DO 50 I=l, 3 Y(I) =YS (I) *3. 1 4 1 5 9 2 6 / 1 8 0 . Y P R (I) = Y P E R (I) *3. 1 4 1 5 9 2 6 / 1 8 0 . 50 C O N T I N U E S W I T C H TO G R A P H I C S , P L O T THE S T E R E O G R A M B O U N D A R Y W R I T E P A R A M E T E R S OF THE M O D E L O N THE S C R E E N CALL PLOT

INTPLOT(DV,YS,AX,YPR,TI,X0,Y0,DX,DY,

INITIAL

POSITION

OF THE

PARTICLE

ISTEP=0 CALL POPLOT(Y,YPR,X0,Y0,DX,

S O L V I N G

IAX, ITP)

DY, ITP, IAX, 0,ISTEP)

J E F F E R Y'S

E Q U A T I O N S

I00 C O N T I N U E DUMMY=SETTEXTCOLOR(15) CALL SETTEXTPOSITION(29,I,CURPOS) CALL OUTTEXT('... running

RUNGE

KUTTA

DO 200

LOOP

FOR NINC

INCREMENTS

,) OF T I M E

J=I,NINC

C C

XEND

... V A L U E

OF T I M E

AT W H I C H

SOLUTION

IS D E S I R E D

C XEND=X+TI C C C

EXCLUDE

THE

SINGULAR

CASE

THETA.EQ.0.

I F ( Y ( 2 ) . N E . 0 . ) GO TO i01 DUMMY = SETTEXTCOLOR(15) CALL SETTEXTPOSITION(27,I,CURPOS) CALL OUTTEXT('Euler Angle THETA = 0 GO TO 2000 C C C C

C O M P U T E THE V E C T O R A R O U N D ITS A X E S i01

C C C C C C C

O CONTAINING

ANGULAR

')

VELOCITIES

PARTICLE

CONTINUE CALL PREP(Y,B,EF,OF)

ONE S T E P OF R U N G E K U T T A THE C A L L OF S U B R O U T I N E D V E R K F R O M I M S L L I B R A R Y . F O R THE D E T A I L E D D E S C R I P T I O N OF ITS P A R A M E T E R S , SEE M A N U A L OF I M S L (THE N A M E S OF P A R A M E T E R S H E L D F O R S I M P L I C I T Y ) . THE S U B R O U T I N E D V E R K U S E S THE F U N C T I O N F C N (LISTED HERE) W H I C H E V A L U A T E S F I R S T D E R I V A T I V E S OF E U L E R A N G L E S C A L L D V E R K ( N , FCN, X , Y , X E N D , T O L , I N D , C , N W , W , IER) IF(IND.GE.0.AND.IER.LE.0) GO TO 192 ERRONEOUS

CAGEO 20/3

OF THE

K

RETURN

FROM

RUNGE

KUTTA

416

J. JE~EK DUMMY = SETTEXTCOLOR(15) CALL SETTEXTPOSITION(27,I,CURPOS) C A L L O U T T E X T ( ' E R R O R IN R U N G E K U T T A CALL SETTEXTPOSITION(28,1,CURPOS) C A L L O U T T E X T ( ' I N D = ') W R I T E (STR6, '(I6)') I N D CALL OUTTEXT(STR6) CALL SETTEXTPOSITION(28,18,CURPOS) C A L L O U T T E X T ( ' I E R = ') W R I T E (STR6, '(I6)') IER CALL OUTTEXT(STR6) GO T O 2 0 0 0 PROJECT 102

AND

PLOT THE

RESULTING

!

,)

POINT

CONTINUE C A L L P © P L O T ( Y , Y P R , X 0 , Y 0 , D X , D Y , ITP, IAX, ISA, ISTEP)

WRITE

TIME

STEP

(STEP OF

RUNGE

KUTTA)

ON THE

SCREEN

ISTEP=ISTEP+I DUMMY=SETTEXTCOLOR(6) CALL SETTEXTPOSITION(24,18,CURPOS) W R I T E (STR6, ' (I6)') I S T E P CALL OUTTEXT(STR6) 200 C O N T I N U E C

C

DECISION

TO C O N T I N U E

OR

PRINT-SCREEN

C i000 C O N T I N U E DUMMY=SETTEXTCOLOR(15) CALL SETTEXTPOSITION(29,I,CURPOS) CALL OUTTEXT( ' CALL SETTEXTPOSITION(29,I,CURPOS) CALL OUTTEXT('CONTINUE ? (Yes/Print/No) R E A D ( * , '(A) ') A N S PRINT-SCREEN (USER S H O U L D

ON PRINTER OR TO A FILE INSERT HIS OWN SUBROUTINE

IF(ANS.NE.'p'.AND.ANS.NE.'P') CALL TOPRN(LUP) G O T O i000

GO TO

'

)

')

TOPRN) i001

C i001 C O N T I N U E IF(ANS.EQ.'n'.OR.ANS.EQ.'N') G O T O i00 C C C

EXIT FROM

THE

PROGRAM

GO TO

2000

OR RERUN MODEL WITH NEW PARAMETERS

2000 C O N T I N U E CALL SETTEXTPOSITION(29,I,CURPOS) C A L L O U T T E X T ( ' C h o o s e E to e x i t or R to r e r u n m o d e l R E A D ( * , ' (A)') A N S DUMMY=SETVIDEOMODE($DEFAULTMODE) IF(ANS.EQ.'r'.OR.ANS.EQ.'R')

GO TO

:

')

i0

STOP END C

........................................................................

SUBROUTINE

INPPAR

READS PARAMETERS LAST CALL OF THE

FROM CONSOLE (DEFAULT VALUES S U B R O U T I N E C A N BE HELD)

OR THE VALUES

OUTPUT PARAMETERS: D V ( i j) .. V E L O C I T Y G R A D I E N T T E N S O R d v ( j ) / d x ( i ) YS(I .... I N I T I A L V A L U E OF E U L E R A N G L E PHI YS(2 .... I N I T I A L V A L U E OF E U L E R A N G L E T H E T A YS(3 .... I N I T I A L V A L U E OF E U L E R A N G L E PSI AX(I .... S E M I A X I S a OF A N E L L I P S O I D A L P A R T I C L E AX(2 .... S E M I A X I S b AX(3 .... S E M I A X I S c Y P E R ..... A N G L E S C O N T R O L L I N G T H E O R I E N T A T I O N OF C O O R D I N A T E IN T H E C A S E OF P E R S P E C T I V E P L O T

FROM THE

AXES

Rigid triaxial ellipsoidal particle motion TI ....... N I N C ..... ITP IAX ISA

C

...... ...... ......

TIME INCREMENT FOR RUNGE KUTTA T H E M O T I O N O F T H E P A R T I C L E IS T R A C E D F O R N I N C I N C R E M E N T S O F TIME, A F T E R T H A T T H E P R O G R A M D E M A N D S F O R C O N T I N U A T I O N T Y P E OF P R O J E C T I O N TRACED AXIS OF THE ELLIPSOIDAL PARTICLE P A R A M E T E R T E L L I N G IF T H E a - A X I S IS T O BE S K E T C H E D A L O N G T H E P A T H OF T H E c - A X I S

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

S U B R O U T I N E I N P P A R ( D V , Y S , A X , Y P E R , T I , N I N C , I T P , IAX, ISA) DIMENSION DV(3,3),AX(3),YS(3),YPER(3) WRITE

i0

CURRENT

PARAMETERS

AND ENTER

NEW VALUES

WRITE(*,10) ((DV(I,J),J=I,3),I=I,3),AX,YS,TI,NINC FORMAT(' CURRENT PARAMETERS ARE '/ * ' Velocity gradient tensor : ',2(3F6.3/37X),3F6.3// * ' S e m i a x e s of the p a r t i c l e a , b , c : ' , 3 F 6 . 2 / * Initial Euler angles PHI,TH,PSI: ',3F6.0// * ' Time increment for Runge Kutta : ',F6.3/ * ' N u m b e r of i n c r e m e n t s : ',I6//) WRITE(*,*) * ' E N T E R N E W P A R A M E T E R S (or "," f o r k e e p i n g c u r r e n t v a l u e s ) ' WRITE(*, (A\)) V e l o c i t y g r a d i e n t t e n s o r (1-st row) : READ(*,* ( D V ( I , J ) , J = I 3) WRITE(*, (A\)) (2-nd row) : READ(*,* ( D V ( 2 , J ) , J = I 3) W R I T E ( * , (A\)') (3-rd row) : READ(*,* ( D V ( 3 , J ) , J = I 3) Particle semiaxes a,b,c : W R I T E ( * , (A\)') READ(*,*) AX Initial Euler angles PHI,TH,PSI : W R I T E ( * , ' (A\)') R E A D ( * , * ) YS Time increment for Runge Kutta : WRITE(*,'(A\) ) R E A D ( * , * ) TI N u m b e r of i n c r e m e n t s : WRITE(*,'(A\) ) READ(*,*) NINC WRITE(*,*)

READ THE TYPE OF

PROJECTION

ITP=0 20 W R I T E ( * , '(A\)') ¢ &' T Y P E OF P R O J E C T I O N (S=Stereographic,L=Lambert,P=Perspective R E A D ( * , ' ( A ) ') Q IF(Q.EQ.'S'.OR.Q.EQ.'s') ITP=2 IF(Q.EQ.'L'.OR.Q.EQ.'I') ITP=3 IF(Q.EQ.'P'.OR.Q.EQ.'p') ITP=4 I F ( I T P . E Q . 0 ) G O T O 20 IF(ITP.EQ.4) THEN WRITE(*,30) YPER 30 F O R M A T ( / ' A n g l e s c o n t r o l i n g a x e s o r i e n t a t i o n are : ',3F6.0/) WRITE(*,'(A\)') * ' E N T E R N E W V A L U E S (or ",,," ) : READ(*,*) YPER E N D IF WRITE(*,*) CHOOSE

AN AXIS

T O BE T R A C E D

(a/b/c)

IAX=0 40 W R I T E ( * ' (A\) ') ' T R A C E D A X I S (a/b/c) R E A D ( * , '(A)') Q IF(Q.EQ.'A'.OR.Q.EQ.'a') IAX=I IF(Q.EQ.'B'.OR.Q.EQ.'b') IAX=2 IF(Q.EQ.'C'.OR.Q.EQ.'c') IAX=3 I F ( I A X . E Q . 0 ) G O T O 40 SKETCH

THE

a-AXIS

ALONG

T H E P A T H OF T H E

ISA=0 IF(ITP.NE.4.AND.IAX.EQ.3) THEN W R I T E ( * , '(A\)') ' S K E T C H a - A X I S R E A D ( * , '(A)') Q IF(Q.EQ.'Y'.OR.Q.EQ.'y') ISA=I E N D IF RETURN END C

?

:

c-AXIS

(Y/N)

?

:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

417

418

J. JE.~EK

SUBROUTINE

INTPLOT

SWITCHES TO GRAPHICS, PLOTS B O U N D A R Y AND P A R A M E T E R S ON THE SCREEN

OF THE STEREOGRAM,

O U T P U T PARAMETERS: X0,Y0,DX, DY ... P O S I T I O N AND WIDTH OF THE S T E R E O G R A M (USED IN OTHER DRAWING SUBROUTINES) INPUT

PARAMETERS

(SEE SUBROUTINE

INPPAR

FOR THEIR

ON THE SCREEN

DESCRIPTION)

........................................................................

S U B R O U T I N E INTPLOT(DV, Y S , A X , Y P R , T I , X 0 , Y 0 , D X , D Y , INCLUDE 'FGRAPH.FD' INTEGER*2 D U M M Y , X M DIMENSION DV(3,3),AX(3),YS(3) DOUBLE P R E C I S I O N YPR(3) CHARACTER*30 LIST/"T'TMS RMN'H20WI6B"/ CHARACTER STR*20,STR6*6 C H A R A C T E R A X I S ( 3 ) * 2 /' A',' B',' C'/ RECORD /RCCOORD/ CURPOS RECORD /XYCOORD/ XY C C C

SET THE V I D E O M O D E

(VGA,

GRAPHICS,

640x480

PIXELS,

IAX,ITP)

16 COLORS)

DUMMY=SETVIDEOMODE($VRESI6COLOR) COLORED LOCATE

TITLE

ON THE S C R E E N

AND R E G I S T E R

FONTS

IF AVAILABLE

IN THE ACTUAL

DIRECTORY

IF(REGISTERFONTS('TMSRB.FON').LT.0) GO TO i00 IF(SETFONT(LIST).LE.0) GO TO 100 DUMMY=SETCOLOR(3) CALL MOVETO(0,0,XY) CALL O U T G T E X T ( ' E I I i p s o i d a l Particle Motion') CALL M O V E T O ( 0 , 1 8 , X Y ) CALL OUTGTEXT(' ') GO TO 200 THE CASE

TITLE

PARAMETERS:

ALL O T H E R C

WRITES

THE FONTS

WERE NOT FOUND

i00 CONTINUE D U M M Y = SETTEXTCOLOR(3) CALL S E T T E X T P O S I T I O N ( I , I , CALL O U T T E X T ( ' E l l i p s o i d a l CALL SETTEXTPOSITION(2,1, CALL OUTTEXT(' SET P O S I T I O N

AND WIDTH

CURPOS) Particle CURPOS)

Motion') ')

OF THE S T E R E O G R A M

200 C O N T I N U E X0=410. Y0=230. DX=200. DY=200. DRAW B O U N D A R Y

OF THE S T E R E O G R A M

(CIRCLE

DUMMY=SETCOLOR(2) DUMMY=ELLIPSE($GBORDER, * INT(X0-DX),INT(Y0-DY)

INT(X0+DX),INT(Y0+DY))

IF(ITP.NE.4) THEN DUMMY=SETCOLOR(15) DO XM=I,10 DUMMY=SETPIXEL(INT(X0),INT(Y0-DY)-XM) D U M M Y = S E T P I X E L ( I N T ( X 0 + D X ) + X M , INT(Y0)) END DO CALL S E T T E X T P O S I T I O N ( I , 5 2 , C U R P O S ) CALL OUTTEXT('N') CALL OUTTEXT('X') CALL S E T T E X T P O S I T I O N ( 1 5 , 8 0 , C U R P O S ) CALL OUTTEXT('E') CALL OUTTEXT('Y') END IF

Rigid triaxial ellipsoidal particle motion

DRAW THE AXES

FOR P E R S P E C T I V E

IF(ITP.EQ.4) C C C

SET THE C O L O R

419

PLOT

CALL AXPLOT(YPR, X0,Y0,DX, DY) FOR T R A C I N G

PARTICLE

DUMMY=SETCOLOR(15) C C C

WRITE

PARAMETERS

OF THE MODEL

ON THE SCREEN

DUMMY=SETTEXTCOLOR(6) CALL S E T T E X T P O S I T I O N ( 5 , I , C U R P O S ) CALL O U T T E X T ( ' V e l o c i t y Gradient Tensor') DO J = 1,3 CALL S E T T E X T P O S I T I O N ( J + 6 , I , C U R P O S ) WRITE (STR,' (3(IX,F5.3))') (DV(J,K),K=I,3) CALL OUTTEXT(STR) END DO CALL S E T T E X T P O S I T I O N ( 1 2 , 1 , C U R P O S CALL O U T T E X T ( ' A x i a l Ratio ') WRITE(STR,'(2(F4.2,3H : ),F4.2)' AX CALL S E T T E X T P O S I T I O N ( 1 4 , 3 , C U R P O S CALL OUTTEXT(STR) CALL S E T T E X T P O S I T I O N ( 1 7 , I , C U R P O S ) CALL O U T T E X T ( ' I n i t i a l Euler Angles') CALL S E T T E X T P O S I T I O N ( 1 9 , I , C U R P O S ) WRITE (STR,' (3(IX,F5.0)) ') (YS(J),J=I,3) CALL OUTTEXT(STR) C ISTEP=0 CALL S E T T E X T P O S I T I O N ( 2 2 , I , C U R P O S ) CALL O U T T E X T ( ' T i m e I n c r e m e n t :') CALL S E T T E X T P O S I T I O N ( 2 2 , 1 9 , C U R P O S ) WRITE (STR6,'(F5.3,1H)') TI CALL OUTTEXT(STR6) CALL S E T T E X T P O S I T I O N ( 2 4 , I , C U R P O S ) CALL O U T T E X T ( ' T i m e Step :') CALL S E T T E X T P O S I T I O N ( 2 4 , 1 8 , C U R P O S ) WRITE (STR6, '(I6)') ISTEP CALL OUTTEXT(STR6) C CALL S E T T E X T P O S I T I O N ( 2 6 , I , C U R P O S ) CALL O U T T E X T ( ' T r a c e d Axis : ') CALL S E T T E X T P O S I T I O N ( 2 6 , 1 5 , C U R P O S ) WRITE (STR6,'(A2)') AXIS(IAX) CALL OUTTEXT(STR6) RETURN END C

.........................................................................

C C

SUBROUTINE

AXPLOT

C C

AUXILIARY

SUBROUTINE

FOR DRAWING

AXES

IN THE P E R S P E C T I V E

C C

.........................................................................

SUBROUTINE AXPLOT(YPR,X0,Y0,DX,DY) INCLUDE 'FGRAPH.FD' INTEGER*2 DUMMY,XM, YM, XX,YY,D RECORD /XYCOORD/ XY DOUBLE P R E C I S I O N Y P R ( 3 ) , R ( 3 , 3 ) , X A ( 3 ) D I M E N S I O N XF(3) DATA D / 5 / , D D / I . 0 5 / XM=INT(X0) YM=INT(Y0) CALL RMAT(YPR,R) DO i0 I=i,3 XF(I)=R(I,I) i0 CONTINUE XX=INT(XF(2)*DX+X0) YY=INT(-XF(3)*DY+Y0) DUMMY=SETCOLOR(10) CALL MOVETO(XM,YM, XY) D U M M Y = LINETO(XX,YY) XX=INT(XF(2)*DX*DD+X0) YY=INT(-XF(3)*DY*DD+Y0) CALL M O V E T O ( X X + D , Y Y + D , XY) D U M M Y = LINETO(XX-D, YY-D)

PLOT

420

J. JE~EK CALL M O V E T O ( X X + D , Y Y - D , X Y ) DUMMY LINETO(XX-D,YY+D) DO 20 I=i,3 XF(I)=R(I, 2) 20 C O N T I N U E XX=INT(XF(2)*DX+X0) YY=INT(-XF(3)*DY+Y0) C A L L MOVETO(XM, YM,XY) DUMMY = LINETO(XX,YY) XX=INT(XF(2)*DX*DD+X0) YY=INT(-XF(3)*DY*DD+Y0) CALL MOVETO(XX+D,YY-D,XY) DUMMY = LINETO(XX,YY) DUMMY = LINETO(XX-D,YY-D) CALL MOVETO(XX, YY, XY) D U M M Y = LINETO(XX, YY+D) DO 30 I=i,3 XF(I)=R(I,3) 30 C O N T I N U E XX=INT(XF(2)*DX+X0) YY=INT(-XF(3)*DY+Y0) CALL M O V E T O ( X M , Y M , X Y ) DUMMY = LINETO(XX,YY) XX=INT(XF(2)*DX*DD+X0) YY=INT(-XF(3)*DY*DD+Y0) CALL MOVETO(XX-D,YY-D,XY) DUMMY LINETO(XX+D,YY-D) DUMMY LINETO(XX-D,YY+D) D U M M Y = LINETO(XX+D, YY+D) =

= =

C DUMMY=SETCOLOR(II) XA(3)=0. DO 70 K = I , 3 6 0 " 4

XA(1)=COS(3.1415926/180.*FLOAT(K-I)/4.) XA(2)=SIN(3.1415926/180.*FLOAT(K-I)/4.) DO 50 I=i,3 XF(I)=0. DO 50 J=l,3 XE(I)=XF(I)+XA(J)*R(I,J) 50 C O N T I N U E XX=INT(XF(2)*DX+X0) YY=INT(-XF(3)*DY+Y0) IF(XF(1).GE.0.) DUMMY=SETPIXEL(XX,YY) IF(XF(1).LT.0.AND.(INT(FLOAT(K)/8.)*8).EQ.K) 70 C O N T I N U E RETURN END C

C C C C C C C C C C C C C

D U M M Y = S E T P I X E L ( X X , YY)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

SUBROUTINE

POPLOT

P R O J E C T S A N D PLOTS ONE POINT OF THE T R A C E D AXIS PATH TO ONE STEP OF RUNGE KUTTA)

(CORRESPONDING

INPUT PARAMETERS: Y ... V E C T O R C O N T A I N I N G E U L E R ANGLES PHI, T H E T A AND PSI D E S C R I B I N G THE I N S T A N T A N E O U S P O S I T I O N OF THE P A R T I C L E ALL O T H E R P A R A M E T E R S (FOR THEIR D E S C R I P T I O N SEE S U B R O U T I N E I N P P A R A N D INTBLOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

S U B R O U T I N E POPLOT(Y, YPR, X0,Y0,DX,DY, ITP,IAX,ISA, ISTEP) I N C L U D E 'FGRAPH.FD' D O U B L E P R E C I S I O N Y(3),YPR(3) I N T E G E R * 2 DUMMY,XM, YM, XX,YY R E C O R D / X Y C O O R D / XY D I M E N S I O N XF(3) D A T A IDS/200/, ISK/100/ C C C

COMPUTE

COORDINATES

OF THE P L O T T E D POINT O N THE S C R E E N

CALL P R O J C T ( Y , X F , Y P R , IAX, ITP) XX=INT(XF(2)*DX+X0) YY=INT(-XF(1)*DY+Y0) GO TO (2,2,2,4), ITP PLOT POINT

IN THE S T E R E O G R A P H I C

OR L A M B E R T

PROJECTION

Rigid triaxial ellipsoidal particle motion

421

2 CONTINUE DUMMY=SETPIXEL(XX,YY) IF(ISA.EQ.0) RETURN C C

C C

SKETCH THE a-AXIS EACH ISK STEPS)

ALONG

THE

c-AXIS

PATH

(THE a - A X I S

IF(INT(FLOAT(ISTEP)/FLOAT(ISK))*ISK.EQ.ISTEP) C A L L P R O J C T ( Y , X F , Y P R , I,I) XM=INT(XF(2)*DX/10.)+XX YM=INT(-XF(1)*DY/10.)+YY C A L L M O V E T O ( X X , Y Y , XY) DUMMY = LINETO(XM,YM) CALL MOVETO(XX, YY,XY) E N D IF RETURN

IS S K E T C H E D

AFTER

THEN

C C C

THE CASE OF OF T H E P A T H

PERSPECTIVE IS P I C T U R E D

PLOT - ONLY EACH IDS-th POINT O N T H E I N V I S I B L E S I D E OF T H E S P H E R E

C 4 CONTINUE IF(XF(3).GE.0.) DUMMY=SETPIXEL(XX,YY) IF(XF(3).LT.0.AND.(INT(FLOAT(ISTEP)/FLOAT(IDS))*IDS.EQ.ISTEP)) * D U M M Y = S E T P I X E L ( X X , YY) RETURN END C

C C C C C C C C C

C C C

C C C C C

.........................................................................

SUBROUTINE

PROJCT

PROJECTS THE POINT CORRESPONDING TO THE TRACED TYPE OF PROJECTION OR IN THE PERSPECTIVE PLOT

INPUT PARAMETERS: .... V E C T O R C O N T A I N I N G E U L E R A N G L E S PHI, T H E T A , PSI Y P R .. A N G L E S C O N T R O L L I N G T H E P O S I T I O N OF C O O R D I N A T E A X E S PERSPECTIVE PLOT I A X .. P A R A M E T E R T E L L I N G W H I C H P A R T I C L E A X I S IS T R A C E D I T P .. T Y P E OF P R O J E C T I O N

.........................................................................

C DIRECTIONAL

COSINES

OF T H E a - A X I S

C 1 CONTINUE XF(1)=CPH*CPS-SPH*CTH*SPS

XF(2)=SPH*CPS+CPH*CTH*SPS XF(3)=STH*SPS GO TO 5 C C

DIRECTIONAL

COSINES

OF THE

b-AXIS

C 2 CONTINUE

XF(1)=-CPH*SPS-SPH*CTH*CPS XF(2)=-SPH*SPS+CPH*CTH*CPS XF(3) = S T H * C P S G O TO 5 C C C

IN

OUTPUT PARAMETERS: XF ... C O O R D I N A T E S O F T H E P R O J E C T E D P O I N T C O R R E S P O N D I N G TO T H E T Y P E OF P R O J E C T I O N G I V E N (XF(1) A N D XF(2) A R E T H E Y - C O O R D I N A T E A N D T H E X - C O O R D I N A T E IN T H E P L O T T E D C I R C L E )

S U B R O U T I N E P R O J C T ( Y , X F , Y P R , I A X , ITP) DOUBLE PRECISION Y(3),R(3,3),YPR(3) DIMENSION XF(3),XA(3) SPH=SIN(Y(1)) CPH=COS(Y(1)) STH=SIN(Y(2)) CTH=COS(Y(2)) SPS=SIN(Y(3)) CPS=COS(Y(3)) G O TO (1,2,3), I A X C

IN T H E D E S I R E D

Y

C C

AXIS

DIRECTIONAL

COSINES

3 CONTINUE XF(1)=SPH*STH

OF T H E

c-AXIS

422

J. JE~EK XF(2)=-CPH*STH XF(3)=CTH 5 CONTINUE IF(ITP.NE.2.AND.ITP.NE.3)

GO TO

i0

L O W E R H E M I S P H E R E P R O J E C T I O N W I L L BE C O N S I D E R E D IN THE S T E R E O G R A P H I C OR L A M B E R T P R O J E C T I O N ( X F ( 3 ) . L E . 0 ) IF(XF(3).LE.0.) XF(1)=-XF(1) XF(2)=-XF(2) XF(3)=-XF(3) RECOMPUTE i0 GO TO

GO TO

COORDINATES

ORTHOGONAL

OF

I0

XF F O R THE

(11,12,13,14),

CASE

PARTIAL

TYPE

OF P R O J E C T I O N

ITP

PROJECTION

ii C O N T I N U E RETURN STEREOGRAPHIC

PROJECTION

(WULF)

12 C O N T I N U E XF(1)=XF(1)/(I.-XF(3)) XF(2)=XF(2)/(I.-XF(3)) RETURN EQUAL-AREA

PROJECTION

(LAMBERT)

13 C O N T I N U E QQ=XF(1)*XF(1)+XF(2)*XF(2) IF(QQoEQ.0.) RETURN Q=SQRT(QQ+(XF(3)+I)*(XF(3)+I)) QQ=SQRT(QQ) Q=Q/(QQ*SQRT(2.)) XF(1)=XF(1)*Q XF(2)=XF(2)*Q RETURN PERSPECTIVE

PLOT

14 C O N T I N U E DO 17 I=1,3 XA(I)=XF(I) 17 C O N T I N U E C A L L R M A T ( Y P R , R) DO 20 I=i,3 XF(I)=0. DO 20 J = l , 3 XF(I)=XF(I)+XA(J)*R(I,J) 20 C O N T I N U E XA(1)=XF(1) XF(1)=XF(3) XF (3)=XA(1) RETURN END C

......................................................................

SUBROUTINE

PREP

COMPUTES VECTOR A R O U N D ITS A X E S

O C O N T A I N I N G A N G U L A R V E L O C I T I E S OF THE P A R T I C L E IN THE C O O R D I N A T E S Y S T E M F I X E D IN THE P A R T I C L E

INPUT PARAMETERS: Y ....... V E C T O R C O N T A I N I N G E U L E R A N G L E S PHI, THETA, PSI B ....... V E C T O R C H A R A C T E R I Z I N G THE S H A P E OF THE P A R T I C L E E F , O F ... S Y M M E T R I C A N D A N T I S Y M M E T R I C PART, R E S P E C T I V E L Y , OF THE V E L O C I T Y G R A D I E N T T E N S O R IN THE C O O R D I N A T E S Y S T E M F I X E D IN T H E S P A C E OUTPUT PARAMETERS: O ... V E C T O R C O N T A I N I N G A N G U L A R V E L O C I T I E S A R O U N D ITS A X E S ( O U T P U T V I A COMMON)

OF THE

PARTICLE

C ......................................................................

423

Rigid triaxial ellipsoidal particle motion SUBROUTINE PREP(Y,B,EF,OF) DOUBLE PRECISION Y(3),O(3),EB(3,3),OB(3,3),R(3,3) DIMENSION EF(3,3),OF(3,3),B(3) C O M M O N /0/ 0 COMPUTE CALL

THE

ROTATION

MATRIX

RMAT(Y,R)

C O M P U T E S Y M M E T R I C A N D A N T I S Y M M E T R I C P A R T OF THE V E L O C I T Y T E N S O R IN T H E R O T A T I N G C O O R D I N A T E S Y S T E M

GRADIENT

DO DO

20 I = i , 3 20 J = l , 3 OB(I,J)=.0 EB(I,J)=.0 DO 15 K = I , 3 DO 15 L = I , 3 RR=R(I,K)*R(J,L) EB(I,J)=EB(I,J)+RR*EF(K,L) OB(I,J)=OB(I,J)+RR*OF(K,L) 15 CONTINUE 20 C O N T I N U E EVALUATE

VECTOR

0

O(1)=B(1)*EB(3,2)-OB(3,2) O(2)=B(2)*EB(I,3)-OB(I,3) O(3)=B(3)*EB(2,1)-OB(2,1) RETURN END C

.........................................................................

C C

SUBROUTINE

RMAT

C C

COMPUTES

THE

ROTATION

MATRIX

C C C

C C C C C

INPUT PARAMETERS: ... V E C T O R C O N T A I N I N G

Y

EULER

ANGLES

PHI,

THETA,

PSI

OUTPUT PARAMETERS: R ... R O T A T I O N M A T R I X .........................................................................

SUBROUTINE RMAT(Y,R) DOUBLE PRECISION Y(3),R(3,3) S P H = S I N ( Y i) C P H = C O S ( Y i) S T H = S I N ( Y 2) C T H = C O S ( Y 2) S P S = S I N ( Y 3) C P S = C O S ( Y 3) R i,i = C P H * C P S - S P H * C T H * S P S R 1,2 = S P H * C P S + C P H * C T H * S P S R 1,3 = S T H * S P S R 2,1 = - C P H * S P S - S P H * C T H * C P S R 2,2 = - S P H * S P S + C P H * C T H * C P S R 2,3 = S T H * C P S R 3,1 = SPH*STH R 3,2 = - C P H * S T H R 3 , 3 = CTH RETURN END C

.........................................................................

SUBROUTINE COMPUTES

FCN

VALUES

OF F I R S T

DERIVATIVES

OF E U L E R

ANGLES

INPUT PARAMETERS: N ... L E N G T H OF THE V E C T O R Y Y ... V E C T O R C O N T A I N I N G E U L E R A N G L E S PHI, THETA, PSI X ... N O T U S E D (HELD F O R C O M P A T I B I L I T Y W I T H S U B R O U T I N E DVERK) O ... V E C T O R C O N T A I N I N G A N G U L A R V E L O C I T I E S OF THE P A R T I C L E A R O U N D ITS A X E S (INPUT V I A C O M M O N ) OUTPUT YP ...

PARAMETERS: FIRST DERIVATIVES

OF E U L E R

ANGLES

424

J. JE~EK

SUBROUTINE FCN(N,X,Y, YP) DOUBLE PRECISION X,Y(N),YP(N),O(3) COMMON /O/ O YP(1)=(O(1)*SIN(Y(3))+O(2)*COS(Y(3)))/SIN(Y(2)) YP(2)=O(1)*COS(Y(3))-O(2)*SIN(Y(3)) YP(3)=O(3)-YP(1)*COS(Y(2)) RETURN END