parfum from an application perspective
DESCRIPTION
ParFUM from an Application Perspective. M. Scot Breitenfeld. Motivation. Finite element code 3-D Cohesive/volumetric finite element (CVFE) scheme for spontaneous dynamic fracture Uses cohesive element for fracture events. Pure tensile (mode I) - D t = 0 . Normal Traction Law. - PowerPoint PPT PresentationTRANSCRIPT
ParFUM from an Application Perspective
M. Scot Breitenfeld
Motivation
• Finite element code – 3-D Cohesive/volumetric finite element (CVFE)
scheme for spontaneous dynamic fracture• Uses cohesive element for fracture events
Normal Traction Law Shear Traction Law
Tn
n
max
GIc
nc
Pure tensile (mode I) - t = 0
Motivation– Explicit dynamic (central difference time stepping
scheme)• No large system of equations to solve
– Nonlinear kinematics (large strains, large rotations) – Nonlinear constitutive models
• Hyperelastic – Neo-Hookean (compressible, incompressible)– Mooney-Rivlin– Arruda-Boyce
• Nonlinear constitutive laws– Viscoplastic
– Original implementation used MPI
Motivation• MPI based code limitations
– No adaptive load balancing• Non-trivial using MPI• Load balancing for adaptive mesh changes
– insertion/activation of cohesive elementsDeflection of a crack by a material interface
Weak interfaceStrong interface
(Experimental results by Xu, Huang and Rosakis, 2001)
Motivation
– Load imbalance due to material models
• 3D Plastic Fracture• A single edge notched
specimen pulled at both ends with a ramping magnitude of 1 m/s over .01 seconds
• Isosurface is the extent of the plastic zone
Motivation• A 1x1x10 bar loaded with a ramped velocity of magnitude 0. to 40. over a
time period of (0.1*length of bar)/(fastest wave speed) and held constant afterward
Application
• MPI
• Reads in mesh– created with a meshing tool
• Partitions the mesh• Create communication lists for
the processors• Transfer boundary conditions to
the partitioned mesh
• ParFUM
• No pre-processor needed
• Automatically– Partitions– Creates the
communication list– Handles the
boundary conditions
Typical Procedure for a Parallel FEM Code
PRE-PROCESSOR
Application
• MPI
• Insert MPI calls to handle communications: Send, Recieves waits, etc….
• ParFUM
• Solution Code
• Communication calls are simplified..
Typical Procedure for a Parallel FEM Code
Solution Code
Application
• ParFUM
Typical Procedure for a Parallel FEM Code DO j1 = 1, NumNeighProcs k = IdNeighProc(j1) CALL MPI_IRECV(frmproc(k)%rcvbuf(1),COMMON(j1)*3,& MPI_DOUBLE_PRECISION,k,10,MPI_COMM_WORLD,& req_rcv(j1),ierr) ENDDO
k2 = 1 DO j1 = 1, NumNeighProcs k = IdNeighProc(j1) k3 = COMMON(j1)*3 CALL MPI_ISEND(buf(k2),k3,MPI_DOUBLE_PRECISION,& k,10,MPI_COMM_WORLD,req_snd(j1),ierr) k2 = k2 + k3 ENDDO
CALL MPI_WAITALL(NumNeighProcs,req_rcv,stat_rcv,ierr) CALL MPI_WAITALL(NumNeighProcs,req_snd,stat_snd,ierr) DO j1 = 1, NumNeighProcs k = IdNeighProc(j1) k1 = 1 DO j = 1, COMMON(j1) k2 = XCom(j1)%node_list(j)*3 Rnet(k2-2)= Rnet(k2-2) + frmproc(k)%rcvbuf(k1) Rnet(k2-1)= Rnet(k2-1) + frmproc(k)%rcvbuf(k1+1) Rnet(k2) = Rnet(k2) + frmproc(k)%rcvbuf(k1+2) k1 = k1 + 3 ENDDO ENDDO
CALL FEM_Update_Field(fid_R_net,R_net)
Application
• MPI
• Typically needed to put the mesh back together for visualization
• ParFUM
• Typically Not Needed– ParFUM will output
the “serial” mesh
Typical Procedure for a Parallel FEM Code
Post-Processor
Conclusion• ParFUM is considerably easier then creating an
MPI version• MPI is not practical (in terms of development
time) for applications needing adaptive load balancing
• ParFUM is continually adding new features of interest to the FE community:– Parallel Adaptive Mesh Refinement (including
activation of cohesive elements)– Parallel contact detection and enforcement