schiff

Estimate the radiative properties of soft particless
git clone git://git.meso-star.com/schiff.git
Log | Files | Refs | README | LICENSE

schiff_args.h.in (2665B)


      1 /* Copyright (C) 2015, 2016 CNRS
      2  * Copyright (C) 2019 |Meso|Star>
      3  *
      4  * This program is free software: you can redistribute it and/or modify
      5  * it under the terms of the GNU General Public License as published by
      6  * the Free Software Foundation, either version 3 of the License, or
      7  * (at your option) any later version.
      8  *
      9  * This program is distributed in the hope that it will be useful,
     10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     12  * GNU General Public License for more details.
     13  *
     14  * You should have received a copy of the GNU General Public License
     15  * along with this program. If not, see <http://www.gnu.org/licenses/>. */
     16 
     17 #ifndef SCHIFF_ARGS_H
     18 #define SCHIFF_ARGS_H
     19 
     20 #include <rsys/rsys.h>
     21 #include <star/sschiff.h>
     22 
     23 struct schiff_geometry;
     24 struct schiff_optical_properties;
     25 
     26 struct schiff_args {
     27   const char* output_filename; /* File in which output data are stored */
     28   struct schiff_optical_properties* properties; /* List of properties */
     29   double* wavelengths; /* List of wavelengths to integrate */
     30 
     31   double characteristic_length; /* Characteristic length of the soft particles */
     32   int discard_large_angles; /* Avoid analytic model for large angles */
     33 
     34   /* List of parsed geometry distribution parameters and its associated random
     35    * variate */
     36   struct schiff_geometry* geoms;
     37   struct ssp_ranst_discrete* ran_geoms;
     38 
     39   unsigned ngeoms_dump; /* # sampled geometries to dump */
     40   unsigned nrealisations; /* # realisation */
     41   unsigned ninsamps; /* Number of inner samples per realisations */
     42   unsigned nangles; /* Number of scattering angles */
     43   unsigned nangles_inv; /* Number of angles in the the inverse phase function */
     44 
     45   unsigned nthreads; /* Hint on the number of thread to use */
     46 };
     47 
     48 static const struct schiff_args SCHIFF_ARGS_NULL = {
     49   NULL, /* Output filename */
     50   NULL, /* List of optical properties */
     51   NULL, /* List of wavelength to integrate */
     52   -1.0, /* Caracteristic length */
     53   0, /* Discard large angles */
     54   NULL, /* List of Schiff geometries */
     55   NULL, /* Schiff geometry random variates */
     56   0, /* # Dumped geometries */
     57   @SCHIFF_ARGS_DEFAULT_NREALISATIONS@, /* #Sampled geometries */
     58   @SCHIFF_ARGS_DEFAULT_NINSAMPLES@, /* #inner samples */
     59   @SCHIFF_ARGS_DEFAULT_NANGLES@, /* # Scattering angles */
     60   @SCHIFF_ARGS_DEFAULT_NANGLES_INV@, /* # angles in the inv cumulative phase function */
     61   SSCHIFF_NTHREADS_DEFAULT
     62 };
     63 
     64 extern LOCAL_SYM res_T
     65 schiff_args_init
     66   (struct schiff_args* args,
     67    const int argc,
     68    char** argv);
     69 
     70 extern LOCAL_SYM void
     71 schiff_args_release
     72   (struct schiff_args* args);
     73 
     74 #endif /* SCHIFF_ARGS_H */
     75