Skip to main content

GrowClust3D.jl

GrowClust3D is a new-and-improved Julia implementation of GrowClust, a software package for the relative relocation of earthquake hypocenters. Just as in the original (Fortran90) implementation, GrowClust3D uses a clustering approach to relocate earthquake catalogs based on differential time data obtained (externally by the user) from waveform cross-correlation. The Julia release includes several new features that will likely be of interest to users, including:

  • the ability to relocate using travel time grids obtained from 3D models
  • the option to parallelize uncertainty quantification through multithreading or multiprocessing
  • the explicit use of map projections and station elevations during the relocation process
  • the removal of array size constraints, which are now determined on the fly
  • the refinement of several program defaults and definitions to improve algorithm robustness
  • and more yet to come!

Usage on Elja

To use GrowClust3D.jl on Elja the following commands must be issued:

[user@elja-irhpc ~]$ module use /hpcapps/lib-edda/modules/all/Core 
[user@elja-irhpc ~]$ module use /hpcapps/lib-geo/modules/all
[user@elja-irhpc ~]$ module load GrowClust3D.jl

The GrowClust3D script and the programming language Julia are now available in your $PATH To run GrowClust3D on input files you can run the following command:

[user@elja-irhpc ~]$ srun --partition gpu-2xA100 -n 1 --pty bash
[user@elja-irhpc ~]$ growclust /hpcapps/lib-edda/easybuild/software/GrowClust3D.jl/test/test.grid3D.inp

:::Note On more information about srun and sbatch please have a look at Submitting Slurm Jobs General usage on submitting a job :::

The growclust command is a small bash script that runs the GrowClust3D.jl file for you with any parameters you provide it:

[user@elja-irhpc ~]$ cat growclust
#!/bin/bash

julia -t1 /hpcapps/lib-edda/easybuild/software/GrowClust3D.jl/test/run_growclust3D.jl $@