Code History

## Contents |

Code release Imminent (Jan 2011)

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

**23 January 2010 - v2.2.001: **

Multiple bug fixes including:

- SPHYSICSgen_2D.f: corrected moment of inertia for rectangles
- SPHYSICSgen_2D.f: 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**

*Features:*

- 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

*COMPILERS:*

- 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)

*CaseN.txt:*

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

*Postprocessing:*

- 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

*CaseN.txt:*

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

*Postprocessing:*

- 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

- New version with Faster linked list and routines

**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 : **

- CODE RELEASED!