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 : /** Implementation of WriteToFile.h 6 : * @author Felix Maurer 7 : */ 8 : 9 : // Member functions of WriteToFile.h: 10 0 : template <unsigned int dim> void coupling::filtering::WriteToFile<dim>::operator()() { 11 : #ifdef DEBUG_WRITE_TO_FILE 12 : std::cout << " WTF: Now writing data to: " << _location; 13 : #endif 14 : 15 0 : if (!_overwrite) 16 0 : _file.open(_location, std::ios_base::app); 17 : else { 18 0 : _file.open(_location); 19 : } 20 : 21 0 : for (unsigned int ic_index = 0; ic_index < coupling::filtering::FilterInterface<dim>::_inputCells.size(); ic_index++) { 22 : // case: only one cell 23 0 : if (_oneCellOnly != -1) 24 0 : ic_index = (unsigned int)_oneCellOnly; 25 : 26 0 : _file << _iteration << " ; "; 27 : 28 : // printing all scalar values 29 0 : for (const auto scalarProperty : coupling::filtering::FilterInterface<dim>::_scalarAccessFunctionPairs) 30 0 : _file << (coupling::filtering::FilterInterface<dim>::_inputCells[ic_index]->*scalarProperty.get)() << " ; "; 31 : 32 : // printing all vectorized values 33 0 : for (const auto vectorProperty : coupling::filtering::FilterInterface<dim>::_vectorAccessFunctionPairs) 34 0 : for (unsigned int d = 0; d < dim; d++) 35 0 : _file << (coupling::filtering::FilterInterface<dim>::_inputCells[ic_index]->*vectorProperty.get)()[d] << " ; "; 36 : 37 : // case: only one cell 38 0 : if (_oneCellOnly != -1) 39 : break; 40 : else 41 0 : _file << std::endl; // spatial distinction between iteration in output 42 : // file. Unneccesary if OCO. 43 : } 44 : 45 0 : _file << std::endl; 46 0 : _file.close(); 47 : 48 0 : coupling::filtering::FilterInterfaceReadOnly<dim>::copyInputToOutput(); 49 : 50 0 : _iteration++; 51 : #ifdef DEBUG_WRITE_TO_FILE 52 : std::cout << " ... done" << std::endl; 53 : #endif 54 0 : }