Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add classical radiation reactions for beams #974

Merged
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
c6b30ad
add radiation reactions
SeverinDiederichs Jun 8, 2023
b8259c5
remove const for particle momentum
SeverinDiederichs Jun 9, 2023
3ce38c9
fix typos
SeverinDiederichs Jun 9, 2023
0859637
cleaning
SeverinDiederichs Jun 11, 2023
c5963fa
add CI test
SeverinDiederichs Jun 11, 2023
78c8445
add CI to cmake
SeverinDiederichs Jun 11, 2023
b8ea380
reset benchmark for new radiation reactions CI test
Jun 11, 2023
e6d7bfd
forgot to add analysis script
SeverinDiederichs Jun 11, 2023
5c1f129
update doc
SeverinDiederichs Jun 11, 2023
fc0d03e
make analysis script executable
SeverinDiederichs Jun 11, 2023
06e2878
cleaning
SeverinDiederichs Jun 11, 2023
a85f241
fix adaptive time step CI data name
SeverinDiederichs Jun 11, 2023
d00044a
increase CI checksum error tolerance due to random beam
SeverinDiederichs Jun 11, 2023
fb9139a
increase CI checksum error tolerance due to random beam for CUDA
SeverinDiederichs Jun 11, 2023
54eeff5
reduce multiplications
SeverinDiederichs Jun 11, 2023
f026dd6
adjust CPU CI tolerance, too
SeverinDiederichs Jun 11, 2023
29dc18c
Update tests/radiation_reactions.1Rank.sh
SeverinDiederichs Jun 11, 2023
55a2628
Update tests/radiation_reactions.1Rank.sh
SeverinDiederichs Jun 11, 2023
d8fe689
move radiation coefficient out of kernel
SeverinDiederichs Jun 11, 2023
b31940b
Merge branch 'radiation_reactions' of https://github.com/SeverinDiede…
SeverinDiederichs Jun 11, 2023
bc210b7
add normalized units
SeverinDiederichs Jun 13, 2023
7e89325
deprecate old input
SeverinDiederichs Jun 13, 2023
0d2cf31
add critical brackets that got omitted in inversing wp
SeverinDiederichs Jun 13, 2023
77d5e20
Apply suggestions from code review
SeverinDiederichs Jun 14, 2023
9db9bc0
more suggestions from review
SeverinDiederichs Jun 14, 2023
e6931b6
fix name of benchmark file
SeverinDiederichs Jun 14, 2023
2aec197
fix indentation
SeverinDiederichs Jun 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,12 @@ if(BUILD_TESTING)
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
)

add_test(NAME radiation_reactions.1Rank
COMMAND bash ${HiPACE_SOURCE_DIR}/tests/radiation_reactions.1Rank.sh
$<TARGET_FILE:HiPACE> ${HiPACE_SOURCE_DIR}
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
)

add_test(NAME grid_current.1Rank
COMMAND bash ${HiPACE_SOURCE_DIR}/tests/grid_current.1Rank.sh
$<TARGET_FILE:HiPACE> ${HiPACE_SOURCE_DIR}
Expand Down
13 changes: 9 additions & 4 deletions docs/source/run/parameters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,15 @@ which are valid only for certain beam types, are introduced further below under
For the last component, z actually represents the zeta coordinate zeta = z - c*t.
For instance, ``hipace.external_B_slope = -1. 1. 0.`` creates an axisymmetric focusing lens of strength 1 T/m.

* ``<beam name>.do_z_push`` (`bool`) optional (default `1`)
Whether the beam particles are pushed along the z-axis. The momentum is still fully updated.
Note: using ``do_z_push = 0`` results in unphysical behavior.

* ``<beam name> or beams..do_radiation_reaction`` (`bool`) optional (default `0`)
Whether the beam particles undergo energy loss due to classical radiation reactions.
The implemented radiation reaction model is based on this publication: `M. Tamburini et al., NJP 12, 123005 <https://doi.org/10.1088/1367-2630/12/12/123005>`__
Currently only implemented for SI units, normalized units will be added soon.

Option: ``fixed_weight``
^^^^^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -546,10 +555,6 @@ Option: ``fixed_weight``
``beam_name.num_particles``, therefore this option requires that the beam particle number must be
divisible by 4.

* ``<beam name>.do_z_push`` (`bool`) optional (default `1`)
Whether the beam particles are pushed along the z-axis. The momentum is still fully updated.
Note: using ``do_z_push = 0`` results in unphysical behavior.

* ``<beam name>.z_foc`` (`float`) optional (default `0.`)
Distance at which the beam will be focused, calculated from the position at which the beam is initialized.
The beam is assumed to propagate ballistically in-between.
Expand Down
62 changes: 62 additions & 0 deletions examples/beam_in_vacuum/analysis_RR.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#! /usr/bin/env python3

# Copyright 2020-2023
#
# This file is part of HiPACE++. It tests the radiation reaction of a beam in an external field vs
# the analytic theory in P. Michel et al., PRE 74, 026501 https://doi.org/10.1103/PhysRevE.74.026501
#
# Authors: Severin Diederichs
# License: BSD-3-Clause-LBNL


import numpy as np
import sys
sys.path.append("../../tools/")
import read_insitu_diagnostics as diag
from scipy import constants as scc

# load HiPACE++ data with insitu diags
all_data_with_RR = diag.read_file('diags/insitu/reduced_beam.*.txt')

ne = 5e24
wp = np.sqrt(ne*scc.e**2 / (scc.m_e * scc.epsilon_0 ))
kp = wp/scc.c

mean_gamma0 = diag.gamma_mean(all_data_with_RR["average"])[0] # should be 2000
std_gamma0 = diag.gamma_spread(all_data_with_RR["average"])[0] \
/diag.gamma_mean(all_data_with_RR["average"])[0] # should be 0.01
epsilonx0 = diag.emittance_x(all_data_with_RR["average"])[0] # sigma_x0**2 *np.sqrt(mean_gamma0/2) *kp
# should be 313e-6

# final simulation values
mean_gamma_sim = diag.gamma_mean(all_data_with_RR["average"])[-1]
std_gamma_sim = diag.gamma_spread(all_data_with_RR["average"])[-1] \
/diag.gamma_mean(all_data_with_RR["average"])[-1]
epsilonx_sim = diag.emittance_x(all_data_with_RR["average"])[-1]

# calculate theoretical values
sigma_x0 = np.sqrt(epsilonx0 / (kp* np.sqrt(mean_gamma0/2))) # should be 4.86e-6
ux0 = epsilonx0/sigma_x0
r_e = 1/(4*np.pi*scc.epsilon_0) * scc.e**2/(scc.m_e*scc.c**2)
taur = 6.24e-24 # 2*r_e /(3*scc.c)
K = kp/np.sqrt(2)
w_beta = K*scc.c/np.sqrt(mean_gamma0)
xmsq = sigma_x0**2 + scc.c**2*ux0**2/(w_beta**2 * mean_gamma0**2)
nugamma = taur * scc.c**2 * K**4 * mean_gamma0 * xmsq/2 # equation 32 from the paper
nugammastd = taur * scc.c**2 * K**4 * mean_gamma0 * sigma_x0**2

t = all_data_with_RR["time"][-1]
gamma_theo = mean_gamma0/(1+nugamma*t) # equation 31 from the paper
std_gamma_theo = np.sqrt(std_gamma0**2 + nugammastd**2 * t**2) # equation 35 from the paper
emittance_theo = epsilonx0/(1+3*nugammastd*t/2) # equation 39 from the paper

error_analytic_gamma = np.abs(mean_gamma_sim-gamma_theo)/gamma_theo
error_analytic_std_gamma = np.abs(std_gamma_sim-std_gamma_theo)/std_gamma_theo
error_analytic_emittance = np.abs(epsilonx_sim-emittance_theo)/emittance_theo

assert(error_analytic_gamma < 1e-3)
assert(error_analytic_std_gamma < 3e-2)
assert(error_analytic_emittance < 1e-3)
print("Error on gamma ", error_analytic_gamma)
print("Error on relative gamma spread ", error_analytic_std_gamma)
print("Error on emittance ", error_analytic_emittance)
SeverinDiederichs marked this conversation as resolved.
Show resolved Hide resolved
43 changes: 43 additions & 0 deletions examples/beam_in_vacuum/inputs_RR
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
amr.n_cell = 16 16 4

amr.max_level = 0

my_constants.ne = 5e24
my_constants.wp = sqrt( ne * q_e^2 / (epsilon0 * m_e))
my_constants.E0 = wp * m_e * clight / q_e
my_constants.kp = wp / clight
my_constants.kp_inv = clight / wp

my_constants.K = kp/sqrt(2.)
my_constants.gamma0 = 2000
my_constants.emittance_x = 313e-6
my_constants.sigma_x = sqrt(emittance_x*kp_inv / sqrt(gamma0/2.) )
my_constants.sigma_ux = emittance_x / sigma_x
my_constants.uz = sqrt(gamma0^2 - 1 - sigma_ux^2)
my_constants.w_beta = K*clight/sqrt(gamma0)

hipace.external_E_slope = 1/2*E0/kp_inv 1/2*E0/kp_inv 0.
SeverinDiederichs marked this conversation as resolved.
Show resolved Hide resolved

hipace.dt = 30 /w_beta
hipace.verbose = 1
max_step = 5
diagnostic.output_period = 5
diagnostic.diag_type = xz

geometry.is_periodic = 1 1 1 # Is periodic?
geometry.prob_lo = -30.e-6 -30.e-6 -10.e-6 # physical domain
geometry.prob_hi = 30.e-6 30.e-6 10.e-6

beams.names = beam
beams.insitu_period = 1
beam.injection_type = fixed_weight
beam.profile = gaussian
beam.position_mean = 0 0 0
beam.position_std = sigma_x 1e-12 1e-6
beam.density = ne/1e10
beam.u_mean = 0. 0. uz
beam.u_std = sigma_ux 0 uz*0.01
beam.num_particles = 100000
beam.n_subcycles = 50
beam.do_radiation_reaction = 1
beam.do_z_push = 0 # to avoid dephasing
1 change: 1 addition & 0 deletions src/particles/beam/BeamParticleContainer.H
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ public:
amrex::Real m_mass; /**< mass of each particle of this species */
bool m_do_z_push {true}; /**< Pushing beam particles in z direction */
int m_n_subcycles {10}; /**< Number of sub-cycles in the beam pusher */
bool m_do_radiation_reaction {false}; /**< whether to calculate radiation losses */
/** Number of particles on upstream rank (required for IO) */
bool m_do_salame = false; /**< Whether this beam uses salame */
int m_num_particles_on_upstream_ranks {0};
Expand Down
4 changes: 4 additions & 0 deletions src/particles/beam/BeamParticleContainer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ BeamParticleContainer::ReadParameters ()
getWithParser(pp, "injection_type", m_injection_type);
queryWithParser(pp, "duz_per_uz0_dzeta", m_duz_per_uz0_dzeta);
queryWithParser(pp, "do_z_push", m_do_z_push);
queryWithParserAlt(pp, "do_radiation_reaction", m_do_radiation_reaction, pp_alt);
if (m_do_radiation_reaction) AMREX_ALWAYS_ASSERT_WITH_MESSAGE( Hipace::m_normalized_units == 0,
"Radiation reactions are only implemented in SI units so far. Please use "
"`hipace.normalized_units = 0`");
queryWithParserAlt(pp, "insitu_period", m_insitu_period, pp_alt);
queryWithParserAlt(pp, "insitu_file_prefix", m_insitu_file_prefix, pp_alt);
queryWithParser(pp, "n_subcycles", m_n_subcycles);
Expand Down
73 changes: 60 additions & 13 deletions src/particles/pusher/BeamParticleAdvance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ AdvanceBeamParticlesSlice (

const bool do_z_push = beam.m_do_z_push;
const int n_subcycles = beam.m_n_subcycles;
const bool radiation_reaction = beam.m_do_radiation_reaction;
const amrex::Real dt = Hipace::m_dt / n_subcycles;

const int psi_comp = Comps[WhichSlice::This]["Psi"];
Expand Down Expand Up @@ -98,7 +99,8 @@ AdvanceBeamParticlesSlice (
int const num_particles = cell_stop-cell_start;

const amrex::Real clight = phys_const.c;
const amrex::Real clightsq = 1.0_rt/(phys_const.c*phys_const.c);
const amrex::Real inv_clight = 1.0_rt/phys_const.c;
const amrex::Real inv_c2 = 1.0_rt/(phys_const.c*phys_const.c);
const amrex::Real charge_mass_ratio = beam.m_charge / beam.m_mass;
const amrex::RealVect external_E_uniform = extEu;
const amrex::RealVect external_B_uniform = extBu;
Expand All @@ -124,9 +126,7 @@ AdvanceBeamParticlesSlice (
for (int i = 0; i < n_subcycles; i++) {

const amrex::ParticleReal gammap_inv = 1._rt / std::sqrt( 1._rt
+ ux*ux*clightsq
+ uy*uy*clightsq
+ uz*uz*clightsq );
+ (ux*ux + uy*uy + uz*uz)*inv_c2 );

// first we do half a step in x,y
// This is not required in z, which is pushed in one step later
Expand Down Expand Up @@ -174,9 +174,9 @@ AdvanceBeamParticlesSlice (
external_E_uniform, external_B_uniform, external_E_slope, external_B_slope);

// use intermediate fields to calculate next (n+1) transverse momenta
const amrex::ParticleReal ux_next = ux + dt * charge_mass_ratio
amrex::ParticleReal ux_next = ux + dt * charge_mass_ratio
* ( ExmByp + ( clight - uz * gammap_inv ) * Byp + uy*gammap_inv*Bzp);
const amrex::ParticleReal uy_next = uy + dt * charge_mass_ratio
amrex::ParticleReal uy_next = uy + dt * charge_mass_ratio
* ( EypBxp + ( uz * gammap_inv - clight ) * Bxp - ux*gammap_inv*Bzp);

// Now computing new longitudinal momentum
Expand All @@ -186,19 +186,66 @@ AdvanceBeamParticlesSlice (
+ dt * 0.5_rt * charge_mass_ratio * Ezp;

const amrex::ParticleReal gamma_intermediate_inv = 1._rt / std::sqrt( 1._rt
+ ux_intermediate*ux_intermediate*clightsq
+ uy_intermediate*uy_intermediate*clightsq
+ uz_intermediate*uz_intermediate*clightsq );
+ (ux_intermediate*ux_intermediate
+ uy_intermediate*uy_intermediate
+ uz_intermediate*uz_intermediate)*inv_c2 );

const amrex::ParticleReal uz_next = uz + dt * charge_mass_ratio
amrex::ParticleReal uz_next = uz + dt * charge_mass_ratio
* ( Ezp + ( ux_intermediate * Byp - uy_intermediate * Bxp )
* gamma_intermediate_inv );

if (radiation_reaction) {

const amrex::ParticleReal Exp = ExmByp + clight*Byp;
const amrex::ParticleReal Eyp = EypBxp - clight*Bxp;

const amrex::ParticleReal gamma_intermediate = std::sqrt( 1._rt
+ (ux_intermediate*ux_intermediate
+ uy_intermediate*uy_intermediate
+ uz_intermediate*uz_intermediate)*inv_c2 );
SeverinDiederichs marked this conversation as resolved.
Show resolved Hide resolved
// Estimation of the velocity at intermediate time
const amrex::ParticleReal vx_n = ux_intermediate*gamma_intermediate_inv;
const amrex::ParticleReal vy_n = uy_intermediate*gamma_intermediate_inv;
const amrex::ParticleReal vz_n = uz_intermediate*gamma_intermediate_inv;
const amrex::ParticleReal bx_n = vx_n*inv_clight;
const amrex::ParticleReal by_n = vy_n*inv_clight;
const amrex::ParticleReal bz_n = vz_n*inv_clight;

// Lorentz force over charge
const amrex::ParticleReal flx_q = (Exp + vy_n*Bzp - vz_n*Byp);
const amrex::ParticleReal fly_q = (Eyp + vz_n*Bxp - vx_n*Bzp);
const amrex::ParticleReal flz_q = (Ezp + vx_n*Byp - vy_n*Bxp);
const amrex::ParticleReal fl_q2 = flx_q*flx_q + fly_q*fly_q + flz_q*flz_q;

// Calculation of auxiliary quantities
const amrex::ParticleReal bdotE = (bx_n*Exp + by_n*Eyp + bz_n*Ezp);
const amrex::ParticleReal bdotE2 = bdotE*bdotE;
const amrex::ParticleReal coeff = gamma_intermediate*gamma_intermediate*(fl_q2-bdotE2);

// Radiation reaction constant
const amrex::ParticleReal q_over_mc = charge_mass_ratio*inv_clight;
const amrex::ParticleReal RRcoeff = (2.0_rt/3.0_rt)*PhysConstSI::r_e*q_over_mc*q_over_mc;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you calculate RRcoeff outside of the kernel and also make it work in normalized units using plasmas.background_density_SI ?

Copy link
Member Author

@SeverinDiederichs SeverinDiederichs Jun 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am going to add normalized units in a separate PR, since this will require shifting the plasmas.background_density_SI to hipace.background_density_SI and I found this to be cleaner in a separate PR.

Edit: Added it already now


//Compute the components of the RR force
const amrex::ParticleReal frx =
RRcoeff*(PhysConstSI::c*(fly_q*Bzp - flz_q*Byp) + bdotE*Exp - coeff*bx_n);
const amrex::ParticleReal fry =
RRcoeff*(PhysConstSI::c*(flz_q*Bxp - flx_q*Bzp) + bdotE*Eyp - coeff*by_n);
const amrex::ParticleReal frz =
RRcoeff*(PhysConstSI::c*(flx_q*Byp - fly_q*Bxp) + bdotE*Ezp - coeff*bz_n);

//Update momentum using the RR force
ux_next += frx*dt;
uy_next += fry*dt;
uz_next += frz*dt;
}


/* computing next gamma value */
const amrex::ParticleReal gamma_next_inv = 1._rt / std::sqrt( 1._rt
+ ux_next*ux_next*clightsq
+ uy_next*uy_next*clightsq
+ uz_next*uz_next*clightsq );
+ (ux_next*ux_next
+ uy_next*uy_next
+ uz_next*uz_next)*inv_c2 );
SeverinDiederichs marked this conversation as resolved.
Show resolved Hide resolved

/*
* computing positions and setting momenta for the next timestep
Expand Down
1 change: 1 addition & 0 deletions src/utils/Constants.H
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ namespace PhysConstSI
static constexpr auto m_e = static_cast<amrex::Real>( 9.1093837015e-31 );
static constexpr auto m_p = static_cast<amrex::Real>( 1.67262192369e-27 );
static constexpr auto hbar = static_cast<amrex::Real>( 1.054571817e-34 );
static constexpr auto r_e = static_cast<amrex::Real>( 2.817940326204929e-15 );
SeverinDiederichs marked this conversation as resolved.
Show resolved Hide resolved
}

/** \brief Namespace containing math constants */
Expand Down
14 changes: 9 additions & 5 deletions tests/adaptive_time_step.1Rank.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,14 @@ HIPACE_SOURCE_DIR=$2
HIPACE_EXAMPLE_DIR=${HIPACE_SOURCE_DIR}/examples/beam_in_vacuum
HIPACE_TEST_DIR=${HIPACE_SOURCE_DIR}/tests

FILE_NAME=`basename "$0"`
TEST_NAME="${FILE_NAME%.*}"

# Relative tolerance for checksum tests depends on the platform
RTOL=1e-12 && [[ "$HIPACE_EXECUTABLE" == *"hipace"*".CUDA."* ]] && RTOL=1e-5

rm -rf negative_gradient_data
rm -rf positive_gradient_data
rm -rf negative_gradient.txt
rm -rf positive_gradient.txt
SeverinDiederichs marked this conversation as resolved.
Show resolved Hide resolved

# Run the simulation
mpiexec -n 1 $HIPACE_EXECUTABLE $HIPACE_EXAMPLE_DIR/inputs_normalized \
Expand All @@ -36,7 +39,7 @@ mpiexec -n 1 $HIPACE_EXECUTABLE $HIPACE_EXAMPLE_DIR/inputs_normalized \
geometry.prob_lo = -2. -2. -2. \
geometry.prob_hi = 2. 2. 2. \
hipace.dt = 0. \
diagnostic.output_period = 20 \
diagnostic.output_period = 0 \
beam.density = 1 \
beam.radius = 1. \
beam.n_subcycles = 4 \
Expand Down Expand Up @@ -65,6 +68,7 @@ mpiexec -n 1 $HIPACE_EXECUTABLE $HIPACE_EXAMPLE_DIR/inputs_normalized \
hipace.dt = adaptive\
plasmas.adaptive_density=1 \
hipace.nt_per_betatron = 89.7597901025655 \
hipace.file_prefix=$TEST_NAME \
> positive_gradient.txt

# Compare the result with theory
Expand All @@ -74,5 +78,5 @@ $HIPACE_EXAMPLE_DIR/analysis_adaptive_ts.py
$HIPACE_TEST_DIR/checksum/checksumAPI.py \
--evaluate \
--rtol $RTOL \
--file_name diags/hdf5 \
--test-name adaptive_time_step.1Rank
--file_name $TEST_NAME \
--test-name $TEST_NAME
32 changes: 32 additions & 0 deletions tests/checksum/benchmarks_json/radiation_reactions.1Rank.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"lev=0": {
"Bx": 3.9728499837158e-19,
"By": 5.8910609879039e-14,
"Bz": 1.6891286774736e-24,
"ExmBy": 0.0,
"EypBx": 0.0,
"Ez": 3.1259472441681e-09,
"Psi": 0.0,
"Sx": 0.0024041543676677,
"Sy": 7.6433815475634e-12,
"chi": 0.0,
"jx": 3.1950444198537e-06,
"jx_beam": 3.1950444198537e-06,
"jy": 3.7374939092852e-13,
"jy_beam": 3.7374939092852e-13,
"jz_beam": 0.013037977938616,
"rhomjz": 0.0
},
"beam": {
"charge": 1.602176634e-14,
"id": 5000050000,
"mass": 9.1093837015e-26,
"x": 0.37632823449197,
"y": 4.6797140205514e-08,
"z": 0.079644759023598,
"ux": 5191150.7069722,
"uy": 0.7570356636811,
"uz": 196732680.56282,
"w": 3.8193025298947e-08
}
}
14 changes: 13 additions & 1 deletion tests/checksum/reset_all_benchmarks.sh
Original file line number Diff line number Diff line change
Expand Up @@ -231,10 +231,22 @@ then
|| echo "ctest command failed, maybe just because checksums are different. Keep going"
cd $checksum_dir
./checksumAPI.py --reset-benchmark \
--file_name ${build_dir}/bin/diags/hdf5 \
--file_name ${build_dir}/bin/adaptive_time_step.1Rank \
--test-name adaptive_time_step.1Rank
fi

# radiation_reactions.1Rank
if [[ $all_tests = true ]] || [[ $one_test_name = "radiation_reactions.1Rank" ]]
SeverinDiederichs marked this conversation as resolved.
Show resolved Hide resolved
then
cd $build_dir
ctest --output-on-failure -R radiation_reactions.1Rank \
|| echo "ctest command failed, maybe just because checksums are different. Keep going"
cd $checksum_dir
./checksumAPI.py --reset-benchmark \
--file_name ${build_dir}/bin/radiation_reactions.1Rank \
--test-name radiation_reactions.1Rank
fi

# grid_current.1Rank
if [[ $all_tests = true ]] || [[ $one_test_name = "grid_current.1Rank" ]]
then
Expand Down
Loading