LCOV - code coverage report
Current view: top level - coupling/filtering/filters - WriteToFileJunctor.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 10 0.0 %
Date: 2025-06-25 11:26:37 Functions: 0 3 0.0 %

          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
       3             : 
       4             : #pragma once
       5             : 
       6             : #define DEBUG_WTF_JUNCTION
       7             : 
       8             : #include "coupling/filtering/filters/WriteToFile.h"
       9             : #include "coupling/filtering/interfaces/AsymmetricalJunctorInterface.h"
      10             : 
      11             : namespace coupling {
      12             : namespace filtering {
      13             : template <unsigned int dim> class WriteToFileJunctor;
      14             : }
      15             : } // namespace coupling
      16             : 
      17             : /**
      18             :  * Combines two WriteToFile objects into one asymmetrical FilterJunctor.
      19             :  * Used to output both primary and secondary cell data in an
      20             :  * AsymmetricalFilterJunction.
      21             :  *
      22             :  * @author Felix Maurer
      23             :  */
      24             : template <unsigned int dim> class coupling::filtering::WriteToFileJunctor : public coupling::filtering::AsymmetricalJunctorInterface<dim> {
      25             : public:
      26           0 :   WriteToFileJunctor(
      27             :       // first cell data set
      28             :       const std::vector<coupling::datastructures::CouplingCell<dim>*> inputCellVector1,
      29             :       const std::vector<coupling::datastructures::CouplingCell<dim>*> outputCellVector1,
      30             : 
      31             :       // second cell data set
      32             :       const std::vector<coupling::datastructures::CouplingCell<dim>*> inputCellVector2,
      33             :       // no secondary output cells
      34             : 
      35             :       //"global" parameters for both WriteToFile instances
      36             :       const std::array<bool, 7> filteredValues,
      37             : 
      38             :       // WriteToFile-specific parameters. [0] is for the first WriteToFile
      39             :       // instance and [1] for the second one respectively.
      40             :       std::array<std::string, 2> location, std::array<bool, 2> overwrite = {false}, std::array<int, 2> oneCellOnly = {-1})
      41           0 :       : coupling::filtering::AsymmetricalJunctorInterface<dim>(inputCellVector1, outputCellVector1, inputCellVector2, filteredValues, "WTF-J") {
      42             :     // write to file instance covering first cell data set
      43           0 :     coupling::filtering::AsymmetricalJunctorInterface<dim>::_filter1 =
      44           0 :         new coupling::filtering::WriteToFile<dim>(inputCellVector1, outputCellVector1, filteredValues, location[0], overwrite[0], oneCellOnly[0]);
      45             : 
      46             :     // write to file instance covering second cell data set
      47           0 :     coupling::filtering::AsymmetricalJunctorInterface<dim>::_filter2 =
      48           0 :         new coupling::filtering::WriteToFile<dim>(inputCellVector2, {}, // no output
      49             :                                                   filteredValues, location[1], overwrite[1], oneCellOnly[1]);
      50           0 :   }
      51             : 
      52           0 :   ~WriteToFileJunctor() {
      53             : #ifdef DEBUG_WTF_JUNCTION
      54           0 :     std::cout << "    WTF-J: Destroyed WriteToFileJunctor instance." << std::endl;
      55             : #endif
      56           0 :   }
      57             : };

Generated by: LCOV version 1.14