-
Notifications
You must be signed in to change notification settings - Fork 39
/
README
executable file
·440 lines (300 loc) · 16 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
Highest Level README File for WARP3D
====================================
Last Update: June 26, 2024
Version 18.4.0 Build 4300 on all platforms
Provides minor fixes/new features (again!)
Removes all support for gfortran
Updates all build tools to use last version of
ifort on macOS (Intel) and 2021.13.0 on Linux and Windows
See details in Revision History
4290 includes
Significantly revised procedures for crack initiation/growth using
element deletion. See Revision manual pages, Section 5.2 replaced
in manual.
In the last release, the capability was implemented to automatically
define and adjust load(time) step sizes for nonlinear analyses
that compute the J-integral. This release includes a much improved,
more robust adaptive algorithm.
4240 includes
- all new *parameter capability to greatly
simplify building inout files for parameter stuides
- improved capabilities for the definition of domains for
J and I integral computations
- the new mesh regularization and distortion
metrics capabilities for crack growth
- usual bug fixes/code refactoring.
See Revision History in manual.
** The best place to start with WARP3D is the series of QuickStart documents
** on home page of: www.warp3d.net
The remaining information below provides a summary of the various
directories in the WARP3D distribution for this interested in such details.
This version of WARP3D is built with these compilers:
- Windows. 1 version ifort (IFORT) 2021.13.0
- Linux. 2 versions available
(1) ifort (IFORT) 2021.13.0 for threads only parallel
(2) ifort (IFORT) 2021.13.0 and INtel MPI 2021.13.0 for
MPI + threads execution
- macOS. 1 version available. Requires Ventura
ifort (IFORT) 2021.9.0 20211109 ** will not work with 19.1.3
Python 3.5 and later for supporting codes (e.g. warp3d2exii)
** Late Breaking News **
macOS version runs *only* in Intel processor systems. Will *not* work
at all on Apple Silicon machines (the AVX512 instructions breaks Rosetta)
Intel has removed all macOS tools from their download web site.
WARP3D on macOS will be deprecated likely in late 2024 or 2025.
Intel has no plans to make their ifort compiler and MKL available
for Apple Silicon.
Existing versions of WARP3D for Apple Intel should continue to run as
before.
Note the compiler updates listed above for all platforms.
Executables in the distribution and the default build process
use the processor dependent dispatch feature of the Intel
compiler. During execution, the most efficient instructions
available on your specific computer are used.
The code runs optimally on all Intel processors starting with
the old ivybridge CPUs dating to 2011-2012.
All test cases in the verification directory run correctly to completion
on Windows, Linux, macOS.
Tied contact:
An issue is now occurring occasionally when the "master" surface is tet
elements. Hex -to- hex tied surfaces are fine. Tet (slave) to hex
(master) surfaces are ok.
src (a directory)
===
All Fortran source code and processes to re-build the executables on each hardware
platform.
Refer to the QuickStart guide for WIndows, Linux, macOS for details to re-build the
executables.
run_<platform> (multiple directories)
==============
Location for executable files. Our build scripts put them
in this directory. We distribute ready-to-run executables for Linux, macOS
and Windows. The Makewarp.bash and Makewarp.bat scripts create the
object and run directories as needed during the build process. Examples:
run_linux, run_macOS,..
The Windows, Linux and macOS executables support parallel execution using
threads (OpenMP) and shared-memory.
Linux also supports parallel execution using a hybrid MPI + OpenMP framework.
This executable is named warp3d.mpi_omp while the
version that uses only OpenMP for threaded execution is called warp3d.omp.
run_windows (directory)
===========================
Pre-compiled, thread-parallel executable for warp3d. The patwarp
executable runs serial only. The executables are statically linked.
The Intel compiler system is NOT required to use the ready-to-run
executable provided is this directory.
The MPI version of WARP3D is not supported on Windows.
The Intel sparse solver (Pardiso) is incorporated in these executables - both
the direct and iterative options in Pardiso. Pardiso runs in parallel
using threads if multiple cores are available.
The Windows version of WARP3D uses OpenMP (threads) to achieve very efficient
parallel execution.
Note: we continue to have issues on some Windows machines with the
system dll: libiomp5md.dll
We include a current version of this DLL in the run_windows_64
directory.
In some instances, we see the warp3d.exe in that same directory
fail to start properly with a Windows pop-up window saying The
Application Failed to Start Properly ...
Renaming libiomp5md.dll to save_libiomp5md.dll fixes the problem.
run_linux (a directory)
==============================
Pre-compiled executables for WARP3D, patwarp, combine_mpi_results.
Both threaded (OpenMP) and MPI + OpenMP versions are provided for WARP3D.
These have been built using Intel Fortran ifort and Intel MKL.
a) To use the threads only version, *no* Intel compiler/MKL/MPI
software is required to be installed on your system
b) To use the MPI version, you must have Intel MPI runtime
software installed (/opt/Intel/mpi) that provides the runtime setup for MPI jobs
WARP3D on Linux uses a number of shared libraries, including MKL, at run time.
These are included with the WARP3D distribution and are located in the
directory linux_packages of the distribution. This removes the need for the user
to install the (v. large) MKL library.
By using the latest shared MKL libraries included in the distribution on Linux,
the highest performance on each type of hardware is reached w/o re-compiling.
Intel permits re-distribution of these MKL libraries.
To re-build the threaded WARP3D executable, you need the Intel Fortran compiler
suite (ifort). To re-build the MPI + OpenMP threaded version,
the Intel MPI system must be installed.
run_macOS (a directory)
===========================
Pre-compiled executables for WARP3D, patwarp
These are built with Intel Fortran ifort and MKL.
The macOS version of WARP3D uses OpenMP (threads) to achieve very efficient
parallel execution.
The Intel sparse solver (Pardiso) is included in these executables - both
the direct and iterative options in Pardiso.
The Intel Fortran compiler system is NOT required to use the ready-to-run
executable provided is this directory.
To re-build the WARP3D executable, you need the Intel Fortran compiler (ifort)
system. The building process runs
from the Terminal window via the Makewarp.bash script -- answer the
questions.
patwarp (directory)
====================
Fortran code and compile scripts for the patwarp program.
In a shell window, just execute the compile script and choose
the platform on which to compile.
Note that each platform has a different compile script. Linux and
macOS have Bash scripts. Windows has a .bat file. The executables
are placed into the warp3d_project/run_<platform> directory.
macOS and Windows require only the Intel Fortran compiler (ifort).
Linux also requires the C-compiler (gcc) to build Metis .o files. The
Intel Fortran compiler (ifort) is used for the Fortran
parts of patwarp.
The patwarp program converts Patran neutral files for finite element
models into WARP3D input files. It also supports definition of 9, 12,
15 node transition elements that are partially supported by Patran.
On Linux patwarp includes/uses the METIS package to provide mesh partitioning
for MPI-based parallel execution. METIS is included in the patwarp directory,
and is automatically compiled from the patwarp compile script for Linux.
warp3d2exii (directory)
=======================
Contains a Python 3 program to create an ExodusII (.exo) database
for post-processing by ParaView and other programs.
The program is warp3d2exii.
warp3d2exII does the following:
1) reads flat model description file produced by WARP3D
(see manual Section 2.12)
2) then reads WARP3D generated "flat" result files (_text,
_stream or _text.gz)
The Exodus II database can be used by ParaView to post-process computed
displacements, strains, stresses, etc. on the FE model. It is an
exceptionally powerful tool (open source) with key visualization
capabilities usable with minimal introduction to the program.
The Python source code for warp3d2exII runs on Windows, Linux and
macOS. A Python 3 environment on your machine will be needed.
The Quixckstart document for each platform describes how to obtain/install
Python 3 if necessary.
license_agreement (a file)
===========================
Terms and conditions of the no cost Open Source license with terms and
conditions of the University of Illinois/NCSA Open Source License.
linux_packages (a directory)
=============================
This directory contains the source code, include files and shared
libraries needed to provide the additional functionality on Linux.
Specifically MKL, MPI and the hypre iterative solver from LLNL.
The shared libraries are accessed during re-build and
execution (gfortran) and during execution (Intel Fortran).
If you are building from the GitHub source, complete loading of
these libraries by running the bash shell script
install_libs_from_remote
in the WARP3D directory.
OSX_MKL_files (a directory)
===========================
Contains the freely distributed Intel MKL library files needed
to rebuild and run WARP3D on macOS using Intel Fortran (ifort).
The libraries are accessed during re-build and execution.
If you are building from the GitHub source, complete loading of
these libraries by running the bash shell script
install_libs_from_remote
in the WARP3D directory.
manual (a directory)
=====================
Contains the WARP3D users manual, warp3d_manual_<version>.pdf. There
is one .pdf file for the entire manual. It is fully bookmarked.
This is the technical report published by the University of Illinois.
The WARP3D manual is written using a combination of MS-Word, LaTeX,
and QuickSilver (formerly named Interleaf).
We are gradually converting the entire manual to LaTex. Let us know if
you want the .tex docs and all figures.
warp3d_script_linux_openmp
warp3d_script_linux_hybrid
warp3d_script_windows
warp3d_script_macOS
=================================
Simple Bash-shell scripts that can be customized to run WARP3D for OpenMP
parallel execution and combined MPI + OpenMP parallel execution.
Our groups put versions of these scripts in the ~/bin directory of users.
verification (multiple subdirectories)
============
Users are highly encouraged to exercise the software verification
facilities located here.
This is our key tool to verify most all of WARP3D after making
source code changes.
There are two Python 3 programs(run_tests.py, run_J_tests.py) to test
threads only cases on all 3 platforms.
These are used on Windows and macOS, e.g. python3 run_tests.py
For Linux, some additional setup is required before run_tests.py, run_J_tests.py
maybe run. Use the Scripts: run_test_Linux.bash, run_J_tests_Linux.bash
These in-turn invoke run_tests.py, run_J_tests.py
The Bash shell script run_mpi_tests.bash runs on Linux to test the
MPI version of WARP3D.
These interactive scripts conduct automated execution of WARP3D
over a wide array of models/simulations and compare results to
known good values - indicating clearly when differences arise.
The scripts present a menu of simulations to execute. The longest
verification problems run in a few minutes on 4-8 cores.
example_problems (5 directories)
================
A series of example problems that illustrate features of WARP3D.
Most are well documented and some have Patran.out files (neutral files
for the models)
Four directories are provided:
example_problems_for_READMEs - a few problems referred to in platform
specific README files just to test that WARP3D is installed
properly
manual_examples_chpt1 - WARP3D input files and supporting
files (e.g. Python scripts to make plots) for the
example problems described in Section 1.2 of the User Manual.
example_problems_threads - a large collection of simple to
complex problems set up to run in parallel using only threads.
See README in this directory for more details.
example_problems_mpi - problems set up to run in parallel using a
combination of MPI and threads (Linux only at this time).
These examples use the CPardiso & hypre (distributed iterative)
equation solver. See README in this directory for more details.
example_problems_cp - a set of problems that illustrate a variety of
applications of the crystal plasticity material model. See README
in this directory for more details.
combine_mpi_results_files (a directory)
=========================
When WARP3D runs in parallel using MPI with domain decomposition of
the mesh, patran and flat result files are constructed piecewise by each
process. The pieces must be combined into a single result
file with Patran or flat file format. This directory contains the source code
and compile script to build the combine program for each platform.
The compile script puts the executable in the appropriate run_<platform>
directory.
fracture_models (a directory)
===============
A set of complete, ready-to-run models for various fracture simulations.
The README file in the directory describes each model.
standard_fracture_specimens (a directory)
===========================
A set of complete, ready-to-run models for various standard fracture specimens (CT,
SCT, SEB, SSY).
patran_templates (a directory)
================
A set of template files for use with Patran. The
template files are accessed by Patran when the user imports
WARP3D results (displacements, nodal strain/stresses, element
strains/stresses, etc.) The template files inform Patran
of the ordering of data for each node or element in the results files,
the label that Patran displays for the result types (e.g. sigma-xx)
in the menu of choices for display.
We generally put the template files into the <patran>/res_templates directory
and invoke a chmod o+rx on them. However, the template files can be placed
and any convenient location - Patran always asks for the location.
We often now make a copy of the template files in directories where
Patran models are created and results post-processed. This is just for
convenience when Patran requests the location of the temp files.
These files are not used by ParaView for post-processing.
packet_dir (a directory)
==========
Contains our implementation of a sample Fortran program to read the
binary packets file of results that WARP3D can generate.
See Appendix F of the User Manual for details about packet results.
FEACrack_Validation.pdf (a file)
=======================
Quest Reliability of Boulder, Colorado develops
and markets a PC-based, graphical interface to WARP3D, ABAQUS
and ANSYS for 3-D fracture analysis. As part of their development, QR
validates the K and J solutions obtained from WARP3D, ABAQUS & ANSYS
with each other and with analytical solutions when available.
old_code (a directory)
========
Code no longer maintained as part of the distribution but that may be
of some use to researchers.
END OF README