htrdr

Solving radiative transfer in heterogeneous media
git clone git://git.meso-star.fr/htrdr.git
Log | Files | Refs | README | LICENSE

commit b9a4cd492c6d2e9a99c692c4063630559e3bf386
parent b1c2d4d291175086a73361d53030b8b2b8b40c76
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Wed, 26 Oct 2022 12:27:15 +0200

htrdr-planeto: plug command creation into the main function

Diffstat:
Msrc/planeto/htrdr_planeto_main.c | 18++++++++++++++++++
1 file changed, 18 insertions(+), 0 deletions(-)

diff --git a/src/planeto/htrdr_planeto_main.c b/src/planeto/htrdr_planeto_main.c @@ -26,7 +26,10 @@ int htrdr_planeto_main(int argc, char** argv) { char cmd_name[] = "htrdr-planeto"; + struct htrdr_args htrdr_args = HTRDR_ARGS_DEFAULT; struct htrdr_planeto_args cmd_args = HTRDR_PLANETO_ARGS_DEFAULT; + struct htrdr* htrdr = NULL; + struct htrdr_planeto* cmd = NULL; const size_t memsz_begin = mem_allocated_size(); size_t memsz_end; int is_mpi_init = 0; @@ -44,9 +47,24 @@ htrdr_planeto_main(int argc, char** argv) if(res != RES_OK) goto error; if(cmd_args.quit) goto exit; + htrdr_args.nthreads = cmd_args.nthreads; + htrdr_args.verbose = cmd_args.verbose; + res = htrdr_create(&mem_default_allocator, &htrdr_args, &htrdr); + if(res != RES_OK) goto error; + + if(cmd_args.output_type == HTRDR_PLANETO_ARGS_OUTPUT_OCTREES + && htrdr_get_mpi_rank(htrdr) != 0) { + goto exit; /* Nothing to do except for the master process */ + } + + res = htrdr_planeto_create(htrdr, &cmd_args, &cmd); + if(res != RES_OK) goto error; + exit: htrdr_planeto_args_release(&cmd_args); if(is_mpi_init) htrdr_mpi_finalize(); + if(htrdr) htrdr_ref_put(htrdr); + if(cmd) htrdr_planeto_ref_put(cmd); /* Check memory leaks */ memsz_end = mem_allocated_size();