stardis

Perform coupled heat transfer calculations
git clone git://git.meso-star.fr/stardis.git
Log | Files | Refs | README | LICENSE

commit fd8791d4293cb259b045f101581e41e2d6969231
parent 643b0ea5c0a25c55c5a69b55aeb096d29cab7530
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Tue, 26 Mar 2019 17:59:12 +0100

Fix possible use of a wrong medium id

Diffstat:
Msrc/stardis-compute.c | 13+++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/stardis-compute.c b/src/stardis-compute.c @@ -891,6 +891,7 @@ stardis_compute(struct stardis* stardis, enum stardis_mode mode) /* create new interface and register */ struct sdis_interface_shader interface_shader = SDIS_INTERFACE_SHADER_NULL; struct intface* interface_props = NULL; + unsigned id; int front_defined = (fd != UINT_MAX); int back_defined = (bd != UINT_MAX); int connect_defined = (cd != UINT_MAX); @@ -904,12 +905,14 @@ stardis_compute(struct stardis* stardis, enum stardis_mode mode) if (front_defined) { switch (stardis->descriptions[fd].type) { case DESC_MAT_SOLID: + id = stardis->descriptions[fd].d.solid.solid_id; solid_count++; - front_med = media[fd]; + front_med = media[id]; break; case DESC_MAT_FLUID: fluid_count++; - front_med = media[fd]; + id = stardis->descriptions[fd].d.fluid.fluid_id; + front_med = media[id]; fluid_side_shader = &interface_shader.front; break; default: FATAL("Invalid type.\n"); @@ -918,12 +921,14 @@ stardis_compute(struct stardis* stardis, enum stardis_mode mode) if (back_defined) { switch (stardis->descriptions[bd].type) { case DESC_MAT_SOLID: + id = stardis->descriptions[bd].d.solid.solid_id; solid_count++; - back_med = media[bd]; + back_med = media[id]; break; case DESC_MAT_FLUID: fluid_count++; - back_med = media[bd]; + id = stardis->descriptions[bd].d.fluid.fluid_id; + back_med = media[id]; fluid_side_shader = &interface_shader.back; break; default: FATAL("Invalid type.\n");