stardis-solver

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

commit 53a459adf69d545f049cf99e98fbe351c5f111be
parent d6f2e64f78e01381df6241e70594cabe69bee1d4
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Thu, 23 May 2019 10:19:40 +0200

Add getters on green result

Diffstat:
Msrc/sdis.h | 12++++++++++++
Msrc/sdis_green.c | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 66 insertions(+), 0 deletions(-)

diff --git a/src/sdis.h b/src/sdis.h @@ -805,6 +805,18 @@ sdis_green_path_get_limit_point (struct sdis_green_path* path, struct sdis_point* pt); +/* Retrieve the number of "power terms" associated to a path. */ +SDIS_API res_T +sdis_green_function_get_power_terms_count + (const struct sdis_green_path* path, + size_t* nterms); + +/* Retrieve the number of "flux terms" associated to a path. */ +SDIS_API res_T +sdis_green_function_get_flux_terms_count + (const struct sdis_green_path* path, + size_t* nterms); + /* Iterate over all "power terms" associated to the path. Multiply each term * by the power of their associated medium, that is assumed to be constant in * time and space, gives the medium power registered along the path. */ diff --git a/src/sdis_green.c b/src/sdis_green.c @@ -599,6 +599,60 @@ error: } res_T +sdis_green_function_get_power_terms_count + (const struct sdis_green_path* path_handle, + size_t* nterms) +{ + const struct green_path* path = NULL; + struct sdis_green_function* green = NULL; + res_T res = RES_OK; + + if(!path_handle || !nterms) { + res = RES_BAD_ARG; + goto error; + } + + green = path_handle->green__; (void)green; + ASSERT(path_handle->id__ < darray_green_path_size_get(&green->paths)); + + path = darray_green_path_cdata_get(&green->paths) + path_handle->id__; + + *nterms = darray_power_term_size_get(&path->power_terms); + +exit: + return res; +error: + goto exit; +} + +res_T +sdis_green_function_get_flux_terms_count + (const struct sdis_green_path* path_handle, + size_t* nterms) +{ + const struct green_path* path = NULL; + struct sdis_green_function* green = NULL; + res_T res = RES_OK; + + if(!path_handle || !nterms) { + res = RES_BAD_ARG; + goto error; + } + + green = path_handle->green__; (void)green; + ASSERT(path_handle->id__ < darray_green_path_size_get(&green->paths)); + + path = darray_green_path_cdata_get(&green->paths) + path_handle->id__; + + *nterms = darray_flux_term_size_get(&path->flux_terms); + +exit: + return res; +error: + goto exit; +} + +res_T sdis_green_path_for_each_power_term (struct sdis_green_path* path_handle, sdis_process_medium_power_term_T func,