- Timestamp:
- 01/22/21 18:35:44 (3 years ago)
- Location:
- XIOS/dev/dev_trunk_graph/src
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_trunk_graph/src/filter/client_to_server_store_filter.cpp
r2019 r2021 38 38 this->graphPackage->filterId = CWorkflowGraph::getNodeSize(); 39 39 if(!data[0]->graphPackage) data[0]->graphPackage = new CGraphDataPackage; 40 data[0]->graphPackage->currentField = this->graphPackage->inFields[0];40 41 41 std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end()); 42 42 43 CWorkflowGraph::addNode("Client to Server Store filter", 5, true, 1, data[0]);44 43 CWorkflowGraph::addNode("Client to Server Store filter", 6, true, 1, data[0]); 44 45 45 CWorkflowGraph::addEdge(data[0]->graphPackage->fromFilter, this->graphPackage->filterId, data[0]); 46 data[0]->graphPackage->fromFilter = this->graphPackage->filterId; 46 // flux can be redirected to other filters. So don't change the 'from' parameter 47 //data[0]->graphPackage->fromFilter = this->graphPackage->filterId; 48 data[0]->graphPackage->currentField = this->graphPackage->inFields[0]; 47 49 } 48 50 } -
XIOS/dev/dev_trunk_graph/src/filter/pass_through_filter.cpp
r2019 r2021 19 19 if(this->graphEnabled) 20 20 { 21 if(data[0]->graphPackage->currentField->getId() == this->graphPackage->inFields[0]->getId()) 22 { 23 std::cout<<"PASS THROUGH FILTER OMITTED "<<this<<std::endl; 24 std::cout<<data[0]->graphPackage->currentField->getId()<< "-------"<< this->graphPackage->inFields[0]->getId()<<std::endl; 25 return; 26 } 21 27 this->graphPackage->filterId = CWorkflowGraph::getNodeSize(); 22 28 … … 26 32 data[0]->graphPackage->fromFilter = -1; 27 33 } 28 34 35 CWorkflowGraph::addNode("Pass through filter", 2, false, 1, data[0]); 29 36 data[0]->graphPackage->currentField = this->graphPackage->inFields[0]; 30 37 std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end()); 31 38 32 CWorkflowGraph::addNode("Pass through filter", 2, false, 1, data[0]);33 39 CWorkflowGraph::addEdge(data[0]->graphPackage->fromFilter, this->graphPackage->filterId, data[0]); 34 40 data[0]->graphPackage->fromFilter = this->graphPackage->filterId; -
XIOS/dev/dev_trunk_graph/src/filter/temporal_filter.cpp
r2019 r2021 34 34 if(this->graphEnabled) 35 35 { 36 if(!data[0]->graphPackage) data[0]->graphPackage = new CGraphDataPackage; 37 data[0]->graphPackage->currentField = this->graphPackage->inFields[0]; 38 std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end()); 36 if(!data[0]->graphPackage) 37 { 38 data[0]->graphPackage = new CGraphDataPackage; 39 } 39 40 40 41 if(this->graphPackage->sourceFilterIds.size()==0) … … 46 47 CWorkflowGraph::addEdge(data[0]->graphPackage->fromFilter, this->graphPackage->filterId, data[0]); 47 48 data[0]->graphPackage->fromFilter = this->graphPackage->filterId; 48 this->graphPackage->sourceFilterIds.push_back(data[0]->graphPackage->fromFilter); 49 this->graphPackage->sourceFilterIds.push_back(data[0]->graphPackage->fromFilter); 50 data[0]->graphPackage->currentField = this->graphPackage->inFields[0]; 51 std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end()); 49 52 } 50 53 -
XIOS/dev/dev_trunk_graph/src/filter/transform_filter.cpp
r2019 r2021 1 1 #include "transform_filter.hpp" 2 2 #include "grid_algorithm.hpp" 3 3 #include "workflow_graph.hpp" 4 4 namespace xios 5 5 { … … 19 19 packet->timestamp = data[0]->timestamp; 20 20 packet->status = data[0]->status; 21 21 22 22 if (packet->status == CDataPacket::NO_ERROR) 23 23 { 24 cout<<"transformeFilter = "<<this<<" and graphEnabled = "<<this->graphEnabled<<std::endl; 25 buildWorkflowGraph(data, packet, algorithm_); 26 24 27 if (data.size()>1) 25 28 { … … 33 36 } 34 37 35 38 void CTransformFilter::buildWorkflowGraph(std::vector<CDataPacketPtr> data, CDataPacketPtr packet, CGridAlgorithm* algorithm) 39 { 40 if(this->graphEnabled) 41 { 42 this->graphPackage->filterId = CWorkflowGraph::getNodeSize(); 43 44 packet->graphPackage = new CGraphDataPackage; 45 if(data[0]->graphPackage) 46 { 47 packet->graphPackage->fromFilter = data[0]->graphPackage->fromFilter; 48 } 49 packet->graphPackage->toFilter = data[0]->graphPackage->toFilter; 50 packet->graphPackage->current_filter_name = data[0]->graphPackage->current_filter_name; 51 packet->graphPackage->contextId = data[0]->graphPackage->contextId; 52 packet->graphPackage->currentField = data[0]->graphPackage->currentField;//this->graphPackage->inFields[0]; 53 std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end()); 54 55 CWorkflowGraph::addNode("Spatial transform filter "+algorithm->getAlgoName(), 4, false, 1, packet); 56 CWorkflowGraph::addEdge(packet->graphPackage->fromFilter, this->graphPackage->filterId, packet); 57 packet->graphPackage->fromFilter = this->graphPackage->filterId; 58 packet->graphPackage->currentField = this->graphPackage->inFields[0]; 59 } 60 } 36 61 37 62 } -
XIOS/dev/dev_trunk_graph/src/filter/transform_filter.hpp
r2019 r2021 22 22 */ 23 23 CDataPacketPtr virtual apply(std::vector<CDataPacketPtr> data) ; 24 void buildWorkflowGraph(std::vector<CDataPacketPtr> data, CDataPacketPtr packet, CGridAlgorithm* algorithm); 25 24 26 // void apply(const CArray<double, 1>& dataSrc, CArray<double,1>& dataDest); 25 27 -
XIOS/dev/dev_trunk_graph/src/graph_package.hpp
r2019 r2021 20 20 int distanceFromStart=-1; 21 21 StdString contextId; 22 22 23 CGraphDataPackage(): fromFilter(-1) {} 23 24 }; 24 25 } // namespace xios -
XIOS/dev/dev_trunk_graph/src/node/field.cpp
r2019 r2021 614 614 // new 615 615 616 std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters = grid->buildTransformationGraph(gc, false, gridSrc, detectMissingValues, defaultValue, newGrid, buildGraph_ ) ;616 std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters = grid->buildTransformationGraph(gc, false, gridSrc, detectMissingValues, defaultValue, newGrid, buildGraph_, this) ; 617 617 lastFilter->connectOutput(filters.first, 0); 618 if(buildGraph_)618 /*if(buildGraph_) 619 619 { 620 620 std::cout<<"============== field "<<this->getId()<<" calls a transformation filter 1 ============== "<<lastFilter<<" _ "<<filters.first<<" ***** "<<CXios::isClient<<std::endl; … … 622 622 filters.first->graphPackage = new CGraphPackage; 623 623 filters.first->graphPackage->inFields.push_back(this); 624 } 624 }*/ 625 625 lastFilter = filters.second; 626 626 gridSrc = newGrid ; -
XIOS/dev/dev_trunk_graph/src/node/grid.cpp
r2019 r2021 1691 1691 1692 1692 std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > 1693 CGrid::buildTransformationGraph(CGarbageCollector& gc, bool isSource, CGrid* gridSrc, double detectMissingValues, double defaultValue, CGrid*& newGrid, bool graphEnabled )1693 CGrid::buildTransformationGraph(CGarbageCollector& gc, bool isSource, CGrid* gridSrc, double detectMissingValues, double defaultValue, CGrid*& newGrid, bool graphEnabled, CField* field) 1694 1694 TRY 1695 1695 { … … 1714 1714 else 1715 1715 { 1716 cout<<"Create new grid : "<<newId<<endl ; 1716 StdString role = CXios::isClient? "Client ": "Server "; 1717 cout<<role<<"Create new grid : "<<newId<<endl ; 1717 1718 newGrid = CGrid::create(newId) ; 1718 1719 isNewGrid = true ; … … 1986 1987 shared_ptr<CTransformFilter> transformFilter = shared_ptr<CTransformFilter>(gridAlgorithm->createTransformFilter(gc, detectMissingValues, defaultValue)) ; 1987 1988 outputFilter->connectOutput(transformFilter,0) ; 1989 if(graphEnabled) 1990 { 1991 transformFilter->graphEnabled=true; 1992 transformFilter->graphPackage = new CGraphPackage; 1993 transformFilter->graphPackage->inFields.push_back(field); 1994 } 1995 1988 1996 vector<string> auxFieldId = algo->getAuxFieldId() ; // better to do that at transformation not algo ?? 1989 1997 int i=1; … … 1994 2002 auxField->getInstantDataFilter()->connectOutput(transformFilter,i) ; 1995 2003 i++ ; 2004 1996 2005 } 1997 2006 outputFilter = transformFilter ; -
XIOS/dev/dev_trunk_graph/src/node/grid.hpp
r2019 r2021 215 215 public: 216 216 pair<shared_ptr<CFilter>, shared_ptr<CFilter> > buildTransformationGraph(CGarbageCollector& gc, bool isSource, CGrid* gridSrc, double detectMissingValues, 217 double defaultValue, CGrid*& newGrid, bool graphEnabled=false ) ;217 double defaultValue, CGrid*& newGrid, bool graphEnabled=false, CField* field=nullptr) ; 218 218 private: 219 219 CGridAlgorithm* gridAlgorithm_ = nullptr ; -
XIOS/dev/dev_trunk_graph/src/transformation/algorithm_transformation_transfer.hpp
r2019 r2021 17 17 virtual void apply(int dimBefore, int dimAfter, const CArray<double,1>& dataIn, CArray<double,1>& dataOut); 18 18 virtual void computeRecvElement(CLocalView* srcView, CLocalView* dstView) ; 19 virtual StdString getAlgoName() {return "CAlgorithm transformation Transfer";} 19 20 20 21 protected: -
XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_extract.hpp
r2019 r2021 21 21 22 22 virtual ~CDomainAlgorithmExtract() {} 23 virtual StdString getAlgoName() {return "\\nextract_domain";} 23 24 24 25 static bool registerTrans(); -
XIOS/dev/dev_trunk_graph/src/transformation/generic_algorithm_transformation.hpp
r2019 r2021 41 41 virtual void apply(int dimBefore, int dimAfter, const CArray<double,1>& dataIn, const vector<CArray<double,1>>& auxData, CArray<double,1>& dataOut) { abort() ;} //=0 42 42 virtual bool isGenerateTransformation(void) { return false ;} 43 44 virtual StdString getAlgoName() { return "Generic algorithm transformation";} 43 45 44 46 virtual vector<string> getAuxFieldId(void) ; -
XIOS/dev/dev_trunk_graph/src/transformation/grid_algorithm.cpp
r2019 r2021 13 13 { 14 14 return algorithm_->isGenerateTransformation() ; 15 } 15 } 16 17 18 StdString CGridAlgorithm::getAlgoName() 19 { 20 return algorithm_->getAlgoName(); 21 } 16 22 } -
XIOS/dev/dev_trunk_graph/src/transformation/grid_algorithm.hpp
r2019 r2021 28 28 virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, bool detectMissingValues, double defaultValue) ; 29 29 virtual bool isGenerateTranformation(void) ; 30 virtual StdString getAlgoName() ; 30 31 31 32 protected:
Note: See TracChangeset
for help on using the changeset viewer.