- Timestamp:
- 06/04/21 11:54:38 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/temporal_filter.cpp
r1523 r2143 2 2 #include "functor_type.hpp" 3 3 #include "calendar_util.hpp" 4 #include "workflow_graph.hpp" 4 5 5 6 namespace xios … … 28 29 // , nextOperationDate(initDate + opFreq + this->samplingOffset) 29 30 , isFirstOperation(true) 31 , graphCycleCompleted(true) 30 32 { 31 33 } 32 34 35 void CTemporalFilter::buildWorkflowGraph(std::vector<CDataPacketPtr> data) 36 { 37 if(this->graphEnabled ) 38 { 39 if(!data[0]->graphPackage) 40 { 41 data[0]->graphPackage = new CGraphDataPackage; 42 } 43 44 if(graphCycleCompleted) 45 { 46 this->graphPackage->filterId = CWorkflowGraph::getNodeSize(); 47 CWorkflowGraph::addNode("Temporal filter", 3, false, 0, data[0]); 48 graphCycleCompleted = false; 49 } 50 51 data[0]->graphPackage->currentField = this->graphPackage->inFields[0]; 52 std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end()); 53 54 CWorkflowGraph::addEdge(data[0]->graphPackage->fromFilter, this->graphPackage->filterId, data[0]); 55 data[0]->graphPackage->fromFilter = this->graphPackage->filterId; 56 this->graphPackage->sourceFilterIds.push_back(data[0]->graphPackage->fromFilter); 57 data[0]->graphPackage->currentField = this->graphPackage->inFields[0]; 58 std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end()); 59 } 60 61 } 33 62 CDataPacketPtr CTemporalFilter::apply(std::vector<CDataPacketPtr> data) 34 63 { 64 buildWorkflowGraph(data); 65 35 66 CDataPacketPtr packet; 36 67 … … 43 74 { 44 75 usePacket = (data[0]->date >= nextSamplingDate); 45 // outputResult = (data[0]->date + samplingFreq > nextOperationDate);46 76 outputResult = (data[0]->date > initDate + nbOperationDates*opFreq - samplingFreq + offsetMonth + offsetAllButMonth); 47 77 copyLess = (isInstantOperation && usePacket && outputResult); … … 75 105 packet->data.resize(tmpData.numElements()); 76 106 packet->data = tmpData; 107 packet->graphPackage = data[0]->graphPackage; 77 108 } 78 109 else … … 80 111 81 112 isFirstOperation = false; 82 // nextOperationDate = initDate + samplingFreq + nbOperationDates*opFreq - samplingFreq + offsetMonth + offsetAllButMonth;83 113 graphCycleCompleted = true; 114 } 84 115 } 85 116
Note: See TracChangeset
for help on using the changeset viewer.