Code History


Revision as of 20:28, 23 January 2011 by WikiSysop (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search



Code release Imminent (Jan 2011)


Released Jan 2011, straight to v2.0 (to correspond to serial code)

serial SPHysics

23 January 2010 - v2.2.001:

Multiple bug fixes including:

  • SPHYSICSgen_2D.f: corrected moment of inertia for rectangles
  • SPHYSICSgen_2D.f: corrected read(*,*) iopt_opt TO: read(*,*) iopt_wavemaker
  • densityFilter_Shepard: updated value of pVol(i) after filter
  • ac_KC_3D.f: added missing ycor(i) = eps*vx(i) * one_over_sum_wab
  • ac_3D.f, ac_MLS_3D.f, ac_KGC_3D.f ac_conservative_3D.f: added ly2=0 to initialise variable
  • movingObjects_3D.f added the following line:

inquire(file="MULT_MV",EXIST=mult_mv) BEFORE (line 38) if(mult_mv) call move_ext_file !arno

  • getdata_3D.f line 573 inserted mult_mv variable into:
     if(iopt_gate         .eq.1.or.
   &    iopt_wavemaker    .eq.1.or.
   &    iopt_RaichlenWedge.eq.1.or.
   &    iopt_FloatingBodies.eq.1.or.
   &    mult_mv) then !arno
       iopt_movingObject = 1
  • Gfortran version check for 3-D

04 October 2010 - v2.2.000:

For version 2.2, there are numerous bug features, but most importantly the addition of new complex geometry generator in 3-D. Details can be found in the new Blender_for_SPHysics_v2.2_GUIDE.pdf Multiple bug fixes including:

  • SPHYSICSgen_3D.f bug for h=sqrt(dx*dx + dy*dy + dz*dz)
  • SPHYSICSgen_3D.f bug for fill_part for floating objects (ytmin & ytmax)
  • Multiple moving objects interacting with object number 1
  • File DT being unfinished until end of simulation (now opened and closed consistently)
  • Floating_Objects.RESTART file added for restarting simulation
  • Intel Visual Fortran replaces Compaq Visual Fortran (CVF)

3 February 2010 - v2.0.001: For version 2.0, see details below of new code.

  • Corrected bug movingPaddle_2D/3D.f for single frequency piston paddle
  • Corrected bug in SPHYSICSgen_3D.f for ifort for Cases 6 & 7.

28 January 2010 - v2.0.000:

For version 2.0, there are many new features including kernel correction schemes, floating objects, Riemann solvers. Details can be found in the new SPHysics_v2.0.000_GUIDE.pdf


  • kernel gradient correction
  • floating objects
  • Riemann solvers
  • New cases added:
    • Case6 - floating boxes in waves (2-D & 3-D)
    • Case7 - Focused wave group approaching a trapezoidal coastal defence structure (2-D & 3-D)
    • Case8 - Dam-break with 2 falling boxes with X-periodic boundaries (2-D)

Source code bugs:

  • Have separate subroutines : poute_2D & poute_Conservative_2D
  • INDAT always in columns (better to read files from Matlab)
  • Normalization coefficients for Wendland 3D: AWen = 21/(16.pi) and BWen = AWen*-5
  • Shepard & MLS filters now appear with ac_Shepard / pre_celij_Shepard / pre_self_Shepard
  • Correct TIME for each PART
  • ipoute is used instead of ivort_calc
  • use vortx/y/z_temp in poute instead of vortx(npar)
  • Variables xm1 in Verlet were obsolete and removed
  • Some variables xdoto, xdotm1 in Beeman were obsolete and removed
  • Vorticity calculation as an option
  • Velocity gradients, CSPH, in separate routines
  • if(i.ge. nstart_ MLS.and.j.ge. nstart_ MLS)then before drx and call kernel in pre_MLS
  • nstart_Shepard = nbp1  !nstart and nstart_MLS = nbp1  !nstart
  • if(rr2.lt.fourh2.and.rr2.gt.1.e-18) then instead of if(rr2.le.fourh2.and.rr2.ge.1.e-18) then
  • Checkpointing (i.e. using RESTART repetitively for batch submissions on clusters)
  • nstart changed
  • Bug found by Arno Meyerhofer in LU_decomposition
  • message that Verlet and Beeman do not work with conservative formulation
  • Error Message for periodic boundaries cases with too few particles
  • Hughes and Graham (2010) suggestion to improve Dalrymple BC behaviour
  • Number of time steps to apply density filter, verlet or DBC correction as input data
  • AC replaced by AC_NONE
  • Floating bodies for Dalrymple BC
  • Paddle motion can be read from a file, e.g. Case7 for Focused wave group
  • Multiple trapezoids can be placed on a beach


  • Support has now been added for the Silverfrost FTN95 compiler on Windows, and for the GCC gfortran compiler on Cygwin (linux file system emulator)

BATCH files:

  • Batch files for unix/linux now report errors in compilation and successful completion of SPHYSICSgen
  • New batch files for Silverfrost FTN95 (formerly Salford FTN95)


  • Multiple Changes due to new compiling options.
  • Option for precision of XYZ variables: single or double


  • Matlab program to plot properties by colour (e.g. SPHYSICS2D_Plot_Magnitude.m)
  • Debugged PART2VTU_2D/3D.f

11 February 2009 - v1.4.000:

Source code:

  • Optimisations for gfortran and ifort compilers (-ipo)(SPHysicsgen.f)
  • CFL_number is input in CaseN.txt to calculate dt (SPHysicsgen.f; getdata.f; variable_time_step.f)
  • dt corrected for Predictor-corrector algorithm (step_predictor_corrector.f)
  • Equation of state for an ideal gas (SPHysicsgen.f ; EoS_IdealGas.f)
  • Changes in common (obsolete variables removed) (common.2D/3D)
  • The Beeman time-stepping algorithm is implemented (SPHysicsgen.f ; step_beeman.f)
  • The parameter KIND has been removed from subroutines ac, celij, self, kernel, viscosity.

BATCH files:

  • sph.out: output data from SPHYSICS is created in the code and some information appears on the screen, too.
  • Now SPHYSICSgen is automatically compiled using SPHYSICSgen_compiler.mak files


  • Case3_3D: Case3.txt.highRes or Case3.txt.lowRes
  • Changes due to new compiling options.


  • Paraview programs in Fortran. New file in Postprocessing/fortranRoutines: PART2VTU_2D/3D.f

22 April 2008 - v1.2.000 :

  • New version with Faster linked list and routines
    • (changes to divide_2D/3D.f, ini_divide_2D/3D.f, keep_list_2D/3D.f, recover_list_2D/3D.f, celij_BC_#choice#_2D/3D.f, self_BC_#choice#_2D/3D.f)
  • Moving Least Squares (MLS) Density Reinitialization added
  • RESTART option for stopping and restarting each simulation
  • New option for different Equations of State
  • Guide updated

12 November 2007 - v1.0.003 :

  • Corrected undefined tangents in updateNormals_2D.f
  • Corrected bugs and updated plotting routines, e.g. SPHYSICSgen2D/3D_Plot.m
  • Corrected bugs in subroutines fill_part & wavemaker for iBC=2 in SPHYSICSgen2D/3D.f
  • Changed parameters in some CaseN.txt files to obtain improved results

08 August 2007 - v1.0.002 :

  • Corrected permissions on linux .bat files
  • Edited README files for compiler choice

06 August 2007 - v1.0.001 :

  • Corrected directory SPHYSICS_2D to SPHYSICS2D CaseN_cvf.bat (same for 3D)
  • Corrected ..\Release to ..\..\execs in subroutine tocompile_cvf in SPHYSICSgen_2D.f & SPHYSICSgen_3D.f

01 August 2007 - v1.0 :