Folder instructions
This directory collects all the output of make builds.
Developing notes
The configurable version of the package introduces some execution wrappers. These raise no problems on a normal execution work-flow, but they affect debug executions. The correct way to perform a debug run, therefore, is to enter the folder where the executable program is and then issue:
../libtool --mode=execute DEBUGGER_NAME EXECUTABLE_NAME
where DEBUGGER_NAME
is the preferred debugger (e.g. gdb
, ddd
...) and EXECUTABLE_NAME
is the program to be debugged.
Instructions (deprecated)
The original code produces output in the current working directory (the path where the code is executed from). The build directory is intended to collect local builds and test run output in a safe place, without cluttering the code development folders, thus helping git
to filter out unnecessary logs through .gitignore
.
Code work-flow
This section describes the use of the pre-existing programs, once the binaries have been properly built by a succesful run of make
in the src
folder.
NOTE: This set of instructions applies to the serial code implementation only. Please, refer to the Release Notes of NP_TMcode-M8.02
for more details on how to build and use a parallel implementation of the code.
cluster
-
cd to the
build/cluster
folder. -
Run
edfb_clu
:./edfb_clu
-
Run
clu
:./clu
NOTE: both edfb_clu
and clu
expect an input which is assumed to be in a folder named ../../test_data/cluster/
(i.e. two levels above the current execution path)
-
Run
np_cluster
:./np_cluster
NOTE: The C++ version does not need to run a configuration program because all configuration operations are handled by the code at run-time.
- Check the consistency between the output files (the default output file for the FORTRAN code is named
OCLU
, while the corresponding C++ output has the default name ofc_OCLU
).
The default behaviour of np_cluster
is to take the same input files as edfb_clu
and clu
and to write the output in the current folder. If needed, different input and output paths can be given as command-line arguments:
./np_cluster PATH_TO_DEDFB PATH_TO_DCLU OUTPUT_PATH
sphere
-
cd to the
build/sphere
folder. -
Run
edfb_sph
:./edfb_sph
-
Run
sph
:./sph
NOTE: both edfb_sph
and sph
expect an input which is assumed to be in a folder named ../../test_data/sphere/
(i.e. two levels above the current execution path)
-
Run
np_sphere
:./np_sphere
NOTE: The C++ version does not need to run a configuration program because all configuration operations are handled by the code at run-time.
- Check the consistency between the output files (the default output file for the FORTRAN code is named
OSPH
, while the corresponding C++ output has the default name ofc_OSPH
).
The default behaviour of np_sphere
is to take the same input files as edfb_sph
and sph
and to write the output in the current folder. If needed, different input and output paths can be given as command-line arguments:
./np_sphere PATH_TO_DEDFB PATH_TO_DSPH OUTPUT_PATH
trapping
The execution of trapping programs requires at least one of the previous programs to have produced a complete output set. A light-weight trapping calculation has been configured with input and legacy output files stored in the ../../test_data/trapping/
folder. Since the FORTRAN code assumes the input and output to be defined within the program, it is not yet possible to run the FORTRAN version on this case, unless the source code is modified accordingly. Conversely, the C++ version can be executed without the need to modify and re-compile the code. The work-flow to test trapping is described below.
-
cd to the
build/sphere
folder. -
run
np_sphere
with arguments to take input from the trapping test and write output in the trapping build folder:./np_sphere ../../test_data/trapping/DEDFB ../../test_data/trapping/DSPH ../trapping
-
cd to the trapping folder.
-
run
np_trapping
./np_trapping ../../test_data/trapping/DFRFME ../../test_data/trapping/DLFFT .
-
Check the consistency between
np_trapping
output files (c_out66.txt
andc_out67.txt
) and the legacy FORTRAN output for this case (the files named, respectively,fort.66
andfort.67
in thetest_data/trapping/
folder). Consider that some of the output values will be affected by numeric noise and take substantially different values. However, this is expected for results whose order of magnitude is clearly below the precision level of the calculation, as they represent results appraching zero that were just approximated with different precision.
testing
The testing
folder contains programs that are used to test the consistency of data written in different binary formats. At present, the only binary files that can be read and written both in legacy and HDF5 formay are the configuration files (named TEDF
) and the transition matrix files (named TTMS
). The HDF5 versions of these files (marked with an hd5
extension) can be inspected by standard HDF5 tools, such as h5dump
. To check the consistency of these two type of files, the testing
suite provides two programs:
test_TEDF
This program checks for the consistency of the configuration data loaded from a formatted configuration file, a legacy binary file and an HDF5 binary file. It must be executed as:
./test_TEDF PATH_TO_EDFB PATH_TO_c_TEDF PATH_TO_c_TEDF.hd5
where the command line arguments must be valid paths to, respectively, the formatted configuration file, a binary configuration file produced by one of the NP codes presented above (generally named c_TEDF
) and a binary configuration file saved in HDF5 format (c_TEDF.hd5
). The program checks for the data in each of the above formats and, after writing a short log to the terminal, returns a result value of 0, in case of success, or a positive error code in case of inconsistent data.
test_TTMS
This program checks for the consistency of transition matrix data files. It is executed similarly to the previous one, but with just two arguments:
./test_TTMS PATH_TO_c_TTMS PATH_TO_c_TTMS.hd5
where the arguments must be valid paths to binary transition matrix files saved in the legaci or the HDF5 format. Similarly to the previous case, the program writes a short log and returns a result value of 0, for success, or a positive number in case of inconsistency detection.
License
Copyright (C) 2024 INAF - Osservatorio Astronomico di Cagliari
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 the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
A copy of the GNU General Public License is distributed along with this program in the COPYING file. If not, see: https://www.gnu.org/licenses/.