Click here to download the latest version of PhiPsi: http://phipsi.top/downloads.html.
1. Introduction to PhiPsi_Win64.exe.
2. Requirements and installation.
3. Usage and running the test.
The PhiPsi executable program, which can be run by double-clicking and then input keywords file (*.kpp), or run in batch mode using Windows terminal.
A folder contains input files for a simple 2D FEM example, including nodes, elements, force and boundary condition information. See Section 3.3 for details.
A folder contains input files for a simple 2D XFEM example, including nodes, elements, force and boundary condition information. See Section 3.3 for details.
Example keywords file which contains necessary control parameters to perform an analysis, it will be read by PhiPsi_Win64.exe. It is composed of some Keywords, such as *Work_Directory, *Filename, *Key_Analysis_Type, etc. It should be noted that, in this example kpp file, keyword *Work_Directory should be the directory of 'FEM Folder' (for example, X:\PhiPsi Work\FEM).
Example keywords file which contains necessary control parameters to perform an analysis, it will be read by PhiPsi_Win64.exe. It is composed of some Keywords, such as *Work_Directory, *Filename, *Key_Analysis_Type, etc. It should be noted that, in this example kpp file, keyword *Work_Directory should be the directory of 'XFEM Folder'(for example, X:\PhiPsi Work\XFEM).
This folder contains some tools written in Python to perform tasks including clean resuls files before a simulation, play sound when finish a simylation, etc.
A log file generated by PhiPsi_Win64.exe. This file logs the analysis performed by PhiPsi_Win64.exe.
Windows batch files used to perform PhiPsi analysis synchronously and sequentially, respectively. See OPTION 3 in Section 3.2 for details.
PhiPsi is a computational solid mechanics program, which involves the eXtended Finite Element Method (XFEM) as well as the Finite Element Method (FEM). The program is written in Fortran and compiled using the GNU Fortran compiler (gfortran 13). The program is named PhiPsi because
PhiPsi was initially developed in order to solve problems involve defects such as cracks, voids, and inclusions. Now, the problems which can be solved by PhiPsi include:
The data generated by PhiPsi can be post processed by a Post-Processor program written in Matlab. You can download the latest version of executable PhiPsi for the windows platform, the source codes of an earlier version of PhiPsi, the source codes of the Matlab Post-Processor, and some other tools from http://phipsi.top/downloads.html.
A 64-bit windows operation system is required, including Windows XP 64-bit, Win7, Windows Vista, Win8, Win10 and Win11.
Python 3 is required to run the python scripts. If you do not want to install python, never mind, everything is fine.
After downloading, copy all the files in the folder which contains this README.md file into any folder you like.
There are two options to use PhiPsi.
The input files of PhiPsi include a keywords file and other data files contain the node coordinates ( *.node), element-node information ( *.elem), boundary conditions ( *.boux and *.bouy), and external forces ( *.focx and *.focy). The keywords file ( *.kpp) defines information such as the work directory, analysis type, coordinates of initial cracks. The data files can be generated automatically by run the macro file called Ansys2PhiPsi_2D.mac for 2D problems (or Ansys2PhiPsi_3D.mac for 3D problems) once the model is created in ANSYS. Certainly, you can define the data files by using other software such as Abaqus (A useful tool to convert Abaqus inp model file to PhiPsi input files can be found from http://www.phipsi.top/source/Abaqus2PhiPsi_Matlab.rar) or just generate it manually.
Once PhiPsi (PhiPsi_Win64.exe) starts, it will check all the input files firstly. After the analysis, the output files will be saved to the working directory. A Matlab-based program (all the source codes are available for download, see "The source codes of the Post-Processor written in Matlab" on page http://phipsi.top/downloads.html) is offered for post-processing. A tutorial (a pdf file) is available on the downloads page (see "The tutorial" on page http://phipsi.top/downloads.html).
This document describes only OPTION 1.
Alternatively, you can also perform an analysis using PPView ( A Visualization Tool for PhiPsi). It can be used to import Abaqus inp file, view the model defined in the PhiPsi keywords file (*.kpp), edit PhiPsi keywords file, perform a PhiPsi simulation, and view the simulation result files generated by PhiPsi. The PPView Help Manual can be found from here (PPView Help Manual). Download PPView for Windows 10 or Windows 11 from here directly or from Google Drive / Baidu Cloud Drive / Tencent Cloud Drive.
There are three options to use PhiPsi_Win64.exe with specified keywords file.
Double-click PhiPsi_Win64.exe, when asked for enter the name of the keywords file, then do it and press Enter button. If the keywords file, i.e., the *.kpp file is in the same folder as PhiPsi_Win64.exe, then you need only enter the name of kpp file without directory.
After the analysis, you can use the Post-Processor written in Matlab to perform the post-processing. Post-Processor can be downloaded from http://phipsi.top/downloads.html (see "The source codes of the Post-Processor written in Matlab").
Open Windows terminal, use cd command to change directory to the folder which contains PhiPsi_Win64.exe, then enter PhiPsi_Win64.exe and press Enter button, and then enter the kpp file just as what you should do in OPTION 1.
Alternatively, your can run PhiPsi by typing a command line as follows:
PhiPsi_Win64.exe -i "X:\PhiPsi Work\FEM.kpp" -n 4
where -i specifies the file path of the keywords file (*.kpp), and -n specify the number of threads for the OpenMP parallel simulation.
New a *.txt file in the folder which contains PhiPsi_Win64.exe and rename it as *.bat. Edit this bat file just as follows:
echo Staring test1...
start /wait "" "PhiPsi_Win64.exe" -i FEM.kpp -n 2
echo Staring test2...
start /wait "" "PhiPsi_Win64.exe" -i XFEM.kpp -n 2
Double-click this bat file to run synchronously FEM.kpp and XFEM.kpp. If you want to run sequentially, then you just need to edit the bat file as:
echo Staring test1...
start "" "PhiPsi_Win64.exe" -i FEM.kpp -n 2
echo Staring test2...
start "" "PhiPsi_Win64.exe" -i XFEM.kpp -n 2
Keywords file of PhiPsi, composed of Keywords that begins with character "*", see Section 5 for details on PhiPsi Keywords manual. The lines beginning with character "%" are comment lines. For example:
% Working directory.
*Work_Directory
X:\PhiPsi Work\FEM
% Filename of input files.
*Filename
FEM
% Analysis type (Quasi-static).
*Key_Analysis_Type
1
% Plane stress.
*Key_Type_2D
1
% Linear system solver (SuperLU).
*Key_SLOE
9
% Number of propagation steps.
*Num_Substeps
1
% Material(1-E,2-v,3-density,4-thick,5-St,6-KIc,7-Sc,8-20(blank))
*Material_Para_1
70.0e9,0.3,2700.0,1.0,1.0e6,1.0e6,100.0e6,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
% Play sound (using python2.7).
*Key_Play_Sounds
1
Generally, 6 files are necessary for a 2D simulation, i.e., *.node file, *.elem file, *.boux file, *.bouy file, *.focx file, and *.focy file. And 8 files are necessary for a 3D simulation, i.e., *.node file, *.elem file, *.boux file, *.bouy file, *.bouz file, *.focx file, *.focy file, and *.focz file.
This file defines coordinates of each node. The number of rows in this file is the same as the number of nodes. For 2D problems, this file should be presented in the format (
0.50000000E-01 0.00000000E+00
-0.40000000E-01 0.30000000E-01
0.49610478E-01 0.62290027E-02
0.48447981E-01 0.12360952E-01
0.46530622E-01 0.18300307E-01
0.43888275E-01 0.23954527E-01
0.40562109E-01 0.29235514E-01
0.36603951E-01 0.34060986E-01
0.32075470E-01 0.38355759E-01
0.27047226E-01 0.42052914E-01
......
For 3D problems, this file should be presented in the format (
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.50000000E+01 0.00000000E+00 0.00000000E+00
0.10000000E+01 0.00000000E+00 0.00000000E+00
0.20000000E+01 0.00000000E+00 0.00000000E+00
0.30000000E+01 0.00000000E+00 0.00000000E+00
0.40000000E+01 0.00000000E+00 0.00000000E+00
0.50000000E+01 0.50000000E+01 0.00000000E+00
0.50000000E+01 0.10000000E+01 0.00000000E+00
0.50000000E+01 0.20000000E+01 0.00000000E+00
0.50000000E+01 0.30000000E+01 0.00000000E+00
......
This file defines the 4 nodes of each quadrilateral element. The number of rows in this file is the same as the number of elements. For 2D problems, this file should be presented in the format (
1 3 81 62 1
3 4 100 81 1
4 5 119 100 1
5 6 138 119 1
6 7 157 138 1
7 8 176 157 2
8 9 195 176 2
9 10 214 195 2
10 11 233 214 2
11 12 252 233 2
......
For 3D problems, this file defines the 8 nodes of each quadrilateral element, and the format is (
1 3 21 20 50 51 153 121 1
2 4 25 21 51 55 169 153 1
3 5 29 25 55 59 185 169 1
4 6 33 29 59 63 201 185 1
5 2 8 33 63 38 76 201 1
1 21 22 19 121 153 157 125 2
2 25 26 22 153 169 173 157 2
3 29 30 26 169 185 189 173 2
4 33 34 30 185 201 205 189 2
5 8 9 34 201 76 80 205 2
......
These three files contain information about boundary conditions, define nodes whose degrees of freedom are constrained in
50
92
97
98
99
It should be noted that *.bouz is only available for 3D problems.
These three files contain information about external forces, define nodes with force applied in
487 0.45000000E+04
488 0.45000000E+04
489 0.45000000E+04
It should be noted that *.focz is only available for 3D problems.
These three files contain information about non-zero boundary conditions, define nodes whose degrees of freedom are constrained at a non-zero value in
1 0.10000000E-01
2 0.10000000E-01
3 0.10000000E-01
It should be noted that *.buzn is only available for 3D problems.
This file is necessary for field problems and defines field values of specified nodes. This file should be presented in the format (node_number, field_value), for example:
1 -0.30000000E+02
2 -0.30000000E+02
3 -0.30000000E+02
4 -0.30000000E+02
5 -0.30000000E+02
6 -0.30000000E+02
7 -0.30000000E+02
8 -0.30000000E+02
9 -0.30000000E+02
10 -0.30000000E+02
......
This file is necessary for field problem and defines flux of specified nodes. This file should be presented in the format (node_number, flux), for example
1 1.00000000E+00
2 1.00000000E+00
3 1.00000000E+00
4 1.00000000E+00
......
This file defines earthquake acceleration values for earthquake analysis (when keyword *Key_EQ = 1), for example:
-7.5598
-5.3088
-3.3145
-1.4194
0.2725
0.9968
1.0547
1.0481
......
The following output files are generated by PhiPsi_Win64.exe after performing the analysis, and are stored in the folder defined by the keywords *Work_Directory.
This file stores some key information of the analysis. For example:
Analysis type | Crack-tip type | Data format | Key_H_Value | Key_Hole_Value | Ave_Elem_L
1 1 1 -1 0 1.00000
This file stores dispalcements of nodes generated at load step
......
34, -0.467926263384E-05, 0.419542374087E-06
35, -0.469104701689E-05, 0.617977716660E-06
36, -0.470546275930E-05, 0.802658990736E-06
37, -0.472032630946E-05, 0.968760298709E-06
38, -0.473268608950E-05, 0.111127141917E-05
......
For 3D problems, the file format is (node_number
......
3780 0.737379554187E-04 -0.763808664114E-03 0.662900115050E-02
3781 0.708322234178E-04 -0.697596785199E-03 0.716042769529E-02
3782 0.678586850598E-04 -0.638530077174E-03 0.767755784595E-02
3783 0.642688033432E-04 -0.575506959266E-03 0.818137849393E-02
3784 0.594566432214E-04 -0.499317330865E-03 0.867348144814E-02
......
This file stores dispalcements of Gauss points generated at load step
......
6 -0.681966248546E-07 0.174855529000E-06
7 -0.104263194381E-06 0.478694416204E-07
8 -0.103208726099E-06 0.178651188257E-06
9 -0.131780383643E-06 0.488623631234E-07
10 -0.130645195650E-06 0.182356821755E-06
......
This file stores displacements of nodes generated at load step
-0.466896194407E-05
0.000000000000E+00
-0.566032590142E-07
0.000000000000E+00
......
For 3D problems, the file format is (
0.210057007761E-02
0.837429251589E-04
0.192054550639E-04
0.129365417926E-03
0.199100066146E-03
0.550890425222E-03
......
This file stores stress intensity factors of each tip of each crack at load step
0.260374752174E+06 0.467185152343E+06 0.122785020115E+06 0.389981389457E+06
0.323802318295E+05 -0.117843181408E+06 -0.770509388350E+05 -0.193638531237E+06
0.372632001601E+06 -0.147258816863E+06 0.365137977201E+06 -0.138715162319E+06
This file stores stress of nodes generated at load step
1 -0.357641123386E+05 0.659542676662E+07 0.138064598368E+05 0.607064386061E+07
2 -0.370598733137E+05 0.640285157136E+07 -0.320217935736E+05 0.589529626923E+07
3 -0.916837723784E+05 0.662868252994E+07 0.187424259637E+05 0.614161688903E+07
4 -0.228102575626E+06 0.684666995390E+07 0.229913659892E+05 0.644075924405E+07
5 -0.440568565847E+06 0.721385450541E+07 0.267455435160E+05 0.693352411155E+07
......
File format for 3D problems is (
0.103380715181E+08 0.103380715181E+08 0.241221668755E+08 0.000000000000E+00 0.432472930636E+07 0.422517735880E+07
0.103535393533E+08 0.103535393533E+08 0.241582584911E+08 0.000000000000E+00 0.433712819417E+07 -0.423710224234E+07
0.822115304470E+07 0.822115304470E+07 0.191826904376E+08 0.000000000000E+00 0.426738252654E+07 0.254198239071E+07
0.781867402679E+07 0.781867402679E+07 0.182435727292E+08 0.000000000000E+00 0.428511509043E+07 0.174077141830E+07
0.757832787209E+07 0.757832787209E+07 0.176827650349E+08 0.000000000000E+00 0.424329974171E+07 0.123470458056E+07
......
This file stores stress of Gauss points generated at load step
1 -0.303647984890E+05 0.660675866845E+07 0.187790033225E+05 0.607717203635E+07
2 -0.228860071512E+05 0.660862836628E+07 0.295144633963E+05 0.607361759517E+07
3 -0.230923900636E+05 0.663584830215E+07 0.216287846946E+05 0.609861381279E+07
4 -0.156135987259E+05 0.663771799998E+07 0.323642447683E+05 0.609507689516E+07
5 -0.143636979631E+06 0.666896756246E+07 0.406114230194E+05 0.621657686172E+07
......
This file stores coordinates of Gauss points generated at load step
1 0.147927405784E-03 0.145579351958E-03
2 0.147927405784E-03 0.543309538042E-03
3 0.552072594216E-03 0.145579351958E-03
4 0.552072594216E-03 0.543309538042E-03
5 0.847927405784E-03 0.145579351958E-03
......
These file store
0.343000000000E-01 0.433000000000E-01
0.433000000000E-01 0.343000000000E-01
0.883063441879E-02 0.915860471085E-02 0.939531592630E-02 0.970000000000E-02
0.430000000000E-02 0.133000000000E-01
0.133000000000E-01 0.430000000000E-02
This file store information about load step, substep, and step time, for example:
imf | ifra | total_ter| time
1 1 1 5.56323
1 1 2 4.23361
1 1 3 4.25468
1 1 4 4.26472
1 1 5 4.26440
1 1 6 4.26432
1 2 7 9.97560
1 2 8 6.28206
1 2 9 6.19229
1 2 10 6.19146
1 2 11 6.19146
1 3 12 13.03537
1 3 13 9.67422
1 3 14 9.78424
1 3 15 9.79946
1 3 16 9.79838
This vtk file stores the results of nodes and elements at load step
# vtk DataFile Version 4.0
X:\PhiPsi_Work\exa_3D_block_tension\exa_3D_block_tension - results from increment 0001
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 5832 double
0.000000 0.000000 0.000000
17.000000 0.000000 0.000000
1.000000 0.000000 0.000000
2.000000 0.000000 0.000000
3.000000 0.000000 0.000000
......
CELLS 4913 44217
8 0 2 68 67 373 374 1736 1224
8 2 3 84 68 374 390 1992 1736
8 3 4 100 84 390 406 2248 1992
......
CELL_TYPES 4913
12
12
12
......
SCALARS Element_ID int
LOOKUP_TABLE default
1
2
3
4
5
......
POINT_DATA 5832
VECTORS Displacement double
-0.131954990094E-02 0.141597199813E-02 0.836084920257E-02
-0.528204104886E-03 0.532349419725E-03 0.833877259072E-03
-0.737678990062E-03 0.749632729946E-03 0.138138742438E-02
......
SCALARS stress_xx double
LOOKUP_TABLE default
0.962069787688E+07
0.962166068159E+07
0.756335159397E+07
......
SCALARS stress_yy double
LOOKUP_TABLE default
0.000000000000E+00
0.000000000000E+00
0.000000000000E+00
......
SCALARS Node_Number integer
LOOKUP_TABLE default
1
2
3
4
5
......
SCALARS Enriched_Node_Type int
LOOKUP_TABLE default
0
0
0
0
......
This vtk file stores the results of cracks at load step
# vtk DataFile Version 4.0
X:\PhiPsi_Work\exa_3D_block_tension\exa_3D_block_tension - results from increment 0005
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 137 double
6.500000 6.500000 10.999900
7.500000 6.500000 10.999900
8.500000 6.500000 10.999900
9.500000 6.500000 10.999900
10.500000 6.500000 10.999900
......
CELLS 245 980
3 0 1 5
3 1 6 5
3 1 2 6
3 2 7 6
......
CELL_TYPES 245
5
5
5
5
......
CELL_DATA 245
SCALARS Crack_ID int
LOOKUP_TABLE default
1
1
1
1
......
SCALARS Crack_Element_ID int
LOOKUP_TABLE default
1
2
3
......
POINT_DATA 137
SCALARS Crack_Node_Number integer
LOOKUP_TABLE default
1
2
3
4
5
......
SCALARS Crack_Node_Aperture double
LOOKUP_TABLE default
0.291586464535E-02
0.309378576419E-02
0.230428233873E-02
0.306511996250E-02
......
The keyword manual of PhiPsi can be found here: http://phipsi.top/phipsi_keywords_manual.html