htrdr-planets.1.in (27918B)
1 .\" Copyright (C) 2018-2019, 2022-2025 Centre National de la Recherche Scientifique 2 .\" Copyright (C) 2020-2022 Institut Mines Télécom Albi-Carmaux 3 .\" Copyright (C) 2022-2025 Institut Pierre-Simon Laplace 4 .\" Copyright (C) 2022-2025 Institut de Physique du Globe de Paris 5 .\" Copyright (C) 2018-2025 |Méso|Star> (contact@meso-star.com) 6 .\" Copyright (C) 2022-2025 Observatoire de Paris 7 .\" Copyright (C) 2022-2025 Université de Reims Champagne-Ardenne 8 .\" Copyright (C) 2022-2025 Université de Versaille Saint-Quentin 9 .\" Copyright (C) 2018-2019, 2022-2025 Université Paul Sabatier 10 .\" 11 .\" This program is free software: you can redistribute it and/or modify 12 .\" it under the terms of the GNU General Public License as published by 13 .\" the Free Software Foundation, either version 3 of the License, or 14 .\" (at your option) any later version. 15 .\" 16 .\" This program is distributed in the hope that it will be useful, 17 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of 18 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 .\" GNU General Public License for more details. 20 .\" 21 .\" You should have received a copy of the GNU General Public License 22 .\" along with this program. If not, see <http://www.gnu.org/licenses/>. 23 .Dd October 2, 2025 24 .Dt HTRDR-PLANETS 1 25 .Os 26 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 27 .\" Name and Short description 28 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 29 .Sh NAME 30 .Nm htrdr-planets 31 .Nd simulate radiative transfer in 3D planetary atmosphere 32 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 33 .\" Summary of options 34 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 35 .Sh SYNOPSIS 36 .Nm 37 .Op Fl dfhNv 38 .Op Fl a Ar aerosol_opt Ns Op : Ns Ar aerosol_opt No ... 39 .Op Fl b Ar accel_struct_build_opt Ns Op : Ns Ar accel_struct_build_opt No ... 40 .Op Fl C Ar persp_camera_opt Ns Op : Ns Ar persp_camera_opt No ... 41 .Op Fl G Ar ground_opt Ns Op : Ns Ar ground_opt No ... 42 .Op Fl i Ar image_opt Ns Op : Ns Ar image_opt No ... 43 .Op Fl o Ar output 44 .Op Fl P Ar ortho_camera_opt Ns Op : Ns Ar ortho_camera_opt No ... 45 .Op Fl r Ar volrad_budget_opt Ns Op : Ns Ar volrad_budget_opt No ... 46 .Op Fl S Ar source_opt Ns Op : Ns Ar source_opt No ... 47 .Op Fl s Ar spectral_opt Ns Op : Ns Ar spectral_opt No ... 48 .Op Fl t Ar thread_count 49 .Fl g Ar gas_opt Ns Op : Ns Ar gas_opt No ... 50 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 51 .\" Detailed description 52 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 53 .Sh DESCRIPTION 54 .Nm 55 simulates the radiative transfer of a terrestrial planet in the visible 56 or the infrared part of the spectrum. 57 The planet's ground 58 .Pq option Fl G 59 can be any set of triangles with BRDFs and temperatures defined per 60 triangle. 61 The atmosphere is composed of a gas mixture 62 .Pq option Fl g 63 and a potentially empty set of aerosols 64 .Pq option Fl a . 65 Both can have arbitrary tetrahedral meshes with per-node radiative 66 properties. 67 Rayleigh is used as a gas phase function. 68 The temperature of the gas is defined on the mesh nodes. 69 Aerosol phase functions 70 .Pq Henyey and Greenstein or user defined 71 are also defined per node. 72 .Pp 73 .Nm 74 is a renderer that calculates an image 75 .Pq option Fl i 76 for a given observation position 77 .Pq option Fl C . 78 In addition to rendering images, it can also be used to estimate the 79 volumic radiative budget for a set of tetrehedra 80 .Pq option Fl r . 81 Its algorithms are based on Monte Carlo integration, which involves 82 simulating a given number of optical paths for each estimate, taking 83 into account light absorption and scattering phenomena. 84 Thanks to the Monte Carlo, 85 .Nm 86 calculates not only the quantities of interest, but also their 87 uncertainty 88 .Pq standard deviation of the distribution of weights 89 at no extra cost. 90 .Pp 91 .Nm 92 offers three ways to perform spectral integration 93 .Pq option Fl s . 94 By default, it calculates an image for the visible part of the spectrum 95 between 380 and 780 nanometers, for the three components of the CIE 1931 96 XYZ color space which are then recombined to obtain the final color for 97 each pixel. 98 The other two methods are to explicitly define the longwave or shortwave 99 spectral range to be integrated and continuously sample a wavelength in 100 this range. 101 In fact, longwave and shortwave are keywords that mean that the source 102 of radiation is either internal or external to the medium, respectively. 103 In shortwave, only radiance is evaluated and stored in the output image. 104 For longwave rendering, this estimated radiance is then converted to 105 brightness temperature and both are recorded in the image. 106 .Pp 107 In 108 .Nm , 109 the spatial unit 1.0 corresponds to one meter and temperatures are 110 expressed in Kelvin. 111 The estimated radiances are given in W/sr/m^2, except for monochromatic 112 calculations where the calculated spectral radiance is defined in 113 W/sr/m^2/nm. 114 Finally, the estimated volumic radiative budgets is given in W/m^3. 115 .Pp 116 .Nm 117 implements mixed parallelism. 118 On a single computer 119 .Pq that is, a node , 120 it uses shared memory parallelism while it relies on Message Passing 121 Interface (MPI) to parallelize calculations between multiple nodes. 122 .Nm 123 can therefore be launched either directly or via a process 124 launcher such as 125 .Xr mpirun 1 126 to distribute the rendering on several computers. 127 .Pp 128 The options are as follows: 129 .Bl -tag -width Ds 130 .It Fl a Ar aerosol_opt Ns Op : Ns Ar aerosol_opt No ... 131 Define an aerosol. 132 Use this option once per aerosol, and duplicate it as many times as 133 necessary. 134 .Pp 135 The aerosol options are as follows: 136 .Bl -tag -width Ds 137 .It Cm mesh= Ns Ar volume_mesh 138 Aerosol tetrahedral mesh saved in 139 .Xr smsh 5 140 format. 141 .It Cm name= Ns Ar string 142 Name assigned to the aerosol. 143 .It Cm radprop= Ns Ar radiative_properties 144 Radiatve properties of the aerosol saved in 145 .Xr sars 5 146 format. 147 Radiative properties are defined per volumetric mesh node. 148 This file and the tetrahedral mesh 149 .Pq option Cm mesh 150 must therefore be consistent with each other, i.e. the nodes must be 151 listed in the same order. 152 .It Cm phasefn= Ns Ar phase_functions_list 153 List in 154 .Xr rnsl 5 155 format of phase functions to be loaded. 156 Each phase function is saved in 157 .Xr rnsf 5 158 format. 159 The correspondence between these phase functions and the nodes of the 160 volumetric mesh is defined in another file 161 .Pq option Cm phaseids . 162 .It Cm phaseids= Ns Ar per_node_phase_function 163 Path to the 164 .Xr rnpfi 5 165 file that stores the index of the phase function to be used per 166 volumetric mesh node. 167 The list of phase function is defined in another file 168 .Pq option Cm phasefn . 169 Note that this file and the tetrahedral mesh 170 .Pq option Cm mesh 171 must be consistent with each other, i.e. the nodes must be 172 listed in the same order. 173 .El 174 .It Fl b Ar accel_struct_build_opt Ns Op : Ns Ar accel_struct_build_opt No ... 175 Configure the building of the acceleration structures. 176 .Pp 177 The acceleration structures building options are as follows: 178 .Bl -tag -width Ds 179 .It Cm def= Ns Ar definition 180 Advice on the definition of the atmospheric acceleration structures. 181 Default is @HTRDR_PLANETS_ARGS_DEFAULT_GRID_DEFINITION_HINT@. 182 .It Cm nthreads= Ns Ar threads_count 183 Advice on the number of threads to use. 184 This number is different from that defined by the 185 .Fl t 186 option, as the construction of acceleration structures is not based on 187 the same parallelization model as Monte Carlo integration. 188 This construction may not benefit from too many threads, on the 189 contrary. 190 .Pp 191 The default value is 8, i.e. a maximum of 8 threads are used to build 192 acceleration structures. 193 .It Cm proc= Ns Ar processes 194 This option is only used when 195 .Nm 196 is run with multiple processes 197 .Pq see Xr mpirun 1 . 198 It defines the processes that must build the acceleration structures. 199 .Pp 200 The value 201 .Cm all 202 means that all processes build their own set of acceleration structures. 203 This is the de facto configuration when no storage is used 204 .Po 205 i.e. the 206 .Cm storage 207 parameter is not set 208 .Pc . 209 .Pp 210 If acceleration structure storage is defined 211 .Pq Cm storage No parameter , 212 a value of 213 .Cm all 214 should only be used if each process has its own disk space on which its 215 own set of acceleration structures is stored. 216 If processes share a common disk space, the value should be 217 .Cm master . 218 This means that only the main process builds the acceleration 219 structures, which are in fine shared with the other processes by 220 storing the saved acceleration structures on a common disk space. 221 .Pp 222 The default value is 223 .Cm master . 224 .It Cm storage= Ns Ar accel_struct_file 225 File where atmospheric acceleration structures are stored/loaded. 226 .Pp 227 If 228 .Ar accel_struct_file 229 does not exist, it is created and is used to store the built 230 acceleration structures. 231 .Pp 232 If 233 .Ar accel_struct_file 234 exists, acceleration structures are loaded from it rather than built 235 from scratch, resulting in significant acceleration of the preprocessing 236 step. 237 Note that if the data structures stored in 238 .Ar accel_struct_file 239 are not as expected (that is, the input atmospheric data or construction 240 parameters are different), an error is notified and execution is 241 stopped, thus avoiding the use of incorrect acceleration structures. 242 .Pp 243 By default, no storage file is used, i.e. acceleration structures are 244 built from scratch and stored in memory. 245 .It Cm tau= Ns Ar optical_thickness 246 Optical thickness used as threshold criterion for building the 247 acceleration structures. 248 Default is @HTRDR_PLANETS_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD@. 249 .El 250 .It Fl C Ar persp_camera_opt Ns Op : Ns Ar persp_camera_opt No ... 251 Set up a pinhole or thin-lens perspective camera. 252 .Pp 253 The options for a perspective camera are as follows: 254 .Bl -tag -width Ds 255 .It Cm focal-dst= Ns Ar distance 256 Distance to focus on with a thin lens camera, that is, a camera whose 257 .Cm lens-radius 258 is not zero. 259 The default focal distance is 260 @HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOCAL_DST@ meters. 261 .It Cm focal-length= Ns Ar length 262 Focal length of a camera lens. 263 It is another way to control the field of view of a thin lens camera. 264 By default, the field of view is set through the 265 .Cm fov 266 parameter. 267 .It Cm fov= Ns Ar angle 268 Vertical field of view of the camera in 269 ]@HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MIN@, 270 @HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MAX@[ degrees. 271 The default field of view is 272 @HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOV@ degrees. 273 .It Cm lens-radius= Ns Ar radius 274 Radius of the camera lens. 275 A non-zero radius means that the camera is a thin lens camera while a 276 zero radius defines a pinhole camera. 277 The default lens radius is 278 @HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_LENS_RADIUS@. 279 .It Cm pos= Ns Ar x , Ns Ar y , Ns Ar z 280 Camera position. 281 Default is @HTRDR_ARGS_DEFAULT_CAMERA_POS@. 282 .It Cm tgt= Ns Ar x , Ns Ar y , Ns Ar z 283 Targeted position 284 Default is @HTRDR_ARGS_DEFAULT_CAMERA_TGT@. 285 .It Cm up= Ns Ar x , Ns Ar y , Ns Ar z 286 Upward vector that the top of the camera is pointing towards. 287 Default is @HTRDR_ARGS_DEFAULT_CAMERA_UP@. 288 .El 289 .It Fl d 290 Write atmospheric acceleration structures to 291 .Ar output . 292 Each structure is saved in legacy VTK format. 293 To divide the resulting output into N files 294 .Pq N > 1 , 295 each storing an acceleration structure, one can use the 296 .Xr csplit 1 297 command as below: 298 .Bd -literal -offset Ds 299 csplit -f octree -k output %^#\\ vtk% /^#\\ vtk/ \\ 300 {$(($(grep -ce "^# vtk" output)-2))} 301 .Ed 302 .It Fl f 303 Force overwriting of 304 .Ar output 305 file. 306 .It Fl G Ar ground_opt Ns Op : Ns Ar ground_opt No ... 307 The planet's ground. 308 .Pp 309 The ground options are as follows: 310 .Bl -tag -width Ds 311 .It Cm brdf= Ns Ar brdfs_list 312 List in 313 .Xr rnsl 5 314 format of the BRDFs to be loaded. 315 Each BRDF is saved in 316 .Xr mrumtl 5 317 format. 318 The correspondence between these BRDFs and the triangles of the surface 319 mesh is defined in another file 320 .Pq option Cm prop . 321 .It Cm mesh= Ns Ar surface_mesh 322 Ground triangular mesh saved in 323 .Xr smsh 5 324 format. 325 .It Cm name= Ns Ar string 326 Name assigned to the ground. 327 .It Cm prop= Ns Ar surface_properties 328 Ground surface properties, i.e. BRDF index and temperature, both defined 329 by triangle. 330 The list of BRDF is defined in another file 331 .Pq option Cm brdf . 332 Note that this file and the surface mesh must be consistent 333 .Pq option Cm mesh , 334 i.e. the triangles must be listed in the same order. 335 .El 336 .It Fl g Ar gas_opt Ns Op : Ns Ar gas_opt No ... 337 Gas mixture. 338 .Pp 339 The gas options are as follows: 340 .Bl -tag -width Ds 341 .It Cm mesh= Ns Ar volumetric_mesh 342 Gas tetrahedral mesh saved in 343 .Xr smsh 5 344 format. 345 .It Cm ck= Ns Ar correlated_k 346 Correlated K fof the gas saved in 347 .Xr sck 5 348 format. 349 The correlated K are defined per volumetric mesh node. 350 This file and the tetrahedral mesh 351 .Pq option Cm mesh 352 must therefore be consistent with each other, i.e. the nodes must be 353 listed in the same order. 354 .It Cm temp= Ns Ar temperature 355 Gas temperatures saved in 356 .Xr rngt 5 357 format. 358 The temperature is defined per volumetric mesh node. 359 This file and the tetrahedral mesh 360 .Pq option Cm mesh 361 must therefore be consistent with each other, i.e. the nodes must be 362 listed in the same order. 363 .El 364 .It Fl h 365 Display short help and exit. 366 .It Fl i Ar image_opt Ns Op : Ns Ar image_opt No ... 367 Configure sensor image. 368 .Pp 369 The image options are as follows: 370 .Bl -tag -width Ds 371 .It Cm def= Ns Ar width Ns x Ns Ar height 372 Image definition. 373 Default is 374 @HTRDR_ARGS_DEFAULT_IMG_WIDTH@x@HTRDR_ARGS_DEFAULT_IMG_HEIGHT@. 375 .It Cm spp= Ns Ar samples_per_pixel 376 Number of samples to solve the Monte Carlo estimation of each pixel. 377 Default is @HTRDR_ARGS_DEFAULT_IMG_SPP@. 378 .El 379 .It Fl N 380 Precalculate tetrahedron normals. 381 This speeds up runtime performance by calculating normals once and for 382 all rather than re-evaluating them every time a tetrahedron is queried 383 at a given position. 384 In return, the memory space used to store normals increases the memory 385 footprint. 386 .It Fl o Ar output 387 Output file. 388 If not defined, data is written to standard output. 389 .It Fl P Ar ortho_camera_opt Ns Op : Ns Ar ortho_camera_opt No ... 390 Set up an orthographic camera. 391 .Pp 392 The options for an orthographic camera are as follows: 393 .Bl -tag -width Ds 394 .It Cm height= Ns Ar lenght 395 Image plane height. 396 Its width is calculated from this length and the image ratio 397 to guarantee square pixels 398 .Pq see Fl i No option . 399 .It Cm pos= Ns Ar x , Ns Ar y , Ns Ar z 400 Camera position. 401 Default is @HTRDR_ARGS_DEFAULT_CAMERA_POS@. 402 .It Cm tgt= Ns Ar x , Ns Ar y , Ns Ar z 403 Targeted position. 404 Default is @HTRDR_ARGS_DEFAULT_CAMERA_TGT@. 405 .It Cm up= Ns Ar x , Ns Ar y , Ns Ar z 406 Upward vector that the top of the camera is pointing towards. 407 Default is @HTRDR_ARGS_DEFAULT_CAMERA_UP@. 408 .El 409 .It Fl r Ar volrad_budget_opt Ns Op : Ns Ar volrad_budget_opt No ... 410 Define the calculation of the volumic radiative budget. 411 Calculation is no longer a rendering: 412 neither a camera 413 .Pq option Fl C 414 nor an image 415 .Pq option Fl i 416 is required. 417 .Pp 418 The volumic radiative budget options are as follows: 419 .Bl -tag -width Ds 420 .It Cm mesh= Ns Ar volume_mesh 421 Tetrahedral mesh in 422 .Xr smsh 5 423 format on which the volumic radiative budget is estimated per 424 tetrahedron. 425 .It Cm spt= Ns Ar samples_per_tetrahedron 426 Number of samples to estimate the volumic radiative budget of each 427 tetrahedron. 428 Default is @HTRDR_PLANETS_ARGS_DEFAULT_VOLRAD_BUDGET_SPT@. 429 .El 430 .It Fl S Ar source_opt Ns Op : Ns Ar source_opt No ... 431 Define the external source. 432 .Pp 433 The source options are as follows: 434 .Bl -tag -width Ds 435 .It Cm lat= Ns Ar latitude 436 The latitude of the source, i.e. its angle between 437 .Bq -90, 90 438 degrees about the Y axis. 439 The default latitude of 0 is that of the X axis. 440 .It Cm lon= Ns Ar longitude 441 The longitude of the source, i.e. its angle between [-180, 180] degrees 442 about the Z axis. 443 The default longitude of 0 is that of the X axis. 444 .It Cm dst= Ns Ar distance 445 Distance in kilometers from source to origin. 446 Default is 0. 447 .It Cm rad= Ns Ar radiance_distribution 448 Source radiance distribution saved in 449 .Xr rnrl 5 450 format. 451 This option is not compatible with the temperature setting of the source 452 .Pq option Cm temp 453 which also defines its radiance distribution. 454 .It Cm radius= Ns Ar real 455 Source radius in kilometers. 456 .It Cm temp= Ns Ar temperature 457 Source temperature in Kelvin. 458 When this option is set, the radiance distribution of the source is 459 Planck, at the specified temperature. 460 This option is not compatible with the 461 .Cm rad 462 option that explicitly defines the source radiance distribution. 463 .El 464 .It Fl s Ar spectral_opt Ns Op : Ns Ar spectral_opt No ... 465 Configure spectral integration. 466 .Pp 467 The spectral integration options are as follows: 468 .Bl -tag -width Ds 469 .It Cm cie_xyz 470 Calculate the radiance for the visible part of the spectrum between 471 .Bq 380, 780 472 nanometers using the XYZ CIE 1931 color matching functions. 473 This is the default behavior. 474 .It Cm lw= Ns Ar wlen_min , Ns Ar wlen_max 475 Calculate the radiance using the internal source of radiation, i.e. the 476 radiance emitted by the medium and its boundaries (ground and space). 477 .Pp 478 Calculations are performed between 479 .Bq Ar wlen_min , Ar wlen_max 480 nanometers according to Planck's function for a reference temperature 481 defined as the maximum ground temperature. 482 .Pp 483 If 484 .Ar wlen_min 485 and 486 .Ar wlen_max 487 are equal, the calculation is monochromatic. 488 .It Cm sw= Ns Ar wlen_min , Ns Ar wlen_max 489 Calculate the radiance using the external source of radiance 490 .Pq option Fl S . 491 .Pp 492 Calculations are performed between 493 .Bq Ar wlen_min , Ar wlen_max 494 nanometers according to the radiance distribution of the external 495 source 496 .Pq see Fl S No option 497 .Pp 498 If 499 .Ar wlen_min 500 and 501 .Ar wlen_max 502 are equal, the calculation is monochromatic. 503 .El 504 .It Fl t Ar thread_count 505 Advice on the number of threads to use. 506 By default, 507 .Nm 508 uses many threads as processor cores. 509 .It Fl v 510 Make 511 .Nm 512 verbose. 513 .El 514 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 515 .\" Output data 516 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 517 .Sh OUTPUT DATA 518 The output of 519 .Nm 520 depends on the type of calculation invoked. 521 This section describes the nature and layout of these output data. 522 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 523 .Ss XYZ image 524 For an image rendering in the visible part of the spectrum 525 .Pq default behavior or option Fl s Cm cie_xyz , 526 the output is an 527 .Xr htrdr-image 5 528 whose pixel components store 4 estimates. 529 .Pp 530 The first, second, and third pairs of floating point values encode the 531 estimated integrated radiance in W/sr/m^2 for the X, Y, and Z components 532 of the CIE 1931 XYZ color space. 533 The first value of each pair is the expected value of the 534 average radiance of the pixel. 535 The second value is its associated standard deviation. 536 .Pp 537 The fourth and final pair records the microsecond estimate of the 538 computation time per radiative path and its standard error. 539 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 540 .Ss Longwave image 541 For infrared calculations 542 .Pq option Fl s Cm lw= Ns Ar wlen_min , Ns Ar wlen_max 543 the output is an 544 .Xr htrdr-image 5 545 whose first and second pixel components store the expected value and the 546 standard error of the estimated brightness temperature 547 .Pq in K , 548 respectively. 549 .Pp 550 The third and fourth components record the expected value and the 551 standard deviation of the pixel radiance which is either an integrated 552 radiance in W/sr/m^2 or a spectral radiance in W/sr/m^2/nm depending on 553 whether this radiance was calculated for a spectral range or at a single 554 wavelength. 555 .Pp 556 The fifth and sixth pixel components are not used. 557 .Pp 558 Finally, the last 2 components of the pixel record the estimate in 559 microseconds of the computation time per radiative path and its standard 560 error. 561 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 562 .Ss Shortwave image 563 For shortwave calculations 564 .Pq option Fl s Cm sw= Ns Ar wlen_min , Ns Ar wlen_max 565 the output is an 566 .Xr htrdr-image 5 567 formatted as for a longwave image except that the first and second 568 components of the pixels are not used, as no brightness temperature has 569 been evaluated. 570 That is, the third and fourth values record the estimated radiance per 571 pixel and the seventh and eighth values store the estimate of the 572 calculation time by radiative path. 573 The other values are set to 0. 574 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 575 .Ss Volumic Radiative Budget 576 For volumic radiative budget 577 .Pq option Fl r 578 the output is a list of 15 ASCII values per line, with as many lines as 579 there are tetrahedra in the volume mesh as an argument to the 580 .Fl r 581 option. 582 The lines follow the order of the input meshes. 583 .Pp 584 The total radiative volumic budget is decomposed into its direct and 585 diffuse components. 586 For each component 587 .Pq total, direct and diffuse parts , 588 the following information is recorded: the average 589 .Bq W/m^3 , 590 the associated standard deviation 591 .Bq W/m^3 , 592 the sum of Monte Carlo weights and the sum of squared weights. 593 The purpose of these last two values is to help calculate the expected value 594 and the standard deviation of the volumic radiative budget for a set of 595 tetrahedra. 596 .Pp 597 After these 12 values, the total number of realisations is recorded. 598 .Pp 599 Finally, the last two values are the estimate and associated standard 600 error of the calculation time per radiative path. 601 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 602 .\" Returned status 603 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 604 .Sh EXIT STATUS 605 .Ex -std 606 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 607 .\" Examples of use 608 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 609 .Sh EXAMPLES 610 An 611 .Nm 612 command line can be lengthy due to the options required to describe the 613 system to be simulated. 614 For editing reasons, the command lines given as examples in this section 615 will take up several lines by using the backslash character 616 .Pq Li \e . 617 While there's nothing original about this practice, we'd like to 618 emphasize the importance of spaces or their absence before the backslash 619 character, particularly for options defining aerosols 620 .Pq option Fl a 621 or ground 622 .Pq option Fl G : 623 their argument must be a single character string with no spaces other 624 than those that may be required for file names. 625 .Pp 626 The following command line runs 627 .Nm 628 in a verbose way 629 .Pq option Fl v 630 to calculate an 631 .Ar 800 No by Ar 600 632 pixel image by sampling 633 .Ar 64 634 radiative paths per pixel 635 .Pq option Fl i 636 for the 3 components of the CIE 1931 XYZ color 637 space 638 .Pq option Fl s . 639 The external source is positioned at 640 .Ar -45 641 degrees longitude and 642 .Ar 50 643 degrees latitude relative to the absolute referential 644 .Pq option Fl S . 645 The camera 646 .Pq option Fl C 647 looks at the origin 648 .Pq Cm tgt= Ns Ar 0 , Ns Ar 0 , Ns Ar 0 649 and is positioned at 650 .Ar 1.5e7 651 meters along the Y axis with an image plane aligned along the Z axis 652 .Pq Cm up= Ns Ar 0 , Ns Ar 0 , Ns Ar 1 . 653 Its vertical field of view is 654 .Ar 70 655 degrees. 656 The gas of the planetary atmosphere is described by the tetrahedral mesh 657 recorded in the 658 .Pa gas.smsh 659 file, while its spectral data and temperature are given by the files 660 .Pa gas.sck 661 and 662 .Pa gas.rngt , 663 respectively. 664 Two aerosols complete the planetary atmosphere: one for 665 .Ar clouds 666 and one for 667 .Ar haze . 668 Their respective meshes are stored in the 669 .Pa clouds_tetrahedra.smsh No and Pa haze_tetrahedra.smsh 670 files while their radiative properties are given by the 671 .Pa clouds_properties.sars No and Pa haze_properties.sars 672 files. 673 Finally, their phase functions are described by a set of 2 files: the 674 .Pa clouds_phase_functions.rnsf No and Pa haze_phase_functions.rnsf 675 files which list the aerosol phase functions, 676 and the 677 .Pa clouds_phase_function_ids.rnpfi No and Pa haze_phase_function_ids.rnpfi 678 files which reference them by volumetric mesh node. 679 To speed up rendering time, the normals of the tetrahedral meshes of 680 the gas and aerosols are precalculated once and for all 681 .Pq option Fl N . 682 The ground geometry is stored in the 683 .Pa ground_triangles.smsh 684 file with its triangle properties 685 .Pq temperature and BRDF 686 defined in the 687 .Pa ground_properties.rnsp 688 file. 689 The referenced BRDFs are listed in the 690 .Pa ground_brdfs.rnsl 691 file. 692 The definition of acceleration structures 693 cannot exceed 694 .Ar 512^3 695 and its voxels can be merged until their optical thickness 696 is greater than 697 .Ar 10 . 698 These structures are either reloaded from 699 .Pa storage_cie.bin 700 or built from scratch and stored in 701 .Pa storage_cie.bin 702 depending on whether that file exists or not. 703 Finally, the calculated images are 704 stored in the 705 .Pa image_CIE_XYZ.ht 706 file even if the file already exists 707 .Pq options Fl fo : 708 .Bd -literal -offset Ds 709 htrdr-planets -v -N \\ 710 -i def=800x600:spp=64 \\ 711 -s cie_xyz \\ 712 -S lon=-45:lat=50:dst=1.5e8:radius=6.9e5:temp=5778 \\ 713 -C pos=0,1.5e7,0:tgt=0,0,0:up=0,0,1:fov=70 \\ 714 -g mesh=gas.smsh:ck=gas.sck:temp=gas.rngt \\ 715 -a name=clouds\\ 716 :mesh=clouds_tetrahedra.smsh\\ 717 :radprop=clouds_properties.sars\\ 718 :phasefn=clouds_phase_functions.rnsf\\ 719 :phaseids=clouds_phase_function_ids.rnpfi \\ 720 -a name=haze\\ 721 :mesh=haze_tetrahedra.smsh\\ 722 :radprop=haze_properties.sars\\ 723 :phasefn=haze_phase_functions.rnsf\\ 724 :phaseids=haze_phase_function_ids.rnpfi \\ 725 -G name=namek\\ 726 :mesh=ground_triangles.smsh\\ 727 :prop=ground_properties.rnsp\\ 728 :brdf=ground_brdfs.rnsl \\ 729 -b def=512:tau=10:storage=storage_cie.bin \\ 730 -fo image_CIE_XYZ.ht 731 .Ed 732 .Pp 733 The next command line is the same as the previous one, except that it calculates 734 an infrared image between 735 .Ar 10,000 736 nm and 737 .Ar 20,000 738 nm 739 .Pq option Fl s . 740 Note that the acceleration structure storage file is no longer the same 741 .Pq Pa storage_lw.bin No rather than Pa storage_cie.bin . 742 Indeed, the previous one records the acceleration structures for the 743 spectral range of the CIE 1931 XYZ color space 744 .Pq i.e. between Bo 380, 780 Bc nm , 745 while one wants to store/reload the acceleration structures for a 746 spectral range between 10 and 20 microns. 747 In any case, if the previous storage had been submitted, the command 748 would have stopped with an error message, thus avoiding the use of the 749 wrong acceleration structures: 750 .Bd -literal -offset Ds 751 htrdr-planets -v -N \\ 752 -i def=800x600:spp=64 \\ 753 -s lw=10000,20000 \\ 754 -C pos=0,1.5e7,0:tgt=0,0,0:up=0,0,1:fov=70 \\ 755 -g mesh=gas.smsh:ck=gas.sck:temp=gas.rngt \\ 756 -a name=clouds\\ 757 :mesh=clouds_tetrahedra.smsh\\ 758 :radprop=clouds_properties.sars\\ 759 :phasefn=clouds_phase_functions.rnsf\\ 760 :phaseids=clouds_phase_function_ids.rnpfi \\ 761 -a name=haze\\ 762 :mesh=haze_tetrahedra.smsh\\ 763 :radprop=haze_properties.sars\\ 764 :phasefn=haze_phase_functions.rnsf\\ 765 :phaseids=haze_phase_function_ids.rnpfi \\ 766 -G name=namek\\ 767 :mesh=ground_triangles.smsh\\ 768 :prop=ground_properties.rnsp\\ 769 :brdf=ground_brdfs.rnsl \\ 770 -b def=512:tau=10:storage=storage_lw.bin \\ 771 -fo image_infrared.ht 772 .Ed 773 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 774 .\" References 775 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 776 .Sh SEE ALSO 777 .Xr htrdr-image 5 , 778 .Xr mrumtl 5 , 779 .Xr rngt 5 , 780 .Xr rnpfi 5 , 781 .Xr rnrl 5 , 782 .Xr rnsf 5 , 783 .Xr sars 5 , 784 .Xr sck 5 , 785 .Xr smsh 5 786 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 787 .\" Used and implemented standards 788 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 789 .Sh STANDARDS 790 .Rs 791 .%A International Organization for Standardization / CIE 792 .%R ISO/CIE 11664-1:2019 793 .%D June 2019 794 .%T Colorimetry - Part 1: CIE standard colorimetric observers 795 .Re 796 .Pp 797 .Rs 798 .%A OpenMP Architecture Review Board 799 .%D March 2002 800 .%T OpenMP C and C++ Application Interface 801 .%O version 2.0 802 .Re 803 .Pp 804 .Rs 805 .%A Message Passing Interface Forum 806 .%D July 1997 807 .%T MPI-2: Extensions to The Message-Passing Interface 808 .Re 809 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 810 .\" Brief implementation history 811 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 812 .Sh HISTORY 813 .Nm 814 has been developed as part of 815 .Li ANR-21-CE49-0020 816 RaD-net project.