rnatm

Load and structure data describing an atmosphere
git clone git://git.meso-star.fr/rnatm.git
Log | Files | Refs | README | LICENSE

commit 24325de981241a53d0d3748f6141a0a9c1202cbb
parent 2022a9e83e5ae483d286bd2711fc566a8c311dc1
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Mon, 29 Aug 2022 18:20:08 +0200

Add octree offload support to test_rnatm tool

Diffstat:
Msrc/test_rnatm.c | 17++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/test_rnatm.c b/src/test_rnatm.c @@ -82,6 +82,8 @@ print_help(const char* cmd) printf( " -N precompute_normals the tetrahedra normals\n"); printf( +" -o file offload octrees to file\n"); + printf( " -s nu0,nu1 spectral range to consider (in cm^-1).\n" " Default is visible spectrum, i.e [%g, %g] cm^1\n", ARGS_DEFAULT.rnatm.spectral_range[0], @@ -309,6 +311,7 @@ args_release(struct args* args) if(args->rnatm.gas.sck_filename) free(args->rnatm.gas.sck_filename); if(args->rnatm.gas.temperatures_filename) free(args->rnatm.gas.temperatures_filename); + if(args->rnatm.octrees_storage) CHK(fclose(args->rnatm.octrees_storage) == 0); FOR_EACH(i, 0, args->rnatm.naerosols) { struct rnatm_aerosol_args* aerosol = args->rnatm.aerosols + i; @@ -324,6 +327,7 @@ args_release(struct args* args) static res_T args_init(struct args* args, int argc, char** argv) { + const char* storage_filename = NULL; size_t i = 0; res_T res = RES_OK; int opt; @@ -331,7 +335,7 @@ args_init(struct args* args, int argc, char** argv) *args = ARGS_DEFAULT; - while((opt = getopt(argc, argv, "a:d:g:hNs:T:t:V:v")) != -1) { + while((opt = getopt(argc, argv, "a:d:g:hNo:s:T:t:V:v")) != -1) { switch(opt) { case 'a': sa_add(args->rnatm.aerosols, 1); @@ -349,6 +353,7 @@ args_init(struct args* args, int argc, char** argv) args->quit = 1; goto exit; case 'N': args->rnatm.precompute_normals = 1; break; + case 'o': storage_filename = optarg; break; case 's': res = parse_spectral_range(args, optarg); break; @@ -376,6 +381,16 @@ args_init(struct args* args, int argc, char** argv) } } + if(storage_filename) { + args->rnatm.octrees_storage = fopen(storage_filename, "w+"); + if(!args->rnatm.octrees_storage) { + fprintf(stderr, "Unable to open octree storage file %s\n", + storage_filename); + res = RES_IO_ERR; + goto error; + } + } + /* Check the required options */ if(!args->rnatm.gas.smsh_filename || !args->rnatm.gas.sck_filename