[lecture notes in computer science] high performance computing — hipc 2002 volume 2552 ||
TRANSCRIPT
S. Sahni et al. (Eds.) HiPC 2002, LNCS 2552, pp. 519-533, 2002. Springer-Verlag Berlin Heidelberg 2002
High Performance Computing of Fluid-StructureInteractions in Hydrodynamics Applications
Using Unstructured Mesheswith More than One Billion Elements
S. Aliabadi1, A. Johnson2, J. Abedi1, and B. Zellars1
1Department of Engineering, Clark Atlanta University223 James P. Brawley Dr., Atlanta, GA 30314, USA
2Network Computing Services, Inc., Army HPC Research Center
1200 Washington Ave. S., Minneapolis, MN 55415, USA
Abstract. A parallel finite element fluid-structure interaction solver isdeveloped for numerical simulation of water waves interacting withfloating objects. In our approach, the governing equations are theNavier-Stokes equations written for two incompressible fluids. Aninterface function with two distinct values serves as a markeridentifying the location of the interface. The numerical method is basedon writing stabilized finite element formulations in an arbitraryLagrangian-Eulerian frame. This allows us to handle the motion of thefloating objects by moving the computational nodes. In the mesh-moving schemes, we assume that the computational domain is made ofelastic materials. The linear elasticity equations are solved to obtain thedisplacements. In order to update the position of the floating object, thenonlinear rigid body dynamics equations are coupled with thegoverning equations of fluids and are solved simultaneously. Themooring forces are modeled using nonlinear cables and linear springmodels.
1 Introduction
In the past, there have been many scientific works devoted to the development ofnumerical algorithms capable of simulating free-surface flow applications.Unfortunately, due to hardware and software limitations, most of the algorithms couldsolve simple 2D problems, with many simplifications and assumptions. Recently,there has been significant progress in 3D simulations of free-surface flows [1-2],especially the in marine industry [1-4]. Our free-surface flow simulator is a powerfuland fully realistic tool, which takes into account the wind, waves, water depth, banks,and even moving objects [2].
520 S. Aliabadi et al.
In this article, we describe a new finite element technique for simulation of free-surface flow problems interacting with moored floating objects. In this approach, wekeep track of the free-surface using the IS-GMC (Interface-Sharpening/Global MassConservation) [5] interface-capturing methods [1-2,5], while we absorb the motion ofthe physical boundaries resulting from translation and rotation of floating objectsusing mesh-moving methods [6-8].
2 Governing Equations and Finite Element Formulations
We consider the governing equations for two interacting fluids in the spatial domain and its boundary . Here we assume that the spatial domain and its boundary are
both functions of time, t. The two fluids are incompressible (e.g. air-water) and areseparated with an interface. Along the interface, the traction force is continuous(surface tension is negligible). The governing equations of two fluids are the Navier-Stokes equations written in the Arbitrary Lagrangian-Eulerian (ALE) frame [9-10].These equations are:
meshu ( u u ) u g 0t
, (1)
u 0 , (2)
where
p I 2 (u) , T1 ( u u )2
. (3)
Here u , meshu , p, , g, and are the fluid velocity, mesh velocity, pressure,density, gravitational force, and dynamic viscosity, respectively. The strain tensor isdenoted by and I represents the identity tensor. Equations (1-2) are completed byan appropriate set of boundary and initial conditions. The stabilized finite elementformulations [1,5-6] for equations (1-2) can be written as:
hh h h h h h h
mesh
neh h h h h h hmp mesh pe
e 1
hh h h h h
mesh
neh h h
cehe 1 u
u[ ( u u ) u g ]d ( ): (p , )dt
q d ( u u ) (q , )
u[ ( u u ) u g] (p , ) dt
d .hd .
w w u
u w w
u
w u w
(4)
Here, w and q are linear test functions for the velocity and pressure, respectively.In this formulation, the first three integrals together with the right hand side term are
High Performance Computing of Fluid-Structure Interactions 521
the Galerkin finite element formulation. The first element-level integral is the SUPG[11-12] and PSPG [5-6] stabilizations. The second element-level integral is the least-square stabilization of the continuity equation, which enhanced the robustness of thefinite element formulation at high Reynolds numbers. The coefficients m and c aredefined in [6].
The interface function, , has two distinct values (0,1) and is used to differentiatebetween the two fluids [13]. A time-dependent advection equation transports thisfunction throughout the computational domain with the fluid velocity as:
mesh( u u ) 0t
. (5)
Using , the density and viscosity can be calculate as:
A B(1 ) , A B(1 ) , (6)
where the subscripts A and B denote the fluid A and fluid B. The artificial diffusionfinite element formulation for Equation (5) leads to:
hh h h h
mesh
neh h
iee 1
( u u ) dt
d 0, (7)
where is a linear test function for the interface function. Here the first integral isthe Galerkin finite element formulation and the second integral is the artificialdiffusion stabilization. The artificial diffusion stabilization technique is used for theinterface function for over stabilization [1,5]. This feature allows us to enforce theconservation of mass not only locally, but also globally.
There is no limit on the number of cables that can be attached to the floatingobjects. The equation governing the dynamics of the nonlinear cables can be writtenas:
2
c 2
x gt
, (8)
t 0x X ,
t 0
x 0t
, (9)
where x is the position vector, X is the initial position, c is the cable density, and Tis the Cauchy stress tensor. Locally, the Green strain tensor has only one component,which can be defined as:
2 2
111 x XE2 s s
, (10)
522 S. Aliabadi et al.
where s is a tangent vector in the original configuration. The Cauchy stress tensor,T, and the 2nd Piola-Kirchoff stress tensor, S, are related through geometrydeformation. Under the assumption of small strain, but large geometry displacements,the only component of S in the s direction can be written as:
11 c 11S E E . (11)
Here cE is the Young�s modulus of elasticity of the cable. The finite elementformulation for the Equation (8) is derived from the principle of virtual work leadingto:
0
0
2 h hh
2
2 2
c
x xH g dt t
1 x X H xE d 02 s s s s
(12)
where H is the test function. Here we assume that the fluid does not affect the cablemotion directly. Instead, a numerical damping, , is introduced to dampen theoscillations in time. In this formulation, all the integrations are carried out in theoriginal domain rather than current deformed domain. In some applications, we use asimple spring model for the cables. This is valid if the cable density is comparable tothe density of water. For spring models, we have
f i11 c
i
L - LS EL
, f i f if i
f i
L - L L LL - L
0 L L. (13)
Here, fL and iL are the final and initial length of the cable, respectively.The motions of the floating objects are absorbed by moving the computational
nodes. In this approach, the mesh connectivity does not change and only the nodes aredisplaced to new positions. In our mesh-moving scheme, we assume that thecomputational domain is made of elastic material [6-7]. We solve linear elasticityequations to obtain the displacements for every computational node. These equationsare:
1 2( d ) I 2 ( d ) 0 , T1 ( d d )2
, (14)
where d is the displacement, is the strain tensor, and 1 and 2 are the linearelasticity coefficients. The finite element formulation for these equations is theGalerkin formulation written as:
h h h1 2( ) : ( d ) I 2 ( d ) d 0 , (15)
where is the test function for the displacements.The six degrees of freedom nonlinear rigid body dynamics are solved to locate the
new position and orientation of the floating objects. Here, we consider two coordinatesystems, one attached to the computational domain, X, and the other attached to the
High Performance Computing of Fluid-Structure Interactions 523
floating object, Y. The rotation matrix, Q , transfers components of any arbitraryvector from the X coordinate system to the Y coordinate system. The nonlinear rigidbody dynamics equations for the center of gravity of the object are:
X X XF m g ma , (16)
Y Y YM J , (17)
where XF and YM are the total force and angular momentum exerted on the center ofgravity of the object by the fluids, respectively. The linear and angular accelerationsare Xa and Y . The mass of the object is m, and its moment of inertia is YJ . Here thesubscribed �X� and �Y� denotes the coordinate system where components of thevectors and matrices are evaluated.
3 Interface Sharpening/Global Mass Conservation (IS-GMC)
The finite element formulation in Equation (7) introduces numerical diffusion for theinterface function . In the IS-GMC algorithm, we recover the sharpness of theinterface function by replacing with new as following:
new
, 0
11-(1- ) , 11
, (18)
where 1.2 1.5 is a sharpening parameter [1], and 0 1 is a point satisfyingthe global conservation of mass for each fluid.
To determine , we satisfy the mass conservation at a given time, t, using new.Therefore:
A new A A t d m u.n d dt , (19)
B new B B t (1 )d m (1 ) u.n d dt , (20)
where mA and mB are the initial mass of Fluid A and Fluid B, respectively. Note thatwe only need to satisfy either Equation (19) or (20). Combining Equations (18) and(19) and assuming that the parameter is given and constant, we obtain:
(1- ) (1- ) M N(1- ) K , (21)
524 S. Aliabadi et al.
where M, N, and K are all functions of . This nonlinear equation is solved using aNewton-Raphson algorithm. Typically, with the initial guess of 0.5, the algorithmconverges in three iterations [1].
4 Iterative Solution Strategy
The discretization of the finite element formulations results in a series of coupled,nonlinear systems of equations that need to be solved at every time step. Thenonlinear system of equations in vector form can be written as:
F( s,s ) L , (22)
where the vector F is the function of nodal unknowns, s , and its time derivative, s .Here L is the known right-hand-side vector. After linearization using the Newton-Raphson algorithm, we need to solve a series of first order linear differential equationsystems. These systems are also solved iteratively using the GMRES updatealgorithm [14]. For very large systems of equations, we use a matrix-free iterationstrategy [11]. This element-vector-based computation totally eliminates the need toform any matrices, even at the element-level.
5 Parallel Implementation
The computations of 3D free-surface flow applications are large-scale. Parallelsupercomputers with hundreds of fast processors, such as CRAY T3E and IBM SPare used to reduce the computing time [7,11]. In the parallel implementation, we usea message-passing computing paradigm, making the cross-processor communicationexplicit. This is accomplished by using the message passing interface (MPI) libraries.Prior to the computation, the finite element mesh is partitioned into contiguoussubdomains using METIS [15], and these subdomains are assigned to individualprocessors.
Fig. 1. Speedup
To ensure load balancing for each processor, each subdomain containsapproximately the same number of elements. Element-level computations are carried
High Performance Computing of Fluid-Structure Interactions 525
out independently for each processor. Data transfer between the elements and nodes isaccomplished in two steps. First, data is gathered or scattered between the elementsand the nodes residing on the same processor. This step does not involve anycommunication. At the second step, the gather and scatter operations are performed toexchange data across the processors only for those nodes residing on the boundary ofsubdomains. Figure 1 shows the speed up versus the number of processors. Here, andunstructured finite element mesh with approximately one million tetrahedral elementsis used.
6 Automatic Mesh Generation
Our automatic mesh generation tools have been under development at the Army HighPerformance Computing (HPC) Research Center for quite some time, and have beenused in a wide variety of applications. The automatic mesh generator is not a singleapplication, but consists of a series of three applications including a 3D geometricmodeler, an automatic surface mesh generator, and an automatic 3D volume meshgenerator. For details, see [7-16].
7 Parallel Mesh Multiplication
In one specific application, we use an unstructured finite element mesh with almostone billion tetrahedral elements. Generating such a large mesh with our automaticmesh generator created unique challenges due to the fact that the largest mesh thatcould be created on a workstation is roughly 3 million elements. Due to thisconstraint, we had to develop a parallel mesh multiplication program in order to turnan unstructured mesh into a billion-element mesh. We believe that such large meshes,which are becoming more common for modern HPC resources, should be createdwith such a mesh multiplication technique. An automatic mesh generator is capableof handling complex geometry and making high quality meshes, but not necessarilyuseful at just adding more nodes in order to increase the number of elements to reacha desired size. A two-step technique, as was used in some of the simulations here, is abetter approach to generating extremely large unstructured meshes [7]. The meshmultiplication technique is based on dividing each tetrahedral element into 8 new sub-elements (Figure 2). The entire mesh size is increased by a factor of 8 in totalelement size. Of course, this algorithm is rather simple to implement on a serial (i.e.single processor) computer, but the size of the new (i.e. divided) mesh becomes verylarge rather quickly, and will usually require more memory than a single processorworkstation has available. To overcome the memory limitation, we implemented thisalgorithm in parallel using MPI so that we can have access to the large memoryusually available on large distributed memory computing platforms.
526 S. Aliabadi et al.
Fig. 2. A single tetrahedral element divided into eight sub-elements
8 Large-Scale Data Visualization
The visualization of such large data sets such as the ones used here posed uniquechallenges due to its raw size. A typical workstation does not have nearly the memoryor computing power needed to process the data set alone. Furthermore, the transportand storage of this large data set (up to 300 Gigabytes in our applications) from theparallel computing server to the users desktop system can become a very time-consuming and possibly impossible task. To overcome this bottleneck, we used thePresto visualization program, developed at the Army HPC Research Center toperform the data visualization used in the examples presented here.
This visualization program is written in a client-server framework. The server partof the program runs in parallel (MPI-based) on the computer where the data islocated. This server program is responsible for loading the large 3D data set,processing it, and extracting any visualization constructs requested by the clientprogram. The client program runs on a user�s desktop system and is responsible forall user interaction and displaying all 3D geometry sent to it by the server. The twoprograms communicate with standard Internet protocols. The program can visualizethe 3D data set through surface (i.e. boundary) shadings, cross-sections, iso-surfaces,and streamlines, and that is the key to the effectiveness of this client-server model.The visualization constructs (i.e. the geometry that actually gets shown on thecomputer screen) are all based on �2D� or flat surface geometry, and the size of thesesurfaces is orders of magnitude less than the raw 3D simulation data that the parallelserver program is processing. This surface data can more easily be sent across amoderately configured Internet connection and be displayed on the client workstationwith the OpenGL 3D graphics library.
9 Numerical Example9.1 Contraction Channel
To measure the accuracy of the method, we simulate flow in a contraction channel atsuper-critical condition and compare the results with available experimental data. Thecontraction channel walls are composed of two equal circular arcs each having aradius of 75 inches (see Figure 3). Water at high velocity enters the 24-inch widechannel at the speed of 85.3 inch/s and passes the narrow section of the channel,which is 12 inches wide. The Froude number with respect to the entering waterelevation of 1 3/16 inch is 4.0. Here, we use a mesh consisting of 2,715,171 nodes and
High Performance Computing of Fluid-Structure Interactions 527
2,640,000 hexahedral elements. The number of elements in the axial, vertical andcross-flow directions are 401, 61 and 111, respectively. The channel lengths beforeand after the contraction section are 19 11/16 inch and 136 inch, respectively.
The computation starts with an initial uniform velocity field equal to the enteringwater velocity. The time step is set to 0.00346 s. As computations continue, waterwaves are formed in the contraction section and reflected back into the narrow sectionof the channel from the channel walls. The two pictures in Figure 4 show thecomparison of the computed water elevation along the channel wall and center toexperimental data. All the flow features observed from the experiments are alsocaptured in the computation. Here the computed results are very comparable with theexperimental data.
Fig. 3. Contraction Channel. Geometry of the channel
Fig. 4. Contraction Channel. Comparison of the computed water elevation along the channelwall (left picture) and the channel center (right picture) to experimental data
9.2 DTMB 5415
Here we apply our numerical techniques to simulate water flow around the US NavyCombatant, DTMB 5415. Model 5415 was conceived as a preliminary design for aNavy surface combatant ca. 1980 [17]. This model was also selected in theGothenburg 2000 workshop [17]. Figure 5 shows the geometric model of the DTMB
528 S. Aliabadi et al.
5415. For the scaled model, the experimental data already exists for two speeds, 4 and6 knots. The hull geometry includes both a sonar dome and a transom stern. Thelength of the ship is 18 7/10 feet long. To validate our flow solver, the boundaryconditions are exactly the same as the ones used in experiments.
The Froude number is set to 0.28, which corresponds to the speed of 4 knots. Wecarried out simulations on the Cray T3E-1200 with 256 processors. Two unstructuredfinite element meshes are used in this simulation. The coarse mesh has more than 25million tetrahedral elements and the fine mesh has more than one billion tetrahedralelements. The steady-state solutions are obtained for these two meshes. The picturesin Figure 6 show the coarsened mesh and the element processor distribution on thesurface of the DTMB 5415.
Figure 7 shows the x-component of velocity vector corresponding to the seat-statesolution obtained using the fine mesh. To measure the accuracy of the computations,in Figure 8, we compare the nondimensional water elevation along the hull for thecoarse mesh with available experimental data. The computed results are in goodagreement with experiment.
Fig. 5. DTMB 5415. The geometry model of the DTMB 5415
Fig. 6. DTMB 5415. The coarsened mesh and partitioned mesh on the surface of theDTMB 5415
Fig. 7. DTMB 5415. The colors represent the x-component of velocity. The solution is obtainedusing a fine mesh with more than one billion tetrahedral elements
High Performance Computing of Fluid-Structure Interactions 529
Fig. 8. DTMB 5425. Comparison between the computed and measured water elevation alongthe hull
9.3 Comparison of Linear and Nonlinear Cable Models
Here we simulate the buoyancy force exerted on a cubic object completely underwater. The computational domain covers the volume �0.25 x 4.0, 0.0 y 1.25and �0.75 z 0.75, and the cubic box covers the volume of 1.5 x 2.5, 0.35 y 0.65 and �0.25 z 0.25. Here the numbers are nondimensional. The density of thecubic object is half of the water. The water elevation (in y direction) is 0.75. A singlecable is attached in one end to the ground at location x =0.0, y = 0.0, and z = 0.0 andin other end to the object at x = 1.5, y = 0.35 and z = 0.0. The density of the cable is1.5 times the density of water. Since the cable remains completely under water, theeffective density of the cable is half of the water (due to buoyancy forces). TheYoung�s modulus of elasticity and the cross section area of the cable are 1000 and0.001, respectively (nondimensional).
The simulations are carried out using two levels of meshes. The coarse mesh has199,666 nodes and 1,214,076 tetrahedral elements. The fine mesh is obtained bysimply subdividing each element of coarse mesh into 8 elements.
The cable is modeled using both the Equation (8) (nonlinear) and Equation (13)(linear). Here we present 4 solutions labeled as Nonlinear-Coarse for coarse meshusing Equation (8), Linear-Coarse, for coarse mesh using Equation (13), Nonlinear-Fine for fine mesh using Equation (8) and Linear-Fine for fine mesh using Equation(13).
As the cable rises to the free-surface of water, tensional force is generated in thecable, which causes the floating object to move toward left (-x direction) and rotatecounterclockwise.
Figure 9 shows the position of the cable at time equal to 0.5 and 1.0(nondimensional). In this figure, the graphs on the left correspond to the coarse meshand the graphs on the right correspond to the fine mesh. The difference between thesolutions obtained using both meshes is small. From these graphs, we can also seethat the linear and nonlinear models for the cable result in almost identical solutions.However, this is misleading. The differences between the solutions of these twomodels can be seen in more detail in Figure 10. In this figure, the tensional forces for
530 S. Aliabadi et al.
all four solutions are plotted versus time. As we can see, the difference between thelinear and nonlinear models can be as high as 15% in tensional forces. Also, thenonlinear cable shows two pull-relax scenarios whereas the linear model experienceonly one.
Figure 11 shows the cross section from the computational domain at z = 0.0 and fortime at 0.1 and 2.1 (top and bottom). Here, the color shows the water and air for theNonlinear-Fine solution.
Fig. 9. Comparison of Linear and Nonlinear Cable Models. The graphs show the position ofthe cable at time equal to 0.5 and 1.0 (nondimensional). In this figure, the graphs on the leftcorrespond to the coarse mesh and the graphs on the right correspond to the fine mesh
High Performance Computing of Fluid-Structure Interactions 531
Fig. 10. Comparison of Linear and Nonlinear Cable Models. The tensional forces for all foursolutions versus time
Fig. 11. Comparison of Linear and Nonlinear Cable Models. Figure shows the cross sectionfrom the computational domain at z = 0.0 and for time at 0.1 (top) and 2.1 (bottom). Here, thecolor shows the water and air for the Nonlinear-Fine solution
10 Concluding Remarks
We developed high performance computing tools and techniques to simulate wavesinteracting with ships in motion. We outlined the details of the techniques we use tosolve applications on unstructured meshes. We used our client-server based PrestoVisualizer to interactively visualize the very large data sets generated by these
532 S. Aliabadi et al.
simulations. We applied these techniques to simulate flow in contraction channels atsuper-critical condition, and waves interacting with ships in motion. We demonstratedthe accuracy of the computations by comparing the results with experimental data.The computed results are in most cases in very good agreement with experimentaldata.
Acknowledgement
Work funded in part by the Army High Performance Computing Research Centerunder the auspices of the Department of the Army, Army Research Laboratorycontract number DAAD19-01-2-0014. Partial support for this publication madepossible through support provided by DoD High Performance ComputingModernization Program (HPCMP) Programming Environment & Training (PET)activities through Mississippi State University under the terms of Agreement No. #GS04T01BFC0060. Views, opinions, and/or findings contained in this report arethose of the author(s) and should not be construed as an official Department of theArmy and Department of Defense position, policy, or decision unless so designatedby other official documentation and no official endorsement should be inferred.
References
[1] Rosen, B. S. and Laiosa, J. P., SPLASH Nonlinear and Unsteady Free-SurfaceAnalysis Code for Grand Prix Yacht Racing. The Thirteenth ChesapeakeSailing Yacht Symposium, Annapolis, MD, Jan. (1997).
[2] Aliabadi, S. and Tezduyar, T.: Stabilized-Finite-Element/Interface-CapturingTechnique for Parallel Computation of Unsteady Flows with Interfaces.Computer Methods in Applied Mechanics and Engineering, 190 (2000) 243-261.
[3] Sundel, T., Computation of the Free-Surface Flows Around a Ship Using NSSolver FINFLO. VTT Manufacturing Technology, 1997.
[4] Aliabadi, S. K. and Tezduyar, T.E.: Space-time Finite Element Computation ofCompressible Flows Involving Moving Boundaries and Interfaces. ComputerMethods in Applied Mechanics and Engineering, 107 (1993) 209-223.
[5] Hughes, T. J. R. and Brooks, A. N., A multi-dimensional upwind scheme withno crosswind diffusion. In: Hughes, T. R. (Ed.): Finite Element Methods forConvection Dominated Flows, ASME, New York, AMD-Vol. 34 (1979) 19-35.
[6] Donea, J.: An Arbitrary Lagrangian-Eulerian Finite Element Method forTransient Fluid-Structure Interactions, Computer Methods in AppliedMechanics and Engineering Computational Mechanics, 33 (1982) 689-723.
[7] Johnson, A. and Tezduyar, T., Advanced Mesh Generation and UpdateMethods for 3D Flow Simulations. Computational Mechanics, 23 (1999) 130-143.
High Performance Computing of Fluid-Structure Interactions 533
[8] Aliabadi, S., Johnson, A., Zellars, B., Abatan, A., and Berger, C.: ParallelSimulation of Flows in Open Channels. Journal of Future Generation ComputerSystems, Vol. 18/5 (2002) 627-637.
[9] Aliabadi, S. and Shujaee, S.: Free Surface Flow Simulations Using ParallelFinite Element Method. Simulation, Volume 76, No. 5, ISSN 0037-5497/01(2001) 257-262.
[10] Aliabadi, S., Abedi, J., Zellars, B., and Bota, K.: New Finite ElementTechnique for Simulation of Wave-Object Interaction. AIAA Paper 2002-0876(2002).
[11] Johnson, A. and Aliabadi, S., Application of Automatic Mesh Generation andMesh Multiplication Techniques to Very Large Scale Free-Surface FlowSimulations. Proceeding of the 7th International Conference on Numerical GridGeneration in Computational Field Simulations, Whistler, British Columbia,Canada, September 2000.
[12] Aliabadi, S., and Tezduyar, T.: Parallel Fluid Dynamics Computations inAerospace Applications, International Journal for the Numerical Methods inFluids, 21 (1995) 783-805.
[13] Hirt, W. and Nichols, B. D., Volume of Fluid (VOF) Method for the Dynamicsof Free Boundaries. Journal of Computational Physics, 39 (1981) 201-225.
[14] Farhat, C., Lesoinne, M., and Maman, N., Mixed Explicit/Implicit TimeIntegration of Coupled Aeroelastic Problems: Three-Field Formulation,Geometric Conservation and Distributed Solution. International Journal for theNumerical Methods in Fluids, 21 (1995) 807-835.
[15] Karypis, G. and Kumar, V., Parallel Multilevel k-Way Partitioning Scheme forIrregular Graphs. SIAM Review, 41 (1999) 278-300.
[16] Saad, Y. and Schultz, M., GMRES: Generalized Minimal Residual Algorithmfor Solving Nonsymmetic Linear Systems. SIAM Journal of Scientific andStatistical Computing, 7 (1986) 856-896.
[17] http://www.iihr.uiowa.edu/gothenburg2000/5415/combatant.html
i-1,j i-1,j+1
i,j-1 i,j i,j+1
i+1,ji+1,j-1