Collisions

Test-case based on reproducing figure 2 of [SKK+09].

Compile Program

First build and compile the test case using the ./scripts/build_compile.sh helper script. E.g. for a OpenMP build in /work/mh0731/m300950/validating_cleo/build using the intel compiler and source directory in /home/m/m300950/validating_cleo/src/:

$ ./scripts/build_compile.sh \
    openmp \
    intel \
    /home/m/m300950/validating_cleo/src/ \
    /work/mh0731/m300950/validating_cleo/build

Then compile the example with the colls_golovin and colls_long and colls_testikstraub executables with:

$ ./scripts/compile_only.sh \
    [colls_golovin or colls_long or colls_testikstraub] \
    openmp \
    intel \
    /home/m/m300950/validating_cleo/src/ \
    /work/mh0731/m300950/validating_cleo/build

Initial conditions

First use scripts/collisions/initconds.py to generate the configuration files, the initial superdroplet condition and gridbox binary files. E.g. with pySD module in /home/m/m300950/CLEO/ for a build in /work/mh0731/m300950/validating_cleo/build, and with plots of the initial conditions, you would run:

$ python ./scripts/collisions/initconds.py \
    /home/m/m300950/CLEO \
    /work/mh0731/m300950/validating_cleo/build \
    /home/m/m300950/validating_cleo/src/collisions/config.yaml \
    TRUE TRUE

Run Model

Use ./scripts/run_allcollisions.sh to run all the executables. E.g.

$ ./scripts/collisions/run_allcollisions.sh \
    /work/mh0731/m300950/validating_cleo/build \
    openmp

Plot Results

Plot the results of the model run using the python script ./scripts/collisions/plot_results.py. E.g.

$ python ./scripts/collisions/plot_results.py \
    /home/m/m300950/CLEO \
    /work/mh0731/m300950/validating_cleo/build/share/collisions/dimlessGBxboundaries.dat \
    /work/mh0731/m300950/validating_cleo/build/bin/collisions \
    /work/mh0731/m300950/validating_cleo/build/bin/collisions

Breakup Comparison

To compare the results of the collision test cases including breakup, first build and compile the breakup excutables colls_testikstraub, colls_straub_schlottke, colls_straub_fixednfrags and constcoalbu_fixednfrags as above, as well as the long executable colls_long.

To run and plot the breakup comparison with the marshall palmer distribution you first need to set use_marshall_parmer and plot_marshall_parmer to True in the scripts for initconds_compare_breakup.py and plot_compare_breakup, and in run_compare_breakup.sh you need to set label=bucomp_marshpam

The generate the initial conditons similarly but with the initconds_compare_breakup.py script and config_compare_breakup.yaml. E.g.

$ python ./scripts/collisions/initconds_compare_breakup.py \
    /home/m/m300950/CLEO \
    /work/mh0731/m300950/validating_cleo/build \
    /home/m/m300950/validating_cleo/src/collisions/config_compare_breakup.yaml \
    TRUE TRUE

Similarly use ./scripts/run_compare_breakup.sh to run the executables. E.g.

$ ./scripts/collisions/run_compare_breakup.sh \
    /work/mh0731/m300950/validating_cleo/build \
    openmp

Similarly plot the results of the model runs using the python script ./scripts/collisions/plot_compare_breakup.py. E.g.

$ python ./scripts/collisions/plot_compare_breakup.py`` \
    /home/m/m300950/CLEO \
    /work/mh0731/m300950/validating_cleo/build/share/collisions/dimlessGBxboundaries_bucomp[_marshpam].dat \
    /work/mh0731/m300950/validating_cleo/build/bin/collisions \
    /work/mh0731/m300950/validating_cleo/build/bin/collisions