stardis-solver

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

commit db667d4ed2ed740f8b32df01acacfff1653a3d6f
parent deb7f15938eab03e67872367c48c5d626c81c834
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Fri, 19 Oct 2018 18:28:40 +0200

Merge branch 'feature_temporal_integration' into develop

Diffstat:
Msrc/sdis.h | 10+++++-----
Msrc/sdis_solve.c | 64++++++++++++++++++++++++++++++++++++++--------------------------
Msrc/sdis_solve_Xd.h | 102++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
Msrc/test_sdis_accum_buffer.c | 47+++++++++++++++++++++++------------------------
Msrc/test_sdis_camera.c | 85+++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_sdis_conducto_radiative.c | 70+++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/test_sdis_conducto_radiative_2d.c | 71++++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/test_sdis_convection.c | 71++++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/test_sdis_convection_non_uniform.c | 70+++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/test_sdis_data.c | 60++++++++++++++++++++++++++++--------------------------------
Msrc/test_sdis_device.c | 43+++++++++++++++++++++----------------------
Msrc/test_sdis_flux.c | 77++++++++++++++++++++++++++++++++++++++---------------------------------------
Msrc/test_sdis_interface.c | 124+++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_sdis_medium.c | 78++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_sdis_scene.c | 134++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_sdis_solve_boundary.c | 151+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Msrc/test_sdis_solve_boundary_flux.c | 153+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Msrc/test_sdis_solve_camera.c | 91++++++++++++++++++++++++++++++++++++++-----------------------------------------
Msrc/test_sdis_solve_probe.c | 119+++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_sdis_solve_probe2.c | 65++++++++++++++++++++++++++++++++---------------------------------
Msrc/test_sdis_solve_probe2_2d.c | 65++++++++++++++++++++++++++++++++---------------------------------
Msrc/test_sdis_solve_probe3.c | 77++++++++++++++++++++++++++++++++++++++---------------------------------------
Msrc/test_sdis_solve_probe3_2d.c | 71+++++++++++++++++++++++++++++++++++------------------------------------
Msrc/test_sdis_solve_probe_2d.c | 50+++++++++++++++++++++++++-------------------------
Msrc/test_sdis_utils.h | 3+++
Msrc/test_sdis_volumic_power.c | 80++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_sdis_volumic_power2.c | 124++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_sdis_volumic_power2_2d.c | 124++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_sdis_volumic_power3_2d.c | 136++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_sdis_volumic_power4_2d.c | 90++++++++++++++++++++++++++++++++++++++++----------------------------------------
30 files changed, 1286 insertions(+), 1219 deletions(-)

diff --git a/src/sdis.h b/src/sdis.h @@ -576,7 +576,7 @@ sdis_solve_probe (struct sdis_scene* scn, const size_t nrealisations, /* #realisations */ const double position[3], /* Probe position */ - const double time, /* Observation time */ + const double time_range[2], /* Observation time */ const double fp_to_meter, /* Scale from floating point units to meters */ const double ambient_radiative_temperature, /* In Kelvin */ const double reference_temperature, /* In Kelvin */ @@ -588,7 +588,7 @@ sdis_solve_probe_boundary const size_t nrealisations, /* #realisations */ const size_t iprim, /* Identifier of the primitive on which the probe lies */ const double uv[2], /* Parametric coordinates of the probe onto the primitve */ - const double time, /* Observation time */ + const double time_range[2], /* Observation time */ const enum sdis_side side, /* Side of iprim on which the probe lies */ const double fp_to_meter, /* Scale from floating point units to meters */ const double ambient_radiative_temperature, /* In Kelvin */ @@ -616,7 +616,7 @@ sdis_solve_boundary const size_t primitives[], /* List of boundary primitives to handle */ const enum sdis_side sides[], /* Per primitive side to consider */ const size_t nprimitives, /* #primitives */ - const double time, /* Observation time */ + const double time_range[2], /* Observation time */ const double fp_to_meter, /* Scale from floating point units to meters */ const double ambient_radiative_temperature, /* In Kelvin */ const double reference_temperature, /* In Kelvin */ @@ -629,7 +629,7 @@ sdis_solve_probe_boundary_flux const size_t nrealisations, /* #realisations */ const size_t iprim, /* Identifier of the primitive on which the probe lies */ const double uv[2], /* Parametric coordinates of the probe onto the primitve */ - const double time, /* Observation time */ + const double time_range[2], /* Observation time */ const double fp_to_meter, /* Scale from floating point units to meters */ const double ambient_radiative_temperature, /* In Kelvin */ const double reference_temperature, /* In Kelvin */ @@ -641,7 +641,7 @@ sdis_solve_boundary_flux const size_t nrealisations, /* #realisations */ const size_t primitives[], /* List of boundary primitives to handle */ const size_t nprimitives, /* #primitives */ - const double time, /* Observation time */ + const double time_range[2], /* Observation time */ const double fp_to_meter, /* Scale from floating point units to meters */ const double ambient_radiative_temperature, /* In Kelvin */ const double reference_temperature, /* In Kelvin */ diff --git a/src/sdis_solve.c b/src/sdis_solve.c @@ -166,7 +166,7 @@ sdis_solve_probe (struct sdis_scene* scn, const size_t nrealisations, const double position[3], - const double time, + const double time_range[2], const double fp_to_meter,/* Scale factor from floating point unit to meter */ const double Tarad, /* Ambient radiative temperature */ const double Tref, /* Reference temperature */ @@ -185,7 +185,8 @@ sdis_solve_probe ATOMIC res = RES_OK; if(!scn || !nrealisations || nrealisations > INT64_MAX || !position - || time < 0 || fp_to_meter <= 0 || Tref < 0 || !out_estimator) { + || !time_range || time_range[0] < 0 || time_range[1] < time_range[0] + || fp_to_meter <= 0 || Tref < 0 || !out_estimator) { res = RES_BAD_ARG; goto error; } @@ -228,10 +229,10 @@ sdis_solve_probe if(scene_is_2d(scn)) { res_local = probe_realisation_2d - (scn, rng, medium, position, time, fp_to_meter, Tarad, Tref, &w); + (scn, rng, medium, position, time_range, fp_to_meter, Tarad, Tref, &w); } else { res_local = probe_realisation_3d - (scn, rng, medium, position, time, fp_to_meter, Tarad, Tref, &w); + (scn, rng, medium, position, time_range, fp_to_meter, Tarad, Tref, &w); } if(res_local != RES_OK) { if(res_local != RES_BAD_OP) { @@ -272,7 +273,7 @@ sdis_solve_probe_boundary const size_t nrealisations, /* #realisations */ const size_t iprim, /* Identifier of the primitive on which the probe lies */ const double uv[2], /* Parametric coordinates of the probe onto the primitve */ - const double time, /* Observation time */ + const double time_range[2], /* Observation time */ const enum sdis_side side, /* Side of iprim on which the probe lies */ const double fp_to_meter, /* Scale from floating point units to meters */ const double Tarad, /* In Kelvin */ @@ -290,9 +291,10 @@ sdis_solve_probe_boundary size_t i; ATOMIC res = RES_OK; - if(!scn || !nrealisations || nrealisations > INT64_MAX || !uv || time < 0 - || fp_to_meter <= 0 || Tref < 0 || (side != SDIS_FRONT && side != SDIS_BACK) - || !out_estimator) { + if(!scn || !nrealisations || nrealisations > INT64_MAX || !uv + || !time_range || time_range[0] < 0 || time_range[1] < time_range[0] + || fp_to_meter <= 0 || Tref < 0 || (side != SDIS_FRONT && side != SDIS_BACK) + || !out_estimator) { res = RES_BAD_ARG; goto error; } @@ -366,10 +368,10 @@ sdis_solve_probe_boundary if(scene_is_2d(scn)) { res_local = boundary_realisation_2d - (scn, rng, iprim, uv, time, side, fp_to_meter, Tarad, Tref, &w); + (scn, rng, iprim, uv, time_range, side, fp_to_meter, Tarad, Tref, &w); } else { res_local = boundary_realisation_3d - (scn, rng, iprim, uv, time, side, fp_to_meter, Tarad, Tref, &w); + (scn, rng, iprim, uv, time_range, side, fp_to_meter, Tarad, Tref, &w); } if(res_local != RES_OK) { if(res_local != RES_BAD_OP) { @@ -549,7 +551,7 @@ sdis_solve_boundary const size_t primitives[], /* List of boundary primitives to handle */ const enum sdis_side sides[], /* Per primitive side to consider */ const size_t nprimitives, /* #primitives */ - const double time, /* Observation time */ + const double time_range[2], /* Observation time */ const double fp_to_meter, /* Scale from floating point units to meters */ const double Tarad, /* In Kelvin */ const double Tref, /* In Kelvin */ @@ -559,10 +561,10 @@ sdis_solve_boundary if(!scn) return RES_BAD_ARG; if(scene_is_2d(scn)) { res = solve_boundary_2d(scn, nrealisations, primitives, sides, nprimitives, - time, fp_to_meter, Tarad, Tref, out_estimator); + time_range, fp_to_meter, Tarad, Tref, out_estimator); } else { res = solve_boundary_3d(scn, nrealisations, primitives, sides, nprimitives, - time, fp_to_meter, Tarad, Tref, out_estimator); + time_range, fp_to_meter, Tarad, Tref, out_estimator); } return res; } @@ -573,7 +575,7 @@ sdis_solve_probe_boundary_flux const size_t nrealisations, /* #realisations */ const size_t iprim, /* Identifier of the primitive on which the probe lies */ const double uv[2], /* Parametric coordinates of the probe onto the primitve */ - const double time, /* Observation time */ + const double time_range[2], /* Observation time */ const double fp_to_meter, /* Scale from floating point units to meters */ const double Tarad, /* In Kelvin */ const double Tref, /* In Kelvin */ @@ -585,18 +587,19 @@ sdis_solve_probe_boundary_flux const struct sdis_interface* interf; const struct sdis_medium *fmd, *bmd; enum sdis_side solid_side, fluid_side; + struct sdis_interface_fragment frag; double weight_t = 0, sqr_weight_t = 0; double weight_fc = 0, sqr_weight_fc = 0; double weight_fr = 0, sqr_weight_fr = 0; double weight_f= 0, sqr_weight_f = 0; - double epsilon, hc, hr; const int64_t rcount = (int64_t)nrealisations; int64_t irealisation = 0; size_t N = 0; /* #realisations that do not fail */ size_t i; ATOMIC res = RES_OK; - if(!scn || !nrealisations || nrealisations > INT64_MAX || !uv || time < 0 + if(!scn || !nrealisations || nrealisations > INT64_MAX || !uv + || !time_range || time_range[0] < 0 || time_range[1] < time_range[0] || fp_to_meter <= 0 || Tref < 0 || !out_estimator) { res = RES_BAD_ARG; @@ -668,15 +671,14 @@ sdis_solve_probe_boundary_flux if(res != RES_OK) goto error; } - /* Compute hr and hc */ + /* Prebuild the interface fragment */ if(scene_is_2d(scn)) { - res = interface_get_hc_epsilon_2d(&hc, &epsilon, scn, (unsigned)iprim, - uv, time, fluid_side); + res = interface_prebuild_fragment_2d(&frag, scn, (unsigned)iprim, + uv, fluid_side); } else { - res = interface_get_hc_epsilon_3d(&hc, &epsilon, scn, (unsigned)iprim, - uv, time, fluid_side); + res = interface_prebuild_fragment_3d(&frag, scn, (unsigned)iprim, + uv, fluid_side); } - hr = 4.0 * BOLTZMANN_CONSTANT * Tref * Tref * Tref * epsilon; /* Create the estimator */ res = estimator_create(scn->dev, SDIS_FLUX_ESTIMATOR, &estimator); @@ -691,9 +693,19 @@ sdis_solve_probe_boundary_flux double T_brf[3] = { 0, 0, 0 }; const int ithread = omp_get_thread_num(); struct ssp_rng* rng = rngs[ithread]; + double time, epsilon, hc, hr; if(ATOMIC_GET(&res) != RES_OK) continue; /* An error occurred */ + /* Sample a time */ + time = sample_time(time_range, rng); + + /* Compute hr and hc */ + frag.time = time; + epsilon = interface_side_get_emissivity(interf, &frag); + hc = interface_get_convection_coef(interf, &frag); + hr = 4.0 * BOLTZMANN_CONSTANT * Tref * Tref * Tref * epsilon; + /* Fluid, Radiative and Solid temperatures */ if(scene_is_2d(scn)) { res_local = probe_flux_realisation_2d(scn, rng, iprim, uv, time, @@ -754,9 +766,9 @@ res_T sdis_solve_boundary_flux (struct sdis_scene* scn, const size_t nrealisations, /* #realisations */ - const size_t primitives [], /* List of boundary primitives to handle */ + const size_t primitives[], /* List of boundary primitives to handle */ const size_t nprimitives, /* #primitives */ - const double time, /* Observation time */ + const double time_range[2], /* Observation time */ const double fp_to_meter, /* Scale from floating point units to meters */ const double Tarad, /* In Kelvin */ const double Tref, /* In Kelvin */ @@ -766,10 +778,10 @@ sdis_solve_boundary_flux if(!scn) return RES_BAD_ARG; if(scene_is_2d(scn)) { res = solve_boundary_flux_2d(scn, nrealisations, primitives, nprimitives, - time, fp_to_meter, Tarad, Tref, out_estimator); + time_range, fp_to_meter, Tarad, Tref, out_estimator); } else { res = solve_boundary_flux_3d(scn, nrealisations, primitives, nprimitives, - time, fp_to_meter, Tarad, Tref, out_estimator); + time_range, fp_to_meter, Tarad, Tref, out_estimator); } return res; } diff --git a/src/sdis_solve_Xd.h b/src/sdis_solve_Xd.h @@ -233,6 +233,20 @@ XD(radiative_temperature) /******************************************************************************* * Helper functions ******************************************************************************/ +#ifndef SAMPLE_TIME_DEFINED +static INLINE double +sample_time + (const double time_range[2], + struct ssp_rng* rng) +{ + ASSERT(time_range && time_range[0] >= 0 && time_range[1] >= time_range[0] + && rng); + if (time_range[0] == time_range[1]) return time_range[0]; + return ssp_rng_uniform_double(rng, time_range[0], time_range[1]); +} +#define SAMPLE_TIME_DEFINED +#endif + static INLINE void XD(boundary_get_indices)(const unsigned iprim, unsigned ids[DIM], void* context) { @@ -1440,7 +1454,7 @@ XD(probe_realisation) struct ssp_rng* rng, const struct sdis_medium* medium, const double position[], - const double time, + const double time_range[2], const double fp_to_meter,/* Scale factor from floating point unit to meter */ const double ambient_radiative_temperature, const double reference_temperature, @@ -1450,7 +1464,7 @@ XD(probe_realisation) struct XD(rwalk) rwalk = XD(RWALK_NULL); struct XD(temperature) T = XD(TEMPERATURE_NULL); res_T res = RES_OK; - ASSERT(medium && position && fp_to_meter > 0 && weight && time >= 0); + ASSERT(medium && position && fp_to_meter > 0 && weight); switch(medium->type) { case SDIS_FLUID: T.func = XD(fluid_temperature); break; @@ -1459,7 +1473,8 @@ XD(probe_realisation) } dX(set)(rwalk.vtx.P, position); - rwalk.vtx.time = time; + /* Sample a time */ + rwalk.vtx.time = sample_time(time_range, rng); rwalk.hit = SXD_HIT_NULL; rwalk.mdm = medium; @@ -1482,7 +1497,7 @@ XD(boundary_realisation) struct ssp_rng* rng, const size_t iprim, const double uv[2], - const double time, + const double time_range[2], const enum sdis_side side, const double fp_to_meter, const double Tarad, @@ -1499,13 +1514,14 @@ XD(boundary_realisation) float st[2]; #endif res_T res = RES_OK; - ASSERT(uv && fp_to_meter > 0 && weight && time >= 0 && Tref >= 0); + ASSERT(uv && fp_to_meter > 0 && weight && Tref >= 0 + && time_range && time_range[0] >= 0 && time_range[1] >= time_range[0]); T.func = XD(boundary_temperature); - rwalk.hit_side = side; rwalk.hit.distance = 0; - rwalk.vtx.time = time; + /* Sample a time */ + rwalk.vtx.time = sample_time(time_range, rng); rwalk.mdm = NULL; /* The random walk is at an interface between 2 media */ #if SDIS_SOLVE_DIMENSION == 2 @@ -1643,22 +1659,17 @@ XD(probe_flux_realisation) return RES_OK; } -static res_T -XD(interface_get_hc_epsilon) - (double *hc, - double* epsilon, +static INLINE res_T +XD(interface_prebuild_fragment) + (struct sdis_interface_fragment* frag, const struct sdis_scene* scn, const unsigned iprim, const double* uv, - const double time, const enum sdis_side fluid_side) -{ - struct sdis_interface_fragment frag = SDIS_INTERFACE_FRAGMENT_NULL; - struct sXd(attrib) attr; +{ struct sXd(attrib) attr; struct sXd(primitive) prim; struct sXd(hit) hit; struct sdis_rwalk_vertex vtx; - const struct sdis_interface* interf; #if SDIS_SOLVE_DIMENSION == 2 float st; #else @@ -1666,33 +1677,56 @@ XD(interface_get_hc_epsilon) #endif res_T res = RES_OK; + ASSERT(frag && scn && uv); ASSERT(fluid_side == SDIS_FRONT || fluid_side == SDIS_BACK); + *frag = SDIS_INTERFACE_FRAGMENT_NULL; + #if SDIS_SOLVE_DIMENSION == 2 - #define SET_PARAM(Dest, Src) (Dest).u = (Src); +#define SET_PARAM(Dest, Src) (Dest).u = (Src); st = (float) uv[0]; #else - #define SET_PARAM(Dest, Src) f2_set((Dest).uv, (Src)); +#define SET_PARAM(Dest, Src) f2_set((Dest).uv, (Src)); f2_set_d2(st, uv); #endif res = sXd(scene_view_get_primitive(scn->sXd(view), iprim, &prim)); - if(res != RES_OK) return res; + if (res != RES_OK) return res; res = sXd(primitive_get_attrib(&prim, SXD_POSITION, st, &attr)); - if(res != RES_OK) return res; + if (res != RES_OK) return res; dX_set_fX(vtx.P, attr.value); res = sXd(primitive_get_attrib(&prim, SXD_GEOMETRY_NORMAL, st, &attr)); - if(res != RES_OK) return res; + if (res != RES_OK) return res; fX(set)(hit.normal, attr.value); hit.distance = 0; hit.prim = prim; + vtx.time = NaN; SET_PARAM(hit, st); + #undef SET_PARAM + XD(setup_interface_fragment)(frag, &vtx, &hit, fluid_side); + + return res; +} + +static res_T +XD(interface_get_hc_epsilon) + (double *hc, + double* epsilon, + const struct sdis_scene* scn, + const unsigned iprim, + const double* uv, + const double time, + const enum sdis_side fluid_side) +{ + struct sdis_interface_fragment frag; + const struct sdis_interface* interf; + res_T res = RES_OK; + + res = XD(interface_prebuild_fragment)(&frag, scn, iprim, uv, fluid_side); frag.time = time; - XD(setup_interface_fragment)(&frag, &vtx, &hit, fluid_side); interf = scene_get_interface(scn, iprim); ASSERT(interf); *epsilon = interface_side_get_emissivity(interf, &frag); - #undef SET_PARAM *hc = interface_get_convection_coef(interf, &frag); return res; @@ -1756,7 +1790,7 @@ XD(solve_boundary) const size_t primitives[], /* List of boundary primitives to handle */ const enum sdis_side sides[], /* Per primitive side to consider */ const size_t nprimitives, /* #primitives */ - const double time, /* Observation time */ + const double time_range[2], /* Observation time */ const double fp_to_meter, /* Scale from floating point units to meters */ const double Tarad, /* In Kelvin */ const double Tref, /* In Kelvin */ @@ -1778,8 +1812,9 @@ XD(solve_boundary) ATOMIC res = RES_OK; if(!scn || !nrealisations || nrealisations > INT64_MAX || !primitives - || !sides || !nprimitives || time < 0 || fp_to_meter < 0 || Tref < 0 - || !out_estimator) { + || !time_range || time_range[0] < 0 || time_range[1] < time_range[0] + || !sides || !nprimitives || fp_to_meter < 0 || Tref < 0 + || !out_estimator) { res = RES_BAD_ARG; goto error; } @@ -1858,6 +1893,7 @@ XD(solve_boundary) double w = NaN; double uv[DIM-1]; float st[DIM-1]; + double time; res_T res_local = RES_OK; if(ATOMIC_GET(&res) != RES_OK) continue; /* An error occurred */ @@ -1886,9 +1922,12 @@ XD(solve_boundary) iprim = primitives[prim.prim_id]; side = sides[prim.prim_id]; + /* Sample a time */ + time = sample_time(time_range, rng); + /* Invoke the boundary realisation */ res_local = XD(boundary_realisation) - (scn, rng, iprim, uv, time, side, fp_to_meter, Tarad, Tref, &w); + (scn, rng, iprim, uv, time_range, side, fp_to_meter, Tarad, Tref, &w); /* Update the MC accumulators */ if(res_local == RES_OK) { @@ -1928,7 +1967,7 @@ XD(solve_boundary_flux) const size_t nrealisations, /* #realisations */ const size_t primitives[], /* List of boundary primitives to handle */ const size_t nprimitives, /* #primitives */ - const double time, /* Observation time */ + const double time_range[2], /* Observation time */ const double fp_to_meter, /* Scale from floating point units to meters */ const double Tarad, /* In Kelvin */ const double Tref, /* In Kelvin */ @@ -1953,7 +1992,8 @@ XD(solve_boundary_flux) ATOMIC res = RES_OK; if(!scn || !nrealisations || nrealisations > INT64_MAX || !primitives - || !nprimitives || time < 0 || fp_to_meter < 0 || Tref < 0 + || !time_range || time_range[0] < 0 || time_range[1] < time_range[0] + || !nprimitives || fp_to_meter < 0 || Tref < 0 || !out_estimator) { res = RES_BAD_ARG; goto error; @@ -2038,10 +2078,14 @@ XD(solve_boundary_flux) size_t iprim; double uv[DIM - 1]; float st[DIM - 1]; + double time; res_T res_local = RES_OK; if(ATOMIC_GET(&res) != RES_OK) continue; /* An error occurred */ + /* Sample a time */ + time = sample_time(time_range, rng); + /* Sample a position onto the boundary */ #if DIM == 2 res_local = s2d_scene_view_sample diff --git a/src/test_sdis_accum_buffer.c b/src/test_sdis_accum_buffer.c @@ -27,34 +27,33 @@ main(int argc, char** argv) struct sdis_accum* accums_tmp = NULL; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); - CHK(sdis_accum_buffer_create(NULL, 4 ,4, &buf) == RES_BAD_ARG); - CHK(sdis_accum_buffer_create(dev, 0 ,4, &buf) == RES_BAD_ARG); - CHK(sdis_accum_buffer_create(dev, 4 ,0, &buf) == RES_BAD_ARG); - CHK(sdis_accum_buffer_create(dev, 4 ,0, NULL) == RES_BAD_ARG); - CHK(sdis_accum_buffer_create(dev, 4 ,4, &buf) == RES_OK); + BA(sdis_accum_buffer_create(NULL, 4 ,4, &buf)); + BA(sdis_accum_buffer_create(dev, 0 ,4, &buf)); + BA(sdis_accum_buffer_create(dev, 4 ,0, &buf)); + BA(sdis_accum_buffer_create(dev, 4 ,0, NULL)); + OK(sdis_accum_buffer_create(dev, 4 ,4, &buf)); - CHK(sdis_accum_buffer_ref_get(NULL) == RES_BAD_ARG); - CHK(sdis_accum_buffer_ref_get(buf) == RES_OK); - CHK(sdis_accum_buffer_ref_put(NULL) == RES_BAD_ARG); - CHK(sdis_accum_buffer_ref_put(buf) == RES_OK); - CHK(sdis_accum_buffer_ref_put(buf) == RES_OK); + BA(sdis_accum_buffer_ref_get(NULL)); + OK(sdis_accum_buffer_ref_get(buf)); + BA(sdis_accum_buffer_ref_put(NULL)); + OK(sdis_accum_buffer_ref_put(buf)); + OK(sdis_accum_buffer_ref_put(buf)); - CHK(sdis_accum_buffer_create(dev, 16, 8, &buf) == RES_OK); + OK(sdis_accum_buffer_create(dev, 16, 8, &buf)); - CHK(sdis_accum_buffer_get_layout(NULL, &layout) == RES_BAD_ARG); - CHK(sdis_accum_buffer_get_layout(buf, NULL) == RES_BAD_ARG); - CHK(sdis_accum_buffer_get_layout(buf, &layout) == RES_OK); + BA(sdis_accum_buffer_get_layout(NULL, &layout)); + BA(sdis_accum_buffer_get_layout(buf, NULL)); + OK(sdis_accum_buffer_get_layout(buf, &layout)); CHK(layout.width == 16); CHK(layout.height == 8); - CHK(sdis_accum_buffer_map(NULL, &accums) == RES_BAD_ARG); - CHK(sdis_accum_buffer_map(buf, NULL) == RES_BAD_ARG); - CHK(sdis_accum_buffer_map(buf, &accums) == RES_OK); + BA(sdis_accum_buffer_map(NULL, &accums)); + BA(sdis_accum_buffer_map(buf, NULL)); + OK(sdis_accum_buffer_map(buf, &accums)); /* Check the accessibility to the mapped data */ accums_tmp = MEM_CALLOC @@ -64,11 +63,11 @@ main(int argc, char** argv) layout.width*layout.height*sizeof(struct sdis_accum)); MEM_RM(&allocator, accums_tmp); - CHK(sdis_accum_buffer_unmap(NULL) == RES_BAD_ARG); - CHK(sdis_accum_buffer_unmap(buf) == RES_OK); + BA(sdis_accum_buffer_unmap(NULL)); + OK(sdis_accum_buffer_unmap(buf)); - CHK(sdis_accum_buffer_ref_put(buf) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_accum_buffer_ref_put(buf)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_camera.c b/src/test_sdis_camera.c @@ -29,62 +29,61 @@ main(int argc, char** argv) double up[3] = {0}; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); - CHK(sdis_camera_create(NULL, NULL) == RES_BAD_ARG); - CHK(sdis_camera_create(dev, NULL) == RES_BAD_ARG); - CHK(sdis_camera_create(NULL, &cam) == RES_BAD_ARG); - CHK(sdis_camera_create(dev, &cam) == RES_OK); + BA(sdis_camera_create(NULL, NULL)); + BA(sdis_camera_create(dev, NULL)); + BA(sdis_camera_create(NULL, &cam)); + OK(sdis_camera_create(dev, &cam)); - CHK(sdis_camera_ref_get(NULL) == RES_BAD_ARG); - CHK(sdis_camera_ref_get(cam) == RES_OK); - CHK(sdis_camera_ref_put(NULL) == RES_BAD_ARG); - CHK(sdis_camera_ref_put(cam) == RES_OK); - CHK(sdis_camera_ref_put(cam) == RES_OK); + BA(sdis_camera_ref_get(NULL)); + OK(sdis_camera_ref_get(cam)); + BA(sdis_camera_ref_put(NULL)); + OK(sdis_camera_ref_put(cam)); + OK(sdis_camera_ref_put(cam)); - CHK(sdis_camera_create(dev, &cam) == RES_OK); - CHK(sdis_camera_set_proj_ratio(NULL, 0) == RES_BAD_ARG); - CHK(sdis_camera_set_proj_ratio(cam, 0) == RES_BAD_ARG); - CHK(sdis_camera_set_proj_ratio(NULL, 4.0/3.0) == RES_BAD_ARG); - CHK(sdis_camera_set_proj_ratio(cam, 4.0/3.0) == RES_OK); - CHK(sdis_camera_set_proj_ratio(cam, -4.0/3.0) == RES_BAD_ARG); + OK(sdis_camera_create(dev, &cam)); + BA(sdis_camera_set_proj_ratio(NULL, 0)); + BA(sdis_camera_set_proj_ratio(cam, 0)); + BA(sdis_camera_set_proj_ratio(NULL, 4.0 / 3.0)); + OK(sdis_camera_set_proj_ratio(cam, 4.0/3.0)); + BA(sdis_camera_set_proj_ratio(cam, -4.0/3.0)); - CHK(sdis_camera_set_fov(NULL, 0) == RES_BAD_ARG); - CHK(sdis_camera_set_fov(cam, 0) == RES_BAD_ARG); - CHK(sdis_camera_set_fov(NULL, PI/4.0) == RES_BAD_ARG); - CHK(sdis_camera_set_fov(cam, PI/4.0) == RES_OK); - CHK(sdis_camera_set_fov(cam, -PI/4.0) == RES_BAD_ARG); + BA(sdis_camera_set_fov(NULL, 0)); + BA(sdis_camera_set_fov(cam, 0)); + BA(sdis_camera_set_fov(NULL, PI/4.0)); + OK(sdis_camera_set_fov(cam, PI/4.0)); + BA(sdis_camera_set_fov(cam, -PI/4.0)); pos[0] = 0, pos[1] = 0, pos[2] = 0; tgt[0] = 0, tgt[1] = 0, tgt[2] = -1; up[0] = 0, up[1] = 1, up[2] = 0; - CHK(sdis_camera_look_at(NULL, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_camera_look_at(cam, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_camera_look_at(NULL, pos, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_camera_look_at(cam, pos, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_camera_look_at(NULL, NULL, tgt, NULL) == RES_BAD_ARG); - CHK(sdis_camera_look_at(cam, NULL, tgt, NULL) == RES_BAD_ARG); - CHK(sdis_camera_look_at(NULL, pos, tgt, NULL) == RES_BAD_ARG); - CHK(sdis_camera_look_at(cam, pos, tgt, NULL) == RES_BAD_ARG); - CHK(sdis_camera_look_at(NULL, NULL, NULL, up) == RES_BAD_ARG); - CHK(sdis_camera_look_at(cam, NULL, NULL, up) == RES_BAD_ARG); - CHK(sdis_camera_look_at(NULL, pos, NULL, up) == RES_BAD_ARG); - CHK(sdis_camera_look_at(cam, pos, NULL, up) == RES_BAD_ARG); - CHK(sdis_camera_look_at(NULL, NULL, tgt, up) == RES_BAD_ARG); - CHK(sdis_camera_look_at(cam, NULL, tgt, up) == RES_BAD_ARG); - CHK(sdis_camera_look_at(NULL, pos, tgt, up) == RES_BAD_ARG); - CHK(sdis_camera_look_at(cam, pos, tgt, up) == RES_OK); + BA(sdis_camera_look_at(NULL, NULL, NULL, NULL)); + BA(sdis_camera_look_at(cam, NULL, NULL, NULL)); + BA(sdis_camera_look_at(NULL, pos, NULL, NULL)); + BA(sdis_camera_look_at(cam, pos, NULL, NULL)); + BA(sdis_camera_look_at(NULL, NULL, tgt, NULL)); + BA(sdis_camera_look_at(cam, NULL, tgt, NULL)); + BA(sdis_camera_look_at(NULL, pos, tgt, NULL)); + BA(sdis_camera_look_at(cam, pos, tgt, NULL)); + BA(sdis_camera_look_at(NULL, NULL, NULL, up)); + BA(sdis_camera_look_at(cam, NULL, NULL, up)); + BA(sdis_camera_look_at(NULL, pos, NULL, up)); + BA(sdis_camera_look_at(cam, pos, NULL, up)); + BA(sdis_camera_look_at(NULL, NULL, tgt, up)); + BA(sdis_camera_look_at(cam, NULL, tgt, up)); + BA(sdis_camera_look_at(NULL, pos, tgt, up)); + OK(sdis_camera_look_at(cam, pos, tgt, up)); tgt[0] = 0, tgt[1] = 0, tgt[2] = 0; - CHK(sdis_camera_look_at(cam, pos, tgt, up) == RES_BAD_ARG); + BA(sdis_camera_look_at(cam, pos, tgt, up)); tgt[0] = 0, tgt[1] = 0, tgt[2] = -1; up[0] = 0, up[1] = 0, up[2] = 0; - CHK(sdis_camera_look_at(cam, pos, tgt, up) == RES_BAD_ARG); + BA(sdis_camera_look_at(cam, pos, tgt, up)); - CHK(sdis_device_ref_put(dev) == RES_OK); - CHK(sdis_camera_ref_put(cam) == RES_OK); + OK(sdis_device_ref_put(dev)); + OK(sdis_camera_ref_put(cam)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_conducto_radiative.c b/src/test_sdis_conducto_radiative.c @@ -241,12 +241,12 @@ create_interface } shader.convection_coef_upper_bound = MMAX(0, interf->convection_coef); - CHK(sdis_data_create(dev, sizeof(struct interfac), ALIGNOF(struct interfac), - NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interfac), ALIGNOF(struct interfac), + NULL, &data)); *((struct interfac*)sdis_data_get(data)) = *interf; - CHK(sdis_interface_create(dev, front, back, &shader, data, out_interf) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, front, back, &shader, data, out_interf)); + OK(sdis_data_ref_put(data)); } /******************************************************************************* @@ -280,37 +280,36 @@ main(int argc, char** argv) double Ts0, Ts1, hr, tmp; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); /* Create the solid medium */ - CHK(sdis_data_create(dev, sizeof(struct solid), ALIGNOF(struct solid), - NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct solid), ALIGNOF(struct solid), + NULL, &data)); ((struct solid*)sdis_data_get(data))->lambda = lambda; solid_shader.calorific_capacity = solid_get_calorific_capacity; solid_shader.thermal_conductivity = solid_get_thermal_conductivity; solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = temperature_unknown; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid)); + OK(sdis_data_ref_put(data)); /* Create the surrounding solid medium */ - CHK(sdis_data_create(dev, sizeof(struct solid), ALIGNOF(struct solid), - NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct solid), ALIGNOF(struct solid), + NULL, &data)); ((struct solid*)sdis_data_get(data))->lambda = 0; solid_shader.calorific_capacity = solid_get_calorific_capacity; solid_shader.thermal_conductivity = solid_get_thermal_conductivity; solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = temperature_unknown; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid2)); + OK(sdis_data_ref_put(data)); /* Create the interface that forces to keep in conduction */ interf.temperature = UNKNOWN_TEMPERATURE; @@ -373,8 +372,8 @@ main(int argc, char** argv) geom.positions = vertices; geom.indices = indices; geom.interfaces = prim_interfaces; - CHK(sdis_scene_create(dev, ntriangles, get_indices, get_interface, nvertices, - get_position, &geom, &scn) == RES_OK); + OK(sdis_scene_create(dev, ntriangles, get_indices, get_interface, nvertices, + get_position, &geom, &scn)); hr = 4.0 * BOLTZMANN_CONSTANT * Tref*Tref*Tref * emissivity; tmp = lambda/(2*lambda + thickness*hr) * (T1 - T0); @@ -382,11 +381,12 @@ main(int argc, char** argv) Ts1 = T1 - tmp; /* Run the simulations */ - CHK(ssp_rng_create(&allocator, &ssp_rng_kiss, &rng) == RES_OK); + OK(ssp_rng_create(&allocator, &ssp_rng_kiss, &rng)); FOR_EACH(isimul, 0, nsimuls) { struct sdis_mc T = SDIS_MC_NULL; struct sdis_estimator* estimator; double pos[3]; + double time_range[2] = { INF, INF }; double ref, u; size_t nreals = 0; size_t nfails = 0; @@ -396,10 +396,10 @@ main(int argc, char** argv) pos[1] = ssp_rng_uniform_double(rng, -0.9, 0.9); pos[2] = ssp_rng_uniform_double(rng, -0.9, 0.9); - CHK(sdis_solve_probe(scn, N, pos, INF, 1, -1, Tref, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); + OK(sdis_solve_probe(scn, N, pos, time_range, 1, -1, Tref, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); + OK(sdis_estimator_get_temperature(estimator, &T)); u = (pos[0] + 1) / thickness; ref = u * Ts1 + (1-u) * Ts0; @@ -411,21 +411,21 @@ main(int argc, char** argv) CHK(nfails < N/1000); CHK(eq_eps(T.E, ref, 2*T.SE) == 1); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); } /* Release memory */ - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_interface_ref_put(interfaces[0]) == RES_OK); - CHK(sdis_interface_ref_put(interfaces[1]) == RES_OK); - CHK(sdis_interface_ref_put(interfaces[2]) == RES_OK); - CHK(sdis_interface_ref_put(interfaces[3]) == RES_OK); - CHK(sdis_interface_ref_put(interfaces[4]) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(solid2) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); - CHK(ssp_rng_ref_put(rng) == RES_OK); + OK(sdis_scene_ref_put(scn)); + OK(sdis_interface_ref_put(interfaces[0])); + OK(sdis_interface_ref_put(interfaces[1])); + OK(sdis_interface_ref_put(interfaces[2])); + OK(sdis_interface_ref_put(interfaces[3])); + OK(sdis_interface_ref_put(interfaces[4])); + OK(sdis_medium_ref_put(fluid)); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(solid2)); + OK(sdis_device_ref_put(dev)); + OK(ssp_rng_ref_put(rng)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_conducto_radiative_2d.c b/src/test_sdis_conducto_radiative_2d.c @@ -257,12 +257,12 @@ create_interface } shader.convection_coef_upper_bound = MMAX(0, interf->convection_coef); - CHK(sdis_data_create(dev, sizeof(struct interfac), ALIGNOF(struct interfac), - NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interfac), ALIGNOF(struct interfac), + NULL, &data)); *((struct interfac*)sdis_data_get(data)) = *interf; - CHK(sdis_interface_create(dev, front, back, &shader, data, out_interf) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, front, back, &shader, data, out_interf)); + OK(sdis_data_ref_put(data)); } /******************************************************************************* @@ -291,40 +291,40 @@ main(int argc, char** argv) const double lambda = 0.1; /* Conductivity of the solid */ const double Tref = 300; /* Reference temperature */ const double T0 = 300; /* Fixed temperature on the left side of the system */ - const double T1 = 310; /* Fixed temperature on the right side of the system */ + const double T1 = 310; /* Fixed temperature on the right side of the system */ const double thickness = 2.0; /* Thickness of the solid along X */ double Ts0, Ts1, hr, tmp; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); /* Create the solid medium */ - CHK(sdis_data_create - (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data)); ((struct solid*)sdis_data_get(data))->lambda = lambda; solid_shader.calorific_capacity = solid_get_calorific_capacity; solid_shader.thermal_conductivity = solid_get_thermal_conductivity; solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = temperature_unknown; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid)); + OK(sdis_data_ref_put(data)); /* Create the surrounding solid medium */ - CHK(sdis_data_create(dev, sizeof(struct solid), ALIGNOF(struct solid), - NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct solid), ALIGNOF(struct solid), + NULL, &data)); ((struct solid*)sdis_data_get(data))->lambda = 0; solid_shader.calorific_capacity = solid_get_thermal_conductivity; solid_shader.thermal_conductivity = solid_get_thermal_conductivity; solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid2)); + OK(sdis_data_ref_put(data)); /* Create the interface that forces to keep in conduction */ interf = INTERFACE_NULL; @@ -378,8 +378,8 @@ main(int argc, char** argv) geom.positions = vertices; geom.indices = indices; geom.interfaces = prim_interfaces; - CHK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, nvertices, - get_position, &geom, &scn) == RES_OK); + OK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, nvertices, + get_position, &geom, &scn)); hr = 4*BOLTZMANN_CONSTANT * Tref*Tref*Tref * emissivity; tmp = lambda/(2*lambda + thickness*hr) * (T1 - T0); @@ -387,11 +387,12 @@ main(int argc, char** argv) Ts1 = T1 - tmp; /* Run the simulations */ - CHK(ssp_rng_create(&allocator, &ssp_rng_kiss, &rng) == RES_OK); + OK(ssp_rng_create(&allocator, &ssp_rng_kiss, &rng)); FOR_EACH(isimul, 0, nsimuls) { struct sdis_mc T = SDIS_MC_NULL; struct sdis_estimator* estimator; double pos[2]; + double time_range[2] = { INF, INF }; double ref, u; size_t nreals = 0; size_t nfails = 0; @@ -400,10 +401,10 @@ main(int argc, char** argv) pos[0] = ssp_rng_uniform_double(rng, -0.9, 0.9); pos[1] = ssp_rng_uniform_double(rng, -0.9, 0.9); - CHK(sdis_solve_probe(scn, 10000, pos, INF, 1, -1, Tref, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); + OK(sdis_solve_probe(scn, 10000, pos, time_range, 1, -1, Tref, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); + OK(sdis_estimator_get_temperature(estimator, &T)); u = (pos[0] + 1) / thickness; ref = u * Ts1 + (1-u) * Ts0; @@ -415,21 +416,21 @@ main(int argc, char** argv) CHK(nfails < N/1000); CHK(eq_eps(T.E, ref, 3*T.SE) == 1); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); } /* Release memory */ - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_interface_ref_put(interfaces[0]) == RES_OK); - CHK(sdis_interface_ref_put(interfaces[1]) == RES_OK); - CHK(sdis_interface_ref_put(interfaces[2]) == RES_OK); - CHK(sdis_interface_ref_put(interfaces[3]) == RES_OK); - CHK(sdis_interface_ref_put(interfaces[4]) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(solid2) == RES_OK); - CHK(ssp_rng_ref_put(rng) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(scn)); + OK(sdis_interface_ref_put(interfaces[0])); + OK(sdis_interface_ref_put(interfaces[1])); + OK(sdis_interface_ref_put(interfaces[2])); + OK(sdis_interface_ref_put(interfaces[3])); + OK(sdis_interface_ref_put(interfaces[4])); + OK(sdis_medium_ref_put(fluid)); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(solid2)); + OK(ssp_rng_ref_put(rng)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_convection.c b/src/test_sdis_convection.c @@ -146,13 +146,13 @@ create_interface struct sdis_interface* interf; struct interf* interf_props; - CHK(sdis_data_create - (dev, sizeof(struct interf), ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct interf), ALIGNOF(struct interf), NULL, &data)); interf_props = sdis_data_get(data); interf_props->temperature = temperature; - CHK(sdis_interface_create - (dev, front, back, interf_shader, data, &interf) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, front, back, interf_shader, data, &interf)); + OK(sdis_data_ref_put(data)); return interf; } @@ -190,18 +190,17 @@ main(int argc, char** argv) int i; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); /* Create the fluid medium */ fluid_shader.temperature = fluid_get_temperature; fluid_shader.calorific_capacity = fluid_get_calorific_capacity; fluid_shader.volumic_mass = fluid_get_volumic_mass; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); /* Create the solid_medium */ - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); /* Setup the interface shader */ interf_shader.convection_coef = interface_get_convection_coef; @@ -219,8 +218,8 @@ main(int argc, char** argv) interf_T5 = create_interface(dev, fluid, solid, &interf_shader, T5); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); /* Map the interfaces to their box triangles */ box_interfaces[0] = box_interfaces[1] = interf_T5; /* Front */ @@ -237,22 +236,22 @@ main(int argc, char** argv) square_interfaces[3] = interf_T1; /* Right */ /* Create the box scene */ - CHK(sdis_scene_create(dev, box_ntriangles, box_get_indices, + OK(sdis_scene_create(dev, box_ntriangles, box_get_indices, box_get_interface, box_nvertices, box_get_position, box_interfaces, - &box_scn) == RES_OK); + &box_scn)); /* Create the square scene */ - CHK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, + OK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, square_get_interface, square_nvertices, square_get_position, - square_interfaces, &square_scn) == RES_OK); + square_interfaces, &square_scn)); /* Release the interfaces */ - CHK(sdis_interface_ref_put(interf_T0) == RES_OK); - CHK(sdis_interface_ref_put(interf_T1) == RES_OK); - CHK(sdis_interface_ref_put(interf_T2) == RES_OK); - CHK(sdis_interface_ref_put(interf_T3) == RES_OK); - CHK(sdis_interface_ref_put(interf_T4) == RES_OK); - CHK(sdis_interface_ref_put(interf_T5) == RES_OK); + OK(sdis_interface_ref_put(interf_T0)); + OK(sdis_interface_ref_put(interf_T1)); + OK(sdis_interface_ref_put(interf_T2)); + OK(sdis_interface_ref_put(interf_T3)); + OK(sdis_interface_ref_put(interf_T4)); + OK(sdis_interface_ref_put(interf_T5)); d3_splat(pos, 0.25); @@ -262,15 +261,16 @@ main(int argc, char** argv) printf("Temperature of the box at (%g %g %g)\n", SPLIT3(pos)); FOR_EACH(i, 0, 5) { double time = i ? (double) i / nu : INF; + double time_range[2] = { time, time }; ref = Tf_0 * exp(-nu * time) + Tinf * (1 - exp(-nu * time)); /* Solve in 3D */ - CHK(sdis_solve_probe(box_scn, N, pos, time, 1.0, 0, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + OK(sdis_solve_probe(box_scn, N, pos, time_range, 1.0, 0, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); CHK(nfails + nreals == N); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_ref_put(estimator)); printf(" t=%g : %g ~ %g +/- %g\n", time, ref, T.E, T.SE); if(nfails) printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N); @@ -283,24 +283,25 @@ main(int argc, char** argv) printf("Temperature of the square at (%g %g)\n", SPLIT2(pos)); FOR_EACH(i, 0, 5) { double time = i ? (double) i / nu : INF; + double time_range[2] = { time, time }; ref = Tf_0 * exp(-nu * time) + Tinf * (1 - exp(-nu * time)); /* Solve in 2D */ - CHK(sdis_solve_probe(square_scn, N, pos, time, 1.0, 0, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + OK(sdis_solve_probe(square_scn, N, pos, time_range, 1.0, 0, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); CHK(nfails + nreals == N); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_ref_put(estimator)); printf(" t=%g : %g ~ %g +/- %g\n", time, ref, T.E, T.SE); if(nfails) printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N); CHK(eq_eps(T.E, ref, T.SE * 3)); } - CHK(sdis_scene_ref_put(box_scn) == RES_OK); - CHK(sdis_scene_ref_put(square_scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(box_scn)); + OK(sdis_scene_ref_put(square_scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_convection_non_uniform.c b/src/test_sdis_convection_non_uniform.c @@ -155,14 +155,13 @@ create_interface struct sdis_interface* interf; struct interf* interf_props; - CHK(sdis_data_create - (dev, sizeof(struct interf), ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_props = sdis_data_get(data); interf_props->temperature = temperature; interf_props->hc = hc; - CHK(sdis_interface_create - (dev, front, back, interf_shader, data, &interf) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, front, back, interf_shader, data, &interf)); + OK(sdis_data_ref_put(data)); return interf; } @@ -200,18 +199,17 @@ main(int argc, char** argv) int i; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); /* Create the fluid medium */ fluid_shader.temperature = fluid_get_temperature; fluid_shader.calorific_capacity = fluid_get_calorific_capacity; fluid_shader.volumic_mass = fluid_get_volumic_mass; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); /* Create the solid_medium */ - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); /* Setup the interface shader */ interf_shader.convection_coef = interface_get_convection_coef; @@ -234,8 +232,8 @@ main(int argc, char** argv) interf_T5 = create_interface(dev, fluid, solid, &interf_shader, T5, HC5); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); /* Map the interfaces to their box triangles */ box_interfaces[0] = box_interfaces[1] = interf_T5; /* Front */ @@ -252,22 +250,22 @@ main(int argc, char** argv) square_interfaces[3] = interf_T1; /* Right */ /* Create the box scene */ - CHK(sdis_scene_create(dev, box_ntriangles, box_get_indices, + OK(sdis_scene_create(dev, box_ntriangles, box_get_indices, box_get_interface, box_nvertices, box_get_position, box_interfaces, - &box_scn) == RES_OK); + &box_scn)); /* Create the square scene */ - CHK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, + OK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, square_get_interface, square_nvertices, square_get_position, - square_interfaces, &square_scn) == RES_OK); + square_interfaces, &square_scn)); /* Release the interfaces */ - CHK(sdis_interface_ref_put(interf_T0) == RES_OK); - CHK(sdis_interface_ref_put(interf_T1) == RES_OK); - CHK(sdis_interface_ref_put(interf_T2) == RES_OK); - CHK(sdis_interface_ref_put(interf_T3) == RES_OK); - CHK(sdis_interface_ref_put(interf_T4) == RES_OK); - CHK(sdis_interface_ref_put(interf_T5) == RES_OK); + OK(sdis_interface_ref_put(interf_T0)); + OK(sdis_interface_ref_put(interf_T1)); + OK(sdis_interface_ref_put(interf_T2)); + OK(sdis_interface_ref_put(interf_T3)); + OK(sdis_interface_ref_put(interf_T4)); + OK(sdis_interface_ref_put(interf_T5)); d3_splat(pos, 0.25); @@ -278,15 +276,16 @@ main(int argc, char** argv) printf("Temperature of the box at (%g %g %g)\n", SPLIT3(pos)); FOR_EACH(i, 0, 5) { double time = i ? (double) i / nu : INF; + double time_range[2] = { time, time }; ref = Tf_0 * exp(-nu * time) + Tinf * (1 - exp(-nu * time)); /* Solve in 3D */ - CHK(sdis_solve_probe(box_scn, N, pos, time, 1.0, 0, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + OK(sdis_solve_probe(box_scn, N, pos, time_range, 1.0, 0, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); CHK(nfails + nreals == N); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_ref_put(estimator)); printf(" t=%g : %g ~ %g +/- %g\n", time, ref, T.E, T.SE); if(nfails) printf("#failures = %lu/%lu\n", (unsigned long)nfails,(unsigned long)N); @@ -299,23 +298,24 @@ main(int argc, char** argv) printf("Temperature of the square at (%g %g)\n", SPLIT2(pos)); FOR_EACH(i, 0, 5) { double time = i ? (double) i / nu : INF; + double time_range[2] = { time, time }; ref = Tf_0 * exp(-nu * time) + Tinf * (1 - exp(-nu * time)); - CHK(sdis_solve_probe(square_scn, N, pos, time, 1.0, 0, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + OK(sdis_solve_probe(square_scn, N, pos, time_range, 1.0, 0, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); CHK(nfails + nreals == N); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_ref_put(estimator)); printf(" t=%g : %g ~ %g +/- %g\n", time, ref, T.E, T.SE); if (nfails) printf("#failures = %lu/%lu\n", (unsigned long)nfails,(unsigned long)N); CHK(eq_eps(T.E, ref, T.SE * 3)); } - CHK(sdis_scene_ref_put(box_scn) == RES_OK); - CHK(sdis_scene_ref_put(square_scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(box_scn)); + OK(sdis_scene_ref_put(square_scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_data.c b/src/test_sdis_data.c @@ -29,7 +29,7 @@ param_release(void* mem) { struct param* param = mem; CHK(param != NULL); - if(param->name) CHK(sdis_data_ref_put(param->name) == RES_OK); + if(param->name) OK(sdis_data_ref_put(param->name)); } int @@ -42,43 +42,39 @@ main(int argc, char** argv) struct param* param = NULL; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &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)); + BA(sdis_data_create(dev, 8, 0, NULL, NULL)); + BA(sdis_data_create(NULL, 0, 8, NULL, NULL)); + BA(sdis_data_create(dev, 0, 8, NULL, NULL)); + BA(sdis_data_create(NULL, 8, 8, NULL, NULL)); + BA(sdis_data_create(dev, 8, 8, NULL, NULL)); - CHK(sdis_data_create(NULL, 0, 0, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_data_create(dev, 0, 0, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_data_create(NULL, 8, 0, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_data_create(dev, 8, 0, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_data_create(NULL, 0, 8, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_data_create(dev, 0, 8, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_data_create(NULL, 8, 8, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_data_create(dev, 8, 8, NULL, NULL) == RES_BAD_ARG); - - CHK(sdis_data_create(NULL, 0, 0, NULL, &data) == RES_BAD_ARG); - CHK(sdis_data_create(dev, 0, 0, NULL, &data) == RES_BAD_ARG); - CHK(sdis_data_create(NULL, 8, 0, NULL, &data) == RES_BAD_ARG); - CHK(sdis_data_create(dev, 8, 0, NULL, &data) == RES_BAD_ARG); - CHK(sdis_data_create(NULL, 0, 8, NULL, &data) == RES_BAD_ARG); - CHK(sdis_data_create(dev, 0, 8, NULL, &data) == RES_BAD_ARG); - CHK(sdis_data_create(NULL, 8, 8, NULL, &data) == RES_BAD_ARG); - CHK(sdis_data_create(dev, 8, 8, NULL, &data) == RES_OK); + BA(sdis_data_create(NULL, 0, 0, NULL, &data)); + BA(sdis_data_create(dev, 0, 0, NULL, &data)); + BA(sdis_data_create(NULL, 8, 0, NULL, &data)); + BA(sdis_data_create(dev, 8, 0, NULL, &data)); + BA(sdis_data_create(NULL, 0, 8, NULL, &data)); + BA(sdis_data_create(dev, 0, 8, NULL, &data)); + BA(sdis_data_create(NULL, 8, 8, NULL, &data)); + OK(sdis_data_create(dev, 8, 8, NULL, &data)); CHK(sdis_data_get(data) != NULL); CHK(sdis_data_cget(data) == sdis_data_get(data)); CHK(IS_ALIGNED(sdis_data_get(data), 8)); - CHK(sdis_data_ref_get(NULL) == RES_BAD_ARG); - CHK(sdis_data_ref_get(data) == RES_OK); - CHK(sdis_data_ref_put(NULL) == RES_BAD_ARG); - CHK(sdis_data_ref_put(data) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + BA(sdis_data_ref_get(NULL)); + OK(sdis_data_ref_get(data)); + BA(sdis_data_ref_put(NULL)); + OK(sdis_data_ref_put(data)); + OK(sdis_data_ref_put(data)); - CHK(sdis_data_create - (dev, sizeof(struct param), 64, param_release, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct param), 64, param_release, &data)); param = sdis_data_get(data); - CHK(sdis_data_create - (dev, strlen(str)+1, ALIGNOF(char), NULL, &param->name) == RES_OK); + OK(sdis_data_create(dev, strlen(str)+1, ALIGNOF(char), NULL, &param->name)); strcpy(sdis_data_get(param->name), str); param->d = 3.14159; param->i = 314159; @@ -88,9 +84,9 @@ main(int argc, char** argv) CHK(param->d == 3.14159); CHK(param->i == 314159); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_data_ref_put(data)); - CHK(sdis_device_ref_put(dev) == RES_OK); + 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 @@ -34,39 +34,38 @@ main(int argc, char** argv) struct sdis_device* dev; (void)argc, (void)argv; - CHK(sdis_device_create(NULL, NULL, 0, 0, NULL) == RES_BAD_ARG); - CHK(sdis_device_create(NULL, NULL, 0, 0, &dev) == RES_BAD_ARG); - CHK(sdis_device_create(NULL, NULL, 1, 0, &dev) == RES_OK); - CHK(sdis_device_ref_get(NULL) == RES_BAD_ARG); - CHK(sdis_device_ref_get(dev) == RES_OK); - CHK(sdis_device_ref_put(NULL) == RES_BAD_ARG); - CHK(sdis_device_ref_put(dev) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + 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)); + BA(sdis_device_ref_get(NULL)); + OK(sdis_device_ref_get(dev)); + BA(sdis_device_ref_put(NULL)); + OK(sdis_device_ref_put(dev)); + OK(sdis_device_ref_put(dev)); - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); CHK(MEM_ALLOCATED_SIZE(&allocator) == 0); - CHK(sdis_device_create(NULL, &allocator, 1, 0, NULL) == RES_BAD_ARG); - CHK(sdis_device_create(NULL, &allocator, 1, 0, &dev) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + BA(sdis_device_create(NULL, &allocator, 1, 0, NULL)); + OK(sdis_device_create(NULL, &allocator, 1, 0, &dev)); + OK(sdis_device_ref_put(dev)); CHK(MEM_ALLOCATED_SIZE(&allocator) == 0); - CHK(logger_init(&allocator, &logger) == RES_OK); + OK(logger_init(&allocator, &logger)); logger_set_stream(&logger, LOG_OUTPUT, log_stream, NULL); logger_set_stream(&logger, LOG_ERROR, log_stream, NULL); logger_set_stream(&logger, LOG_WARNING, log_stream, NULL); - CHK(sdis_device_create(&logger, NULL, 1, 0, NULL) == RES_BAD_ARG); - CHK(sdis_device_create(&logger, NULL, 1, 0, &dev) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + BA(sdis_device_create(&logger, NULL, 1, 0, NULL)); + OK(sdis_device_create(&logger, NULL, 1, 0, &dev)); + OK(sdis_device_ref_put(dev)); - CHK(sdis_device_create(&logger, &allocator, 1, 0, NULL) == RES_BAD_ARG); - CHK(sdis_device_create(&logger, &allocator, 1, 0, &dev) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + BA(sdis_device_create(&logger, &allocator, 1, 0, NULL)); + OK(sdis_device_create(&logger, &allocator, 1, 0, &dev)); + OK(sdis_device_ref_put(dev)); - CHK(sdis_device_create - (&logger, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_device_create(&logger, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); + OK(sdis_device_ref_put(dev)); logger_release(&logger); check_memory_allocator(&allocator); diff --git a/src/test_sdis_flux.c b/src/test_sdis_flux.c @@ -147,17 +147,17 @@ main(int argc, char** argv) struct sdis_interface* square_interfaces[4/*#segments*/]; struct interf* interf_props = NULL; double pos[3]; + double time_range[2] = { INF, INF }; double ref; size_t nreals; size_t nfails; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); /* Create the dummy fluid medium */ - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); /* Create the solid_medium */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -165,42 +165,41 @@ main(int argc, char** argv) solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = solid_get_temperature; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); /* Setup the interface shader */ interf_shader.front.temperature = interface_get_temperature; interf_shader.front.flux = interface_get_flux; /* Create the adiabatic interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data)); interf_props = sdis_data_get(data); interf_props->temperature = UNKNOWN_TEMPERATURE; interf_props->phi = 0; - CHK(sdis_interface_create - (dev, solid, fluid, &interf_shader, data, &interf_adiabatic) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interf_shader, data, &interf_adiabatic)); + OK(sdis_data_ref_put(data)); /* Create the T0 interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data)); interf_props = sdis_data_get(data); interf_props->temperature = T0; interf_props->phi = 0; /* Unused */ - CHK(sdis_interface_create - (dev, solid, fluid, &interf_shader, data, &interf_T0) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid, fluid, &interf_shader, data, &interf_T0)); + OK(sdis_data_ref_put(data)); /* Create the PHI interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data)); interf_props = sdis_data_get(data); interf_props->temperature = UNKNOWN_TEMPERATURE; interf_props->phi = PHI; - CHK(sdis_interface_create - (dev, solid, fluid, &interf_shader, data, &interf_phi) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interf_shader, data, &interf_phi)); + OK(sdis_data_ref_put(data)); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); /* Map the interfaces to their box triangles */ box_interfaces[0] = box_interfaces[1] = interf_adiabatic; /* Front */ @@ -217,29 +216,29 @@ main(int argc, char** argv) square_interfaces[3] = interf_T0; /* Right */ /* Create the box scene */ - CHK(sdis_scene_create(dev, box_ntriangles, box_get_indices, + OK(sdis_scene_create(dev, box_ntriangles, box_get_indices, box_get_interface, box_nvertices, box_get_position, box_interfaces, - &box_scn) == RES_OK); + &box_scn)); /* Create the square scene */ - CHK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, + OK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, square_get_interface, square_nvertices, square_get_position, - square_interfaces, &square_scn) == RES_OK); + square_interfaces, &square_scn)); /* Release the interfaces */ - CHK(sdis_interface_ref_put(interf_adiabatic) == RES_OK); - CHK(sdis_interface_ref_put(interf_T0) == RES_OK); - CHK(sdis_interface_ref_put(interf_phi) == RES_OK); + OK(sdis_interface_ref_put(interf_adiabatic)); + OK(sdis_interface_ref_put(interf_T0)); + OK(sdis_interface_ref_put(interf_phi)); d3_splat(pos, 0.25); ref = T0 + (1 - pos[0]) * PHI/LAMBDA; /* Solve in 3D */ - CHK(sdis_solve_probe(box_scn, N, pos, INF, 1.0, 0, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_solve_probe(box_scn, N, pos, time_range, 1.0, 0, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_ref_put(estimator)); printf("Temperature of the box at (%g %g %g) = %g ~ %g +/- %g\n", SPLIT3(pos), ref, T.E, T.SE); printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N); @@ -248,11 +247,11 @@ main(int argc, char** argv) CHK(eq_eps(T.E, ref, T.SE*3)); /* Solve in 2D */ - CHK(sdis_solve_probe(square_scn, N, pos, INF, 1.0, 0, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_solve_probe(square_scn, N, pos, time_range, 1.0, 0, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_ref_put(estimator)); printf("Temperature of the square at (%g %g) = %g ~ %g +/- %g\n", SPLIT2(pos), ref, T.E, T.SE); printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N); @@ -260,9 +259,9 @@ main(int argc, char** argv) CHK(nfails < N/1000); CHK(eq_eps(T.E, ref, T.SE*3)); - CHK(sdis_scene_ref_put(box_scn) == RES_OK); - CHK(sdis_scene_ref_put(square_scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(box_scn)); + OK(sdis_scene_ref_put(square_scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_interface.c b/src/test_sdis_interface.c @@ -29,91 +29,89 @@ main(int argc, char** argv) struct sdis_interface_shader shader = DUMMY_INTERFACE_SHADER; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); - - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); shader = SDIS_INTERFACE_SHADER_NULL; #define CREATE sdis_interface_create - CHK(CREATE(NULL, NULL, NULL, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(dev, NULL, NULL, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(NULL, solid, NULL, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(dev, solid, NULL, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(NULL, NULL, fluid, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(dev, NULL, fluid, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(NULL, solid, fluid, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(dev, solid, fluid, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(NULL, NULL, NULL, &shader, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(dev, NULL, NULL, &shader, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(NULL, solid, NULL, &shader, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(dev, solid, NULL, &shader, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(NULL, NULL, fluid, &shader, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(dev, NULL, fluid, &shader, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(NULL, solid, fluid, &shader, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(dev, solid, fluid, &shader, NULL, NULL) == RES_BAD_ARG); - CHK(CREATE(NULL, NULL, NULL, NULL, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(dev, NULL, NULL, NULL, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(NULL, solid, NULL, NULL, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(dev, solid, NULL, NULL, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(NULL, NULL, fluid, NULL, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(dev, NULL, fluid, NULL, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(NULL, solid, fluid, NULL, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(dev, solid, fluid, NULL, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(NULL, NULL, NULL, &shader, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(dev, NULL, NULL, &shader, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(NULL, solid, NULL, &shader, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(dev, solid, NULL, &shader, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(NULL, NULL, fluid, &shader, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(dev, NULL, fluid, &shader, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(NULL, solid, fluid, &shader, NULL, &interf) == RES_BAD_ARG); - CHK(CREATE(dev, solid, fluid, &shader, NULL, &interf) == RES_OK); + BA(CREATE(NULL, NULL, NULL, NULL, NULL, NULL)); + BA(CREATE(dev, NULL, NULL, NULL, NULL, NULL)); + BA(CREATE(NULL, solid, NULL, NULL, NULL, NULL)); + BA(CREATE(dev, solid, NULL, NULL, NULL, NULL)); + BA(CREATE(NULL, NULL, fluid, NULL, NULL, NULL)); + BA(CREATE(dev, NULL, fluid, NULL, NULL, NULL)); + BA(CREATE(NULL, solid, fluid, NULL, NULL, NULL)); + BA(CREATE(dev, solid, fluid, NULL, NULL, NULL)); + BA(CREATE(NULL, NULL, NULL, &shader, NULL, NULL)); + BA(CREATE(dev, NULL, NULL, &shader, NULL, NULL)); + BA(CREATE(NULL, solid, NULL, &shader, NULL, NULL)); + BA(CREATE(dev, solid, NULL, &shader, NULL, NULL)); + BA(CREATE(NULL, NULL, fluid, &shader, NULL, NULL)); + BA(CREATE(dev, NULL, fluid, &shader, NULL, NULL)); + BA(CREATE(NULL, solid, fluid, &shader, NULL, NULL)); + BA(CREATE(dev, solid, fluid, &shader, NULL, NULL)); + BA(CREATE(NULL, NULL, NULL, NULL, NULL, &interf)); + BA(CREATE(dev, NULL, NULL, NULL, NULL, &interf)); + BA(CREATE(NULL, solid, NULL, NULL, NULL, &interf)); + BA(CREATE(dev, solid, NULL, NULL, NULL, &interf)); + BA(CREATE(NULL, NULL, fluid, NULL, NULL, &interf)); + BA(CREATE(dev, NULL, fluid, NULL, NULL, &interf)); + BA(CREATE(NULL, solid, fluid, NULL, NULL, &interf)); + BA(CREATE(dev, solid, fluid, NULL, NULL, &interf)); + BA(CREATE(NULL, NULL, NULL, &shader, NULL, &interf)); + BA(CREATE(dev, NULL, NULL, &shader, NULL, &interf)); + BA(CREATE(NULL, solid, NULL, &shader, NULL, &interf)); + BA(CREATE(dev, solid, NULL, &shader, NULL, &interf)); + BA(CREATE(NULL, NULL, fluid, &shader, NULL, &interf)); + BA(CREATE(dev, NULL, fluid, &shader, NULL, &interf)); + BA(CREATE(NULL, solid, fluid, &shader, NULL, &interf)); + OK(CREATE(dev, solid, fluid, &shader, NULL, &interf)); - CHK(sdis_interface_ref_get(NULL) == RES_BAD_ARG); - CHK(sdis_interface_ref_get(interf) == RES_OK); - CHK(sdis_interface_ref_put(NULL) == RES_BAD_ARG); - CHK(sdis_interface_ref_put(interf) == RES_OK); - CHK(sdis_interface_ref_put(interf) == RES_OK); + BA(sdis_interface_ref_get(NULL)); + OK(sdis_interface_ref_get(interf)); + BA(sdis_interface_ref_put(NULL)); + OK(sdis_interface_ref_put(interf)); + OK(sdis_interface_ref_put(interf)); - CHK(CREATE(dev, solid, solid, &shader, NULL, &interf) == RES_OK); - CHK(sdis_interface_ref_put(interf) == RES_OK); + OK(CREATE(dev, solid, solid, &shader, NULL, &interf)); + OK(sdis_interface_ref_put(interf)); shader = SDIS_INTERFACE_SHADER_NULL; - CHK(CREATE(dev, solid, solid, &shader, NULL, &interf) == RES_OK); - CHK(sdis_interface_ref_put(interf) == RES_OK); + OK(CREATE(dev, solid, solid, &shader, NULL, &interf)); + OK(sdis_interface_ref_put(interf)); shader.front.temperature = dummy_interface_getter; - CHK(CREATE(dev, solid, solid, &shader, NULL, &interf) == RES_OK); - CHK(sdis_interface_ref_put(interf) == RES_OK); + OK(CREATE(dev, solid, solid, &shader, NULL, &interf)); + OK(sdis_interface_ref_put(interf)); shader.back.emissivity = dummy_interface_getter; - CHK(CREATE(dev, solid, fluid, &shader, NULL, &interf) == RES_OK); - CHK(sdis_interface_ref_put(interf) == RES_OK); + OK(CREATE(dev, solid, fluid, &shader, NULL, &interf)); + OK(sdis_interface_ref_put(interf)); shader.back.specular_fraction = dummy_interface_getter; - CHK(CREATE(dev, solid, fluid, &shader, NULL, &interf) == RES_OK); - CHK(sdis_interface_ref_put(interf) == RES_OK); + OK(CREATE(dev, solid, fluid, &shader, NULL, &interf)); + OK(sdis_interface_ref_put(interf)); shader.back = SDIS_INTERFACE_SIDE_SHADER_NULL; shader.front.emissivity = dummy_interface_getter; - CHK(CREATE(dev, solid, fluid, &shader, NULL, &interf) == RES_OK); /* Warning */ - CHK(sdis_interface_ref_put(interf) == RES_OK); + OK(CREATE(dev, solid, fluid, &shader, NULL, &interf)); /* Warning */ + OK(sdis_interface_ref_put(interf)); shader.front.emissivity = NULL; shader.front.specular_fraction = dummy_interface_getter; - CHK(CREATE(dev, solid, fluid, &shader, NULL, &interf) == RES_OK); /* Warning */ - CHK(sdis_interface_ref_put(interf) == RES_OK); + OK(CREATE(dev, solid, fluid, &shader, NULL, &interf)); /* Warning */ + OK(sdis_interface_ref_put(interf)); shader.front.specular_fraction = NULL; shader.convection_coef_upper_bound = -1; - CHK(CREATE(dev, solid, solid, &shader, NULL, &interf) == RES_OK); /* Warning */ - CHK(sdis_interface_ref_put(interf) == RES_OK); - CHK(CREATE(dev, solid, fluid, &shader, NULL, &interf) == RES_BAD_ARG); + OK(CREATE(dev, solid, solid, &shader, NULL, &interf)); /* Warning */ + OK(sdis_interface_ref_put(interf)); + BA(CREATE(dev, solid, fluid, &shader, NULL, &interf)); shader.convection_coef_upper_bound = 0; #undef CREATE - CHK(sdis_device_ref_put(dev) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); - CHK(sdis_medium_ref_put(solid) == RES_OK); + OK(sdis_device_ref_put(dev)); + OK(sdis_medium_ref_put(fluid)); + OK(sdis_medium_ref_put(solid)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_medium.c b/src/test_sdis_medium.c @@ -28,78 +28,76 @@ main(int argc, char** argv) struct sdis_solid_shader solid_shader = DUMMY_SOLID_SHADER; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK); - - CHK(sdis_fluid_create(NULL, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_fluid_create(dev, NULL, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_fluid_create(NULL, &fluid_shader, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, NULL) == RES_BAD_ARG); - CHK(sdis_fluid_create(NULL, NULL, NULL, &fluid) == RES_BAD_ARG); - CHK(sdis_fluid_create(dev, NULL, NULL, &fluid) == RES_BAD_ARG); - CHK(sdis_fluid_create(NULL, &fluid_shader, NULL, &fluid) == RES_BAD_ARG); - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev)); + + BA(sdis_fluid_create(NULL, NULL, NULL, NULL)); + BA(sdis_fluid_create(dev, NULL, NULL, NULL)); + BA(sdis_fluid_create(NULL, &fluid_shader, NULL, NULL)); + BA(sdis_fluid_create(dev, &fluid_shader, NULL, NULL)); + BA(sdis_fluid_create(NULL, NULL, NULL, &fluid)); + BA(sdis_fluid_create(dev, NULL, NULL, &fluid)); + BA(sdis_fluid_create(NULL, &fluid_shader, NULL, &fluid)); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); CHK(sdis_medium_get_type(fluid) == SDIS_FLUID); CHK(sdis_medium_get_data(fluid) == NULL); - CHK(sdis_medium_ref_get(NULL) == RES_BAD_ARG); - CHK(sdis_medium_ref_get(fluid) == RES_OK); - CHK(sdis_medium_ref_put(NULL) == RES_BAD_ARG); - CHK(sdis_medium_ref_put(fluid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + BA(sdis_medium_ref_get(NULL)); + OK(sdis_medium_ref_get(fluid)); + BA(sdis_medium_ref_put(NULL)); + OK(sdis_medium_ref_put(fluid)); + OK(sdis_medium_ref_put(fluid)); fluid_shader.calorific_capacity = NULL; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_BAD_ARG); + BA(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); fluid_shader.calorific_capacity = DUMMY_FLUID_SHADER.calorific_capacity; fluid_shader.volumic_mass = NULL; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_BAD_ARG); + BA(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); fluid_shader.volumic_mass = DUMMY_FLUID_SHADER.volumic_mass; fluid_shader.temperature = NULL; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_BAD_ARG); + BA(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); fluid_shader.temperature = DUMMY_FLUID_SHADER.temperature; - CHK(sdis_fluid_create - (dev, &SDIS_FLUID_SHADER_NULL, NULL, &fluid) == RES_BAD_ARG); - - CHK(sdis_data_create(dev, 4, 16, NULL, &data) == RES_OK); - CHK(sdis_solid_create(NULL, NULL, data, NULL) == RES_BAD_ARG); - CHK(sdis_solid_create(dev, NULL, data, NULL) == RES_BAD_ARG); - CHK(sdis_solid_create(NULL, &solid_shader, data, NULL) == RES_BAD_ARG); - CHK(sdis_solid_create(dev, &solid_shader, data, NULL) == RES_BAD_ARG); - CHK(sdis_solid_create(NULL, NULL, data, &solid) == RES_BAD_ARG); - CHK(sdis_solid_create(dev, NULL, data, &solid) == RES_BAD_ARG); - CHK(sdis_solid_create(NULL, &solid_shader, data, &solid) == RES_BAD_ARG); - CHK(sdis_solid_create(dev, &solid_shader, data, &solid) == RES_OK); + BA(sdis_fluid_create(dev, &SDIS_FLUID_SHADER_NULL, NULL, &fluid)); + + OK(sdis_data_create(dev, 4, 16, NULL, &data)); + BA(sdis_solid_create(NULL, NULL, data, NULL)); + BA(sdis_solid_create(dev, NULL, data, NULL)); + BA(sdis_solid_create(NULL, &solid_shader, data, NULL)); + BA(sdis_solid_create(dev, &solid_shader, data, NULL)); + BA(sdis_solid_create(NULL, NULL, data, &solid)); + BA(sdis_solid_create(dev, NULL, data, &solid)); + BA(sdis_solid_create(NULL, &solid_shader, data, &solid)); + OK(sdis_solid_create(dev, &solid_shader, data, &solid)); CHK(sdis_medium_get_type(solid) == SDIS_SOLID); CHK(sdis_medium_get_data(solid) == data); - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_data_ref_put(data)); solid_shader.calorific_capacity = NULL; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_BAD_ARG); + BA(sdis_solid_create(dev, &solid_shader, NULL, &solid)); solid_shader.calorific_capacity = DUMMY_SOLID_SHADER.calorific_capacity; solid_shader.thermal_conductivity = NULL; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_BAD_ARG); + BA(sdis_solid_create(dev, &solid_shader, NULL, &solid)); solid_shader.thermal_conductivity = DUMMY_SOLID_SHADER.thermal_conductivity; solid_shader.volumic_mass = NULL; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_BAD_ARG); + BA(sdis_solid_create(dev, &solid_shader, NULL, &solid)); solid_shader.volumic_mass = DUMMY_SOLID_SHADER.volumic_mass; solid_shader.delta_solid = NULL; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_BAD_ARG); + BA(sdis_solid_create(dev, &solid_shader, NULL, &solid)); solid_shader.delta_solid = DUMMY_SOLID_SHADER.delta_solid; solid_shader.temperature = NULL; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_BAD_ARG); + BA(sdis_solid_create(dev, &solid_shader, NULL, &solid)); solid_shader.temperature = DUMMY_SOLID_SHADER.temperature; - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_scene.c b/src/test_sdis_scene.c @@ -105,23 +105,23 @@ test_scene_3d(struct sdis_device* dev, struct sdis_interface* interf) #define POS get_position_3d #define IFA get_interface - CHK(CREATE(NULL, 0, NULL, NULL, 0, NULL, &ctx, NULL) == RES_BAD_ARG); - CHK(CREATE(dev, 0, IDS, IFA, npos, POS, &ctx, &scn) == RES_BAD_ARG); - CHK(CREATE(dev, ntris, NULL, IFA, npos, POS, &ctx, &scn) == RES_BAD_ARG); - CHK(CREATE(dev, ntris, IDS, NULL, npos, POS, &ctx, &scn) == RES_BAD_ARG); - CHK(CREATE(dev, ntris, IDS, IFA, 0, POS, &ctx, &scn) == RES_BAD_ARG); - CHK(CREATE(dev, ntris, IDS, IFA, npos, NULL, &ctx, &scn) == RES_BAD_ARG); - CHK(CREATE(dev, ntris, IDS, IFA, npos, POS, &ctx, &scn) == RES_OK); + BA(CREATE(NULL, 0, NULL, NULL, 0, NULL, &ctx, NULL)); + BA(CREATE(dev, 0, IDS, IFA, npos, POS, &ctx, &scn)); + BA(CREATE(dev, ntris, NULL, IFA, npos, POS, &ctx, &scn)); + BA(CREATE(dev, ntris, IDS, NULL, npos, POS, &ctx, &scn)); + BA(CREATE(dev, ntris, IDS, IFA, 0, POS, &ctx, &scn)); + BA(CREATE(dev, ntris, IDS, IFA, npos, NULL, &ctx, &scn)); + OK(CREATE(dev, ntris, IDS, IFA, npos, POS, &ctx, &scn)); #undef CREATE #undef IDS #undef POS #undef IFA - CHK(sdis_scene_get_aabb(NULL, lower, upper) == RES_BAD_ARG); - CHK(sdis_scene_get_aabb(scn, NULL, upper) == RES_BAD_ARG); - CHK(sdis_scene_get_aabb(scn, lower, NULL) == RES_BAD_ARG); - CHK(sdis_scene_get_aabb(scn, lower, upper) == RES_OK); + BA(sdis_scene_get_aabb(NULL, lower, upper)); + BA(sdis_scene_get_aabb(scn, NULL, upper)); + BA(sdis_scene_get_aabb(scn, lower, NULL)); + OK(sdis_scene_get_aabb(scn, lower, upper)); CHK(eq_eps(lower[0], 0, 1.e-6)); CHK(eq_eps(lower[1], 0, 1.e-6)); CHK(eq_eps(lower[2], 0, 1.e-6)); @@ -132,17 +132,17 @@ test_scene_3d(struct sdis_device* dev, struct sdis_interface* interf) uv0[0] = 0.3; uv0[1] = 0.3; - CHK(sdis_scene_get_boundary_position(NULL, 6, uv0, pos) == RES_BAD_ARG); - CHK(sdis_scene_get_boundary_position(scn, 12, uv0, pos) == RES_BAD_ARG); - CHK(sdis_scene_get_boundary_position(scn, 6, NULL, pos) == RES_BAD_ARG); - CHK(sdis_scene_get_boundary_position(scn, 6, uv0, NULL) == RES_BAD_ARG); - CHK(sdis_scene_get_boundary_position(scn, 6, uv0, pos) == RES_OK); + BA(sdis_scene_get_boundary_position(NULL, 6, uv0, pos)); + BA(sdis_scene_get_boundary_position(scn, 12, uv0, pos)); + BA(sdis_scene_get_boundary_position(scn, 6, NULL, pos)); + BA(sdis_scene_get_boundary_position(scn, 6, uv0, NULL)); + OK(sdis_scene_get_boundary_position(scn, 6, uv0, pos) ); - CHK(sdis_scene_boundary_project_position(NULL, 6, pos, uv1) == RES_BAD_ARG); - CHK(sdis_scene_boundary_project_position(scn, 12, pos, uv1) == RES_BAD_ARG); - CHK(sdis_scene_boundary_project_position(scn, 6, NULL, uv1) == RES_BAD_ARG); - CHK(sdis_scene_boundary_project_position(scn, 6, pos, NULL) == RES_BAD_ARG); - CHK(sdis_scene_boundary_project_position(scn, 6, pos, uv1) == RES_OK); + BA(sdis_scene_boundary_project_position(NULL, 6, pos, uv1)); + BA(sdis_scene_boundary_project_position(scn, 12, pos, uv1)); + BA(sdis_scene_boundary_project_position(scn, 6, NULL, uv1)); + BA(sdis_scene_boundary_project_position(scn, 6, pos, NULL)); + OK(sdis_scene_boundary_project_position(scn, 6, pos, uv1)); CHK(d2_eq_eps(uv0, uv1, 1.e-6)); @@ -150,23 +150,23 @@ test_scene_3d(struct sdis_device* dev, struct sdis_interface* interf) uv0[0] = rand_canonic(); uv0[1] = rand_canonic() * (1 - uv0[0]); - CHK(sdis_scene_get_boundary_position(scn, 4, uv0, pos) == RES_OK); - CHK(sdis_scene_boundary_project_position(scn, 4, pos, uv1) == RES_OK); + OK(sdis_scene_get_boundary_position(scn, 4, uv0, pos)); + OK(sdis_scene_boundary_project_position(scn, 4, pos, uv1)); CHK(d2_eq_eps(uv0, uv1, 1.e-6)); } pos[0] = 10; pos[1] = 0.1; pos[2] = 0.5; - CHK(sdis_scene_boundary_project_position(scn, 6, pos, uv1) == RES_OK); - CHK(sdis_scene_get_boundary_position(scn, 6, uv1, pos1) == RES_OK); + OK(sdis_scene_boundary_project_position(scn, 6, pos, uv1)); + OK(sdis_scene_get_boundary_position(scn, 6, uv1, pos1)); CHK(!d3_eq_eps(pos1, pos, 1.e-6)); - CHK(sdis_scene_ref_get(NULL) == RES_BAD_ARG); - CHK(sdis_scene_ref_get(scn) == RES_OK); - CHK(sdis_scene_ref_put(NULL) == RES_BAD_ARG); - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_scene_ref_put(scn) == RES_OK); + BA(sdis_scene_ref_get(NULL)); + OK(sdis_scene_ref_get(scn)); + BA(sdis_scene_ref_put(NULL)); + OK(sdis_scene_ref_put(scn)); + OK(sdis_scene_ref_put(scn)); } static void @@ -190,23 +190,23 @@ test_scene_2d(struct sdis_device* dev, struct sdis_interface* interf) #define POS get_position_2d #define IFA get_interface - CHK(CREATE(NULL, 0, NULL, NULL, 0, NULL, &ctx, NULL) == RES_BAD_ARG); - CHK(CREATE(dev, 0, IDS, IFA, npos, POS, &ctx, &scn) == RES_BAD_ARG); - CHK(CREATE(dev, nsegs, NULL, IFA, npos, POS, &ctx, &scn) == RES_BAD_ARG); - CHK(CREATE(dev, nsegs, IDS, NULL, npos, POS, &ctx, &scn) == RES_BAD_ARG); - CHK(CREATE(dev, nsegs, IDS, IFA, 0, POS, &ctx, &scn) == RES_BAD_ARG); - CHK(CREATE(dev, nsegs, IDS, IFA, npos, NULL, &ctx, &scn) == RES_BAD_ARG); - CHK(CREATE(dev, nsegs, IDS, IFA, npos, POS, &ctx, &scn) == RES_OK); + BA(CREATE(NULL, 0, NULL, NULL, 0, NULL, &ctx, NULL)); + BA(CREATE(dev, 0, IDS, IFA, npos, POS, &ctx, &scn)); + BA(CREATE(dev, nsegs, NULL, IFA, npos, POS, &ctx, &scn)); + BA(CREATE(dev, nsegs, IDS, NULL, npos, POS, &ctx, &scn)); + BA(CREATE(dev, nsegs, IDS, IFA, 0, POS, &ctx, &scn)); + BA(CREATE(dev, nsegs, IDS, IFA, npos, NULL, &ctx, &scn)); + OK(CREATE(dev, nsegs, IDS, IFA, npos, POS, &ctx, &scn)); #undef CREATE #undef IDS #undef POS #undef IFA - CHK(sdis_scene_get_aabb(NULL, lower, upper) == RES_BAD_ARG); - CHK(sdis_scene_get_aabb(scn, NULL, upper) == RES_BAD_ARG); - CHK(sdis_scene_get_aabb(scn, lower, NULL) == RES_BAD_ARG); - CHK(sdis_scene_get_aabb(scn, lower, upper) == RES_OK); + BA(sdis_scene_get_aabb(NULL, lower, upper)); + BA(sdis_scene_get_aabb(scn, NULL, upper)); + BA(sdis_scene_get_aabb(scn, lower, NULL)); + OK(sdis_scene_get_aabb(scn, lower, upper)); CHK(eq_eps(lower[0], 0, 1.e-6)); CHK(eq_eps(lower[1], 0, 1.e-6)); CHK(eq_eps(upper[0], 1, 1.e-6)); @@ -214,41 +214,41 @@ test_scene_2d(struct sdis_device* dev, struct sdis_interface* interf) u0 = 0.5; - CHK(sdis_scene_get_boundary_position(NULL, 1, &u0, pos) == RES_BAD_ARG); - CHK(sdis_scene_get_boundary_position(scn, 4, &u0, pos) == RES_BAD_ARG); - CHK(sdis_scene_get_boundary_position(scn, 1, NULL, pos) == RES_BAD_ARG); - CHK(sdis_scene_get_boundary_position(scn, 1, &u0, NULL) == RES_BAD_ARG); - CHK(sdis_scene_get_boundary_position(scn, 1, &u0, pos) == RES_OK); + BA(sdis_scene_get_boundary_position(NULL, 1, &u0, pos)); + BA(sdis_scene_get_boundary_position(scn, 4, &u0, pos)); + BA(sdis_scene_get_boundary_position(scn, 1, NULL, pos)); + BA(sdis_scene_get_boundary_position(scn, 1, &u0, NULL)); + OK(sdis_scene_get_boundary_position(scn, 1, &u0, pos)); - CHK(sdis_scene_boundary_project_position(NULL, 1, pos, &u1) == RES_BAD_ARG); - CHK(sdis_scene_boundary_project_position(scn, 4, pos, &u1) == RES_BAD_ARG); - CHK(sdis_scene_boundary_project_position(scn, 1, NULL, &u1) == RES_BAD_ARG); - CHK(sdis_scene_boundary_project_position(scn, 1, pos, NULL) == RES_BAD_ARG); - CHK(sdis_scene_boundary_project_position(scn, 1, pos, &u1) == RES_OK); + BA(sdis_scene_boundary_project_position(NULL, 1, pos, &u1)); + BA(sdis_scene_boundary_project_position(scn, 4, pos, &u1)); + BA(sdis_scene_boundary_project_position(scn, 1, NULL, &u1)); + BA(sdis_scene_boundary_project_position(scn, 1, pos, NULL)); + OK(sdis_scene_boundary_project_position(scn, 1, pos, &u1)); CHK(eq_eps(u0, u1, 1.e-6)); FOR_EACH(i, 0, 64) { u0 = rand_canonic(); - CHK(sdis_scene_get_boundary_position(scn, 2, &u0, pos) == RES_OK); - CHK(sdis_scene_boundary_project_position(scn, 2, pos, &u1) == RES_OK); + OK(sdis_scene_get_boundary_position(scn, 2, &u0, pos)); + OK(sdis_scene_boundary_project_position(scn, 2, pos, &u1)); CHK(eq_eps(u0, u1, 1.e-6)); } d2(pos, 5, 0.5); - CHK(sdis_scene_boundary_project_position(scn, 3, pos, &u0) == RES_OK); + OK(sdis_scene_boundary_project_position(scn, 3, pos, &u0)); CHK(eq_eps(u0, 0.5, 1.e-6)); d2(pos, 1, 2); - CHK(sdis_scene_boundary_project_position(scn, 3, pos, &u0) == RES_OK); + OK(sdis_scene_boundary_project_position(scn, 3, pos, &u0)); CHK(eq_eps(u0, 0, 1.e-6)); d2(pos, 1, -1); - CHK(sdis_scene_boundary_project_position(scn, 3, pos, &u0) == RES_OK); + OK(sdis_scene_boundary_project_position(scn, 3, pos, &u0)); CHK(eq_eps(u0, 1, 1.e-6)); - CHK(sdis_scene_ref_put(scn) == RES_OK); + OK(sdis_scene_ref_put(scn)); } int @@ -266,22 +266,22 @@ main(int argc, char** argv) interface_shader.convection_coef = DUMMY_INTERFACE_SHADER.convection_coef; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create(NULL, &allocator, 1, 0, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, 1, 0, &dev)); - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, NULL, &interf) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, NULL, &interf)); - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); test_scene_3d(dev, interf); test_scene_2d(dev, interf); - CHK(sdis_device_ref_put(dev) == RES_OK); - CHK(sdis_interface_ref_put(interf) == RES_OK); + OK(sdis_device_ref_put(dev)); + OK(sdis_interface_ref_put(interf)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_solve_boundary.c b/src/test_sdis_solve_boundary.c @@ -151,9 +151,9 @@ check_estimator size_t nfails; CHK(estimator && nrealisations); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); printf("%g ~ %g +/- %g\n", ref, T.E, T.SE); printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)nrealisations); @@ -188,24 +188,25 @@ main(int argc, char** argv) struct fluid* fluid_param; double uv[2]; double pos[3]; + double time_range[2] = { INF, INF }; + double tr[2]; double ref; size_t prims[4]; enum sdis_side sides[4]; size_t iprim; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); fluid_param->temperature = Tf; fluid_shader.temperature = fluid_get_temperature; - CHK(sdis_fluid_create(dev, &fluid_shader, data, &fluid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, &fluid)); + OK(sdis_data_ref_put(data)); /* Create the solid_medium */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -213,7 +214,7 @@ main(int argc, char** argv) solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = solid_get_temperature; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); /* Setup the interface shader */ interf_shader.convection_coef = interface_get_convection_coef; @@ -223,35 +224,35 @@ main(int argc, char** argv) interf_shader.back = SDIS_INTERFACE_SIDE_SHADER_NULL; /* Create the adiabatic interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data)); interf_props = sdis_data_get(data); interf_props->hc = 0; interf_props->temperature = UNKNOWN_TEMPERATURE; - CHK(sdis_interface_create - (dev, solid, fluid, &interf_shader, data, &interf_adiabatic) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interf_shader, data, &interf_adiabatic)); + OK(sdis_data_ref_put(data)); /* Create the Tb interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data)); interf_props = sdis_data_get(data); interf_props->hc = 0; interf_props->temperature = Tb; - CHK(sdis_interface_create - (dev, solid, fluid, &interf_shader, data, &interf_Tb) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interf_shader, data, &interf_Tb)); + OK(sdis_data_ref_put(data)); /* Create the H interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data)); interf_props = sdis_data_get(data); interf_props->hc = H; interf_props->temperature = UNKNOWN_TEMPERATURE; - CHK(sdis_interface_create - (dev, solid, fluid, &interf_shader, data, &interf_H) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interf_shader, data, &interf_H)); + OK(sdis_data_ref_put(data)); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); /* Map the interfaces to their box triangles */ box_interfaces[0] = box_interfaces[1] = interf_adiabatic; /* Front */ @@ -268,19 +269,19 @@ main(int argc, char** argv) square_interfaces[3] = interf_H; /* Right */ /* Create the box scene */ - CHK(sdis_scene_create(dev, box_ntriangles, box_get_indices, + OK(sdis_scene_create(dev, box_ntriangles, box_get_indices, box_get_interface, box_nvertices, box_get_position, box_interfaces, - &box_scn) == RES_OK); + &box_scn)); /* Create the square scene */ - CHK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, + OK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, square_get_interface, square_nvertices, square_get_position, - square_interfaces, &square_scn) == RES_OK); + square_interfaces, &square_scn)); /* Release the interfaces */ - CHK(sdis_interface_ref_put(interf_adiabatic) == RES_OK); - CHK(sdis_interface_ref_put(interf_Tb) == RES_OK); - CHK(sdis_interface_ref_put(interf_H) == RES_OK); + OK(sdis_interface_ref_put(interf_adiabatic)); + OK(sdis_interface_ref_put(interf_Tb)); + OK(sdis_interface_ref_put(interf_H)); ref = (H*Tf + LAMBDA * Tb) / (H + LAMBDA); @@ -290,37 +291,43 @@ main(int argc, char** argv) uv[1] = 0.3; iprim = 6; - CHK(SOLVE(NULL, N, iprim, uv, INF, F, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, 0, iprim, uv, INF, F, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, 12, uv, INF, F, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, iprim, NULL, INF, F, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, iprim, uv, -1, F, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, iprim, uv, INF, -1, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, iprim, uv, INF, F, 1.0, 0, 0, NULL) == RES_BAD_ARG); - - CHK(SOLVE(box_scn, N, iprim, uv, INF, F, 1.0, 0, 0, &estimator) == RES_OK); - CHK(sdis_scene_get_boundary_position(box_scn, iprim, uv, pos) == RES_OK); + BA(SOLVE(NULL, N, iprim, uv, time_range, F, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, 0, iprim, uv, time_range, F, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, N, 12, uv, time_range, F, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, N, iprim, NULL, time_range, F, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, N, iprim, uv, NULL, F, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, N, iprim, uv, time_range, -1, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, N, iprim, uv, time_range, F, 1.0, 0, 0, NULL)); + tr[0] = tr[1] = -1; + BA(SOLVE(box_scn, N, iprim, uv, tr, F, 1.0, 0, 0, NULL)); + tr[0] = 1; + BA(SOLVE(box_scn, N, iprim, uv, tr, F, 1.0, 0, 0, NULL)); + tr[1] = 0; + BA(SOLVE(box_scn, N, iprim, uv, tr, F, 1.0, 0, 0, NULL)); + + OK(SOLVE(box_scn, N, iprim, uv, time_range, F, 1.0, 0, 0, &estimator)); + OK(sdis_scene_get_boundary_position(box_scn, iprim, uv, pos)); printf("Boundary temperature of the box at (%g %g %g) = ", SPLIT3(pos)); check_estimator(estimator, N, ref); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); /* The external fluid cannot have an unknown temperature */ fluid_param->temperature = UNKNOWN_TEMPERATURE; - CHK(SOLVE(box_scn, N, iprim, uv, INF, F, 1.0, 0, 0, &estimator) == RES_BAD_ARG); + BA(SOLVE(box_scn, N, iprim, uv, time_range, F, 1.0, 0, 0, &estimator)); fluid_param->temperature = Tf; uv[0] = 0.5; iprim = 3; - CHK(SOLVE(square_scn, N, 4, uv, INF, F, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(square_scn, N, iprim, uv, INF, F, 1.0, 0, 0, &estimator) == RES_OK); - CHK(sdis_scene_get_boundary_position(square_scn, iprim, uv, pos) == RES_OK); + BA(SOLVE(square_scn, N, 4, uv, time_range, F, 1.0, 0, 0, &estimator)); + OK(SOLVE(square_scn, N, iprim, uv, time_range, F, 1.0, 0, 0, &estimator)); + OK(sdis_scene_get_boundary_position(square_scn, iprim, uv, pos)); printf("Boundary temperature of the square at (%g %g) = ", SPLIT2(pos)); check_estimator(estimator, N, ref); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); /* The external fluid cannot have an unknown temperature */ fluid_param->temperature = UNKNOWN_TEMPERATURE; - CHK(SOLVE(square_scn, N, iprim, uv, INF, F, 1.0, 0, 0, &estimator) == RES_BAD_ARG); + BA(SOLVE(square_scn, N, iprim, uv, time_range, F, 1.0, 0, 0, &estimator)); fluid_param->temperature = Tf; #undef F #undef SOLVE @@ -333,33 +340,39 @@ main(int argc, char** argv) #define SOLVE sdis_solve_boundary prims[0] = 6; prims[1] = 7; - CHK(SOLVE(NULL, N, prims, sides, 2, INF, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, 0, prims, sides, 2, INF, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, NULL, sides, 2, INF, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, prims, NULL, 2, INF, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, prims, sides, 0, INF, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, prims, sides, 2, -1, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, prims, sides, 2, INF, 1.0, 0, 0, NULL) == RES_BAD_ARG); + BA(SOLVE(NULL, N, prims, sides, 2, time_range, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, 0, prims, sides, 2, time_range, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, N, NULL, sides, 2, time_range, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, N, prims, NULL, 2, time_range, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, N, prims, sides, 0, time_range, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, N, prims, sides, 2, NULL, 1.0, 0, 0, &estimator)); + BA(SOLVE(box_scn, N, prims, sides, 2, time_range, 1.0, 0, 0, NULL)); + tr[0] = tr[1] = -1; + BA(SOLVE(box_scn, N, prims, sides, 2, tr, 1.0, 0, 0, NULL)); + tr[0] = 1; + BA(SOLVE(box_scn, N, prims, sides, 2, tr, 1.0, 0, 0, NULL)); + tr[1] = 0; + BA(SOLVE(box_scn, N, prims, sides, 2, tr, 1.0, 0, 0, NULL)); /* Average temperature on the right side of the box */ - CHK(SOLVE(box_scn, N, prims, sides, 2, INF, 1.0, 0, 0, &estimator) == RES_OK); + OK(SOLVE(box_scn, N, prims, sides, 2, time_range, 1.0, 0, 0, &estimator)); printf("Average temperature of the right side of the box = "); check_estimator(estimator, N, ref); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); /* Average temperature on the right side of the square */ prims[0] = 3; sides[0] = SDIS_FRONT; - CHK(SOLVE(square_scn, N, prims, sides, 1, INF, 1.0, 0, 0, &estimator) == RES_OK); + OK(SOLVE(square_scn, N, prims, sides, 1, time_range, 1.0, 0, 0, &estimator)); printf("Average temperature of the right side of the square = "); check_estimator(estimator, N, ref); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); /* Check out of bound prims */ prims[0] = 12; - CHK(SOLVE(box_scn, N, prims, sides, 2, INF, 1.0, 0, 0, &estimator) == RES_BAD_ARG); + BA(SOLVE(box_scn, N, prims, sides, 2, time_range, 1.0, 0, 0, &estimator)); prims[0] = 4; - CHK(SOLVE(square_scn, N, prims, sides, 1, INF, 1.0, 0, 0, &estimator) == RES_BAD_ARG); + BA(SOLVE(square_scn, N, prims, sides, 1, time_range, 1.0, 0, 0, &estimator)); /* Average temperature on the left+right sides of the box */ prims[0] = 2; @@ -369,23 +382,23 @@ main(int argc, char** argv) ref = (ref + Tb) / 2; - CHK(SOLVE(box_scn, N, prims, sides, 4, INF, 1.0, 0, 0, &estimator) == RES_OK); + OK(SOLVE(box_scn, N, prims, sides, 4, time_range, 1.0, 0, 0, &estimator)); printf("Average temperature of the left+right sides of the box = "); check_estimator(estimator, N, ref); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); /* Average temperature on the left+right sides of the square */ prims[0] = 1; prims[1] = 3; - CHK(SOLVE(square_scn, N, prims, sides, 2, INF, 1.0, 0, 0, &estimator) == RES_OK); + OK(SOLVE(square_scn, N, prims, sides, 2, time_range, 1.0, 0, 0, &estimator)); printf("Average temperature of the left+right sides of the square = "); check_estimator(estimator, N, ref); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); #undef SOLVE - CHK(sdis_scene_ref_put(box_scn) == RES_OK); - CHK(sdis_scene_ref_put(square_scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(box_scn)); + OK(sdis_scene_ref_put(square_scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_solve_boundary_flux.c b/src/test_sdis_solve_boundary_flux.c @@ -189,20 +189,20 @@ check_estimator size_t nfails; CHK(estimator && nrealisations); - CHK(sdis_estimator_get_temperature(estimator, &V) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + OK(sdis_estimator_get_temperature(estimator, &V)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); printf("T = %g ~ %g +/- %g\n", T, V.E, V.SE); CHK(eq_eps(V.E, T, 3 * (V.SE ? V.SE : FLT_EPSILON))); - CHK(sdis_estimator_get_type(estimator, &type) == RES_OK); + OK(sdis_estimator_get_type(estimator, &type)); if(type == SDIS_FLUX_ESTIMATOR) { - CHK(sdis_estimator_get_convective_flux(estimator, &V) == RES_OK); + OK(sdis_estimator_get_convective_flux(estimator, &V)); printf("Convective flux = %g ~ %g +/- %g\n", CF, V.E, V.SE); CHK(eq_eps(V.E, CF, 3 * (V.SE ? V.SE : FLT_EPSILON))); - CHK(sdis_estimator_get_radiative_flux(estimator, &V) == RES_OK); + OK(sdis_estimator_get_radiative_flux(estimator, &V)); printf("Radiative flux = %g ~ %g +/- %g\n", RF, V.E, V.SE); CHK(eq_eps(V.E, RF, 3 * (V.SE ? V.SE : FLT_EPSILON))); - CHK(sdis_estimator_get_total_flux(estimator, &V) == RES_OK); + OK(sdis_estimator_get_total_flux(estimator, &V)); printf("Total flux = %g ~ %g +/- %g\n", TF, V.E, V.SE); CHK(eq_eps(V.E, TF, 3 * (V.SE ? V.SE : FLT_EPSILON))); } @@ -239,23 +239,24 @@ main(int argc, char** argv) enum sdis_estimator_type type; double uv[2]; double pos[3]; + double time_range[2] = { INF, INF }; + double tr[2]; double analyticT, analyticCF, analyticRF, analyticTF; size_t prims[2]; size_t iprim; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); fluid_param->temperature = Tf; fluid_shader.temperature = fluid_get_temperature; - CHK(sdis_fluid_create(dev, &fluid_shader, data, &fluid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, &fluid)); + OK(sdis_data_ref_put(data)); /* Create the solid_medium */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -263,7 +264,7 @@ main(int argc, char** argv) solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = solid_get_temperature; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); /* Setup the interface shader */ interf_shader.convection_coef = interface_get_convection_coef; @@ -272,42 +273,42 @@ main(int argc, char** argv) interf_shader.back = SDIS_INTERFACE_SIDE_SHADER_NULL; /* Create the adiabatic interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data)); interf_props = sdis_data_get(data); interf_props->hc = 0; interf_props->temperature = UNKNOWN_TEMPERATURE; interf_props->emissivity = 0; - CHK(sdis_interface_create - (dev, solid, fluid, &interf_shader, data, &interf_adiabatic) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interf_shader, data, &interf_adiabatic)); + OK(sdis_data_ref_put(data)); /* Create the Tb interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data)); interf_props = sdis_data_get(data); interf_props->hc = H; interf_props->temperature = Tb; interf_props->emissivity = EPSILON; interf_shader.back.emissivity = interface_get_emissivity; - CHK(sdis_interface_create - (dev, solid, fluid, &interf_shader, data, &interf_Tb) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interf_shader, data, &interf_Tb)); interf_shader.back.emissivity = NULL; - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_data_ref_put(data)); /* Create the H interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data)); interf_props = sdis_data_get(data); interf_props->hc = H; interf_props->temperature = UNKNOWN_TEMPERATURE; interf_props->emissivity = EPSILON; interf_shader.back.emissivity = interface_get_emissivity; - CHK(sdis_interface_create - (dev, solid, fluid, &interf_shader, data, &interf_H) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interf_shader, data, &interf_H)); interf_shader.back.emissivity = NULL; - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_data_ref_put(data)); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); /* Map the interfaces to their box triangles */ box_interfaces[0] = box_interfaces[1] = interf_adiabatic; /* Front */ @@ -324,19 +325,19 @@ main(int argc, char** argv) square_interfaces[3] = interf_H; /* Right */ /* Create the box scene */ - CHK(sdis_scene_create(dev, box_ntriangles, box_get_indices, + OK(sdis_scene_create(dev, box_ntriangles, box_get_indices, box_get_interface, box_nvertices, box_get_position, box_interfaces, - &box_scn) == RES_OK); + &box_scn)); /* Create the square scene */ - CHK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, + OK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, square_get_interface, square_nvertices, square_get_position, - square_interfaces, &square_scn) == RES_OK); + square_interfaces, &square_scn)); /* Release the interfaces */ - CHK(sdis_interface_ref_put(interf_adiabatic) == RES_OK); - CHK(sdis_interface_ref_put(interf_Tb) == RES_OK); - CHK(sdis_interface_ref_put(interf_H) == RES_OK); + OK(sdis_interface_ref_put(interf_adiabatic)); + OK(sdis_interface_ref_put(interf_Tb)); + OK(sdis_interface_ref_put(interf_H)); analyticT = (H*Tf + Hrad*Trad + LAMBDA * Tb) / (H + Hrad + LAMBDA); analyticCF = H * (analyticT - Tf); @@ -348,30 +349,36 @@ main(int argc, char** argv) uv[1] = 0.3; iprim = 6; - CHK(SOLVE(NULL, N, iprim, uv, INF, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, 0, iprim, uv, INF, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, 12, uv, INF, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, iprim, NULL, INF, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, iprim, uv, -1, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, iprim, uv, INF, 1.0, Trad, Tref, NULL) == RES_BAD_ARG); - - CHK(SOLVE(box_scn, N, iprim, uv, INF, 1.0, Trad, Tref, &estimator) == RES_OK); - CHK(sdis_estimator_get_type(estimator, &type) == RES_OK); + BA(SOLVE(NULL, N, iprim, uv, time_range, 1.0, Trad, Tref, &estimator)); + BA(SOLVE(box_scn, 0, iprim, uv, time_range, 1.0, Trad, Tref, &estimator)); + BA(SOLVE(box_scn, N, 12, uv, time_range, 1.0, Trad, Tref, &estimator)); + BA(SOLVE(box_scn, N, iprim, NULL, time_range, 1.0, Trad, Tref, &estimator)); + BA(SOLVE(box_scn, N, iprim, uv, NULL, 1.0, Trad, Tref, &estimator)); + BA(SOLVE(box_scn, N, iprim, uv, time_range, 1.0, Trad, Tref, NULL)); + tr[0] = tr[1] = -1; + BA(SOLVE(box_scn, N, iprim, uv, tr, 1.0, Trad, Tref, NULL)); + tr[0] = 1; + BA(SOLVE(box_scn, N, iprim, uv, tr, 1.0, Trad, Tref, NULL)); + tr[1] = 0; + BA(SOLVE(box_scn, N, iprim, uv, tr, 1.0, Trad, Tref, NULL)); + + OK(SOLVE(box_scn, N, iprim, uv, time_range, 1.0, Trad, Tref, &estimator)); + OK(sdis_estimator_get_type(estimator, &type)); CHK(type == SDIS_FLUX_ESTIMATOR); - CHK(sdis_scene_get_boundary_position(box_scn, iprim, uv, pos) == RES_OK); + OK(sdis_scene_get_boundary_position(box_scn, iprim, uv, pos)); printf("Boundary values of the box at (%g %g %g) = ", SPLIT3(pos)); check_estimator(estimator, N, analyticT, analyticCF, analyticRF, analyticTF); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); uv[0] = 0.5; iprim = 3; - CHK(SOLVE(square_scn, N, 4, uv, INF, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); - CHK(SOLVE(square_scn, N, iprim, uv, INF, 1.0, Trad, Tref, &estimator) == RES_OK); - CHK(sdis_scene_get_boundary_position(square_scn, iprim, uv, pos) == RES_OK); + BA(SOLVE(square_scn, N, 4, uv, time_range, 1.0, Trad, Tref, &estimator)); + OK(SOLVE(square_scn, N, iprim, uv, time_range, 1.0, Trad, Tref, &estimator)); + OK(sdis_scene_get_boundary_position(square_scn, iprim, uv, pos)); printf("Boundary values of the square at (%g %g) = ", SPLIT2(pos)); check_estimator(estimator, N, analyticT, analyticCF, analyticRF, analyticTF); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); #undef F #undef SOLVE @@ -379,31 +386,37 @@ main(int argc, char** argv) #define SOLVE sdis_solve_boundary_flux prims[0] = 6; prims[1] = 7; - CHK(SOLVE(NULL, N, prims, 2, INF, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, 0, prims, 2, INF, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, NULL, 2, INF, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, prims, 0, INF, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, prims, 2, -1, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); - CHK(SOLVE(box_scn, N, prims, 2, INF, 1.0, Trad, Tref, NULL) == RES_BAD_ARG); + BA(SOLVE(NULL, N, prims, 2, time_range, 1.0, Trad, Tref, &estimator)); + BA(SOLVE(box_scn, 0, prims, 2, time_range, 1.0, Trad, Tref, &estimator)); + BA(SOLVE(box_scn, N, NULL, 2, time_range, 1.0, Trad, Tref, &estimator)); + BA(SOLVE(box_scn, N, prims, 0, time_range, 1.0, Trad, Tref, &estimator)); + BA(SOLVE(box_scn, N, prims, 2, NULL, 1.0, Trad, Tref, &estimator)); + BA(SOLVE(box_scn, N, prims, 2, time_range, 1.0, Trad, Tref, NULL)); + tr[0] = tr[1] = -1; + BA(SOLVE(box_scn, N, prims, 2, tr, 1.0, Trad, Tref, NULL)); + tr[0] = 1; + BA(SOLVE(box_scn, N, prims, 2, tr, 1.0, Trad, Tref, NULL)); + tr[1] = 0; + BA(SOLVE(box_scn, N, prims, 2, tr, 1.0, Trad, Tref, NULL)); /* Average temperature on the right side of the box */ - CHK(SOLVE(box_scn, N, prims, 2, INF, 1.0, Trad, Tref, &estimator) == RES_OK); + OK(SOLVE(box_scn, N, prims, 2, time_range, 1.0, Trad, Tref, &estimator)); printf("Average values of the right side of the box = "); check_estimator(estimator, N, analyticT, analyticCF, analyticRF, analyticTF); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); /* Average temperature on the right side of the square */ prims[0] = 3; - CHK(SOLVE(square_scn, N, prims, 1, INF, 1.0, Trad, Tref, &estimator) == RES_OK); + OK(SOLVE(square_scn, N, prims, 1, time_range, 1.0, Trad, Tref, &estimator)); printf("Average values of the right side of the square = "); check_estimator(estimator, N, analyticT, analyticCF, analyticRF, analyticTF); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); /* Check out of bound prims */ prims[0] = 12; - CHK(SOLVE(box_scn, N, prims, 2, INF, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); + BA(SOLVE(box_scn, N, prims, 2, time_range, 1.0, Trad, Tref, &estimator)); prims[0] = 4; - CHK(SOLVE(square_scn, N, prims, 1, INF, 1.0, Trad, Tref, &estimator) == RES_BAD_ARG); + BA(SOLVE(square_scn, N, prims, 1, time_range, 1.0, Trad, Tref, &estimator)); /* Average temperature on the left side of the box */ prims[0] = 2; @@ -414,22 +427,22 @@ main(int argc, char** argv) analyticRF = Hrad * (analyticT - Trad); analyticTF = analyticCF + analyticRF; - CHK(SOLVE(box_scn, N, prims, 2, INF, 1.0, Trad, Tref, &estimator) == RES_OK); + OK(SOLVE(box_scn, N, prims, 2, time_range, 1.0, Trad, Tref, &estimator)); printf("Average values of the left side of the box = "); check_estimator(estimator, N, analyticT, analyticCF, analyticRF, analyticTF); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); /* Average temperature on the left/right side of the square */ prims[0] = 1; - CHK(SOLVE(square_scn, N, prims, 1, INF, 1.0, Trad, Tref, &estimator) == RES_OK); + OK(SOLVE(square_scn, N, prims, 1, time_range, 1.0, Trad, Tref, &estimator)); printf("Average values of the left side of the square = "); check_estimator(estimator, N, analyticT, analyticCF, analyticRF, analyticTF); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); #undef SOLVE - CHK(sdis_scene_ref_put(box_scn) == RES_OK); - CHK(sdis_scene_ref_put(square_scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(box_scn)); + OK(sdis_scene_ref_put(square_scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_solve_camera.c b/src/test_sdis_solve_camera.c @@ -289,8 +289,8 @@ create_solid CHK(solid != NULL); /* Copy the solid parameters into the Stardis memory space */ - CHK(sdis_data_create - (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data)); solid_param = sdis_data_get(data); memcpy(solid_param, param, sizeof(struct solid)); @@ -303,11 +303,11 @@ create_solid solid_shader.temperature = solid_get_temperature; /* Create the solid medium */ - CHK(sdis_solid_create(dev, &solid_shader, data, solid) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, solid)); /* Release the ownership onto the Stardis memory space storing the solid * parameters */ - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_data_ref_put(data)); } static void @@ -324,8 +324,8 @@ create_fluid CHK(fluid != NULL); /* Copy the fluid parameters into the Stardis memory space */ - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); memcpy(fluid_param, param, sizeof(struct fluid)); @@ -335,11 +335,11 @@ create_fluid fluid_shader.temperature = fluid_get_temperature; /* Create the fluid medium */ - CHK(sdis_fluid_create(dev, &fluid_shader, data, fluid) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, fluid)); /* Release the ownership onto the Stardis memory space storing the fluid * parameters */ - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_data_ref_put(data)); } static void @@ -360,8 +360,8 @@ create_interface CHK(interf != NULL); /* Copy the interface parameters into the Stardis memory space */ - CHK(sdis_data_create - (dev, sizeof(struct interf), ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct interf), ALIGNOF(struct interf), NULL, &data)); interface_param = sdis_data_get(data); memcpy(interface_param, param, sizeof(struct interf)); @@ -378,12 +378,12 @@ create_interface interface_shader.back.specular_fraction = interface_get_specular_fraction; } /* Create the interface */ - CHK(sdis_interface_create - (dev, mdm_front, mdm_back, &interface_shader, data, interf) == RES_OK); + OK(sdis_interface_create + (dev, mdm_front, mdm_back, &interface_shader, data, interf)); /* Release the ownership onto the Stardis memory space storing the interface * parameters */ - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_data_ref_put(data)); } static void @@ -445,12 +445,12 @@ dump_image(const struct sdis_accum_buffer* buf) size_t i, ix, iy; CHK(buf != NULL); - CHK(sdis_accum_buffer_get_layout(buf, &layout) == RES_OK); + OK(sdis_accum_buffer_get_layout(buf, &layout)); temps = mem_alloc(layout.width*layout.height*sizeof(double)); CHK(temps != NULL); - CHK(sdis_accum_buffer_map(buf, &accums) == RES_OK); + OK(sdis_accum_buffer_map(buf, &accums)); /* Check the results validity */ FOR_EACH(i, 0, layout.height * layout.width) { @@ -478,9 +478,8 @@ dump_image(const struct sdis_accum_buffer* buf) } /* Allocate the image memory space */ - CHK(image_init(NULL, &img) == RES_OK); - CHK(image_setup(&img, IMG_WIDTH, IMG_HEIGHT, IMG_WIDTH*3, IMAGE_RGB8, NULL) - == RES_OK); + OK(image_init(NULL, &img)); + OK(image_setup(&img, IMG_WIDTH, IMG_HEIGHT, IMG_WIDTH*3, IMAGE_RGB8, NULL)); FOR_EACH(iy, 0, layout.height) { const double* src_row = temps + iy*layout.width; @@ -495,7 +494,7 @@ dump_image(const struct sdis_accum_buffer* buf) pixels[2] = T; } } - CHK(image_write_ppm_stream(&img, 0/*binary?*/, stdout) == RES_OK); + OK(image_write_ppm_stream(&img, 0/*binary?*/, stdout)); image_release(&img); mem_rm(temps); } @@ -528,9 +527,8 @@ main(int argc, char** argv) double up[3]; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid0 */ fluid_param.temperature = 350; @@ -567,43 +565,42 @@ main(int argc, char** argv) create_interface(dev, fluid1, solid, &interface_param, &interf1); /* Release the ownership onto the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid0) == RES_OK); - CHK(sdis_medium_ref_put(fluid1) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid0)); + OK(sdis_medium_ref_put(fluid1)); /* Setup the cube geometry */ - CHK(s3dut_create_cuboid(&allocator, 2, 2, 2, &msh) == RES_OK); - CHK(s3dut_mesh_get_data(msh, &msh_data) == RES_OK); + OK(s3dut_create_cuboid(&allocator, 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); - CHK(s3dut_mesh_ref_put(msh) == RES_OK); + OK(s3dut_mesh_ref_put(msh)); /* Setup the sphere geometry */ - CHK(s3dut_create_sphere(&allocator, 0.5, 32, 16, &msh) == RES_OK); - CHK(s3dut_mesh_get_data(msh, &msh_data) == RES_OK); + OK(s3dut_create_sphere(&allocator, 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); - CHK(s3dut_mesh_ref_put(msh) == RES_OK); + OK(s3dut_mesh_ref_put(msh)); /* Setup the scene */ ntris = sa_size(geom.indices) / 3; /* #primitives */ npos = sa_size(geom.positions) / 3; /* #positions */ - CHK(sdis_scene_create(dev, ntris, geometry_get_indices, + OK(sdis_scene_create(dev, ntris, geometry_get_indices, geometry_get_interface, npos, geometry_get_position, - &geom, &scn) == RES_OK); + &geom, &scn)); /* Setup the camera */ d3(pos, 3, 3, 3); d3(tgt, 0, 0, 0); d3(up, 0, 0, 1); - CHK(sdis_camera_create(dev, &cam) == RES_OK); - CHK(sdis_camera_set_proj_ratio - (cam, (double)IMG_WIDTH/(double)IMG_HEIGHT) == RES_OK); - CHK(sdis_camera_set_fov(cam, MDEG2RAD(70)) == RES_OK); - CHK(sdis_camera_look_at(cam, pos, tgt, up) == RES_OK); + OK(sdis_camera_create(dev, &cam)); + OK(sdis_camera_set_proj_ratio(cam, (double)IMG_WIDTH/(double)IMG_HEIGHT)); + OK(sdis_camera_set_fov(cam, MDEG2RAD(70))); + OK(sdis_camera_look_at(cam, pos, tgt, up)); /* Create the accum buffer */ - CHK(sdis_accum_buffer_create(dev, IMG_WIDTH, IMG_HEIGHT, &buf) == RES_OK); + OK(sdis_accum_buffer_create(dev, IMG_WIDTH, IMG_HEIGHT, &buf)); #if 0 dump_mesh(stdout, geom.positions, npos, geom.indices, ntris); @@ -611,19 +608,19 @@ main(int argc, char** argv) #endif /* Launch the simulation */ - CHK(sdis_solve_camera(scn, cam, INF, 1, 300, 300, IMG_WIDTH, IMG_HEIGHT, SPP, - sdis_accum_buffer_write, buf) == RES_OK); + OK(sdis_solve_camera(scn, cam, INF, 1, 300, 300, IMG_WIDTH, IMG_HEIGHT, SPP, + sdis_accum_buffer_write, buf)); /* Write the image */ dump_image(buf); /* Release memory */ - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_camera_ref_put(cam) == RES_OK); - CHK(sdis_interface_ref_put(interf0) == RES_OK); - CHK(sdis_interface_ref_put(interf1) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); - CHK(sdis_accum_buffer_ref_put(buf) == RES_OK); + OK(sdis_scene_ref_put(scn)); + OK(sdis_camera_ref_put(cam)); + OK(sdis_interface_ref_put(interf0)); + OK(sdis_interface_ref_put(interf1)); + OK(sdis_device_ref_put(dev)); + OK(sdis_accum_buffer_ref_put(buf)); geometry_release(&geom); check_memory_allocator(&allocator); diff --git a/src/test_sdis_solve_probe.c b/src/test_sdis_solve_probe.c @@ -191,29 +191,28 @@ main(int argc, char** argv) struct interf* interface_param; enum sdis_estimator_type type; double pos[3]; - double time; + double time_range[2]; double ref; const size_t N = 1000; size_t nreals; size_t nfails; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); fluid_param->temperature = 300; fluid_shader.temperature = fluid_get_temperature; - CHK(sdis_fluid_create(dev, &fluid_shader, data, &fluid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, &fluid)); + OK(sdis_data_ref_put(data)); /* Create the solid medium */ - CHK(sdis_data_create - (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data)); solid_param = sdis_data_get(data); solid_param->cp = 1.0; solid_param->lambda = 0.1; @@ -225,12 +224,12 @@ main(int argc, char** argv) solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = solid_get_temperature; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid)); + OK(sdis_data_ref_put(data)); /* Create the solid/fluid interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), - ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), + ALIGNOF(struct interf), NULL, &data)); interface_param = sdis_data_get(data); interface_param->hc = 0.5; interface_param->epsilon = 0; @@ -240,65 +239,65 @@ main(int argc, char** argv) interface_shader.back.temperature = NULL; interface_shader.back.emissivity = interface_get_emissivity; interface_shader.back.specular_fraction = interface_get_specular_fraction; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, data, &interf) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, data, &interf)); + OK(sdis_data_ref_put(data)); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); /* Create the scene */ ctx.positions = box_vertices; ctx.indices = box_indices; ctx.interf = interf; - CHK(sdis_scene_create(dev, box_ntriangles, get_indices, get_interface, - box_nvertices, get_position, &ctx, &scn) == RES_OK); + OK(sdis_scene_create(dev, box_ntriangles, get_indices, get_interface, + box_nvertices, get_position, &ctx, &scn)); - CHK(sdis_interface_ref_put(interf) == RES_OK); + OK(sdis_interface_ref_put(interf)); /* Test the solver */ pos[0] = 0.5; pos[1] = 0.5; pos[2] = 0.5; - time = INF; - CHK(sdis_solve_probe(NULL, N, pos, time, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(sdis_solve_probe(scn, 0, pos, time, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(sdis_solve_probe(scn, N, NULL, time, 1.0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(sdis_solve_probe(scn, N, pos, time, 0, 0, 0, &estimator) == RES_BAD_ARG); - CHK(sdis_solve_probe(scn, N, pos, time, 0, 0, -1, &estimator) == RES_BAD_ARG); - CHK(sdis_solve_probe(scn, N, pos, time, 1.0, 0, 0, NULL) == RES_BAD_ARG); - CHK(sdis_solve_probe(scn, N, pos, time, 1.0, 0, 0, &estimator) == RES_OK); - - CHK(sdis_estimator_get_type(estimator, NULL) == RES_BAD_ARG); - CHK(sdis_estimator_get_type(NULL, &type) == RES_BAD_ARG); - CHK(sdis_estimator_get_type(estimator, &type) == RES_OK); + time_range[0] = time_range[1] = INF; + BA(sdis_solve_probe(NULL, N, pos, time_range, 1.0, 0, 0, &estimator)); + BA(sdis_solve_probe(scn, 0, pos, time_range, 1.0, 0, 0, &estimator)); + BA(sdis_solve_probe(scn, N, NULL, time_range, 1.0, 0, 0, &estimator)); + BA(sdis_solve_probe(scn, N, pos, time_range, 0, 0, 0, &estimator)); + BA(sdis_solve_probe(scn, N, pos, time_range, 0, 0, -1, &estimator)); + BA(sdis_solve_probe(scn, N, pos, time_range, 1.0, 0, 0, NULL)); + OK(sdis_solve_probe(scn, N, pos, time_range, 1.0, 0, 0, &estimator)); + + BA(sdis_estimator_get_type(estimator, NULL)); + BA(sdis_estimator_get_type(NULL, &type)); + OK(sdis_estimator_get_type(estimator, &type)); CHK(type == SDIS_TEMPERATURE_ESTIMATOR); /* Fluxes aren't available after sdis_solve_probe */ - CHK(sdis_estimator_get_convective_flux(estimator, NULL) == RES_BAD_ARG); - CHK(sdis_estimator_get_convective_flux(NULL, &F) == RES_BAD_ARG); - CHK(sdis_estimator_get_convective_flux(estimator, &F) == RES_BAD_ARG); + BA(sdis_estimator_get_convective_flux(estimator, NULL)); + BA(sdis_estimator_get_convective_flux(NULL, &F)); + BA(sdis_estimator_get_convective_flux(estimator, &F)); - CHK(sdis_estimator_get_radiative_flux(estimator, NULL) == RES_BAD_ARG); - CHK(sdis_estimator_get_radiative_flux(NULL, &F) == RES_BAD_ARG); - CHK(sdis_estimator_get_radiative_flux(estimator, &F) == RES_BAD_ARG); + BA(sdis_estimator_get_radiative_flux(estimator, NULL)); + BA(sdis_estimator_get_radiative_flux(NULL, &F)); + BA(sdis_estimator_get_radiative_flux(estimator, &F)); - CHK(sdis_estimator_get_total_flux(estimator, NULL) == RES_BAD_ARG); - CHK(sdis_estimator_get_total_flux(NULL, &F) == RES_BAD_ARG); - CHK(sdis_estimator_get_total_flux(estimator, &F) == RES_BAD_ARG); + BA(sdis_estimator_get_total_flux(estimator, NULL)); + BA(sdis_estimator_get_total_flux(NULL, &F)); + BA(sdis_estimator_get_total_flux(estimator, &F)); - CHK(sdis_estimator_get_realisation_count(estimator, NULL) == RES_BAD_ARG); - CHK(sdis_estimator_get_realisation_count(NULL, &nreals) == RES_BAD_ARG); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); + BA(sdis_estimator_get_realisation_count(estimator, NULL)); + BA(sdis_estimator_get_realisation_count(NULL, &nreals)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); - CHK(sdis_estimator_get_failure_count(estimator, NULL) == RES_BAD_ARG); - CHK(sdis_estimator_get_failure_count(NULL, &nfails) == RES_BAD_ARG); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + BA(sdis_estimator_get_failure_count(estimator, NULL)); + BA(sdis_estimator_get_failure_count(NULL, &nfails)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); - CHK(sdis_estimator_get_temperature(estimator, NULL) == RES_BAD_ARG); - CHK(sdis_estimator_get_temperature(NULL, &T) == RES_BAD_ARG); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); + BA(sdis_estimator_get_temperature(estimator, NULL)); + BA(sdis_estimator_get_temperature(NULL, &T)); + OK(sdis_estimator_get_temperature(estimator, &T)); ref = 300; printf("Temperature at (%g, %g, %g) = %g ~ %g +/- %g\n", @@ -309,18 +308,18 @@ main(int argc, char** argv) CHK(nfails < N/1000); CHK(eq_eps(T.E, ref, T.SE)); - CHK(sdis_estimator_ref_get(NULL) == RES_BAD_ARG); - CHK(sdis_estimator_ref_get(estimator) == RES_OK); - CHK(sdis_estimator_ref_put(NULL) == RES_BAD_ARG); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + BA(sdis_estimator_ref_get(NULL)); + OK(sdis_estimator_ref_get(estimator)); + BA(sdis_estimator_ref_put(NULL)); + OK(sdis_estimator_ref_put(estimator)); + OK(sdis_estimator_ref_put(estimator)); /* The external fluid cannot have an unknown temperature */ fluid_param->temperature = -1; - CHK(sdis_solve_probe(scn, N, pos, time, 1.0, 0, 0, &estimator) == RES_BAD_ARG); + BA(sdis_solve_probe(scn, N, pos, time_range, 1.0, 0, 0, &estimator)); - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_solve_probe2.c b/src/test_sdis_solve_probe2.c @@ -162,20 +162,19 @@ main(int argc, char** argv) struct context ctx; struct interf* interface_param = NULL; double pos[3]; - double time; + double time_range[2] = { INF, INF }; double ref; const size_t N = 10000; size_t nreals; size_t nfails; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); /* Create the solid medium */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -183,37 +182,37 @@ main(int argc, char** argv) solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = temperature_unknown; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); /* Create the fluid/solid interface with no limit conidition */ interface_shader.convection_coef = null_interface_value; interface_shader.front = SDIS_INTERFACE_SIDE_SHADER_NULL; interface_shader.back = SDIS_INTERFACE_SIDE_SHADER_NULL; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, NULL, &Tnone) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, NULL, &Tnone)); /* Create the fluid/solid interface with a fixed temperature of 300K */ - CHK(sdis_data_create(dev, sizeof(struct interf), - ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), + ALIGNOF(struct interf), NULL, &data)); interface_param = sdis_data_get(data); interface_param->temperature = 300; interface_shader.front.temperature = interface_get_temperature; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, data, &T300) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, data, &T300)); + OK(sdis_data_ref_put(data)); /* Create the fluid/solid interface with a fixed temperature of 350K */ - CHK(sdis_data_create(dev, sizeof(struct interf), - ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), + ALIGNOF(struct interf), NULL, &data)); interface_param = sdis_data_get(data); interface_param->temperature = 350; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, data, &T350) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, data, &T350)); + OK(sdis_data_ref_put(data)); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); /* Setup the per primitive scene interfaces */ CHK(sizeof(interfaces)/sizeof(struct sdis_interface*) == box_ntriangles); @@ -228,23 +227,23 @@ main(int argc, char** argv) ctx.positions = box_vertices; ctx.indices = box_indices; ctx.interfaces = interfaces; - CHK(sdis_scene_create(dev, box_ntriangles, get_indices, get_interface, - box_nvertices, get_position, &ctx, &scn) == RES_OK); + OK(sdis_scene_create(dev, box_ntriangles, get_indices, get_interface, + box_nvertices, get_position, &ctx, &scn)); /* Release the interfaces */ - CHK(sdis_interface_ref_put(Tnone) == RES_OK); - CHK(sdis_interface_ref_put(T300) == RES_OK); - CHK(sdis_interface_ref_put(T350) == RES_OK); + OK(sdis_interface_ref_put(Tnone)); + OK(sdis_interface_ref_put(T300)); + OK(sdis_interface_ref_put(T350)); /* Launch the solver */ pos[0] = 0.5; pos[1] = 0.5; pos[2] = 0.5; - time = INF; - CHK(sdis_solve_probe( scn, N, pos, time, 1.0, -1, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); + time_range[0] = time_range[1] = INF; + OK(sdis_solve_probe( scn, N, pos, time_range, 1.0, -1, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); + OK(sdis_estimator_get_temperature(estimator, &T)); /* Print the estimation results */ ref = 350 * pos[2] + (1-pos[2]) * 300; @@ -258,9 +257,9 @@ main(int argc, char** argv) CHK(eq_eps(T.E, ref, 3*T.SE)); /* Release data */ - CHK(sdis_estimator_ref_put(estimator) == RES_OK); - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); + OK(sdis_scene_ref_put(scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_solve_probe2_2d.c b/src/test_sdis_solve_probe2_2d.c @@ -159,20 +159,19 @@ main(int argc, char** argv) struct context ctx; struct interf* interface_param = NULL; double pos[2]; - double time; + double time_range[2]; double ref; const size_t N = 10000; size_t nreals; size_t nfails; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); /* Create the solid medium */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -180,14 +179,14 @@ main(int argc, char** argv) solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = temperature_unknown; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); /* Create the fluid/solid interface with no limit conidition */ interface_shader.convection_coef = null_interface_value; interface_shader.front = SDIS_INTERFACE_SIDE_SHADER_NULL; interface_shader.back = SDIS_INTERFACE_SIDE_SHADER_NULL; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, NULL, &Tnone) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, NULL, &Tnone)); interface_shader.convection_coef = null_interface_value; interface_shader.front = SDIS_INTERFACE_SIDE_SHADER_NULL; @@ -195,26 +194,26 @@ main(int argc, char** argv) interface_shader.front.temperature = interface_get_temperature; /* Create the fluid/solid interface with a fixed temperature of 300K */ - CHK(sdis_data_create(dev, sizeof(struct interf), - ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), + ALIGNOF(struct interf), NULL, &data)); interface_param = sdis_data_get(data); interface_param->temperature = 300; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, data, &T300) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, data, &T300)); + OK(sdis_data_ref_put(data)); /* Create the fluid/solid interface with a fixed temperature of 350K */ - CHK(sdis_data_create(dev, sizeof(struct interf), - ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), + ALIGNOF(struct interf), NULL, &data)); interface_param = sdis_data_get(data); interface_param->temperature = 350; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, data, &T350) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, data, &T350)); + OK(sdis_data_ref_put(data)); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); /* Setup the per primitive scene interfaces */ CHK(sizeof(interfaces)/sizeof(struct sdis_interface*) == square_nsegments); @@ -227,22 +226,22 @@ main(int argc, char** argv) ctx.positions = square_vertices; ctx.indices = square_indices; ctx.interfaces = interfaces; - CHK(sdis_scene_2d_create(dev, square_nsegments, get_indices, get_interface, - square_nvertices, get_position, &ctx, &scn) == RES_OK); + OK(sdis_scene_2d_create(dev, square_nsegments, get_indices, get_interface, + square_nvertices, get_position, &ctx, &scn)); /* Release the interfaces */ - CHK(sdis_interface_ref_put(Tnone) == RES_OK); - CHK(sdis_interface_ref_put(T300) == RES_OK); - CHK(sdis_interface_ref_put(T350) == RES_OK); + OK(sdis_interface_ref_put(Tnone)); + OK(sdis_interface_ref_put(T300)); + OK(sdis_interface_ref_put(T350)); /* Launch the solver */ pos[0] = 0.5; pos[1] = 0.5; - time = INF; - CHK(sdis_solve_probe( scn, N, pos, time, 1.0, -1, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); + time_range[0] = time_range[1] = INF; + OK(sdis_solve_probe( scn, N, pos, time_range, 1.0, -1, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); + OK(sdis_estimator_get_temperature(estimator, &T)); /* Print the estimation results */ ref = 350 * pos[0] + (1-pos[0]) * 300; @@ -256,9 +255,9 @@ main(int argc, char** argv) CHK(eq_eps(T.E, ref, T.SE*2)); /* Release data */ - CHK(sdis_estimator_ref_put(estimator) == RES_OK); - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); + OK(sdis_scene_ref_put(scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_solve_probe3.c b/src/test_sdis_solve_probe3.c @@ -186,7 +186,7 @@ main(int argc, char** argv) struct context ctx = CONTEXT_NULL; struct interf* interface_param = NULL; double pos[3]; - double time; + double time_range[2]; double ref; const size_t N = 10000; size_t ntris; @@ -196,13 +196,12 @@ main(int argc, char** argv) size_t i; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); /* Create the solid medium */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -210,42 +209,42 @@ main(int argc, char** argv) solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = temperature_unknown; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); /* Create the fluid/solid interface with no limit conidition */ interface_shader.convection_coef = null_interface_value; interface_shader.front = SDIS_INTERFACE_SIDE_SHADER_NULL; interface_shader.back = SDIS_INTERFACE_SIDE_SHADER_NULL; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, NULL, &Tnone) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, NULL, &Tnone)); /* Create the fluid/solid interface with a fixed temperature of 300K */ - CHK(sdis_data_create(dev, sizeof(struct interf), - ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), + ALIGNOF(struct interf), NULL, &data)); interface_param = sdis_data_get(data); interface_param->temperature = 300; interface_shader.front.temperature = interface_get_temperature; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, data, &T300) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, data, &T300)); + OK(sdis_data_ref_put(data)); /* Create the fluid/solid interface with a fixed temperature of 350K */ - CHK(sdis_data_create(dev, sizeof(struct interf), - ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), + ALIGNOF(struct interf), NULL, &data)); interface_param = sdis_data_get(data); interface_param->temperature = 350; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, data, &T350) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, data, &T350)); + OK(sdis_data_ref_put(data)); /* Create the solid/solid interface */ interface_shader = SDIS_INTERFACE_SHADER_NULL; - CHK(sdis_interface_create - (dev, solid, solid, &interface_shader, NULL, &solid_solid) == RES_OK); + OK(sdis_interface_create + (dev, solid, solid, &interface_shader, NULL, &solid_solid)); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); /* Register the box geometry */ FOR_EACH(i, 0, box_nvertices) { @@ -260,8 +259,8 @@ main(int argc, char** argv) } /* Setup a sphere at the center of the box */ - CHK(s3dut_create_sphere(&allocator, 0.25, 64, 32, &msh) == RES_OK); - CHK(s3dut_mesh_get_data(msh, &msh_data) == RES_OK); + OK(s3dut_create_sphere(&allocator, 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); sa_push(ctx.positions, msh_data.positions[i*3+1] + 0.5); @@ -272,7 +271,7 @@ main(int argc, char** argv) sa_push(ctx.indices, msh_data.indices[i*3+1] + box_nvertices); sa_push(ctx.indices, msh_data.indices[i*3+2] + box_nvertices); } - CHK(s3dut_mesh_ref_put(msh) == RES_OK); + OK(s3dut_mesh_ref_put(msh)); /* Create the scene */ ctx.solid_fluid_Tnone = Tnone; @@ -281,14 +280,14 @@ main(int argc, char** argv) ctx.solid_solid = solid_solid; nverts = sa_size(ctx.positions) / 3; ntris = sa_size(ctx.indices) / 3; - CHK(sdis_scene_create(dev, ntris, get_indices, get_interface, nverts, - get_position, &ctx, &scn) == RES_OK); + OK(sdis_scene_create(dev, ntris, get_indices, get_interface, nverts, + get_position, &ctx, &scn)); /* Release the scene data */ - CHK(sdis_interface_ref_put(Tnone) == RES_OK); - CHK(sdis_interface_ref_put(T300) == RES_OK); - CHK(sdis_interface_ref_put(T350) == RES_OK); - CHK(sdis_interface_ref_put(solid_solid) == RES_OK); + OK(sdis_interface_ref_put(Tnone)); + OK(sdis_interface_ref_put(T300)); + OK(sdis_interface_ref_put(T350)); + OK(sdis_interface_ref_put(solid_solid)); sa_release(ctx.positions); sa_release(ctx.indices); @@ -296,11 +295,11 @@ main(int argc, char** argv) pos[0] = 0.5; pos[1] = 0.5; pos[2] = 0.5; - time = INF; - CHK(sdis_solve_probe( scn, N, pos, time, 1.0, -1, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); + time_range[0] = time_range[1] = INF; + OK(sdis_solve_probe( scn, N, pos, time_range, 1.0, -1, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); + OK(sdis_estimator_get_temperature(estimator, &T)); /* Print the estimation results */ ref = 350 * pos[2] + (1-pos[2]) * 300; @@ -314,9 +313,9 @@ main(int argc, char** argv) CHK(eq_eps(T.E, ref, 2*T.SE)); /* Release data */ - CHK(sdis_estimator_ref_put(estimator) == RES_OK); - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); + OK(sdis_scene_ref_put(scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_solve_probe3_2d.c b/src/test_sdis_solve_probe3_2d.c @@ -181,7 +181,7 @@ main(int argc, char** argv) struct context ctx = CONTEXT_NULL; struct interf* interface_param = NULL; double pos[2]; - double time; + double time_range[2]; double ref; const size_t N = 10000; size_t nsegs; @@ -191,13 +191,12 @@ main(int argc, char** argv) size_t i; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ fluid_shader.temperature = temperature_unknown; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); /* Create the solid medium */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -205,45 +204,45 @@ main(int argc, char** argv) solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = temperature_unknown; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); /* Create the fluid/solid interface with no limit conidition */ interface_shader = SDIS_INTERFACE_SHADER_NULL; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, NULL, &Tnone) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, NULL, &Tnone)); /* Create the fluid/solid interface with a fixed temperature of 300K */ - CHK(sdis_data_create(dev, sizeof(struct interf), - ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), + ALIGNOF(struct interf), NULL, &data)); interface_param = sdis_data_get(data); interface_param->temperature = 300; interface_shader.convection_coef = null_interface_value; interface_shader.front.temperature = interface_get_temperature; interface_shader.back = SDIS_INTERFACE_SIDE_SHADER_NULL; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, data, &T300) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, data, &T300)); + OK(sdis_data_ref_put(data)); /* Create the fluid/solid interface with a fixed temperature of 350K */ - CHK(sdis_data_create(dev, sizeof(struct interf), - ALIGNOF(struct interf), NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), + ALIGNOF(struct interf), NULL, &data)); interface_param = sdis_data_get(data); interface_param->temperature = 350; interface_shader.convection_coef = null_interface_value; interface_shader.front.temperature = interface_get_temperature; interface_shader.back = SDIS_INTERFACE_SIDE_SHADER_NULL; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, data, &T350) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, data, &T350)); + OK(sdis_data_ref_put(data)); /* Create the solid/solid interface */ interface_shader = SDIS_INTERFACE_SHADER_NULL; - CHK(sdis_interface_create - (dev, solid, solid, &interface_shader, NULL, &solid_solid) == RES_OK); + OK(sdis_interface_create + (dev, solid, solid, &interface_shader, NULL, &solid_solid)); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); /* Register the square geometry */ FOR_EACH(i, 0, square_nvertices) { @@ -275,25 +274,25 @@ main(int argc, char** argv) ctx.solid_solid = solid_solid; nverts = sa_size(ctx.positions) / 2; nsegs = sa_size(ctx.indices) / 2; - CHK(sdis_scene_2d_create(dev, nsegs, get_indices, get_interface, nverts, - get_position, &ctx, &scn) == RES_OK); + OK(sdis_scene_2d_create(dev, nsegs, get_indices, get_interface, nverts, + get_position, &ctx, &scn)); /* Release the scene data */ - CHK(sdis_interface_ref_put(Tnone) == RES_OK); - CHK(sdis_interface_ref_put(T300) == RES_OK); - CHK(sdis_interface_ref_put(T350) == RES_OK); - CHK(sdis_interface_ref_put(solid_solid) == RES_OK); + OK(sdis_interface_ref_put(Tnone)); + OK(sdis_interface_ref_put(T300)); + OK(sdis_interface_ref_put(T350)); + OK(sdis_interface_ref_put(solid_solid)); sa_release(ctx.positions); sa_release(ctx.indices); /* Launch the solver */ pos[0] = 0.5; pos[1] = 0.5; - time = INF; - CHK(sdis_solve_probe( scn, N, pos, time, 1.0, -1, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); + time_range[0] = time_range[1] = INF; + OK(sdis_solve_probe( scn, N, pos, time_range, 1.0, -1, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); + OK(sdis_estimator_get_temperature(estimator, &T)); /* Print the estimation results */ ref = 350 * pos[0] + (1-pos[0]) * 300; @@ -307,9 +306,9 @@ main(int argc, char** argv) CHK(eq_eps(T.E, ref, 3*T.SE)); /* Release data */ - CHK(sdis_estimator_ref_put(estimator) == RES_OK); - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); + OK(sdis_scene_ref_put(scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_solve_probe_2d.c b/src/test_sdis_solve_probe_2d.c @@ -148,25 +148,24 @@ main(int argc, char** argv) struct context ctx; struct fluid* fluid_param; double pos[2]; - double time; + double time_range[2] = { INF, INF }; double ref; const size_t N = 1000; size_t nreals; size_t nfails; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); fluid_param->temperature = 300; fluid_shader.temperature = fluid_get_temperature; - CHK(sdis_fluid_create(dev, &fluid_shader, data, &fluid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, &fluid)); + OK(sdis_data_ref_put(data)); /* Create the solid medium */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -174,37 +173,37 @@ main(int argc, char** argv) solid_shader.volumic_mass = solid_get_volumic_mass; solid_shader.delta_solid = solid_get_delta; solid_shader.temperature = solid_get_temperature; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, NULL, &solid)); /* Create the solid/fluid interface */ interface_shader.convection_coef = interface_get_convection_coef; interface_shader.front = SDIS_INTERFACE_SIDE_SHADER_NULL; interface_shader.back = SDIS_INTERFACE_SIDE_SHADER_NULL; - CHK(sdis_interface_create - (dev, solid, fluid, &interface_shader, NULL, &interf) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interface_shader, NULL, &interf)); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(fluid)); /* Create the scene */ ctx.positions = square_vertices; ctx.indices = square_indices; ctx.interf = interf; - CHK(sdis_scene_2d_create(dev, square_nsegments, get_indices, get_interface, - square_nvertices, get_position, &ctx, &scn) == RES_OK); + OK(sdis_scene_2d_create(dev, square_nsegments, get_indices, get_interface, + square_nvertices, get_position, &ctx, &scn)); - CHK(sdis_interface_ref_put(interf) == RES_OK); + OK(sdis_interface_ref_put(interf)); /* Test the solver */ pos[0] = 0.5; pos[1] = 0.5; - time = INF; - CHK(sdis_solve_probe(scn, N, pos, time, 1.0, 0, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + time_range[0] = time_range[1] = INF; + OK(sdis_solve_probe(scn, N, pos, time_range, 1.0, 0, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); + OK(sdis_estimator_get_temperature(estimator, &T)); ref = 300; printf("Temperature at (%g, %g) = %g ~ %g +/- %g\n", @@ -215,14 +214,15 @@ main(int argc, char** argv) CHK(nfails < N/1000); CHK(eq_eps(T.E, ref, T.SE)); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); /* The external fluid cannot have an unknown temperature */ fluid_param->temperature = -1; - CHK(sdis_solve_probe(scn, N, pos, time, 1.0, 0, 0, &estimator) == RES_BAD_ARG); + + BA(sdis_solve_probe(scn, N, pos, time_range, 1.0, 0, 0, &estimator)); - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_utils.h b/src/test_sdis_utils.h @@ -23,6 +23,9 @@ #define BOLTZMANN_CONSTANT 5.6696e-8 /* W/m^2/K^4 */ +#define OK(Cond) CHK((Cond) == RES_OK) +#define BA(Cond) CHK((Cond) == RES_BAD_ARG) + /******************************************************************************* * Box geometry ******************************************************************************/ diff --git a/src/test_sdis_volumic_power.c b/src/test_sdis_volumic_power.c @@ -170,18 +170,18 @@ main(int argc, char** argv) struct interf* interf_props = NULL; struct solid* solid_props = NULL; double pos[3]; + double time_range[2] = { INF, INF }; double x; double ref; size_t nreals; size_t nfails; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); fluid_shader.temperature = fluid_get_temperature; - CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid)); /* Setup the solid shader */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -192,48 +192,48 @@ main(int argc, char** argv) solid_shader.volumic_power = solid_get_volumic_power; /* Create the solid medium */ - CHK(sdis_data_create(dev, sizeof(struct solid), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct solid), 16, NULL, &data)); solid_props = sdis_data_get(data); solid_props->lambda = LAMBDA; solid_props->cp = 2; solid_props->rho = 25; solid_props->delta = DELTA; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid)); + OK(sdis_data_ref_put(data)); - CHK(sdis_data_create(dev, sizeof(struct solid), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct solid), 16, NULL, &data)); solid_props = sdis_data_get(data); solid_props->lambda = 0; solid_props->cp = 0; solid_props->rho = 0; solid_props->delta = DELTA/4; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid2)); + OK(sdis_data_ref_put(data)); /* Setup the interface shader */ interf_shader.convection_coef = interface_get_convection_coef; interf_shader.front.temperature = interface_get_temperature; /* Create the adiabatic interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data)); interf_props = sdis_data_get(data); interf_props->temperature = UNKNOWN_TEMPERATURE; - CHK(sdis_interface_create - (dev, solid, fluid, &interf_shader, data, &interf_adiabatic) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interf_shader, data, &interf_adiabatic)); + OK(sdis_data_ref_put(data)); /* Create the T0 interface */ - CHK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data) == RES_OK); + OK(sdis_data_create(dev, sizeof(struct interf), 16, NULL, &data)); interf_props = sdis_data_get(data); interf_props->temperature = T0; - CHK(sdis_interface_create - (dev, solid, fluid, &interf_shader, data, &interf_T0) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create + (dev, solid, fluid, &interf_shader, data, &interf_T0)); + OK(sdis_data_ref_put(data)); /* Release the media */ - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(solid2) == RES_OK); - CHK(sdis_medium_ref_put(fluid) == RES_OK); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(solid2)); + OK(sdis_medium_ref_put(fluid)); /* Map the interfaces to their box triangles */ box_interfaces[0] = box_interfaces[1] = interf_adiabatic; /* Front */ @@ -250,30 +250,30 @@ main(int argc, char** argv) square_interfaces[3] = interf_T0; /* Right */ /* Create the box scene */ - CHK(sdis_scene_create(dev, box_ntriangles, box_get_indices, + OK(sdis_scene_create(dev, box_ntriangles, box_get_indices, box_get_interface, box_nvertices, box_get_position, box_interfaces, - &box_scn) == RES_OK); + &box_scn)); /* Create the square scene */ - CHK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, + OK(sdis_scene_2d_create(dev, square_nsegments, square_get_indices, square_get_interface, square_nvertices, square_get_position, - square_interfaces, &square_scn) == RES_OK); + square_interfaces, &square_scn)); /* Release the interfaces */ - CHK(sdis_interface_ref_put(interf_adiabatic) == RES_OK); - CHK(sdis_interface_ref_put(interf_T0) == RES_OK); + OK(sdis_interface_ref_put(interf_adiabatic)); + OK(sdis_interface_ref_put(interf_T0)); d3_splat(pos, 0.25); x = pos[0] - 0.5; ref = P0 / (2*LAMBDA) * (1.0/4.0 - x*x) + T0; /* Solve in 3D */ - CHK(sdis_solve_probe(box_scn, N, pos, INF, 1.0, 0, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + OK(sdis_solve_probe(box_scn, N, pos, time_range, 1.0, 0, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); CHK(nfails + nreals == N); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_ref_put(estimator)); printf("Temperature of the box at (%g %g %g) = %g ~ %g +/- %g\n", SPLIT3(pos), ref, T.E, T.SE); printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N); @@ -282,11 +282,11 @@ main(int argc, char** argv) CHK(eq_eps(T.E, ref, 3*T.SE)); /* Solve in 2D */ - CHK(sdis_solve_probe(square_scn, N, pos, INF, 1.0, 0, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_solve_probe(square_scn, N, pos, time_range, 1.0, 0, 0, &estimator)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_ref_put(estimator)); printf("Temperature of the square at (%g %g) = %g ~ %g +/- %g\n", SPLIT2(pos), ref, T.E, T.SE); printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N); @@ -294,9 +294,9 @@ main(int argc, char** argv) CHK(nfails < N/1000); CHK(eq_eps(T.E, ref, 3*T.SE)); - CHK(sdis_scene_ref_put(box_scn) == RES_OK); - CHK(sdis_scene_ref_put(square_scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(box_scn)); + OK(sdis_scene_ref_put(square_scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_volumic_power2.c b/src/test_sdis_volumic_power2.c @@ -233,6 +233,7 @@ check(struct sdis_scene* scn, const struct reference refs[], const size_t nrefs) size_t nreals; size_t nfails; double pos[3] = {0,0}; + double time_range[2] = { INF, INF }; size_t i; FOR_EACH(i, 0, nrefs) { @@ -241,17 +242,17 @@ check(struct sdis_scene* scn, const struct reference refs[], const size_t nrefs) pos[1] = refs[i].pos[1]; pos[2] = refs[i].pos[2]; - CHK(sdis_solve_probe(scn, N, pos, INF, 1.f, -1, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + OK(sdis_solve_probe(scn, N, pos, time_range, 1.f, -1, 0, &estimator)); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); Tc = T.E - 273.15; /* Convert in Celcius */ printf("Temperature at (%g %g %g) = %g ~ %g +/- %g [%g, %g]\n", SPLIT3(pos), refs[i].temperature_2d, Tc, T.SE, Tc-3*T.SE, Tc+3*T.SE); printf("#realisations: %lu; #failures: %lu\n", (unsigned long)nreals, (unsigned long)nfails); /*CHK(eq_eps(Tc, refs[i].temperature, T.SE*3));*/ - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); } } @@ -298,9 +299,8 @@ main(int argc, char** argv) }; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Setup the fluid shader */ fluid_shader.temperature = fluid_get_temperature; @@ -308,20 +308,20 @@ main(int argc, char** argv) fluid_shader.volumic_mass = dummy_medium_getter; /* Create the fluid1 medium */ - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); fluid_param->temperature = 373.15; - CHK(sdis_fluid_create(dev, &fluid_shader, data, &fluid1) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, &fluid1) ); + OK(sdis_data_ref_put(data)); /* Create the fluid2 medium */ - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); fluid_param->temperature = 273.15; - CHK(sdis_fluid_create(dev, &fluid_shader, data, &fluid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, &fluid2)); + OK(sdis_data_ref_put(data)); /* Setup the solid shader */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -332,8 +332,8 @@ main(int argc, char** argv) solid_shader.volumic_power = solid_get_volumic_power; /* Create the solid1 medium */ - CHK(sdis_data_create - (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) ); solid_param = sdis_data_get(data); solid_param->cp = 500000; solid_param->rho = 1000; @@ -341,12 +341,12 @@ main(int argc, char** argv) solid_param->delta = DELTA; solid_param->P = SDIS_VOLUMIC_POWER_NONE; solid_param->T = -1; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid1) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid1)); + OK(sdis_data_ref_put(data)); /* Create the solid2 medium */ - CHK(sdis_data_create - (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data)); solid_param = sdis_data_get(data); solid_param->cp = 500000; solid_param->rho = 1000; @@ -354,52 +354,52 @@ main(int argc, char** argv) solid_param->delta = DELTA_PSQUARE; solid_param->P = Pw; solid_param->T = -1; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid2)); + OK(sdis_data_ref_put(data)); /* Create the solid1/solid2 interface */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); - CHK(sdis_interface_create(dev, solid2, solid1, &SDIS_INTERFACE_SHADER_NULL, - NULL, &interf_solid1_solid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); + OK(sdis_interface_create(dev, solid2, solid1, &SDIS_INTERFACE_SHADER_NULL, + NULL, &interf_solid1_solid2)); + OK(sdis_data_ref_put(data)); /* Setup the interface shader */ interf_shader.convection_coef = interface_get_convection_coef; /* Create the adiabatic interfaces */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = 0; - CHK(sdis_interface_create(dev, solid1, fluid1, &interf_shader, data, - &interf_solid1_adiabatic) == RES_OK); - CHK(sdis_interface_create(dev, solid2, fluid1, &interf_shader, data, - &interf_solid2_adiabatic) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid1, fluid1, &interf_shader, data, + &interf_solid1_adiabatic)); + OK(sdis_interface_create(dev, solid2, fluid1, &interf_shader, data, + &interf_solid2_adiabatic)); + OK(sdis_data_ref_put(data)); /* Setup the interface shader */ interf_shader.front.temperature = interface_get_temperature; /* Create the solid1/fluid1 interface */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = 5; interf_param->temperature = NONE; - CHK(sdis_interface_create(dev, solid1, fluid1, &interf_shader, data, - &interf_solid1_fluid1) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid1, fluid1, &interf_shader, data, + &interf_solid1_fluid1)); + OK(sdis_data_ref_put(data)); /* Create the solid1/fluid2 interace */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = 10; interf_param->temperature = NONE; - CHK(sdis_interface_create(dev, solid1, fluid2, &interf_shader, data, - &interf_solid1_fluid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid1, fluid2, &interf_shader, data, + &interf_solid1_fluid2)); + OK(sdis_data_ref_put(data)); /* Map the interfaces to their faces */ interfaces[0] = interf_solid1_adiabatic; @@ -422,8 +422,8 @@ main(int argc, char** argv) interfaces[17] = interf_solid2_adiabatic; /* Create the scene */ - CHK(sdis_scene_create(dev, ntriangles, get_indices, get_interface, - nvertices, get_position, interfaces, &scn) == RES_OK); + OK(sdis_scene_create(dev, ntriangles, get_indices, get_interface, + nvertices, get_position, interfaces, &scn)); #if 0 dump_mesh(stdout, vertices, nvertices, indices, ntriangles); @@ -434,31 +434,31 @@ main(int argc, char** argv) check(scn, refs1, sizeof(refs1)/sizeof(struct reference)); /* Update the scene */ - CHK(sdis_scene_ref_put(scn) == RES_OK); + OK(sdis_scene_ref_put(scn)); data = sdis_medium_get_data(solid1); solid_param = sdis_data_get(data); solid_param->lambda = 0.1; - CHK(sdis_scene_create(dev, ntriangles, get_indices, get_interface, - nvertices, get_position, interfaces, &scn) == RES_OK); + OK(sdis_scene_create(dev, ntriangles, get_indices, get_interface, + nvertices, get_position, interfaces, &scn)); printf("\n>>> Check 2\n"); check(scn, refs2, sizeof(refs2)/sizeof(struct reference)); /* Release the interfaces */ - CHK(sdis_interface_ref_put(interf_solid1_adiabatic) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid2_adiabatic) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid1_fluid1) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid1_fluid2) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid1_solid2) == RES_OK); + OK(sdis_interface_ref_put(interf_solid1_adiabatic)); + OK(sdis_interface_ref_put(interf_solid2_adiabatic)); + OK(sdis_interface_ref_put(interf_solid1_fluid1)); + OK(sdis_interface_ref_put(interf_solid1_fluid2)); + OK(sdis_interface_ref_put(interf_solid1_solid2)); /* Release the media */ - CHK(sdis_medium_ref_put(fluid1) == RES_OK); - CHK(sdis_medium_ref_put(fluid2) == RES_OK); - CHK(sdis_medium_ref_put(solid1) == RES_OK); - CHK(sdis_medium_ref_put(solid2) == RES_OK); + OK(sdis_medium_ref_put(fluid1)); + OK(sdis_medium_ref_put(fluid2)); + OK(sdis_medium_ref_put(solid1)); + OK(sdis_medium_ref_put(solid2)); - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_volumic_power2_2d.c b/src/test_sdis_volumic_power2_2d.c @@ -253,6 +253,7 @@ check(struct sdis_scene* scn, const struct reference refs[], const size_t nrefs) size_t nreals; size_t nfails; double pos[2] = {0,0}; + double time_range[2] = { INF, INF }; size_t i; FOR_EACH(i, 0, nrefs) { @@ -260,17 +261,17 @@ check(struct sdis_scene* scn, const struct reference refs[], const size_t nrefs) pos[0] = refs[i].pos[0]; pos[1] = refs[i].pos[1]; - CHK(sdis_solve_probe(scn, N, pos, INF, 1.f, -1, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + OK(sdis_solve_probe(scn, N, pos, time_range, 1.f, -1, 0, &estimator)); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); Tc = T.E - 273.15; /* Convert in Celcius */ printf("Temperature at (%g %g) = %g ~ %g +/- %g [%g, %g]\n", SPLIT2(pos), refs[i].temperature, Tc, T.SE, Tc-3*T.SE, Tc+3*T.SE); printf("#realisations: %lu; #failures: %lu\n", (unsigned long)nreals, (unsigned long)nfails); /*CHK(eq_eps(Tc, refs[i].temperature, T.SE*3));*/ - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); } } @@ -329,9 +330,8 @@ main(int argc, char** argv) }; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Setup the fluid shader */ fluid_shader.temperature = fluid_get_temperature; @@ -339,20 +339,20 @@ main(int argc, char** argv) fluid_shader.volumic_mass = dummy_medium_getter; /* Create the fluid1 medium */ - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); fluid_param->temperature = 373.15; - CHK(sdis_fluid_create(dev, &fluid_shader, data, &fluid1) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, &fluid1)); + OK(sdis_data_ref_put(data)); /* Create the fluid2 medium */ - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); fluid_param->temperature = 273.15; - CHK(sdis_fluid_create(dev, &fluid_shader, data, &fluid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, &fluid2)); + OK(sdis_data_ref_put(data)); /* Setup the solid shader */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -363,8 +363,8 @@ main(int argc, char** argv) solid_shader.volumic_power = solid_get_volumic_power; /* Create the solid1 medium */ - CHK(sdis_data_create - (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data)); solid_param = sdis_data_get(data); solid_param->cp = 500000; solid_param->rho = 1000; @@ -372,12 +372,12 @@ main(int argc, char** argv) solid_param->delta = DELTA; solid_param->P = SDIS_VOLUMIC_POWER_NONE; solid_param->T = -1; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid1) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid1)); + OK(sdis_data_ref_put(data)); /* Create the solid2 medium */ - CHK(sdis_data_create - (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data)); solid_param = sdis_data_get(data); solid_param->cp = 500000; solid_param->rho = 1000; @@ -385,50 +385,50 @@ main(int argc, char** argv) solid_param->delta = DELTA; solid_param->P = Pw; solid_param->T = -1; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid2)); + OK(sdis_data_ref_put(data)); /* Create the solid1/solid2 interface */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); - CHK(sdis_interface_create(dev, solid2, solid1, &SDIS_INTERFACE_SHADER_NULL, - NULL, &interf_solid1_solid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); + OK(sdis_interface_create(dev, solid2, solid1, &SDIS_INTERFACE_SHADER_NULL, + NULL, &interf_solid1_solid2)); + OK(sdis_data_ref_put(data)); /* Setup the interface shader */ interf_shader.convection_coef = interface_get_convection_coef; /* Create the adiabatic interface */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = 0; - CHK(sdis_interface_create(dev, solid1, fluid1, &interf_shader, data, - &interf_adiabatic) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid1, fluid1, &interf_shader, data, + &interf_adiabatic)); + OK(sdis_data_ref_put(data)); /* Setup the interface shader */ interf_shader.front.temperature = interface_get_temperature; /* Create the solid1/fluid1 interface */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = 5; interf_param->temperature = Tboundary1; - CHK(sdis_interface_create(dev, solid1, fluid1, &interf_shader, data, - &interf_solid1_fluid1) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid1, fluid1, &interf_shader, data, + &interf_solid1_fluid1)); + OK(sdis_data_ref_put(data)); /* Create the solid1/fluid2 interace */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = 10; interf_param->temperature = Tboundary2; - CHK(sdis_interface_create(dev, solid1, fluid2, &interf_shader, data, - &interf_solid1_fluid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid1, fluid2, &interf_shader, data, + &interf_solid1_fluid2)); + OK(sdis_data_ref_put(data)); /* Map the interfaces to their square segments */ @@ -442,25 +442,25 @@ main(int argc, char** argv) interfaces[7] = interf_solid1_solid2; /* Create the scene */ - CHK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, - nvertices, get_position, interfaces, &scn) == RES_OK); + OK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, + nvertices, get_position, interfaces, &scn)); printf(">>> Check 1\n"); check(scn, refs1, sizeof(refs1)/sizeof(struct reference)); /* Update the scene */ - CHK(sdis_scene_ref_put(scn) == RES_OK); + OK(sdis_scene_ref_put(scn)); data = sdis_medium_get_data(solid1); solid_param = sdis_data_get(data); solid_param->lambda = 0.1; - CHK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, - nvertices, get_position, interfaces, &scn) == RES_OK); + OK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, + nvertices, get_position, interfaces, &scn) ); printf("\n>>> Check 2\n"); check(scn, refs2, sizeof(refs2)/sizeof(struct reference)); /* Update the scene */ - CHK(sdis_scene_ref_put(scn) == RES_OK); + OK(sdis_scene_ref_put(scn)); data = sdis_medium_get_data(solid1); solid_param = sdis_data_get(data); solid_param->lambda = 1; @@ -468,8 +468,8 @@ main(int argc, char** argv) solid_param = sdis_data_get(data); solid_param->lambda = 10; solid_param->P = SDIS_VOLUMIC_POWER_NONE; - CHK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, - nvertices, get_position, interfaces, &scn) == RES_OK); + OK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, + nvertices, get_position, interfaces, &scn)); printf("\n>>> Check 3\n"); check(scn, refs3, sizeof(refs3)/sizeof(struct reference)); @@ -480,19 +480,19 @@ main(int argc, char** argv) #endif /* Release the interfaces */ - CHK(sdis_interface_ref_put(interf_adiabatic) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid1_fluid1) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid1_fluid2) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid1_solid2) == RES_OK); + OK(sdis_interface_ref_put(interf_adiabatic)); + OK(sdis_interface_ref_put(interf_solid1_fluid1)); + OK(sdis_interface_ref_put(interf_solid1_fluid2)); + OK(sdis_interface_ref_put(interf_solid1_solid2)); /* Release the media */ - CHK(sdis_medium_ref_put(fluid1) == RES_OK); - CHK(sdis_medium_ref_put(fluid2) == RES_OK); - CHK(sdis_medium_ref_put(solid1) == RES_OK); - CHK(sdis_medium_ref_put(solid2) == RES_OK); + OK(sdis_medium_ref_put(fluid1)); + OK(sdis_medium_ref_put(fluid2)); + OK(sdis_medium_ref_put(solid1)); + OK(sdis_medium_ref_put(solid2)); - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_volumic_power3_2d.c b/src/test_sdis_volumic_power3_2d.c @@ -263,26 +263,26 @@ main(int argc, char** argv) struct sdis_interface* interfaces[10/*#segment*/]; struct sdis_mc T = SDIS_MC_NULL; double Tref; + double time_range[2] = { INF, INF }; double pos[2]; size_t nfails; size_t nreals; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ fluid_shader.temperature = fluid_get_temperature; fluid_shader.calorific_capacity = dummy_medium_getter; fluid_shader.volumic_mass = dummy_medium_getter; - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); fluid_param->temperature_upper = T1; fluid_param->temperature_lower = T2; - CHK(sdis_fluid_create(dev, &fluid_shader, data, &fluid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, &fluid)); + OK(sdis_data_ref_put(data)); /* Setup the solid shader */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -293,8 +293,8 @@ main(int argc, char** argv) solid_shader.volumic_power = solid_get_volumic_power; /* Create the medium of the upper slab */ - CHK(sdis_data_create - (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data)); solid_param = sdis_data_get(data); solid_param->cp = 500000; solid_param->rho = 1000; @@ -302,12 +302,12 @@ main(int argc, char** argv) solid_param->delta = DELTA1; solid_param->volumic_power = SDIS_VOLUMIC_POWER_NONE; solid_param->temperature = -1; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid1) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid1)); + OK(sdis_data_ref_put(data)); /* Create the medium of the lower slab */ - CHK(sdis_data_create - (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data)); solid_param = sdis_data_get(data); solid_param->cp = 500000; solid_param->rho = 1000; @@ -315,12 +315,12 @@ main(int argc, char** argv) solid_param->delta = DELTA2; solid_param->volumic_power = SDIS_VOLUMIC_POWER_NONE; solid_param->temperature = -1; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid2)); + OK(sdis_data_ref_put(data)); /* Create the medium of the middle slab */ - CHK(sdis_data_create - (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data)); solid_param = sdis_data_get(data); solid_param->cp = 500000; solid_param->rho = 1000; @@ -328,72 +328,72 @@ main(int argc, char** argv) solid_param->delta = DELTA; solid_param->volumic_power = Pw; solid_param->temperature = -1; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid)); + OK(sdis_data_ref_put(data)); interf_shader.front.temperature = interface_get_temperature; /* Create the solid/solid1 interface */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->temperature = Tsolid_solid1; - CHK(sdis_interface_create(dev, solid, solid1, &interf_shader, - data, &interf_solid_solid1) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid, solid1, &interf_shader, + data, &interf_solid_solid1)); + OK(sdis_data_ref_put(data)); /* Create the solid/solid2 interface */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->temperature = Tsolid_solid2; - CHK(sdis_interface_create(dev, solid, solid2, &interf_shader, - data, &interf_solid_solid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid, solid2, &interf_shader, + data, &interf_solid_solid2)); + OK(sdis_data_ref_put(data)); /* Setup the interface shader */ interf_shader.convection_coef = interface_get_convection_coef; interf_shader.front.temperature = interface_get_temperature; /* Create the adiabatic interfaces */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = 0; interf_param->temperature = -1; - CHK(sdis_interface_create(dev, solid, fluid, &interf_shader, data, - &interf_solid_adiabatic) == RES_OK); - CHK(sdis_interface_create(dev, solid1, fluid, &interf_shader, data, - &interf_solid1_adiabatic) == RES_OK); - CHK(sdis_interface_create(dev, solid2, fluid, &interf_shader, data, - &interf_solid2_adiabatic) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid, fluid, &interf_shader, data, + &interf_solid_adiabatic)); + OK(sdis_interface_create(dev, solid1, fluid, &interf_shader, data, + &interf_solid1_adiabatic)); + OK(sdis_interface_create(dev, solid2, fluid, &interf_shader, data, + &interf_solid2_adiabatic) ); + OK(sdis_data_ref_put(data)); /* Create the solid1 fluid interace */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = H1; interf_param->temperature = Tsolid1_fluid; - CHK(sdis_interface_create(dev, solid1, fluid, &interf_shader, data, - &interf_solid1_fluid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid1, fluid, &interf_shader, data, + &interf_solid1_fluid)); + OK(sdis_data_ref_put(data)); /* Create the solid2 fluid interface */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = H2; interf_param->temperature = Tsolid2_fluid; - CHK(sdis_interface_create(dev, solid2, fluid, &interf_shader, data, - &interf_solid2_fluid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid2, fluid, &interf_shader, data, + &interf_solid2_fluid)); + OK(sdis_data_ref_put(data)); /* Release the media */ - CHK(sdis_medium_ref_put(fluid) == RES_OK); - CHK(sdis_medium_ref_put(solid) == RES_OK); - CHK(sdis_medium_ref_put(solid1) == RES_OK); - CHK(sdis_medium_ref_put(solid2) == RES_OK); + OK(sdis_medium_ref_put(fluid)); + OK(sdis_medium_ref_put(solid)); + OK(sdis_medium_ref_put(solid1)); + OK(sdis_medium_ref_put(solid2)); /* Map the interfaces to their square segments */ interfaces[0] = interf_solid2_adiabatic; @@ -413,17 +413,17 @@ main(int argc, char** argv) #endif /* Create the scene */ - CHK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, - nvertices, get_position, interfaces, &scn) == RES_OK); + OK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, + nvertices, get_position, interfaces, &scn)); /* Release the interfaces */ - CHK(sdis_interface_ref_put(interf_solid_adiabatic) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid1_adiabatic) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid2_adiabatic) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid_solid1) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid_solid2) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid1_fluid) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid2_fluid) == RES_OK); + OK(sdis_interface_ref_put(interf_solid_adiabatic)); + OK(sdis_interface_ref_put(interf_solid1_adiabatic)); + OK(sdis_interface_ref_put(interf_solid2_adiabatic)); + OK(sdis_interface_ref_put(interf_solid_solid1)); + OK(sdis_interface_ref_put(interf_solid_solid2)); + OK(sdis_interface_ref_put(interf_solid1_fluid)); + OK(sdis_interface_ref_put(interf_solid2_fluid)); pos[0] = 0; pos[1] = PROBE_POS; @@ -441,21 +441,21 @@ main(int argc, char** argv) FATAL("Unreachable code.\n"); } - CHK(sdis_solve_probe(scn, N, pos, INF, 1.f, -1, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); + OK(sdis_solve_probe(scn, N, pos, time_range, 1.f, -1, 0, &estimator)); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); printf("Temperature at (%g %g) = %g ~ %g +/- %g [%g, %g]\n", SPLIT2(pos), Tref, T.E, T.SE, T.E-3*T.SE, T.E+3*T.SE); printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); CHK(nfails + nreals == N); CHK(nfails < N/1000); CHK(eq_eps(T.E, Tref, T.SE*3)); - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/test_sdis_volumic_power4_2d.c b/src/test_sdis_volumic_power4_2d.c @@ -221,33 +221,33 @@ main(int argc, char** argv) struct sdis_mc T = SDIS_MC_NULL; size_t nreals, nfails; double pos[2]; + double time_range[2] = { INF, INF }; double Tref; double a, b, x; double L; (void)argc, (void)argv; - CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); - CHK(sdis_device_create - (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK); + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(sdis_device_create(NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev)); /* Create the fluid medium */ fluid_shader.temperature = fluid_get_temperature; fluid_shader.calorific_capacity = dummy_medium_getter; fluid_shader.volumic_mass = dummy_medium_getter; - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); fluid_param->temperature = Tf1; - CHK(sdis_fluid_create(dev, &fluid_shader, data, &fluid1) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, &fluid1)); + OK(sdis_data_ref_put(data)); - CHK(sdis_data_create - (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct fluid), ALIGNOF(struct fluid), NULL, &data)); fluid_param = sdis_data_get(data); fluid_param->temperature = Tf2; - CHK(sdis_fluid_create(dev, &fluid_shader, data, &fluid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_fluid_create(dev, &fluid_shader, data, &fluid2)); + OK(sdis_data_ref_put(data)); /* Setup the solid shader */ solid_shader.calorific_capacity = solid_get_calorific_capacity; @@ -258,8 +258,8 @@ main(int argc, char** argv) solid_shader.volumic_power = solid_get_volumic_power; /* Create the solid medium */ - CHK(sdis_data_create - (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data) == RES_OK); + OK(sdis_data_create + (dev, sizeof(struct solid), ALIGNOF(struct solid), NULL, &data)); solid_param = sdis_data_get(data); solid_param->cp = 500000; solid_param->rho = 1000; @@ -267,47 +267,47 @@ main(int argc, char** argv) solid_param->delta = DELTA; solid_param->volumic_power = Power; solid_param->temperature = -1; - CHK(sdis_solid_create(dev, &solid_shader, data, &solid) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_solid_create(dev, &solid_shader, data, &solid)); + OK(sdis_data_ref_put(data)); /* Setup the interface shader */ interf_shader.convection_coef = interface_get_convection_coef; interf_shader.front.temperature = interface_get_temperature; /* Create the adiabatic interface */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = 0; interf_param->temperature = -1; - CHK(sdis_interface_create(dev, solid, fluid1, &interf_shader, data, - &interf_adiabatic) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid, fluid1, &interf_shader, data, + &interf_adiabatic)); + OK(sdis_data_ref_put(data)); /* Create the solid fluid1 interface */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = H1; interf_param->temperature = -1; - CHK(sdis_interface_create(dev, solid, fluid1, &interf_shader, data, - &interf_solid_fluid1) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid, fluid1, &interf_shader, data, + &interf_solid_fluid1)); + OK(sdis_data_ref_put(data)); /* Create the solid fluid2 interface */ - CHK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), - NULL, &data) == RES_OK); + OK(sdis_data_create (dev, sizeof(struct interf), ALIGNOF(struct interf), + NULL, &data)); interf_param = sdis_data_get(data); interf_param->h = H2; interf_param->temperature = -1; - CHK(sdis_interface_create(dev, solid, fluid2, &interf_shader, data, - &interf_solid_fluid2) == RES_OK); - CHK(sdis_data_ref_put(data) == RES_OK); + OK(sdis_interface_create(dev, solid, fluid2, &interf_shader, data, + &interf_solid_fluid2)); + OK(sdis_data_ref_put(data)); /* Release the media */ - CHK(sdis_medium_ref_put(fluid1) == RES_OK); - CHK(sdis_medium_ref_put(fluid2) == RES_OK); - CHK(sdis_medium_ref_put(solid) == RES_OK); + OK(sdis_medium_ref_put(fluid1)); + OK(sdis_medium_ref_put(fluid2)); + OK(sdis_medium_ref_put(solid)); /* Map the interfaces to their square segments */ interfaces[0] = interf_adiabatic; @@ -321,13 +321,13 @@ main(int argc, char** argv) #endif /* Create the scene */ - CHK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, - nvertices, get_position, interfaces, &scn) == RES_OK); + OK(sdis_scene_2d_create(dev, nsegments, get_indices, get_interface, + nvertices, get_position, interfaces, &scn)); /* Release the interfaces */ - CHK(sdis_interface_ref_put(interf_adiabatic) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid_fluid1) == RES_OK); - CHK(sdis_interface_ref_put(interf_solid_fluid2) == RES_OK); + OK(sdis_interface_ref_put(interf_adiabatic)); + OK(sdis_interface_ref_put(interf_solid_fluid1)); + OK(sdis_interface_ref_put(interf_solid_fluid2)); pos[0] = 0; pos[1] = 0.25; @@ -348,20 +348,20 @@ main(int argc, char** argv) Tref = T2 + (T1-T2)/L * (pos[1] + vertices[3]); #endif - CHK(sdis_solve_probe(scn, N, pos, INF, 1.f, -1, 0, &estimator) == RES_OK); - CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK); - CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK); - CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK); + OK(sdis_solve_probe(scn, N, pos, time_range, 1.f, -1, 0, &estimator)); + OK(sdis_estimator_get_temperature(estimator, &T)); + OK(sdis_estimator_get_realisation_count(estimator, &nreals)); + OK(sdis_estimator_get_failure_count(estimator, &nfails)); printf("Temperature at (%g %g) = %g ~ %g +/- %g [%g %g]\n", SPLIT2(pos), Tref, T.E, T.SE, T.E-3*T.SE, T.E+3*T.SE); printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N); - CHK(sdis_estimator_ref_put(estimator) == RES_OK); + OK(sdis_estimator_ref_put(estimator)); CHK(nfails + nreals == N); CHK(nfails < N/1000); CHK(eq_eps(T.E, Tref, T.SE*3)); - CHK(sdis_scene_ref_put(scn) == RES_OK); - CHK(sdis_device_ref_put(dev) == RES_OK); + OK(sdis_scene_ref_put(scn)); + OK(sdis_device_ref_put(dev)); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator);