stardis-solver

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

commit ef35ef9c486e8bfe3a7b2d46d48153264f032a1d
parent 98097d811e42e6e1e0cbe21a06fe9c2baddd1822
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Wed, 30 May 2018 11:10:09 +0200

Remove the delta_boundary solid parameter

Thanks to the new 2D reinjection pattern, this numerical parameter is no
more used by the solver and is thus removed from the API.

Diffstat:
Msrc/sdis.h | 3+--
Msrc/sdis_medium.c | 1-
Msrc/sdis_medium_c.h | 8--------
Msrc/sdis_solve_Xd.h | 9++++++---
Msrc/test_sdis_conducto_radiative.c | 10----------
Msrc/test_sdis_conducto_radiative_2d.c | 10----------
Msrc/test_sdis_flux.c | 10----------
Msrc/test_sdis_medium.c | 4----
Msrc/test_sdis_solve_camera.c | 9---------
Msrc/test_sdis_solve_probe.c | 9---------
Msrc/test_sdis_solve_probe2.c | 10----------
Msrc/test_sdis_solve_probe2_2d.c | 10----------
Msrc/test_sdis_solve_probe3.c | 10----------
Msrc/test_sdis_solve_probe3_2d.c | 10----------
Msrc/test_sdis_solve_probe_2d.c | 9---------
Msrc/test_sdis_solve_probe_boundary.c | 10----------
Msrc/test_sdis_utils.h | 1-
Msrc/test_sdis_volumic_power.c | 10----------
Msrc/test_sdis_volumic_power2_2d.c | 37++++---------------------------------
Msrc/test_sdis_volumic_power3_2d.c | 10----------
Msrc/test_sdis_volumic_power4_2d.c | 9---------
21 files changed, 11 insertions(+), 188 deletions(-)

diff --git a/src/sdis.h b/src/sdis.h @@ -138,7 +138,6 @@ struct sdis_solid_shader { sdis_medium_getter_T thermal_conductivity; /* In W.m^-1.K^-1 */ sdis_medium_getter_T volumic_mass; /* In kg.m^-3 */ sdis_medium_getter_T delta_solid; - sdis_medium_getter_T delta_boundary; /* May be NULL if there is no volumic power. One can also return * SDIS_VOLUMIC_POWER_NONE to define that there is no volumic power at the @@ -149,7 +148,7 @@ struct sdis_solid_shader { * unknown for the submitted random walk vertex. */ sdis_medium_getter_T temperature; }; -#define SDIS_SOLID_SHADER_NULL__ {NULL, NULL, NULL, NULL, NULL, NULL, NULL} +#define SDIS_SOLID_SHADER_NULL__ {NULL, NULL, NULL, NULL, NULL, NULL} static const struct sdis_solid_shader SDIS_SOLID_SHADER_NULL = SDIS_SOLID_SHADER_NULL__; diff --git a/src/sdis_medium.c b/src/sdis_medium.c @@ -39,7 +39,6 @@ check_solid_shader(const struct sdis_solid_shader* shader) && shader->thermal_conductivity && shader->volumic_mass && shader->delta_solid - && shader->delta_boundary && shader->temperature; } diff --git a/src/sdis_medium_c.h b/src/sdis_medium_c.h @@ -94,14 +94,6 @@ solid_get_delta } static INLINE double -solid_get_delta_boundary - (const struct sdis_medium* mdm, const struct sdis_rwalk_vertex* vtx) -{ - ASSERT(mdm && mdm->type == SDIS_SOLID); - return mdm->shader.solid.delta_boundary(vtx, mdm->data); -} - -static INLINE double solid_get_volumic_power (const struct sdis_medium* mdm, const struct sdis_rwalk_vertex* vtx) { diff --git a/src/sdis_solve_Xd.h b/src/sdis_solve_Xd.h @@ -733,8 +733,10 @@ XD(boundary_temperature) mdm = interface_get_medium(interf, frag.side); if(sdis_medium_get_type(mdm) == SDIS_SOLID) { const double phi = interface_side_get_flux(interf, &frag); - - if(phi != SDIS_FLUX_NONE) { + if(phi != SDIS_FLUX_NONE) { /* FIXME */ +#if 1 + FATAL("Not implemented yet\n"); +#else double lambda = solid_get_thermal_conductivity(mdm, &rwalk->vtx); double delta_b = solid_get_delta_boundary(mdm, &rwalk->vtx); double delta_b_in_meter = delta_b * fp_to_meter; @@ -745,7 +747,7 @@ XD(boundary_temperature) /* Update the temperature */ T->value += phi * delta_b_in_meter / lambda; - /* Ensuure that the normal points toward the solid */ + /* Ensure that the normal points toward the solid */ fX(normalize)(dir, rwalk->hit.normal); if(frag.side == SDIS_BACK) fX(minus)(dir, dir); @@ -763,6 +765,7 @@ XD(boundary_temperature) rwalk->hit_side = SDIS_SIDE_NULL__; rwalk->mdm = mdm; return RES_OK; +#endif } } mdm_front = interface_get_medium(interf, SDIS_FRONT); diff --git a/src/test_sdis_conducto_radiative.c b/src/test_sdis_conducto_radiative.c @@ -168,14 +168,6 @@ solid_get_delta return 1.0/10.0; } -static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - CHK(vtx != NULL); (void)data; - return 2.1/10.0; -} - /******************************************************************************* * Interface ******************************************************************************/ @@ -303,7 +295,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = temperature_unknown; CHK(sdis_solid_create(dev, &solid_shader, data, &solid) == RES_OK); CHK(sdis_data_ref_put(data) == RES_OK); @@ -316,7 +307,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = temperature_unknown; CHK(sdis_solid_create(dev, &solid_shader, data, &solid2) == RES_OK); CHK(sdis_data_ref_put(data) == RES_OK); diff --git a/src/test_sdis_conducto_radiative_2d.c b/src/test_sdis_conducto_radiative_2d.c @@ -149,14 +149,6 @@ solid_get_delta return 1.0/10.0; } -static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - CHK(vtx != NULL); (void)data; - return 2.1/10.0; -} - /******************************************************************************* * Interface ******************************************************************************/ @@ -317,7 +309,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = temperature_unknown; CHK(sdis_solid_create(dev, &solid_shader, data, &solid) == RES_OK); CHK(sdis_data_ref_put(data) == RES_OK); @@ -330,7 +321,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; CHK(sdis_solid_create(dev, &solid_shader, data, &solid2) == RES_OK); CHK(sdis_data_ref_put(data) == RES_OK); diff --git a/src/test_sdis_flux.c b/src/test_sdis_flux.c @@ -150,15 +150,6 @@ solid_get_delta } static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - (void)data; - CHK(vtx != NULL); - return 2.1/20.0; -} - -static double solid_get_temperature (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) { @@ -235,7 +226,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = solid_get_temperature; CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); diff --git a/src/test_sdis_medium.c b/src/test_sdis_medium.c @@ -87,10 +87,6 @@ main(int argc, char** argv) CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_BAD_ARG); solid_shader.delta_solid = DUMMY_SOLID_SHADER.delta_solid; - solid_shader.delta_boundary = NULL; - CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_BAD_ARG); - solid_shader.delta_boundary = DUMMY_SOLID_SHADER.delta_boundary; - solid_shader.temperature = NULL; CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_BAD_ARG); solid_shader.temperature = DUMMY_SOLID_SHADER.temperature; diff --git a/src/test_sdis_solve_camera.c b/src/test_sdis_solve_camera.c @@ -222,14 +222,6 @@ solid_get_delta } static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - CHK(data != NULL && vtx != NULL); - return ((const struct solid*)sdis_data_cget(data))->delta * 2.1; -} - -static double solid_get_temperature (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) { @@ -308,7 +300,6 @@ create_solid 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = solid_get_temperature; /* Create the solid medium */ diff --git a/src/test_sdis_solve_probe.c b/src/test_sdis_solve_probe.c @@ -126,14 +126,6 @@ solid_get_delta } static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - CHK(data != NULL && vtx != NULL); - return ((const struct solid*)sdis_data_cget(data))->delta * 2.1; -} - -static double solid_get_temperature (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) { @@ -230,7 +222,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; 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); diff --git a/src/test_sdis_solve_probe2.c b/src/test_sdis_solve_probe2.c @@ -114,15 +114,6 @@ solid_get_delta return 1.0/20.0; } -static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - (void)data; - CHK(vtx != NULL); - return 2.1/20.0; -} - /******************************************************************************* * Interface ******************************************************************************/ @@ -191,7 +182,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = temperature_unknown; CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); diff --git a/src/test_sdis_solve_probe2_2d.c b/src/test_sdis_solve_probe2_2d.c @@ -111,15 +111,6 @@ solid_get_delta return 1.0/20.0; } -static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - (void)data; - CHK(vtx != NULL); - return 2.1/20.0; -} - /******************************************************************************* * Interface ******************************************************************************/ @@ -188,7 +179,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = temperature_unknown; CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); diff --git a/src/test_sdis_solve_probe3.c b/src/test_sdis_solve_probe3.c @@ -136,15 +136,6 @@ solid_get_delta return 1.0/20.0; } -static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - (void)data; - CHK(vtx != NULL); - return 2.1/20.0; -} - /******************************************************************************* * Interface ******************************************************************************/ @@ -218,7 +209,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = temperature_unknown; CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); diff --git a/src/test_sdis_solve_probe3_2d.c b/src/test_sdis_solve_probe3_2d.c @@ -133,15 +133,6 @@ solid_get_delta return 1.0/20.0; } -static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - (void)data; - CHK(vtx != NULL); - return 2.1/20.0; -} - /******************************************************************************* * Interface ******************************************************************************/ @@ -213,7 +204,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = temperature_unknown; CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); diff --git a/src/test_sdis_solve_probe_2d.c b/src/test_sdis_solve_probe_2d.c @@ -108,14 +108,6 @@ solid_get_delta } static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - (void)vtx, (void)data; - return 2.1/20.0; -} - -static double solid_get_temperature (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) { @@ -170,7 +162,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = solid_get_temperature; CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); diff --git a/src/test_sdis_solve_probe_boundary.c b/src/test_sdis_solve_probe_boundary.c @@ -161,15 +161,6 @@ solid_get_delta } static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - (void)data; - CHK(vtx != NULL); - return 2.1/20.0; -} - -static double solid_get_temperature (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) { @@ -249,7 +240,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = solid_get_temperature; CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); diff --git a/src/test_sdis_utils.h b/src/test_sdis_utils.h @@ -104,7 +104,6 @@ static const struct sdis_solid_shader DUMMY_SOLID_SHADER = { dummy_medium_getter, dummy_medium_getter, dummy_medium_getter, - dummy_medium_getter, dummy_medium_getter }; diff --git a/src/test_sdis_volumic_power.c b/src/test_sdis_volumic_power.c @@ -160,15 +160,6 @@ solid_get_delta } static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - (void)data; - CHK(vtx != NULL); - return 2.1/20.0; -} - -static double solid_get_temperature (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) { @@ -253,7 +244,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = solid_get_temperature; solid_shader.volumic_power = solid_get_volumic_power; CHK(sdis_solid_create(dev, &solid_shader, NULL, &solid) == RES_OK); diff --git a/src/test_sdis_volumic_power2_2d.c b/src/test_sdis_volumic_power2_2d.c @@ -19,37 +19,17 @@ #define N 10000 /* #realisations */ #define Pw 10000 /* Volumic power */ -#define MDb sqrt(2.0) /* Multiplier applied to delta to define delta_boundary */ #define NONE -1 -/* H delta T: expected 286.83 C */ +/* H delta T. Expected temperature 286.83 C */ #define Tboundary1 NONE #define Tboundary2 NONE -/* Db = 2.1*D: 339.091 +/- 2.734920; #failures: 0 - * Db = 0.5*D: 286.182 +/- 2.202150; #failures: 0 - * Db = 0.5*D 100K real: 283.29 +/- 0.688329; #failures: 1 - * Db = 2.1*D wo Pw: 69.12 +/- 0.461998; #failures: 0 - * Db = 0.5*D wo Pw: 69.764 +/- 0.459326; #failures: 0 */ -#define DELTA 0.005 - -/* Dirichlets: expected 246.93 C */ +#define DELTA 0.01 + +/* Dirichlets. Expected temperature 246.93 C */ /*#define Tboundary1 373.15*/ /*#define Tboundary2 273.15*/ -/* Db = 2.1*D: 288.487 +/- 2.17576; #failures: 0 - * Db = 0.5*D: 244.382 +/- 1.71547; #failures: 1 */ /*#define DELTA 0.01*/ -/* Db = 2.1*D: 273.532 +/- 1.98965; #failures: 0 - * Db = 0.5*D: 243.219 +/- 1.70725: #failures: 1 */ -/*#define DELTA 0.005*/ -/* Db = 2.1*D: 263.626 +/- 1.90191; #failures: 0 - * Db = 0.5*D: 242.744 +/- 1.70677; #failures: 1 */ -/*#define DELTA 0.0025*/ -/* Db = 2.1*D: 256.081 +/- 1.8687; #failures: 0 - * Db = 0.5*D: 244.196 +/- 1.71475; # failures: 3 */ -/*#define DELTA 0.00125*/ -/*#define DELTA 0.000625*/ /* 250.615 +/- 1.80813; #failures: 0 */ -/*#define DELTA 0.0003125*/ /* 247.591 +/- 1.71263; #failures: 0 */ -/*#define DELTA 0.00015625*/ /* 249.829 +/- 1.77636; #failures: 2 */ /* * _\ T1 @@ -171,14 +151,6 @@ solid_get_delta } static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - CHK(data != NULL && vtx != NULL); - return ((const struct solid*)sdis_data_cget(data))->delta * MDb; -} - -static double solid_get_temperature (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) { @@ -295,7 +267,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = solid_get_temperature; solid_shader.volumic_power = solid_get_volumic_power; diff --git a/src/test_sdis_volumic_power3_2d.c b/src/test_sdis_volumic_power3_2d.c @@ -28,7 +28,6 @@ #define DELTA 0.01 /* Delta of the middle slab */ #define DELTA1 0.02 /* Delta of the upper slab */ #define DELTA2 0.07 /* Delta of the lower slab */ -#define MDb 1.0 /* Multiplier applied to delta to define delta boundary */ #define L 0.2 /* Size of the middle slab */ #define L1 0.4 /* Size of the upper slab */ #define L2 1.4 /* Size of the lower slab */ @@ -181,14 +180,6 @@ solid_get_delta } static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - CHK(data != NULL && vtx != NULL); - return ((const struct solid*)sdis_data_cget(data))->delta * MDb; -} - -static double solid_get_temperature (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) { @@ -302,7 +293,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = solid_get_temperature; solid_shader.volumic_power = solid_get_volumic_power; diff --git a/src/test_sdis_volumic_power4_2d.c b/src/test_sdis_volumic_power4_2d.c @@ -138,14 +138,6 @@ solid_get_delta } static double -solid_get_delta_boundary - (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) -{ - CHK(data != NULL && vtx != NULL); - return ((const struct solid*)sdis_data_cget(data))->delta * 2.1; -} - -static double solid_get_temperature (const struct sdis_rwalk_vertex* vtx, struct sdis_data* data) { @@ -251,7 +243,6 @@ main(int argc, char** argv) 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.delta_boundary = solid_get_delta_boundary; solid_shader.temperature = solid_get_temperature; solid_shader.volumic_power = solid_get_volumic_power;