stardis-solver

Solve coupled heat transfers
git clone git://git.meso-star.fr/stardis-solver.git
Log | Files | Refs | README | LICENSE

commit ae0c8b9421def298a4bd7bb7ce0a451f360eba70
parent 7137c82aa0180fcad900ecd5dc80b4c22f4d5668
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Mon, 28 Feb 2022 16:11:47 +0100

Make simple the test on the rng_<type|state> variables

Diffstat:
Msrc/test_sdis_solve_probe2.c | 23++++++++---------------
Msrc/test_sdis_utils.h | 11-----------
2 files changed, 8 insertions(+), 26 deletions(-)

diff --git a/src/test_sdis_solve_probe2.c b/src/test_sdis_solve_probe2.c @@ -16,6 +16,7 @@ #include "sdis.h" #include "test_sdis_utils.h" +#include <star/ssp.h> #include <rsys/math.h> #include <string.h> @@ -170,10 +171,8 @@ main(int argc, char** argv) struct ssp_rng* rng = NULL; struct context ctx; struct interf* interface_param = NULL; - FILE* fp = NULL; double ref; const size_t N = 10000; - const char* filename = "rng_state.txt"; size_t nreals; size_t nfails; int is_master_process; @@ -278,20 +277,8 @@ main(int argc, char** argv) CHK(nfails + nreals == N); CHK(nfails < N/1000); CHK(eq_eps(T.E, ref, 3*T.SE)); - - /* Fetch the rng state */ - OK(sdis_estimator_get_rng_state(estimator, &rng)); - CHK(fp = fopen(filename, "w")); - OK(ssp_rng_write(rng, fp)); - CHK(fclose(fp) == 0); } - barrier(); - CHK(fp = fopen(filename, "r")); - OK(ssp_rng_create(NULL, SDIS_SOLVE_PROBE_ARGS_DEFAULT.rng_type, &rng)); - OK(ssp_rng_read(rng, fp)); - CHK(fclose(fp) == 0); - /* Check RNG type */ solve_args.rng_state = NULL; solve_args.rng_type = SSP_RNG_TYPE_NULL; @@ -307,9 +294,13 @@ main(int argc, char** argv) OK(sdis_estimator_ref_put(estimator2)); } + /* Check the RNG state */ + OK(ssp_rng_create(NULL, SSP_RNG_THREEFRY, &rng)); + OK(ssp_rng_discard(rng, 31415926535)); /* Move the RNG state */ solve_args.rng_state = rng; solve_args.rng_type = SSP_RNG_TYPE_NULL; OK(sdis_solve_probe(scn, &solve_args, &estimator2)); + OK(ssp_rng_ref_put(rng)); if(is_master_process) { OK(sdis_estimator_get_temperature(estimator2, &T2)); CHK(eq_eps(T2.E, ref, 3*T2.SE)); @@ -317,7 +308,9 @@ main(int argc, char** argv) OK(sdis_estimator_ref_put(estimator2)); } - OK(ssp_rng_ref_put(rng)); + /* Restore args */ + solve_args.rng_state = SDIS_SOLVE_PROBE_ARGS_DEFAULT.rng_state; + solve_args.rng_type = SDIS_SOLVE_PROBE_ARGS_DEFAULT.rng_type; /* Check green */ OK(sdis_solve_probe_green_function(scn, &solve_args, &green)); diff --git a/src/test_sdis_utils.h b/src/test_sdis_utils.h @@ -263,17 +263,6 @@ free_default_device(struct sdis_device* dev) } /******************************************************************************* - * Synchronisation - ******************************************************************************/ -static INLINE void -barrier(void) -{ -#ifdef SDIS_ENABLE_MPI - CHK(MPI_Barrier(MPI_COMM_WORLD) == MPI_SUCCESS); -#endif -} - -/******************************************************************************* * Miscellaneous ******************************************************************************/ static INLINE void