/** * @file output.cpp * @author Christian Laguerre (2012-2015) * @version 1.07.01 * @date 2017-02-28 * * @brief %Output format * @details * Common part for all the output formats. * * @copyright License Cecill-V2 \n * * * (c) CNRS - Universite d'Orleans - BRGM (France) */ /* * * This file is part of FullSWOF_2D software. * * * FullSWOF_2D = Full Shallow-Water equations for Overland Flow, * in two dimensions of space. * This software is a computer program whose purpose is to compute * solutions for 2D Shallow-Water equations. * * LICENSE * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * . * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. * ******************************************************************************/ #include "output.hpp" Output::Output(Parameters & par):NXCELL(par.get_Nxcell()),NYCELL(par.get_Nycell()),DX(par.get_dx()),DY(par.get_dy()){ /** * @details * Defines the names of the outputs.\n * If run in DEBUG mode, writes the header of the file 'boundaries_flux.dat', 'check_vol.dat', 'flux_boundaries_BT.dat' and 'flux_boundaries_LR.dat'. * @param[in] par parameter, contains all the values from the parameters file. * @warning Impossible to open the *** file. Verify if the directory *** exists. * @note If 'boundaries_flux.dat', 'check_vol.dat', 'flux_boundaries_BT.dat' or 'flux_boundaries_LR.dat' cannot be opened, the code will exit with failure termination code. */ outputDirectory = par.get_outputDirectory(); namefile_res = outputDirectory + "results.dat"; namefile_init = outputDirectory + "huz_initial.dat"; namefile_final = outputDirectory + "huz_final.dat"; #ifdef DEBUG namefile_check_volume = outputDirectory + "check_vol.dat"; namefile_Bound_flux = outputDirectory + "boundaries_flux.dat"; namefile_Bound_flux_BT= outputDirectory + "flux_boundaries_BT.dat"; namefile_Bound_flux_LR= outputDirectory + "flux_boundaries_LR.dat"; ofstream Boundaries_flux_f(namefile_Bound_flux.c_str(),ios::out); if (!Boundaries_flux_f){ cerr << "impossible to open the "<< namefile_Bound_flux << " file\n"; // if the name of the file is different, then impossible to open cerr << "Verify if the directory " << outputDirectory <<" exists\n"; exit(EXIT_FAILURE); } Boundaries_flux_f.precision(10); Boundaries_flux_f << "################################################################## "<< endl; Boundaries_flux_f << "# Generated by "<< VERSION << endl; Boundaries_flux_f << "################################################################## "<< endl; Boundaries_flux_f << "# Cumulated fluxes on the left, right, bottom and top boundaries at each time"<