Line data Source code
1 : // This file is part of the Mamico project. For conditions of distribution 2 : // and use, please see the copyright notice in Mamico's main folder, or at 3 : // www5.in.tum.de/mamico 4 : 5 : #pragma once 6 : #include "coupling/filtering/interfaces/FilterInterface.h" 7 : 8 : #include <fstream> 9 : #include <string> 10 : #include <vector> 11 : 12 : // #define DEBUG_READ_FROM_FILE 13 : 14 : namespace coupling { 15 : namespace filtering { 16 : template <unsigned int dim> class ReadFromFile; 17 : } 18 : } // namespace coupling 19 : 20 : /* 21 : * Filter that reads cell data from a specified file in .csv format and then 22 : * writes that data to its output cells. 23 : * 24 : * Input format must be compliant to the usual MaMiCo CSV format (using ';' as 25 : * separator). The following order is assumed: 26 : * - current iteration 27 : * - scalar cell properties 28 : * - vector cell properties 29 : * 30 : * The input file must contain one separate line per cell. 31 : * 32 : * @Author Felix Maurer 33 : */ 34 : template <unsigned int dim> class coupling::filtering::ReadFromFile : public coupling::filtering::FilterInterface<dim> { 35 : public: 36 0 : ReadFromFile(const std::vector<coupling::datastructures::CouplingCell<dim>*>& inputCellVector, 37 : const std::vector<coupling::datastructures::CouplingCell<dim>*>& outputCellVector, const std::array<bool, 7> filteredValues, 38 : std::string location) 39 0 : : coupling::filtering::FilterInterface<dim>(inputCellVector, outputCellVector, filteredValues, "RFF"), _location(location), _iteration(0) { 40 : #ifdef DEBUG_READ_FROM_FILE 41 : std::cout << " RFF: Read from file instance created. Will read from: " << _location << "." << std::endl; 42 : #endif 43 0 : } 44 : 45 0 : ~ReadFromFile() { 46 : #ifdef DEBUG_READ_FROM_FILE 47 : std::cout << " RFF: Read from file instance deconstructed." << std::endl; 48 : #endif 49 0 : } 50 : 51 : void operator()(); 52 : 53 : private: 54 : std::string _location; 55 : unsigned int _iteration; 56 : 57 : std::ifstream _file; 58 : }; 59 : 60 : // include implementation of header 61 : #include "ReadFromFile.cpph"