stardis-solver

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

commit 960b53372c97c4983dafd019b4a2e6a0905550d8
parent 27d618557562f0b7953aff5325940420e70ca116
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Thu, 25 Nov 2021 11:54:45 +0100

Update the API of the sdis_device_create function

The input arguments are grouped in the sdis_device_create_args
structure. Its member variables are the previous input arguments and the
new use_mpi variable used to conditionally allow MPI to distribute the
work among the processes.

Diffstat:
Mcmake/CMakeLists.txt | 2++
Msrc/sdis.h | 23+++++++++++++++++++----
Msrc/sdis_device.c | 37++++++++++++++++++++++---------------
Msrc/sdis_device_c.h | 18++++++++++++++++++
Msrc/test_sdis_camera.c | 7+------
Msrc/test_sdis_compute_power.c | 10+++-------
Msrc/test_sdis_conducto_radiative.c | 4+++-
Msrc/test_sdis_conducto_radiative_2d.c | 2+-
Msrc/test_sdis_contact_resistance.c | 8++------
Msrc/test_sdis_contact_resistance_2.c | 8++------
Msrc/test_sdis_convection.c | 6+-----
Msrc/test_sdis_convection_non_uniform.c | 6+-----
Msrc/test_sdis_data.c | 5+----
Msrc/test_sdis_device.c | 52++++++++++++++++++++++++++++++++++++++++++----------
Msrc/test_sdis_flux.c | 8++------
Msrc/test_sdis_interface.c | 6+-----
Msrc/test_sdis_medium.c | 6+-----
Msrc/test_sdis_picard.c | 7+------
Msrc/test_sdis_scene.c | 6+-----
Msrc/test_sdis_solid_random_walk_robustness.c | 8++------
Msrc/test_sdis_solve_boundary.c | 6+-----
Msrc/test_sdis_solve_boundary_flux.c | 6+-----
Msrc/test_sdis_solve_camera.c | 10+++-------
Msrc/test_sdis_solve_medium.c | 10+++-------
Msrc/test_sdis_solve_medium_2d.c | 6+-----
Msrc/test_sdis_solve_probe.c | 4+++-
Msrc/test_sdis_solve_probe2.c | 6+-----
Msrc/test_sdis_solve_probe2_2d.c | 6+-----
Msrc/test_sdis_solve_probe3.c | 8++------
Msrc/test_sdis_solve_probe3_2d.c | 6+-----
Msrc/test_sdis_solve_probe_2d.c | 6+-----
Msrc/test_sdis_transcient.c | 6+-----
Msrc/test_sdis_unstationary_atm.c | 8++------
Msrc/test_sdis_volumic_power.c | 8++------
Msrc/test_sdis_volumic_power2.c | 3+--
Msrc/test_sdis_volumic_power2_2d.c | 6+-----
Msrc/test_sdis_volumic_power3_2d.c | 6+-----
Msrc/test_sdis_volumic_power4.c | 6+-----
38 files changed, 153 insertions(+), 193 deletions(-)

diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -247,6 +247,8 @@ if(NOT NO_TEST) if(USE_MPI) set_target_properties(test_sdis PROPERTIES COMPILE_DEFINITIONS "SDIS_USE_MPI") + set_target_properties(test_sdis_device PROPERTIES + COMPILE_DEFINITIONS "SDIS_USE_MPI") endif() rcmake_copy_runtime_libraries(test_sdis_solid_random_walk_robustness) diff --git a/src/sdis.h b/src/sdis.h @@ -130,6 +130,24 @@ struct sdis_mc { #define SDIS_MC_NULL__ {0, 0, 0} static const struct sdis_mc SDIS_MC_NULL = SDIS_MC_NULL__; +/* Input arguments of the sdis_device_create function */ +struct sdis_device_create_args { + struct logger* logger; /* NULL <=> default logger */ + struct mem_allocator* allocator; /* NULL <=> default allocator */ + unsigned nthreads_hint; /* Hint on the number of threads to use */ + int verbosity; /* Verbosity level */ + + /* Use the Message Passing Interface to distribute work between processes. + * This option is taken into account only if Stardis-Solver is compiled with + * MPI support */ + int use_mpi; +}; +#define SDIS_DEVICE_CREATE_ARGS_DEFAULT__ { \ + NULL, NULL, SDIS_NTHREADS_DEFAULT, 1, 0 \ +} +static const struct sdis_device_create_args SDIS_DEVICE_CREATE_ARGS_DEFAULT = + SDIS_DEVICE_CREATE_ARGS_DEFAULT__; + /* Informations on the Stardis-Solver library */ struct sdis_info { int mpi_enable; /* Define if Stardis-Solver was built with MPI support */ @@ -614,10 +632,7 @@ BEGIN_DECLS ******************************************************************************/ SDIS_API res_T sdis_device_create - (struct logger* logger, /* May be NULL <=> use default logger */ - struct mem_allocator* allocator, /* May be NULL <=> use default allocator */ - const unsigned nthreads_hint, /* Hint on the number of threads to use */ - const int verbose, /* Verbosity level */ + (const struct sdis_device_create_args* args, struct sdis_device** dev); SDIS_API res_T diff --git a/src/sdis_device.c b/src/sdis_device.c @@ -211,10 +211,7 @@ device_release(ref_T* ref) ******************************************************************************/ res_T sdis_device_create - (struct logger* logger, - struct mem_allocator* mem_allocator, - const unsigned nthreads_hint, - const int verbose, + (const struct sdis_device_create_args* args, struct sdis_device** out_dev) { struct logger* log = NULL; @@ -222,18 +219,18 @@ sdis_device_create struct mem_allocator* allocator = NULL; res_T res = RES_OK; - if(nthreads_hint == 0 || !out_dev) { + if(!check_sdis_device_create_args(args) || !out_dev) { res = RES_BAD_ARG; goto error; } - allocator = mem_allocator ? mem_allocator : &mem_default_allocator; + allocator = args->allocator ? args->allocator : &mem_default_allocator; dev = MEM_CALLOC(allocator, 1, sizeof(struct sdis_device)); if(!dev) { - if(verbose) { + if(args->verbosity) { #define ERR_STR STR(FUNC_NAME)": could not allocate the Stardis device -- %s." - if(logger) { - logger_print(logger, LOG_ERROR, ERR_STR, res_to_cstr(res)); + if(args->logger) { + logger_print(args->logger, LOG_ERROR, ERR_STR, res_to_cstr(res)); } else { fprintf(stderr, MSG_ERROR_PREFIX ERR_STR, res_to_cstr(res)); } @@ -243,8 +240,8 @@ sdis_device_create goto error; } dev->allocator = allocator; - dev->verbose = verbose; - dev->nthreads = MMIN(nthreads_hint, (unsigned)omp_get_num_procs()); + dev->verbose = args->verbosity; + dev->nthreads = MMIN(args->nthreads_hint, (unsigned)omp_get_num_procs()); ref_init(&dev->ref); flist_name_init(allocator, &dev->interfaces_names); flist_name_init(allocator, &dev->media_names); @@ -252,8 +249,8 @@ sdis_device_create str_init(allocator, &dev->mpi_err_str); #endif - if(logger) { - dev->logger = logger; + if(args->logger) { + dev->logger = args->logger; } else { setup_log_default(dev); } @@ -276,8 +273,18 @@ sdis_device_create goto error; } - res = mpi_init(dev); - if(res != RES_OK) goto error; +#ifdef SDIS_USE_MPI + if(args->use_mpi) { + res = mpi_init(dev); + if(res != RES_OK) goto error; + } +#else + if(args->use_mpi) { + log_warn(dev, + "%s: Stardis-Solver is built without the support of the Message Passing " + "Interface. MPI cannot be used for parallel computations.\n", FUNC_NAME); + } +#endif exit: if(out_dev) *out_dev = dev; diff --git a/src/sdis_device_c.h b/src/sdis_device_c.h @@ -22,8 +22,18 @@ #include <rsys/free_list.h> #include <rsys/logger.h> #include <rsys/ref_count.h> +#include <rsys/str.h> + +#ifdef SDIS_USE_MPI + #ifndef NDEBUG + #define MPI(Func) ASSERT(MPI_##Func == MPI_SUCCESS) + #else + #define MPI(Func) MPI_##Func + #endif +#endif /* Forward declarations */ +struct mutex; struct ssp_rng; struct ssp_rng_proxy; @@ -38,6 +48,14 @@ struct sdis_device { unsigned nthreads; int verbose; +#ifdef SDIS_USE_MPI + int mpi_rank; /* Rank of the process in the MPI group */ + int mpi_nprocs; /* Overall #processes in the MPI group */ + struct str mpi_err_str; /* String used to store the MPI error string */ + + struct mutex* mpi_mutex; /* Protect MPI calls from concurrent threads */ +#endif + struct flist_name interfaces_names; struct flist_name media_names; diff --git a/src/test_sdis_camera.c b/src/test_sdis_camera.c @@ -23,15 +23,12 @@ main(int argc, char** argv) { struct sdis_device* dev; struct sdis_camera* cam; - struct mem_allocator allocator; double pos[3] = {0}; double tgt[3] = {0}; double up[3] = {0}; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); BA(sdis_camera_create(NULL, NULL)); BA(sdis_camera_create(dev, NULL)); @@ -85,8 +82,6 @@ main(int argc, char** argv) OK(sdis_device_ref_put(dev)); OK(sdis_camera_ref_put(cam)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_compute_power.c b/src/test_sdis_compute_power.c @@ -164,7 +164,6 @@ solid_get_volumic_power int main(int argc, char** argv) { - struct mem_allocator allocator; struct context ctx; struct s3dut_mesh* sphere = NULL; struct s3dut_mesh* cylinder = NULL; @@ -189,8 +188,7 @@ main(int argc, char** argv) double ref = 0; (void)argc, (void) argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Setup the interface shader */ interf_shader.convection_coef = interface_get_convection_coef; @@ -219,8 +217,8 @@ main(int argc, char** argv) ctx.interf1 = interf1; /* Create the geometry */ - OK(s3dut_create_sphere(&allocator, 1, 512, 256, &sphere)); - OK(s3dut_create_cylinder(&allocator, 1, 10, 512, 8, &cylinder)); + OK(s3dut_create_sphere(NULL, 1, 512, 256, &sphere)); + OK(s3dut_create_cylinder(NULL, 1, 10, 512, 8, &cylinder)); OK(s3dut_mesh_get_data(sphere, &ctx.msh0)); OK(s3dut_mesh_get_data(cylinder, &ctx.msh1)); @@ -338,8 +336,6 @@ main(int argc, char** argv) OK(s3dut_mesh_ref_put(sphere)); OK(s3dut_mesh_ref_put(cylinder)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_conducto_radiative.c b/src/test_sdis_conducto_radiative.c @@ -342,6 +342,7 @@ main(int argc, char** argv) struct sdis_interface* interfaces[5] = {NULL}; struct sdis_interface* prim_interfaces[32/*#triangles*/]; struct sdis_scene_create_args scn_args = SDIS_SCENE_CREATE_ARGS_DEFAULT; + struct sdis_device_create_args dev_args = SDIS_DEVICE_CREATE_ARGS_DEFAULT; struct sdis_fluid_shader fluid_shader = DUMMY_FLUID_SHADER; struct sdis_solid_shader solid_shader = DUMMY_SOLID_SHADER; struct sdis_scene* scn = NULL; @@ -360,7 +361,8 @@ main(int argc, char** argv) (void)argc, (void)argv; OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + dev_args.allocator = &allocator; + OK(sdis_device_create(&dev_args, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; diff --git a/src/test_sdis_conducto_radiative_2d.c b/src/test_sdis_conducto_radiative_2d.c @@ -363,7 +363,7 @@ main(int argc, char** argv) (void)argc, (void)argv; OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; diff --git a/src/test_sdis_contact_resistance.c b/src/test_sdis_contact_resistance.c @@ -251,7 +251,6 @@ solve int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_data* data = NULL; struct sdis_device* dev = NULL; struct sdis_medium* fluid = NULL; @@ -275,8 +274,7 @@ main(int argc, char** argv) struct ssp_rng* rng = NULL; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); fluid_shader.temperature = fluid_get_temperature; OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); @@ -425,7 +423,7 @@ main(int argc, char** argv) OK(sdis_interface_ref_put(interf_R)); /* Solve */ - OK(ssp_rng_create(&allocator, SSP_RNG_KISS, &rng)); + OK(ssp_rng_create(NULL, SSP_RNG_KISS, &rng)); printf(">> Box scene\n"); solve(box_scn, interf_props, rng); printf("\n>> Square scene\n"); @@ -436,8 +434,6 @@ main(int argc, char** argv) OK(sdis_device_ref_put(dev)); OK(ssp_rng_ref_put(rng)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_contact_resistance_2.c b/src/test_sdis_contact_resistance_2.c @@ -345,7 +345,6 @@ solve int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_data* data = NULL; struct sdis_device* dev = NULL; struct sdis_medium* fluid = NULL; @@ -369,8 +368,7 @@ main(int argc, char** argv) struct ssp_rng* rng = NULL; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); fluid_shader.temperature = fluid_get_temperature; OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); @@ -519,7 +517,7 @@ main(int argc, char** argv) OK(sdis_interface_ref_put(interf_R)); /* Solve */ - OK(ssp_rng_create(&allocator, SSP_RNG_KISS, &rng)); + OK(ssp_rng_create(NULL, SSP_RNG_KISS, &rng)); printf(">> Box scene\n"); solve_probe(box_scn, interf_props, rng); solve(box_scn, interf_props, rng); @@ -532,8 +530,6 @@ main(int argc, char** argv) OK(sdis_device_ref_put(dev)); OK(ssp_rng_ref_put(rng)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_convection.c b/src/test_sdis_convection.c @@ -165,7 +165,6 @@ create_interface int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_mc T = SDIS_MC_NULL; struct sdis_mc mc_time = SDIS_MC_NULL; struct sdis_device* dev = NULL; @@ -198,8 +197,7 @@ main(int argc, char** argv) int i; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ OK(sdis_data_create(dev, sizeof(int), ALIGNOF(int), NULL, &is_stationary)); @@ -361,8 +359,6 @@ main(int argc, char** argv) OK(sdis_device_ref_put(dev)); OK(sdis_data_ref_put(is_stationary)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_convection_non_uniform.c b/src/test_sdis_convection_non_uniform.c @@ -175,7 +175,6 @@ create_interface int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_mc T = SDIS_MC_NULL; struct sdis_mc mc_time = SDIS_MC_NULL; struct sdis_device* dev = NULL; @@ -208,8 +207,7 @@ main(int argc, char** argv) int i; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); OK(sdis_data_create(dev, sizeof(int), ALIGNOF(int), NULL, &is_stationary)); *((int*)sdis_data_get(is_stationary)) = 0; @@ -376,8 +374,6 @@ main(int argc, char** argv) OK(sdis_device_ref_put(dev)); OK(sdis_data_ref_put(is_stationary)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_data.c b/src/test_sdis_data.c @@ -36,14 +36,12 @@ int main(int argc, char** argv) { const char* str = "Hello world!"; - struct mem_allocator allocator; struct sdis_device* dev = NULL; struct sdis_data* data = NULL; struct param* param = NULL; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); BA(sdis_data_create(NULL, 0, 0, NULL, NULL)); BA(sdis_data_create(dev, 0, 0, NULL, NULL)); BA(sdis_data_create(NULL, 8, 0, NULL, NULL)); @@ -87,7 +85,6 @@ main(int argc, char** argv) OK(sdis_data_ref_put(data)); OK(sdis_device_ref_put(dev)); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_device.c b/src/test_sdis_device.c @@ -18,6 +18,10 @@ #include <rsys/logger.h> +#ifdef SDIS_USE_MPI +#include <mpi.h> +#endif + static INLINE void log_stream(const char* msg, void* ctx) { @@ -29,14 +33,22 @@ log_stream(const char* msg, void* ctx) int main(int argc, char** argv) { + struct sdis_device_create_args args = SDIS_DEVICE_CREATE_ARGS_DEFAULT; struct logger logger; struct mem_allocator allocator; struct sdis_device* dev; +#ifdef SDIS_USE_MPI + int provided; +#endif (void)argc, (void)argv; - BA(sdis_device_create(NULL, NULL, 0, 0, NULL)); - BA(sdis_device_create(NULL, NULL, 0, 0, &dev)); - OK(sdis_device_create(NULL, NULL, 1, 0, &dev)); + args.nthreads_hint = 0; + args.verbosity = 0; + + BA(sdis_device_create(&args, NULL)); + BA(sdis_device_create(&args, &dev)); + args.nthreads_hint = 1; + OK(sdis_device_create(&args, &dev)); BA(sdis_device_ref_get(NULL)); OK(sdis_device_ref_get(dev)); BA(sdis_device_ref_put(NULL)); @@ -46,8 +58,11 @@ main(int argc, char** argv) OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); CHK(MEM_ALLOCATED_SIZE(&allocator) == 0); - BA(sdis_device_create(NULL, &allocator, 1, 0, NULL)); - OK(sdis_device_create(NULL, &allocator, 1, 0, &dev)); + + args.allocator = &allocator; + args.verbosity = 0; + BA(sdis_device_create(&args, NULL)); + OK(sdis_device_create(&args, &dev)); OK(sdis_device_ref_put(dev)); CHK(MEM_ALLOCATED_SIZE(&allocator) == 0); @@ -56,16 +71,33 @@ main(int argc, char** argv) logger_set_stream(&logger, LOG_ERROR, log_stream, NULL); logger_set_stream(&logger, LOG_WARNING, log_stream, NULL); - BA(sdis_device_create(&logger, NULL, 1, 0, NULL)); - OK(sdis_device_create(&logger, NULL, 1, 0, &dev)); + args.logger = &logger; + args.allocator = NULL; + BA(sdis_device_create(&args, NULL)); + OK(sdis_device_create(&args, &dev)); OK(sdis_device_ref_put(dev)); - BA(sdis_device_create(&logger, &allocator, 1, 0, NULL)); - OK(sdis_device_create(&logger, &allocator, 1, 0, &dev)); + args.allocator = &allocator; + BA(sdis_device_create(&args, NULL)); + OK(sdis_device_create(&args, &dev)); OK(sdis_device_ref_put(dev)); - OK(sdis_device_create(&logger, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); + args.nthreads_hint = SDIS_NTHREADS_DEFAULT; + OK(sdis_device_create(&args, &dev)); + OK(sdis_device_ref_put(dev)); + + args.use_mpi = 1; + args.verbosity = 1; + +#ifndef SDIS_USE_MPI + OK(sdis_device_create(&args, &dev)); + OK(sdis_device_ref_put(dev)); +#else + CHK(MPI_Init_thread(&argc, &argv, MPI_THREAD_SERIALIZED, &provided) == MPI_SUCCESS); + OK(sdis_device_create(&args, &dev)); + CHK(MPI_Finalize() == MPI_SUCCESS); OK(sdis_device_ref_put(dev)); +#endif logger_release(&logger); check_memory_allocator(&allocator); diff --git a/src/test_sdis_flux.c b/src/test_sdis_flux.c @@ -353,7 +353,6 @@ solve int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_data* data = NULL; struct sdis_device* dev = NULL; struct sdis_medium* fluid = NULL; @@ -373,8 +372,7 @@ main(int argc, char** argv) struct ssp_rng* rng = NULL; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the dummy fluid medium */ OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); @@ -459,7 +457,7 @@ main(int argc, char** argv) OK(sdis_interface_ref_put(interf_phi)); /* Solve */ - OK(ssp_rng_create(&allocator, SSP_RNG_KISS, &rng)); + OK(ssp_rng_create(NULL, SSP_RNG_KISS, &rng)); printf(">> Box scene\n"); solve(box_scn, rng, interf_props); printf(">> Square Scene\n"); @@ -470,8 +468,6 @@ main(int argc, char** argv) OK(sdis_device_ref_put(dev)); OK(ssp_rng_ref_put(rng)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_interface.c b/src/test_sdis_interface.c @@ -19,7 +19,6 @@ int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_data* data = NULL; struct sdis_device* dev = NULL; struct sdis_medium* fluid = NULL; @@ -32,8 +31,7 @@ main(int argc, char** argv) struct sdis_interface_shader shader2 = SDIS_INTERFACE_SHADER_NULL; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); @@ -144,8 +142,6 @@ main(int argc, char** argv) OK(sdis_medium_ref_put(fluid)); OK(sdis_medium_ref_put(solid)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_medium.c b/src/test_sdis_medium.c @@ -21,7 +21,6 @@ int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_data* data = NULL; struct sdis_device* dev = NULL; struct sdis_medium* fluid = NULL; @@ -32,8 +31,7 @@ main(int argc, char** argv) struct sdis_solid_shader solid_shader2 = SDIS_SOLID_SHADER_NULL; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); BA(sdis_fluid_create(NULL, NULL, NULL, NULL)); BA(sdis_fluid_create(dev, NULL, NULL, NULL)); @@ -146,8 +144,6 @@ main(int argc, char** argv) OK(sdis_medium_ref_put(fluid)); OK(sdis_device_ref_put(dev)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; diff --git a/src/test_sdis_picard.c b/src/test_sdis_picard.c @@ -573,8 +573,6 @@ create_scene_2d int main(int argc, char** argv) { - struct mem_allocator allocator; - struct sdis_device* dev = NULL; struct sdis_scene* scn_2d = NULL; struct sdis_scene* scn_3d = NULL; @@ -594,8 +592,7 @@ main(int argc, char** argv) size_t i; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Solid medium */ solid_props.lambda = 1.15; @@ -766,8 +763,6 @@ main(int argc, char** argv) OK(sdis_medium_ref_put(dummy)); OK(sdis_device_ref_put(dev)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_scene.c b/src/test_sdis_scene.c @@ -468,7 +468,6 @@ test_scene_2d(struct sdis_device* dev, struct sdis_interface* interf) int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_device* dev = NULL; struct sdis_medium* solid = NULL; struct sdis_medium* fluid = NULL; @@ -480,8 +479,7 @@ main(int argc, char** argv) interface_shader.convection_coef = DUMMY_INTERFACE_SHADER.convection_coef; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); @@ -497,8 +495,6 @@ main(int argc, char** argv) OK(sdis_device_ref_put(dev)); OK(sdis_interface_ref_put(interf)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_solid_random_walk_robustness.c b/src/test_sdis_solid_random_walk_robustness.c @@ -259,7 +259,6 @@ solid_get_volumetric_power int main(int argc, char** argv) { - struct mem_allocator allocator; struct s3dut_super_formula f0 = S3DUT_SUPER_FORMULA_NULL; struct s3dut_super_formula f1 = S3DUT_SUPER_FORMULA_NULL; struct s3dut_mesh* msh = NULL; @@ -284,8 +283,7 @@ main(int argc, char** argv) double spread; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ fluid_shader.temperature = fluid_get_temperature; @@ -325,7 +323,7 @@ main(int argc, char** argv) /* Create the solid super shape */ f0.A = 1; f0.B = 1; f0.M = 20; f0.N0 = 1; f0.N1 = 1; f0.N2 = 5; f1.A = 1; f1.B = 1; f1.M = 7; f1.N0 = 1; f1.N1 = 2; f1.N2 = 5; - OK(s3dut_create_super_shape(&allocator, &f0, &f1, 1, 128, 64, &msh)); + OK(s3dut_create_super_shape(NULL, &f0, &f1, 1, 128, 64, &msh)); OK(s3dut_mesh_get_data(msh, &ctx.msh)); compute_aabb(ctx.msh.positions, ctx.msh.nvertices, lower, upper); @@ -395,8 +393,6 @@ main(int argc, char** argv) OK(sdis_interface_ref_put(interf)); OK(sdis_scene_ref_put(scn)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_solve_boundary.c b/src/test_sdis_solve_boundary.c @@ -173,7 +173,6 @@ int main(int argc, char** argv) { FILE* fp = NULL; - struct mem_allocator allocator; struct sdis_data* data = NULL; struct sdis_device* dev = NULL; struct sdis_medium* fluid = NULL; @@ -203,8 +202,7 @@ main(int argc, char** argv) enum sdis_side sides[4]; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Temporary file used to dump heat paths */ CHK((fp = tmpfile()) != NULL); @@ -624,8 +622,6 @@ main(int argc, char** argv) CHK(fclose(fp) == 0); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_solve_boundary_flux.c b/src/test_sdis_solve_boundary_flux.c @@ -228,7 +228,6 @@ check_estimator int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_data* data = NULL; struct sdis_device* dev = NULL; struct sdis_medium* fluid = NULL; @@ -257,8 +256,7 @@ main(int argc, char** argv) size_t prims[2]; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ OK(sdis_data_create @@ -491,8 +489,6 @@ main(int argc, char** argv) OK(sdis_scene_ref_put(square_scn)); OK(sdis_device_ref_put(dev)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_solve_camera.c b/src/test_sdis_solve_camera.c @@ -540,7 +540,6 @@ dump_image(const struct sdis_estimator_buffer* buf) int main(int argc, char** argv) { - struct mem_allocator allocator; struct geometry geom = GEOMETRY_NULL; struct s3dut_mesh* msh = NULL; struct s3dut_mesh_data msh_data; @@ -572,8 +571,7 @@ main(int argc, char** argv) double up[3]; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid0 */ fluid_param.temperature = 350; @@ -611,14 +609,14 @@ main(int argc, char** argv) create_interface(dev, fluid1, solid, &interface_param, &interf1); /* Setup the cube geometry */ - OK(s3dut_create_cuboid(&allocator, 2, 2, 2, &msh)); + OK(s3dut_create_cuboid(NULL, 2, 2, 2, &msh)); OK(s3dut_mesh_get_data(msh, &msh_data)); geometry_add_shape(&geom, msh_data.positions, msh_data.nvertices, msh_data.indices, msh_data.nprimitives, NULL, interf1); OK(s3dut_mesh_ref_put(msh)); /* Setup the sphere geometry */ - OK(s3dut_create_sphere(&allocator, 0.5, 32, 16, &msh)); + OK(s3dut_create_sphere(NULL, 0.5, 32, 16, &msh)); OK(s3dut_mesh_get_data(msh, &msh_data)); geometry_add_shape(&geom, msh_data.positions, msh_data.nvertices, msh_data.indices, msh_data.nprimitives, NULL, interf0); @@ -743,8 +741,6 @@ main(int argc, char** argv) OK(sdis_device_ref_put(dev)); geometry_release(&geom); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_solve_medium.c b/src/test_sdis_solve_medium.c @@ -197,7 +197,6 @@ interface_get_specular_fraction int main(int argc, char** argv) { - struct mem_allocator allocator; struct s3dut_super_formula f0 = S3DUT_SUPER_FORMULA_NULL; struct s3dut_super_formula f1 = S3DUT_SUPER_FORMULA_NULL; struct s3dut_mesh* msh0 = NULL; @@ -234,8 +233,7 @@ main(int argc, char** argv) size_t nverts; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); fluid_shader.temperature = fluid_get_temperature; @@ -309,13 +307,13 @@ main(int argc, char** argv) /* Create the mesh0 */ f0.A = 1; f0.B = 1; f0.M = 3; f0.N0 = 1; f0.N1 = 1; f0.N2 = 2; f1.A = 1; f1.B = 1; f1.M = 10; f1.N0 = 1; f1.N1 = 1; f1.N2 = 3; - OK(s3dut_create_super_shape(&allocator, &f0, &f1, 1, 64, 32, &msh0)); + OK(s3dut_create_super_shape(NULL, &f0, &f1, 1, 64, 32, &msh0)); OK(s3dut_mesh_get_data(msh0, &ctx.msh0)); /* Create the mesh1 */ f0.A = 1; f0.B = 1; f0.M = 10; f0.N0 = 1; f0.N1 = 1; f0.N2 = 5; f1.A = 1; f1.B = 1; f1.M = 1; f1.N0 = 1; f1.N1 = 1; f1.N2 = 1; - OK(s3dut_create_super_shape(&allocator, &f0, &f1, 1, 64, 32, &msh1)); + OK(s3dut_create_super_shape(NULL, &f0, &f1, 1, 64, 32, &msh1)); OK(s3dut_mesh_get_data(msh1, &ctx.msh1)); /* Create the scene */ @@ -481,8 +479,6 @@ main(int argc, char** argv) OK(sdis_interface_ref_put(solid1_fluid1)); OK(sdis_scene_ref_put(scn)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_solve_medium_2d.c b/src/test_sdis_solve_medium_2d.c @@ -186,7 +186,6 @@ interface_get_specular_fraction int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_mc T = SDIS_MC_NULL; struct sdis_mc time = SDIS_MC_NULL; struct sdis_device* dev = NULL; @@ -221,8 +220,7 @@ main(int argc, char** argv) size_t i; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); fluid_shader.temperature = fluid_get_temperature; @@ -428,8 +426,6 @@ main(int argc, char** argv) sa_release(positions); sa_release(indices); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_solve_probe.c b/src/test_sdis_solve_probe.c @@ -271,6 +271,7 @@ main(int argc, char** argv) struct sdis_estimator* estimator3 = NULL; struct sdis_green_function* green = NULL; const struct sdis_heat_path* path = NULL; + struct sdis_device_create_args dev_args = SDIS_DEVICE_CREATE_ARGS_DEFAULT; struct sdis_scene_create_args scn_args = SDIS_SCENE_CREATE_ARGS_DEFAULT; struct sdis_fluid_shader fluid_shader = DUMMY_FLUID_SHADER; struct sdis_solid_shader solid_shader = DUMMY_SOLID_SHADER; @@ -296,7 +297,8 @@ main(int argc, char** argv) (void)argc, (void)argv; OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + dev_args.allocator = &allocator; + OK(sdis_device_create(&dev_args, &dev)); /* Create the fluid medium */ OK(sdis_data_create diff --git a/src/test_sdis_solve_probe2.c b/src/test_sdis_solve_probe2.c @@ -145,7 +145,6 @@ interface_get_temperature int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_mc T = SDIS_MC_NULL; struct sdis_mc time = SDIS_MC_NULL; struct sdis_device* dev = NULL; @@ -173,8 +172,7 @@ main(int argc, char** argv) size_t nfails; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; @@ -284,8 +282,6 @@ main(int argc, char** argv) OK(sdis_scene_ref_put(scn)); OK(sdis_device_ref_put(dev)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_solve_probe2_2d.c b/src/test_sdis_solve_probe2_2d.c @@ -141,7 +141,6 @@ interface_get_temperature int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_mc T = SDIS_MC_NULL; struct sdis_mc time = SDIS_MC_NULL; struct sdis_device* dev = NULL; @@ -169,8 +168,7 @@ main(int argc, char** argv) size_t nfails; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; @@ -282,8 +280,6 @@ main(int argc, char** argv) OK(sdis_green_function_ref_put(green)); OK(sdis_device_ref_put(dev)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_solve_probe3.c b/src/test_sdis_solve_probe3.c @@ -166,7 +166,6 @@ interface_get_temperature int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_mc T = SDIS_MC_NULL; struct sdis_mc time = SDIS_MC_NULL; struct sdis_device* dev = NULL; @@ -199,8 +198,7 @@ main(int argc, char** argv) size_t i; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; @@ -262,7 +260,7 @@ main(int argc, char** argv) } /* Setup a sphere at the center of the box */ - OK(s3dut_create_sphere(&allocator, 0.25, 64, 32, &msh)); + OK(s3dut_create_sphere(NULL, 0.25, 64, 32, &msh)); OK(s3dut_mesh_get_data(msh, &msh_data)); FOR_EACH(i, 0, msh_data.nvertices) { sa_push(ctx.positions, msh_data.positions[i*3+0] + 0.5); @@ -339,8 +337,6 @@ main(int argc, char** argv) OK(sdis_scene_ref_put(scn)); OK(sdis_device_ref_put(dev)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; diff --git a/src/test_sdis_solve_probe3_2d.c b/src/test_sdis_solve_probe3_2d.c @@ -163,7 +163,6 @@ interface_get_temperature int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_mc T = SDIS_MC_NULL; struct sdis_mc time = SDIS_MC_NULL; struct sdis_device* dev = NULL; @@ -194,8 +193,7 @@ main(int argc, char** argv) size_t i; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; @@ -331,8 +329,6 @@ main(int argc, char** argv) OK(sdis_scene_ref_put(scn)); OK(sdis_device_ref_put(dev)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_solve_probe_2d.c b/src/test_sdis_solve_probe_2d.c @@ -133,7 +133,6 @@ interface_get_convection_coef int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_mc T = SDIS_MC_NULL; struct sdis_mc time = SDIS_MC_NULL; struct sdis_device* dev = NULL; @@ -158,8 +157,7 @@ main(int argc, char** argv) size_t nfails; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ OK(sdis_data_create @@ -243,8 +241,6 @@ main(int argc, char** argv) OK(sdis_scene_ref_put(scn)); OK(sdis_device_ref_put(dev)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_transcient.c b/src/test_sdis_transcient.c @@ -463,7 +463,6 @@ temperature_analytical int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_device* dev = NULL; struct sdis_scene* box_scn = NULL; struct sdis_scene* box2_scn = NULL; @@ -509,8 +508,7 @@ main(int argc, char** argv) boxsz[1] = 0.1; boxsz[2] = 0.2; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ fluid_shader = DUMMY_FLUID_SHADER; @@ -680,8 +678,6 @@ main(int argc, char** argv) OK(sdis_scene_ref_put(box2_scn)); OK(sdis_scene_ref_put(box_matriochka_scn)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_unstationary_atm.c b/src/test_sdis_unstationary_atm.c @@ -703,7 +703,6 @@ solve_tfluid int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_data* data = NULL; struct sdis_device* dev = NULL; struct sdis_medium* fluid = NULL; @@ -728,8 +727,7 @@ main(int argc, char** argv) struct ssp_rng* rng = NULL; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Setup the solid shader */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -899,7 +897,7 @@ main(int argc, char** argv) OK(sdis_interface_ref_put(interf_TA)); /* Solve */ - OK(ssp_rng_create(&allocator, SSP_RNG_KISS, &rng)); + OK(ssp_rng_create(NULL, SSP_RNG_KISS, &rng)); printf(">> Box scene\n"); solve_tfluid(box_scn); solve_tbound1(box_scn, rng); @@ -916,8 +914,6 @@ main(int argc, char** argv) OK(sdis_device_ref_put(dev)); OK(ssp_rng_ref_put(rng)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_volumic_power.c b/src/test_sdis_volumic_power.c @@ -379,7 +379,6 @@ solve int main(int argc, char** argv) { - struct mem_allocator allocator; struct sdis_data* data = NULL; struct sdis_device* dev = NULL; struct sdis_medium* fluid = NULL; @@ -399,8 +398,7 @@ main(int argc, char** argv) struct ssp_rng* rng = NULL; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); fluid_shader.temperature = fluid_get_temperature; OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); @@ -487,7 +485,7 @@ main(int argc, char** argv) OK(sdis_interface_ref_put(interf_T0)); /* Solve */ - OK(ssp_rng_create(&allocator, SSP_RNG_KISS, &rng)); + OK(ssp_rng_create(NULL, SSP_RNG_KISS, &rng)); printf(">> Box scene\n"); solve(box_scn, rng, solid_props); printf(">> Square scene\n"); @@ -498,8 +496,6 @@ main(int argc, char** argv) OK(sdis_device_ref_put(dev)); OK(ssp_rng_ref_put(rng)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_volumic_power2.c b/src/test_sdis_volumic_power2.c @@ -302,8 +302,7 @@ main(int argc, char** argv) }; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Setup the fluid shader */ fluid_shader.temperature = fluid_get_temperature; diff --git a/src/test_sdis_volumic_power2_2d.c b/src/test_sdis_volumic_power2_2d.c @@ -284,7 +284,6 @@ check(struct sdis_scene* scn, const struct reference refs[], const size_t nrefs) int main(int argc, char** argv) { - struct mem_allocator allocator; struct solid* solid_param = NULL; struct fluid* fluid_param = NULL; struct interf* interf_param = NULL; @@ -334,8 +333,7 @@ main(int argc, char** argv) }; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Setup the fluid shader */ fluid_shader.temperature = fluid_get_temperature; @@ -501,8 +499,6 @@ main(int argc, char** argv) OK(sdis_scene_ref_put(scn)); OK(sdis_device_ref_put(dev)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_volumic_power3_2d.c b/src/test_sdis_volumic_power3_2d.c @@ -238,7 +238,6 @@ interface_get_temperature int main(int argc, char** argv) { - struct mem_allocator allocator; struct solid* solid_param = NULL; struct fluid* fluid_param = NULL; struct interf* interf_param = NULL; @@ -271,8 +270,7 @@ main(int argc, char** argv) size_t nreals; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ fluid_shader.temperature = fluid_get_temperature; @@ -469,8 +467,6 @@ main(int argc, char** argv) OK(sdis_scene_ref_put(scn)); OK(sdis_device_ref_put(dev)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_sdis_volumic_power4.c b/src/test_sdis_volumic_power4.c @@ -205,7 +205,6 @@ main(int argc, char** argv) { char dump[128]; struct time t0, t1; - struct mem_allocator allocator; struct solid* solid_param = NULL; struct fluid* fluid_param = NULL; struct interf* interf_param = NULL; @@ -233,8 +232,7 @@ main(int argc, char** argv) double x; (void)argc, (void)argv; - OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_device_create(&SDIS_DEVICE_CREATE_ARGS_DEFAULT, &dev)); /* Create the fluid medium */ fluid_shader.temperature = fluid_get_temperature; @@ -413,8 +411,6 @@ main(int argc, char** argv) OK(sdis_scene_ref_put(scn_3d)); OK(sdis_device_ref_put(dev)); - check_memory_allocator(&allocator); - mem_shutdown_proxy_allocator(&allocator); CHK(mem_allocated_size() == 0); return 0; }