PhiPsi v1.61.10 (2026-10-19) new features and bug-fixes:

  1. Added the 2D Level Set (LS) method for XFEM, activated by the keyword *Key_Level_Set; it covers quasi-static and explicit dynamic crack propagation, hydraulic fracturing, crack-face contact, excavation and field problems, with improved signed-distance accuracy, node support-domain criteria and closed-loop detection of intersecting cracks.
  2. Added the 2D nodal stress area-weighted recovery algorithm, selected by *Key_Stress_Average (2 = area-weighted average, 2D only).
  3. Added the 2D pure FEM adaptive remeshing fracture solver (Franc2D-style), activated by *Key_FEM_Remeshing, with quarter-point rosette singular elements and displacement correlation SIFs, plus an explicit dynamics variant with time-integrated crack growth and variable time-step remeshing.
  4. Extended the pure FEM remeshing with the interaction integral method (IIM) for SIFs (*Key_SIFs_Method = 2) and the crack propagation criteria *CFCP = 1, 2 and 4.
  5. Added full support of all-triangle meshes (degenerated quadrilateral format) for quasi-static and explicit dynamics analyses; the user mesh is now fully reused instead of discarded, and the model outer boundary is correctly extracted.
  6. Added the 2D quasi-static phase field method (PFM) fracture simulation (*Key_Analysis_Type = 41), with the new keywords *Key_PF_Gc, *Key_PF_l0, *Key_PF_k, *Key_PF_Tolerance, *Key_PF_Max_Iter, *Key_PF_Load_Type and *Key_PF_use_spectral_split; the phase field data are saved in *.pfvn_<isub>. The spectral tension-compression split narrows the crack path and prevents false damage under pure compression.
  7. Added support for non-zero prescribed displacement boundary conditions in all 18 solid and fracture main programs, implemented with the equivalent load vector F_eff = F - K*U and the multi-step files *.ldpx_<s>, *.ldpy_<s> and *.ldpz_<s>.
  8. Added multi-step load support for applied forces, with the step files *.focx_<s>, *.focy_<s> and *.focz_<s>.
  9. Added the UMFPACK sparse direct solver for macOS, built natively from SuiteSparse 7.12.1 (UMFPACK 6.3.7) with 64-bit safe pointer handles; the SuperLU solver is also available on macOS.
  10. Implemented the Ramped Heaviside crack-tip enrichment in 2D and 3D explicit dynamics, including the F1-inspired enrichment function scheme, the derivative of R, the ahead-of-tip transition scheme and the transition band width keyword *EDY_Ramped_H_R_f.
  11. Added new outputs for 2D explicit dynamics: the lumped mass files *.lpmf, *.lpmx and *.lpma (*Key_EDY_Save_Lumped_Mass), the binary enrichment function R at Gauss points (*.rghr_iter) and the mechanical energy history with the energy difference Delta_E_mech (*EDY_Key_Cal_Energy = 1, file *.edye).
  12. Added the 2D Gauss quadrature options 40x40 = 1600 and 50x50 = 2500, and completed the block square and block cube integration scheme (*Key_Integral_Sol = 3).
  13. Extended the KPP arithmetic expressions with the right-associative power operator, the constants PI and E and 14 built-in functions (sqrt, sin, cos, tan, asin, acos, atan, atan2, exp, log, log10, abs, min, max); the operator precedence, the parameter substitution, the derived parameter forward reference and the false detection of file paths as division expressions were also fixed.
  14. Implemented the robust geometric intersection based on homogeneous coordinates and implicit line equations, removing the division-by-zero and cancellation problems of the classical slope-intercept method.
  15. Fixed the missing excavation element weakening in the element-by-element solver, which caused divergence and displacement locking in excavation problems, and the uninitialized variables in 18 core source files.
  16. Fixed the explicit dynamics rollback of non-positive time steps, the macOS SIGSEGV when writing the 3D energy history and the excessive per-step output of Gauss point coordinates and stresses under *CFCP = 2.
  17. Fixed the division by zero and NaN propagation in the stress recovery of degenerated quadrilateral (triangle) elements and the crack growth path of the pure FEM remeshing solver.
  18. Fixed the result files written at remeshing steps, so that the mesh, displacement, stress, velocity and acceleration files always share the same node count.
  19. Extended the automated regression suites on Windows and macOS with the Level Set, phase field, 2D explicit dynamic crack propagation (Freund and Kalthoff series) and UMFPACK cases; the hydraulic fracturing case no longer breaks the whole run, and the 11 macOS UMFPACK cases were all re-enabled and passed.
  20. Updated the keywords manual with the new keywords, and removed the unused global module use statements from the Fortran sources.
  21. Bug fixes and performance optimizations throughout.

PhiPsi v1.59.57 (2026-07-15) new features and bug-fixes:

  1. Added MUMPS and Lis solver support for Linux Alpine version.
  2. Fixed OpenBLAS thread count mismatch with Key_Num_Process, ensuring solvers respect the specified thread count. Added -Dopenblas compilation directive.
  3. Updated MUMPS solver to version 5.9.0 with symmetric matrix support.
  4. Implemented OpenMP parallelization for 3D XFEM stiffness matrix assembly and SIF calculation (Cal_SIFs_IIM_3D.f90), with significant performance improvement.
  5. Extended CFCP=1 (maximum circumferential stress criterion) to 3D problems.
  6. Added energy curve calculation for 2D quasi-static problems (*Key_Cal_Energy, *.ener file) including external work, fracture energy, elastic strain energy, and residual energy.
  7. Adjusted Kequ_Expected and St_Expected coefficients to improve energy calculation accuracy.
  8. Added keywords for 2D explicit dynamics: *DY_SIFs_IIM_Enable_Velocity_Coupling, DY_SIFs_IIM_Enable_f1_f2, DY_Save_Propagation_Speed_at_Specified_Tip (.prst), and *DY_Time_to_Active_Crack_Propagation.
  9. Fixed bugs in Check_Crack_Grows.f90 (missing KII in equivalent SIF calculation) and Cal_SIFs_IIM.f90 (uninitialized variables).
  10. Fixed frequent errors in 2D crack propagation with Key_Propa_Type=1 by converting fixed-dimension arrays to dynamically allocated ones.
  11. Migrated all fixed-form (.f) source files to free-form (.f90) across all directories.
  12. Removed Silverfrost compiler related content and standardized code indentation.
  13. Added progressive H-tip enrichment for 2D fracture (Key_TipEnrich=5, Asymptotic H function).
  14. Added keyword *DY_Save_Crack_Length_2D for saving crack length data to *.dcrl and *.dprl files.
  15. Added keyword DY_Save_SIFs_at_Specified_Tip for saving SIFs at specified crack tips (.sift file) in 2D explicit dynamics.
  16. Added EDY_Number_Enriched_Nodes_3D.f90 with two-phase stable numbering strategy to fix enriched DOF correspondence issues in 3D explicit dynamics.
  17. Implemented local L² projection subroutines for history-preserving enriched DOF transfer during crack propagation in 3D explicit dynamics (testing ongoing).
  18. Added keyword EDY_Save_SIFs_at_Specified_Plane for saving SIFs at intersection points with specified planes (.sfpl file).
  19. Added keyword EDY_Save_Aperture_at_Specified_Point for saving aperture at user-specified points (.apep file) in 3D explicit dynamics.
  20. Added keyword *EDY_Crack_Propagaton_at_Specified_Time_and_Speed for crack propagation at specified time and speed.
  21. Added keyword EDY_Save_SIFs_at_Specified_Point for saving SIFs at user-specified points (.sifp file) in 3D explicit dynamics.
  22. Improved lumped mass matrix algorithm using Gravouil_2009 equation 41 instead of Menouillard_2006 equation 25.
  23. Added inertial terms and frictional surface traction terms to interaction integral SIF calculation.
  24. Added adaptive contact penalty parameter algorithm (Key_EDY_Contact_Penalty_Parameter_Scheme=2).
  25. Added keyword *Key_EDY_Lumped_Mass_Scheme (default=3) with three options for lumped mass matrix assembly.
  26. Added keyword EDY_Internal_Force_Scheme with three options including graph coloring for parallel computation.
  27. Added energy calculation for explicit dynamics (kinetic, internal, total) with Save_EDY_Energy.f90 (*.edye file).
  28. Improved 3D explicit dynamics FEM by replacing mass matrix with mass vector, reducing computation time by 86.67% and memory usage by 76.07%; further improved using sparse CSR format, reducing time by 50%.
  29. Added keywords EDY_Data_Save_Interval_Timesteps, EDY_Info_Show_Interval_Timesteps, EDY_Total_Time, and EDY_Force_Time for explicit dynamics control.
  30. Added keyword *Key_3D_Slip_HF_Keep_Pressure to maintain fluid pressure after each fracturing stage without further propagation.
  31. Added keyword Key_Save_Stiffness_Matrix for saving stiffness matrix to text files (.csra, *.csrj, *.csri, *.csrn).
  32. Fixed major bugs in EBE-PCG solver (Ele_by_Ele_FEM_PCG_3D.F90 and Ele_by_Ele_FEM_PCG.F90): corrected constrained DOF processing, switched to true residual norm as convergence criterion, and fixed preconditioner calculation.
  33. Fixed major bug in Ele_by_Ele_XFEM_PCG_3D.90 by adding Elem_Topology_Markers_3D to determine which XFEM elements need recalculation through topological changes.
  34. Increased EBE-PCG solver convergence tolerance from 1.0D-6 to 1.0D-9.
  35. Added keyword *User_Specified_Crack_Mesh_Size for user-defined discrete fracture mesh size for 3D fractures.
  36. Added keywords *Key_Cracks_InPlane_Growth and *Key_Initiation_3D_Crack_Normal_Vector for 3D crack control.
  37. Added keyword *HF_Pres_Initial_Guess for 3D hydraulic fracturing.
  38. Fixed initialization bugs in 3D explicit dynamics (initial velocity, SIF inertial terms, contact force NaN issues).
  39. Bug fixes and performance optimizations throughout.

PhiPsi v1.58.8 (2026-02-12) new features and bug-fixes:

  1. Added interaction integral method for 3D stress intensity factor calculation.
  2. Improved the logic for 2D crack and hole intersection: if a hole is just penetrated by a crack in the current propagation step, it will no longer be checked for new crack initiation in that same step.
  3. Fixed an issue in Tool_Dis_Point_to_3D_Tri.F and Tool_Dis_Point_to_3D_Tri_only_Dis.F90 where an excessively small tolerance caused failure in calculating the distance from a point to a 3D triangle when dealing with very small elements.
  4. Added the keyword Key_3D_SIFs_Print to output stress intensity factors at each vertex of 3D problems to the screen.
  5. Bug fixes.

PhiPsi v1.56.12 (2024-11-17) new features and bug-fixes:

  1. A new solver STRUMPACK for linear system equations has been added.
  2. Improved sparse stiffness matrix assembly algorithm.
  3. Added keyword *Key_User_Defined_2D_Crack_Path. When activated, cracks will propagate along the user-defined paths in 2D analysis.
  4. The BLAS library has been replaced by OpenBLAS.
  5. The SuperLU solver for linear system equations has been updated to version 7.0.0.
  6. Added keyword *Key_Weibull_E_n. When *Key_Weibull_E_n = 1, it activates Weibull distribution for elastic modulus of materials. See PhiPsi keywords manual for details.
  7. The Lis solver for linear system equations has been updated to the latest version 2.1.6.
  8. The MUMPS solver for linear system equations has been updated to the latest version 5.7.3.
  9. Bug fixes.
  10. A new maximum shear stress fracture propagation criterion was added (*CFCP=4, see PhiPsi keywords manual for details).
  11. The gfortran compiler has been updated to GCC version 14.1.0.
  12. Bug fixes and enhancements of 3D XFEM.
  13. Keywords file now supports parameter definition and four arithmetic operations (+,-,*, and /). See PhiPsi keywords manual for details.
  14. Now you can start a PhiPsi simulation in Terminal using the following instruction, for example:
PhiPsi_Win64.exe -i XFEM.kpp -n 4
where -n specifies the number of threads for the OpenMP parallel simulation.

PhiPsi v1.55.15 (2023-08-14) new features and bug-fixes:

  1. Enhancements of 3D XFEM.
  2. Support output vtk files for 3D cracks (Set *Key_Save_vtk to 1).
  3. Compiler updated to GCC version 13.1.0.
  4. New method to calculate 3D crack aperture (Set *Key_Crack_Aperture_Method to 1 to active).
  5. Support degenerated hexahedral elements.
  6. Some bugs on data conflicting in OpenMP have been fixed.
  7. Now supports intersection of arbitrary 3D cracks and the simulation of 3D complex fracture network.
  8. Add a new linear system solver: PCG-EBE (Set *Key_SLOE to 11).
  9. Supports simulation of contact between3D crack surfaces.
  10. Dynamic memory management for 3D XFEM simulation.
  11. Supports generation of random 3D natural fractures.
  12. Supports the import of FracMan natural cracks file (*.fab file).
  13. Bug fixes.
  14. Optimization.

PhiPsi v1.25.0 (2019-08-01) new features and bug-fixes:

  1. Kill elements to simulate excavation.
  2. Bug fixes.
  3. Optimization.

PhiPsi v1.23.2 (2019-04-16) new features and bug-fixes:

  1. Propagation of 3D cracks.

PhiPsi v1.21.0 (2018-09-26) new features and bug-fixes:

  1. A new linear solver SuperLU added.
  2. README.txt added.

PhiPsi v1.20.2 (2018-09-10) new features and bug-fixes:

  1. Support field problems with cracks and holes.

PhiPsi v1.19.1 (2018-08-28) new features and bug-fixes:

  1. Fixes a critical bug on stiffness matrix assembly of different kinds of enriched elements.
  2. Support random hole generation.
  3. Support cracks emerged form holes.

PhiPsi v1.18.6 (2018-06-19) new features and bug-fixes:

  1. Support triangular elements degenerated from quadrilateral elements.
  2. Improve the interactive display of error and warning information.
  3. Support nonlinear analysis such as plastic analysis.

PhiPsi v1.17.4 (2018-01-11) new features and bug-fixes:

  1. Add a linear system solver called Lis which supports OpenMP.
  2. Computational efficiency optimization (up to 50% as least).
  3. Add the support for the interactions between cracks and polygonal inclusions.

PhiPsi v1.16.3 (2017-10-31) new features and bug-fixes:

  1. Add the peridymanic analysis for simple problems.
  2. Add the support for the random generation of the irregular polygon inclusions.
  3. Add a new random generation algorithm which is controlled by a seed number.
  4. Improvements on the save of the binary data.
  5. Adds a new integration rule, i.e., subquads integration.
  6. Change the suffix of the keywords file to kpp.
  7. Add the support for curved cracks.
  8. Improvement: expand dimensions of related matrices when calculating the B matrix.

PhiPsi v1.13.7 (2017-05-21) new features and bug-fixes:

  1. Fix the bug in subroutine Get_Node_Stress_XFEM.f.
  2. Improvements of subroutines Vector_belongs_Matrix_Is_Dou.f, Vector_belongs_Matrix_Is_Int.f, and Matrix_Count_Row_Int.f.
  3. Rewrite the subroutine Tool_Intersection_Line_and_Circle.f with a totally new scheme.
  4. Improvement: clear all the results files in the current work directory by setting the keyword *Key_Clear_All to be 1.
  5. Add the support for the simulation of the intersection of cracks and holes.
  6. Add the support for the crossing crack.
  7. Improvement: identify the input parameters of the executable program by using "getarg" function.

PhiPsi v1.9.0 (2017-04-16) new features and bug-fixes:

  1. Fix a bug for the analysis of the static field problems.
  2. Add the analysis type for the transient field problems.
  3. Add the explicit dynamic analysis.
  4. Enhance OpenMP supports in the following subroutines: a) Get_Node_Stress_FEM.f b) Get_Gauss_Stress_FEM.f c) Assemble_Mass_Matrix_FEM.f d) Assemble_Stiffness_Matrix_FEM.f e) Get_Gauss_Disps.f
  5. Add the molecular dynamics analysis.
  6. Add the support for the plasticity material and damaged material.
  7. Add the support for the cohesive crack.
  8. Improvement: propagation increment is now allowed to be less than the length of an element.

PhiPsi v1.5.3 (2016-11-01) new features and bug-fixes:

  1. Add 3D XFEM analysis for the simple 3D planar crack.
  2. Add the support for the coupling of degrees of freedom (DOFs).
  3. Add the implicit dynamic analysis.
  4. Add the support the thermal stress.
  5. Add the support for the Biot consolidation.
  6. Add the analysis type for the static field problems.