rnatm

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

commit 00a6a570df5a6e9bd235c17ae4bda0dd17f30051
parent e569bd6377bd7a98fb6d3917fcf3a6c5678074e6
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Fri,  5 May 2023 09:43:13 +0200

Merge branch 'release_0.0.1'

Diffstat:
MREADME.md | 20+++++++++++++++++++-
Mcmake/CMakeLists.txt | 8+++++---
Mdoc/rngt.5.scd | 4+++-
Mdoc/rnpfi.5.scd | 4+++-
Msrc/rnatm.c | 4+++-
Msrc/rnatm.h | 4+++-
Msrc/rnatm_c.h | 4+++-
Msrc/rnatm_log.c | 4+++-
Msrc/rnatm_log.h | 4+++-
Msrc/rnatm_mesh.c | 4+++-
Msrc/rnatm_octree.c | 4+++-
Msrc/rnatm_octrees_storage.c | 4+++-
Msrc/rnatm_octrees_storage.h | 4+++-
Msrc/rnatm_properties.c | 64++++++++++++++++++++++++++++++++++++----------------------------
Msrc/rnatm_radcoef.c | 4+++-
Msrc/rnatm_voxel.h | 24++++++++++++++++--------
Msrc/rnatm_voxel_partition.c | 4+++-
Msrc/rnatm_voxel_partition.h | 4+++-
Msrc/rnatm_write_vtk.c | 4+++-
Msrc/test_rnatm.c | 4+++-
20 files changed, 124 insertions(+), 56 deletions(-)

diff --git a/README.md b/README.md @@ -38,14 +38,32 @@ resulting project can be edited, built, tested and installed as any CMake project. Refer to the [CMake documentation](https://cmake.org/documentation) for further informations on CMake. +## Release notes + +### Version 0.0.1 + +Fix several bugs when volumetric meshes of the components are not identical: + +- Fix the `rnatm_sample_component` function. The cumulative was + calculated assuming that all components are either present or absent at the + queried position. Thus, the accumulation was only correct when the volumetric + meshes were the same for all components. +- Fix the calculation of the minimum radiative coefficient of a voxel in the + octree. It was simply miscalculated and its value might not be the minimum. +- Fix the accumulation of radiative coefficients in the voxels of the octree. + When the volumetric meshes were not the same for all components, some voxels + could be "emptied" during the accumulation. + ## Copyright notice Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique +Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris Copyright (C) 2022, 2023 [|Méso|Star>](https://www.meso-star.com) (<contact@meso-star.com>) +Copyright (C) 2022, 2023 Observatoire de Paris Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin -Copyright (C) 2022, 2023 Université Paul Sabatier (<contact@laplace.univ-tlse.fr>) +Copyright (C) 2022, 2023 Université Paul Sabatier ## License diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -1,9 +1,11 @@ # Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique +# Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace # Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris -# Copyright (C) 2022, 2023 |Meso|Star> (contact@meso-star.com) +# Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) +# Copyright (C) 2022, 2023 Observatoire de Paris # Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne # Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin -# Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) +# Copyright (C) 2022, 2023 Université Paul Sabatier # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -62,7 +64,7 @@ include_directories( ################################################################################ set(VERSION_MAJOR 0) set(VERSION_MINOR 0) -set(VERSION_PATCH 0) +set(VERSION_PATCH 1) set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}) set(RNATM_FILES_SRC diff --git a/doc/rngt.5.scd b/doc/rngt.5.scd @@ -1,11 +1,13 @@ rngt(5) ; Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique +; Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace ; Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris ; Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) +; Copyright (C) 2022, 2023 Observatoire de Paris ; Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne ; Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin -; Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) +; Copyright (C) 2022, 2023 Université Paul Sabatier ; ; This program is free software: you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by diff --git a/doc/rnpfi.5.scd b/doc/rnpfi.5.scd @@ -1,11 +1,13 @@ rnpfi(5) ; Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique +; Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace ; Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris ; Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) +; Copyright (C) 2022, 2023 Observatoire de Paris ; Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne ; Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin -; Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) +; Copyright (C) 2022, 2023 Université Paul Sabatier ; ; This program is free software: you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by diff --git a/src/rnatm.c b/src/rnatm.c @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm.h b/src/rnatm.h @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm_c.h b/src/rnatm_c.h @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm_log.c b/src/rnatm_log.c @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm_log.h b/src/rnatm_log.h @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm_mesh.c b/src/rnatm_mesh.c @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm_octree.c b/src/rnatm_octree.c @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm_octrees_storage.c b/src/rnatm_octrees_storage.c @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm_octrees_storage.h b/src/rnatm_octrees_storage.h @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm_properties.c b/src/rnatm_properties.c @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -992,19 +994,18 @@ compute_unnormalized_cumulative_radcoef const size_t iband, const size_t iquad, float cumulative[RNATM_MAX_COMPONENTS_COUNT], - size_t* cumulative_sz, /* For debug */ const double k_min, const double k_max) { struct rnatm_cell_get_radcoef_args cell_args = RNATM_CELL_GET_RADCOEF_ARGS_NULL; size_t cpnt = RNATM_GAS; - size_t naerosols = 0; size_t icumul = 0; + size_t naerosols = 0; float k = 0; res_T res = RES_OK; ASSERT(atm && cells && (unsigned)radcoef < RNATM_RADCOEFS_COUNT__); - ASSERT(cumulative && cumulative_sz); + ASSERT(cumulative); (void)k_min; naerosols = darray_aerosol_size_get(&atm->aerosols); @@ -1017,26 +1018,26 @@ compute_unnormalized_cumulative_radcoef cell_args.k_max = k_max; /* For Debug */ do { - double per_cell_k; cell_args.cell = cells[cpnt+1]; - /* This component does not exist here */ - if(SUVM_PRIMITIVE_NONE(&cell_args.cell.prim)) continue; + /* Test if the component exists here */ + if(!SUVM_PRIMITIVE_NONE(&cell_args.cell.prim)) { + double per_cell_k; - /* Add the component's contribution to the radiative coefficient */ - res = rnatm_cell_get_radcoef(atm, &cell_args, &per_cell_k); - if(res != RES_OK) goto error; + /* Add the component's contribution to the radiative coefficient */ + res = rnatm_cell_get_radcoef(atm, &cell_args, &per_cell_k); + if(res != RES_OK) goto error; + k += (float)per_cell_k; + } - k += (float)per_cell_k; + /* Update the cumulative */ cumulative[icumul] = k; ++icumul; - } while(++cpnt < naerosols); - *cumulative_sz = icumul; - ASSERT(!icumul || (float)k_min <= cumulative[icumul-1]); - ASSERT(!icumul || (float)k_max >= cumulative[icumul-1]); + ASSERT(cumulative[icumul-1] == 0 || (float)k_min <= cumulative[icumul-1]); + ASSERT(cumulative[icumul-1] == 0 || (float)k_max >= cumulative[icumul-1]); exit: return res; @@ -1054,7 +1055,7 @@ rnatm_get_radcoef double* out_k) { float cumul[RNATM_MAX_COMPONENTS_COUNT]; - size_t cumul_sz; + size_t ncpnts; double k = 0; res_T res = RES_OK; @@ -1062,18 +1063,20 @@ rnatm_get_radcoef res = check_rnatm_get_radcoef_args(atm, args); if(res != RES_OK) goto error; + ncpnts = 1/*gas*/ + darray_aerosol_size_get(&atm->aerosols); + ASSERT(ncpnts <= RNATM_MAX_COMPONENTS_COUNT); + /* Calculate the cumulative (unnormalized) of radiative coefficients. Its last * entry is the sum of the radiative coefficients of each component, which is * the atmospheric radiative coefficient to be returned. */ res = compute_unnormalized_cumulative_radcoef(atm, args->radcoef, - args->cells, args->iband, args->iquad, cumul, &cumul_sz, args->k_min, - args->k_max); + args->cells, args->iband, args->iquad, cumul, args->k_min, args->k_max); if(res != RES_OK) goto error; - if(cumul_sz == 0) { + if(cumul[ncpnts-1] == 0) { k = 0; /* No atmospheric data */ } else { - k = cumul[cumul_sz-1]; + k = cumul[ncpnts-1]; ASSERT(args->k_min <= k && k <= args->k_max); } @@ -1092,7 +1095,7 @@ rnatm_sample_component { float cumul[RNATM_MAX_COMPONENTS_COUNT]; float norm; - size_t cumul_sz; + size_t ncpnts; size_t i; res_T res = RES_OK; @@ -1100,28 +1103,33 @@ rnatm_sample_component res = check_rnatm_sample_component_args(atm, args); if(res != RES_OK) goto error; + ncpnts = 1/*gas*/ + darray_aerosol_size_get(&atm->aerosols); + ASSERT(ncpnts <= RNATM_MAX_COMPONENTS_COUNT); + /* Discard the calculation of the cumulative if there is only gas */ - if(!darray_aerosol_size_get(&atm->aerosols)) { + if(ncpnts == 1) { + ASSERT(!SUVM_PRIMITIVE_NONE(&args->cells[0].prim)); *cpnt = RNATM_GAS; goto exit; } res = compute_unnormalized_cumulative_radcoef(atm, args->radcoef, args->cells, - args->iband, args->iquad, cumul, &cumul_sz, -DBL_MAX, DBL_MAX); + args->iband, args->iquad, cumul, -DBL_MAX, DBL_MAX); if(res != RES_OK) goto error; - ASSERT(cumul_sz >= 1); + ASSERT(cumul[ncpnts-1] > 0); /* Normalize the cumulative */ - norm = cumul[cumul_sz-1]; - FOR_EACH(i, 0, cumul_sz) cumul[i] /= norm; - cumul[cumul_sz-1] = 1.f; /* Handle precision issues */ + norm = cumul[ncpnts-1]; + FOR_EACH(i, 0, ncpnts) cumul[i] /= norm; + cumul[ncpnts-1] = 1.f; /* Handle precision issues */ /* Use a simple linear search to sample the component since there are * usually very few aerosols to consider */ - FOR_EACH(i, 0, cumul_sz) if(args->r < cumul[i]) break; + FOR_EACH(i, 0, ncpnts) if(args->r < cumul[i]) break; *cpnt = i-1; ASSERT(*cpnt == RNATM_GAS || *cpnt < darray_aerosol_size_get(&atm->aerosols)); + ASSERT(!SUVM_PRIMITIVE_NONE(&args->cells[i].prim)); exit: return res; diff --git a/src/rnatm_radcoef.c b/src/rnatm_radcoef.c @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm_voxel.h b/src/rnatm_voxel.h @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -61,13 +63,19 @@ voxel_clear(float* voxel) static FINLINE void voxel_accum(float* dst, const float* src) { - #define ACCUM(K, Op) \ - dst[voxel_idata((K), (Op))] += src[voxel_idata((K), (Op))] - ACCUM(RNATM_RADCOEF_Ka, RNATM_SVX_OP_MIN); - ACCUM(RNATM_RADCOEF_Ka, RNATM_SVX_OP_MAX); - ACCUM(RNATM_RADCOEF_Ks, RNATM_SVX_OP_MIN); - ACCUM(RNATM_RADCOEF_Ks, RNATM_SVX_OP_MAX); - #undef ACCUM + const size_t ka_min = voxel_idata(RNATM_RADCOEF_Ka, RNATM_SVX_OP_MIN); + const size_t ka_max = voxel_idata(RNATM_RADCOEF_Ka, RNATM_SVX_OP_MAX); + const size_t ks_min = voxel_idata(RNATM_RADCOEF_Ks, RNATM_SVX_OP_MIN); + const size_t ks_max = voxel_idata(RNATM_RADCOEF_Ks, RNATM_SVX_OP_MAX); + ASSERT(dst && src); + + if(src[ka_max] < src[ka_min]) return; /* Discard empty voxel */ + ASSERT(src[ks_max] >= src[ks_min]); + + dst[ka_max] += src[ka_max]; + dst[ks_max] += src[ks_max]; + dst[ka_min] = MMIN(dst[ka_min], src[ka_min]); + dst[ks_min] = MMIN(dst[ks_min], src[ks_min]); } #endif /* RNATM_VOXEL_H */ diff --git a/src/rnatm_voxel_partition.c b/src/rnatm_voxel_partition.c @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm_voxel_partition.h b/src/rnatm_voxel_partition.h @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/rnatm_write_vtk.c b/src/rnatm_write_vtk.c @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_rnatm.c b/src/test_rnatm.c @@ -1,9 +1,11 @@ /* Copyright (C) 2022, 2023 Centre National de la Recherche Scientifique + * Copyright (C) 2022, 2023 Institut Pierre-Simon Laplace * Copyright (C) 2022, 2023 Institut de Physique du Globe de Paris * Copyright (C) 2022, 2023 |Méso|Star> (contact@meso-star.com) + * Copyright (C) 2022, 2023 Observatoire de Paris * Copyright (C) 2022, 2023 Université de Reims Champagne-Ardenne * Copyright (C) 2022, 2023 Université de Versaille Saint-Quentin - * Copyright (C) 2022, 2023 Université Paul Sabatier (contact@laplace.univ-tlse.fr) + * Copyright (C) 2022, 2023 Université Paul Sabatier * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by