star-line

Structure for accelerating line importance sampling
git clone git://git.meso-star.fr/star-line.git
Log | Files | Refs | README | LICENSE

commit 3b50956e9089d3671aaffdaa19ecb9b6a99208d8
parent f844c376ab4951c7b5e27ac0f57ae9b54df5f1c8
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Tue, 26 Apr 2022 11:02:22 +0200

Add the line_profile as input argument of sln_tree_build

Diffstat:
Msrc/sln.h | 11++++++++++-
Msrc/sln_tree.c | 13+++++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/sln.h b/src/sln.h @@ -49,6 +49,12 @@ struct mem_allocator; struct shtr_lines_list; struct shtr_isotope_metadata; +enum sln_line_profile { + SLN_LINE_PROFILE_VOIGT, + SLN_LINE_PROFILE_LORENTZ, + SLN_LINE_PROFILES_COUNT__ +}; + struct sln_device_create_args { struct logger* logger; /* May be NULL <=> default logger */ struct mem_allocator* allocator; /* NULL <=> use default allocator */ @@ -95,9 +101,12 @@ struct sln_tree_create_args { double temperature; /* In K */ size_t max_nlines_per_leaf; + + enum sln_line_profile line_profile; }; #define SLN_TREE_CREATE_ARGS_DEFAULT__ \ - {NULL, NULL, {SLN_MOLECULE_NULL__}, 0, {0, DBL_MAX}, 0, 0, 64} + {NULL, NULL, {SLN_MOLECULE_NULL__}, 0, {0, DBL_MAX}, 0, 0, 64, \ + SLN_LINE_PROFILE_LORENTZ} static const struct sln_tree_create_args SLN_TREE_CREATE_ARGS_DEFAULT = SLN_TREE_CREATE_ARGS_DEFAULT__; diff --git a/src/sln_tree.c b/src/sln_tree.c @@ -164,6 +164,19 @@ check_sln_tree_create_args log_err(sln, "%s: invalid temperature %g.\n", func_name, args->temperature); return RES_BAD_ARG; } + + if(args->max_nlines_per_leaf == 0) { + log_err(sln, "%s: invalid maximum number of lines per leaf %lu.\n", + func_name, (unsigned long)args->max_nlines_per_leaf); + return RES_BAD_ARG; + } + + if((unsigned)args->line_profile >= SLN_LINE_PROFILES_COUNT__) { + log_err(sln, "%s: invalid line profile %d.\n", + func_name, args->line_profile); + return RES_BAD_ARG; + } + return RES_OK; }