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:
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, ¶m->name) == RES_OK);
+ OK(sdis_data_create(dev, strlen(str)+1, ALIGNOF(char), NULL, ¶m->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);