Robert H. Dodds, Jr. (and many others!) M.T. Geoffrey Yeh Endowed Chair, Emeritus Department of Civil & Environmental Engineering University of Illinois at Urbana-Champaign Research Professor Department of Civil & Environmental Engineering University of Tennessee, Knoxville August 2013
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Robert H. Dodds, Jr. (and many others!) M.T. Geoffrey Yeh Endowed Chair, Emeritus Department of Civil & Environmental Engineering University of Illinois at Urbana-Champaign Research Professor Department of Civil & Environmental Engineering University of Tennessee, Knoxville August 2013
2
*University of Illinois/NCSA, Open Source License. License text is Copyright (c) 2012 University of Illinois at Urbana- Champaign. Key provision of license: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ”Software”), to deal with the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. (see full license in WARP3D distribution)
http://code.google.com/p/warp3d/
• Open source*, 3D nonlinear FEA code for solid mechanics
• Solids subjected to static, dynamic, thermal loadings
• Many features for fracture mechanics simulations
• Ready-to-run executables for complete problem solution & output
• Not a “framework” requiring further work by users before solving problems
• Extensive parallel execution via threads and threads+ MPI
• Runs the same on laptops è desktops è supercomputers
• Routinely used to solve nonlinear solids models with 500K nodes/elements on desktops; much larger models (1-5 M) nodes on supercomputers/clusters
3
• Evolved from DARPA sponsored research at Illinois on software architectures for parallel execution of FEA codes (1989-1995)
• Internal code architecture fixed in 1999-2000 from this research
• Internal design to maximize parallel performance using element blocks and domains: MPI ranks to process domains, threads to process blocks and local vectorizable loops inside threads
• Focus on limited feature set for robust 3-D nonlinear analyses of fatigue & fracture in structural materials
• Solid and interface elements: no 2-D, no shells, no plates, no beams
• Clean, modern design with comparatively small source code @ 140K LOC. Manageable by a small group.
4
• Commercial software (Nastran, Abaqus, Ansys,…) not designed originally for parallel execution: efforts to “back design” still continuing
• Best software architecture for parallel FEA codes not obvious in early 1990s; hardware concepts were changing rapidly
• Open-source research code with best practices to support graduate education worldwide: there is no substitute for writing code in the process of learning mechanics
• Highly targeted feature set (e.g. FGMs, crack extension, Gurson models, cohesive models…) supporting sponsored student research on challenging fracture issues
• Abaqus is great; we use it in research. But students never see the code !
Page 1 of 2/Users/rdodds/Desktop/untitled text.fSaved: 8/25/13 9:50:02 PM Aug 25, 2013 Printed For: Robert Dodds
• WARP3D takes input for the mesh, material properties, loading, compute and output commands from one or more text files (like Abaqus .inp files)
• WARP3D system has a translator to convert Patran neutral files to WARP3D input. WARP3D writes Patran-style result files. Translates these to Exodus II if needed.
*WARP3D developers have no financial or other agreements with any commercial company
Page 1 of 1/Users/rdodds/Desktop/zzSaved: 8/10/13 1:46:27 PM Aug 10, 2013 Printed For: Robert Dodds
[rdodds]$ cd example_problems_for_READMEs1
[~/warp3d_project/example_problems_for_READMEs]2
[rdodds]$ warp3d_OSX 12 <<< -- start with 12 threads3
• User-control over nonlinear solution strategy, convergence
• Adaptive nonlinear solution strategies
• Full restart support
• Solvers: ❖ Pardiso (direct, iterative) in Intel Math Kernel Library for threaded parallel execution
❖ Hypre iterative (from LLNL) for MPI + threads on Linux
• Packet-based output for user post-processing
• User-routines ❖ Abaqus compatible UMAT and UEXTERNALDB interfaces
❖ USER_NODAL_LOADS for runtime definition of loading just before a new load (time) step
❖ USER_SOLUTION_PARAMS enables user to set any parameter controlling the nonlinear solution algorithms and the incremental loading for the next (time) step
• Interactive and batch Execution
• Documentation (updated Theory & User Guide online)
9
• Growth and coalescence of discrete voids in a J2 plastically deforming metal at finite strains
• 1 layer of 3D, 20-node elements in thickness direction (for simplicity of example)
• Plane-strain constraints with constrained exterior as shown leads to so-called uniaxial plane-strain model at the macroscale
• Imposed uniform extension over top surface
• Alternate loading: internal pressure in one or both voids (included in input but not used)
• Reactions at top nodes give nominal (continuum) stress. Displacement on top surface gives nominal (continuum) strain. Nominal stress peaks then drops as voids grow
• Examine internal plastic flow, growth towards coalescence
• Illustrates key components of analyses with WARP3D
1.6
2.0
2 @ 0.2
r = 0.1 Xg
Yg
Δ
�0 = 1 E = 500 ⌫ = 0.3
f0 = 0.02Initial porosity: Thickness: 0.1
10
• Meshing: ❖ Built with Patran ❖ Output to a neutral file (sizes, coordinates, connectivities) ❖ Translated to a WARP3D (text) input file (warp3d.inp) using
patwarp program (in WARP3D distribution) ❖ Edited this file to add material properties, constraints, tweak
nonlinear solution parameters, add compute and output commands
• Material: incremental Mises with segmental definition of uniaxial true stress-log strain curve. Isotropic hardening. Finite strains.
• Solution: ran model on 2012 MacPro (2 x 6-core X5675 processors). 200 load steps (increments) of imposed displacements on top surface. Load peaks before step 50 and continues to decrease as voids grow. Wall clock time (secs): 1 thread, 1118; 2 threads, 619; 4 threads, 378; 8 threads, 268 (494 global Newton iterations)
• Post-processing: WARP3D outputs Patran-style nodal results files (displacements, strains, stresses). Use pat2exii program to build .exo file for ParaView to examine results. pat2exii included in WARP3D distribution.
Nodes: 41,647 Elements: 5,800
11
• Nominal stress: reaction force on top surface nodes / undeformed area of top surface
• Nominal strain: imposed Δ / 2.0 (height)
• Figures show deformed mesh at true scale
• At step 200 (strain = 0.065), coalescence is imminent
Nominal stress, �N
Nominal strain, "N
f0 = 0.020f = f0 + "
�N , "N
"̄0.8
0.6
0.2
0.0
0.4
�e2.67
2.00
1.33
0.67
0 "N = 0.025Step 50:
"N = 0.025Step 50:
12
• Use a C, c, ! or # in column 1 followed by a blank to indicate a comment line
• Blank lines and spaces ignored
• Names of most things are truncated by WARP3D at 8 characters (material number can have 24 cars)
• A $ terminates actual input data on a line
• Commands continue with comma
• Can use multiple, nested input files for convenience: ❖ *input from data_part_1
❖ *input from data_part_2 (use quotes if file name has special characters, e.g. . # ! ?)
❖ *input from data _part_3
• Nodes, elements numbered sequentially
• Segmental σ-ε curve: strains are total values
Page 2 of 2/Users/rdodds/Desktop/zzSaved: 8/10/13 5:24:33 PM Aug 10, 2013 Printed For: Robert Dodds
Specified once Repeat as needed (generally this order)
16
Page 1 of 1/Users/rdodds/Desktop/zzSaved: 8/13/13 2:19:03 PM Aug 13, 2013 Printed For: Robert Dodds
!1
structure holes2
! 3
stress-strain curve 1 $ E / sig-o = 5004
0.002 1.0, 5
0.007 1.17,6
0.013 1.30,7
0.023 1.428
0.033 1.52,9
0.043 1.57,10
0.063 1.66,11
0.124 1.84,12
0.204 1.97,13
50.0 3314
15
# 16
material a533b17
properties mises e 500 nu 0.3 curve 1 rho 0.018
19
number of nodes 41647 elements 580020
c21
elements22
1-5800 type q3disop nonlinear material a533b,23
order 2x2x2 center_output short24
c 25
*input from 'coordinates.inp'26
*input from 'incidences.inp'27
c28
constraints29
plane z = 0 w = 030
plane z = 0.1 w = 031
plane x = -0.6 u = 032
plane x = 1.0 u = 033
plane y = -1.0 v = 034
plane y = 1.0 v = 035
c36
plane y = 1.0 v = 0.004 $ nominal gross strain = yield 37
c 38
loading unit_pressure_holes39
element loads40
1 16 31 46 61 76 91 106, 41
121 136 151 166 181 196 211 226, 42
241 256 271 286 2101 2116 2131 2146, 43
2161 2176 2191 2206 2221 2236 2251 2266, 44
Input total strains - not just plastic part. Can put multiple pairs of values per line. Last point used to define small, positive terminal slope.
1
4
5
6
7
2
3
mises is name of the WARP3D built-in material model
Default maximum sizes: 1M nodes and 1M elements
nonlinear option for finite strains/rotations. Reduced integration order 8 point rule (2x2x2)
Put file name in quotes if it contains spaces, punctuation other than _ (under bar)
Add option verify at end to see list of nodes. These constraints are incremental values imposed
during each load (time) step. Can use multiplier later.
Constraints may be in alternate coordinate systems. Multi-point constraints are supported.
Pressure loading inside both voids specified for illustration but not imposed on model in this analysis
1
2
3
4
5
6
7
Page 1 of 1untitled text 8
c 1
loading test2
nonlinear3
step 1-75 constraints 0.254
step 76-200 constraints 0.15
c 6
nonlinear analysis parameters7
solution technique sparse direct 8
maximum iterations 5 $ newton iterations9
minimum iterations 210
convergence test norm res tol 0.005 $ tight11
nonconvergent solutions stop12
adaptive on13
linear stiffness for iteration one off14
batch messages on15
wall time limit off16
material messages off17
bbar stabilization factor 0.018
consistent q-matrix on19
time step 1.0e0620
trace solution on21
extrapolate on22
display tied mesh mpcs off2324
c25
list "top-nodes" y = 1.026
c 27
c28
*input from 'compute_output.inp' 29
save to file 'solution_at_step_200.db'30
stop3132
17
One nonlinear loading may be defined. Each load step is also a time step. These are the incremental step loads. Step loads maybe re-defined at any time. Loading conditions (“patterns”) maybe included with the
step definition.
Analysis parameters may be changed between steps.
Request Pardiso solver with factorization on every iteration. Could use Pardiso iterative rather than direct (can be much more efficient)
Multiple convergence tests may be specified. Adaptive solutions automatically subdivide
steps if needed for global convergence. Wall-time limit used to stop job with restart file if
estimated time for step n+1 exceeds value Extrapolating solution from step n to n+1 often
improves convergence. User-defined lists of integers may be created using
many criteria and used wherever integer values are needed
Each compute command may drive solution for 1 or more steps.
Output commands are given between load steps.
Save makes a complete (binary) restart file. .db extension is not required.
Use restart from file … as first command in new job to resume solution.
1
2
3
4
5
1
2
3
4
5
18
coordinates.inp
c!coordinates $ E format is not required, any node ordering ok!*echo off! 1 0.100000000E+01 -0.960198760E+00 0.100000002E+00! 2 0.986666679E+00 -0.100000000E+01 0.100000002E+00! 3 0.100000000E+01 -0.100000000E+01 0.500000008E-01! .! .! .! 41646 -0.600000024E+00 0.242678121E+00 0.100000002E+00! 41647 -0.600000024E+00 0.242678121E+00 0.000000000E+00!*echo on!c !
compute displacements for loading test step 1! *input from 'get_results.inp'!! compute displacements for loading test step 5! *input from 'get_results.inp'! ! compute displacements for loading test step 10! *input from 'get_results.inp’!*input from 'get_results.inp’! compute displacements for loading test step 195! *input from 'get_results.inp'!! compute displacements for loading test step 200! *input from 'get_results.inp'!!
$ set OMP_NUM_THREADS=<value>!$ set MKL_NUM_THREADS=<value>!
$ warp3d.exe < input_file > output_file !
$ warp3d.exe!
*We highly recommend the free Cygwin project for Windows to provide a Linux type working environment: http://www.cygwin.com
The WARP3D distribution directory has 3 Bash shell scripts to aid in starting the threaded version of the code: warp3d_script_linux_openmp! warp3d_script_mac_os_x! warp3d_script_windows!!Modify these as needed for your workflow
^Default uses number of threads available on hardware
Robert H. Dodds, Jr: http://cee.illinois.edu/faculty/robertdodds
WARP3D code: http://code.google.com/p/warp3d
Contributors to WARP3D Source Code Brian Healy Arne Gullerud Kyle Koppenhoefer Arun Roy Sushovan RoyChowdhury Matt Walters Jason Petti Barron Bichon
Kristine Cochran Yueming Liang Adam Carlyle Kyoungsoo Park James Sobotka Mark Messner Congrui Jin Greg Thorwald
Additional Information
• 3-D Implementation using domain integrals
• Small-strains, finite strains, large rotations
• Kinetic energy and acceleration effects included (rapid crack growth near sound speed not treated)
• Definitions of domains: ❖ User controlled (nodal q-values, element lists)
❖ Automatic construction of q-values, element lists
• Physical process ❖ Node Release at critical CTOA or user request
❖ Element extinction at critical porosity or plastic strain
❖ Interface elements w/cohesive properties
❖ Crack fronts tracked automatically
❖ Growth at multiple fronts simultaneously
• Growth models adaptively control load step size ❖ Properly models the physical process of separation
❖ Improves numerical convergence properties of solution
• All 3-D, all permit non-uniform growth
• Node release at specified value of CTOA ❖ Linear traction-separation model during node release
• Gurson-Tvergaard void growth model: ❖ Element extinction at specified void fraction
❖ Linear traction-separation model for final extinction
• Stress-modified critical strain: mises plasticity prior to growth at critical stress-strain combinations ❖ Linear traction-separation model for final extinction
• Interface-cohesive elements: ❖ Zero thickness interface elements for hex/tet
❖ Variety of nonlinear cohesive constitutive models
❖ Element extinction at exhaustion of cohesive tractions