- Timestamp:
- 12/14/20 09:59:23 (4 years ago)
- Location:
- XIOS/dev/dev_ym/XIOS_COUPLING/src
- Files:
-
- 55 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/client_from_server_source_filter.cpp
r1934 r1988 18 18 CContext* context = CContext::getCurrent(); 19 19 field_ = field ; 20 grid_= field->get Grid();20 grid_= field->getSentGrid(); 21 21 freqOp_ = field->getRelFile()->output_freq ; 22 22 client_= field->getRelFile()->getContextClient() ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/context.cpp
r1984 r1988 1119 1119 for(auto field : fileInField) 1120 1120 { 1121 field->sendFieldToInputFileServer() ; 1121 1122 field->connectToServerInput(garbageCollector) ; // connect the field to server filter 1122 field->sendFieldToInputFileServer() ;1123 1123 fileInFields_.push_back(field) ; 1124 1124 } -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/field.cpp
r1984 r1988 777 777 // new 778 778 779 std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters = grid->buildTransformationGraph(gc, gridSrc, detectMissingValues, defaultValue, newGrid) ;779 std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters = grid->buildTransformationGraph(gc, false, gridSrc, detectMissingValues, defaultValue, newGrid) ; 780 780 lastFilter->connectOutput(filters.first, 0); 781 781 lastFilter = filters.second; … … 827 827 grid_->solveElementsRefInheritance() ; 828 828 if (fileIn_->isClientSide()) fileIn_->readFieldAttributesMetaData(this); 829 grid_->completeGrid(); // grid generation, to be checked 829 CGrid* newGrid ; 830 std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters = grid_->buildTransformationGraph(gc, true, nullptr, detectMissingValues, defaultValue, newGrid) ; 831 grid_ = newGrid ; 832 grid_ref=grid_->getId() ; // for server 833 //grid_->completeGrid(); // grid generation, to be checked 830 834 if (fileIn_->isClientSide()) fileIn_->readFieldAttributesValues(this); 831 835 grid_->checkElementsAttributes() ; 832 grid_->solveDomainAxisBaseRef();836 // grid_->solveDomainAxisBaseRef(); 833 837 // probably in future tag grid incomplete if coming from a reading 834 838 instantDataFilter=inputFilter ; … … 845 849 grid_->solveElementsRefInheritance() ; 846 850 CGrid* newGrid ; 847 std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters = grid_->buildTransformationGraph(gc, nullptr, detectMissingValues, defaultValue, newGrid) ;851 std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters = grid_->buildTransformationGraph(gc, true, nullptr, detectMissingValues, defaultValue, newGrid) ; 848 852 grid_ = newGrid ; 849 853 grid_ref=grid_->getId() ; // for server … … 1638 1642 CContext::getCurrent()->sendContextToFileServer(client); 1639 1643 getRelFile()->sendFileToFileServer(client); 1640 grid_->sendGridToFileServer(client); 1644 sentGrid_ = grid_-> duplicateSentGrid() ; 1645 sentGrid_->sendGridToFileServer(client); 1641 1646 read_access=true ; // not the best solution, but on server side, the field must be a starting point of the workflow 1642 1647 // must be replace by a better solution when implementing filters for reading and send to client -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/grid.cpp
r1986 r1988 176 176 177 177 } 178 178 179 179 // grid->solveElementsRefInheritance(true); 180 180 grid->computeElements() ; 181 181 return grid; 182 182 } … … 1905 1905 1906 1906 std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > 1907 CGrid::buildTransformationGraph(CGarbageCollector& gc, CGrid* gridSrc, double detectMissingValues, double defaultValue, CGrid*& newGrid)1907 CGrid::buildTransformationGraph(CGarbageCollector& gc, bool isSource, CGrid* gridSrc, double detectMissingValues, double defaultValue, CGrid*& newGrid) 1908 1908 TRY 1909 1909 { … … 1982 1982 transformationPath.removeNextTransform() ; 1983 1983 dstDomain->setTransformationPaths(transformationPath) ; 1984 newGrid->addDomain(dstDomain->getId()) ;1985 1984 } 1985 newGrid->addDomain(dstDomain->getId()) ; 1986 1986 algo = dstDomain->getTransformationAlgorithm() ; 1987 1987 } … … 2009 2009 transformationPath.removeNextTransform() ; 2010 2010 dstAxis->setTransformationPaths(transformationPath) ; 2011 newGrid->addAxis(dstAxis->getId()) ;2012 2011 } 2012 newGrid->addAxis(dstAxis->getId()) ; 2013 2013 algo = dstAxis->getTransformationAlgorithm() ; 2014 2014 } … … 2036 2036 transformationPath.removeNextTransform() ; 2037 2037 dstScalar->setTransformationPaths(transformationPath) ; 2038 newGrid->addScalar(dstScalar->getId()) ;2039 2038 } 2039 newGrid->addScalar(dstScalar->getId()) ; 2040 2040 algo = dstScalar->getTransformationAlgorithm() ; 2041 2041 } … … 2098 2098 if (hadTransform) 2099 2099 { 2100 shared_ptr<CTransformFilter> transformFilter = shared_ptr<CTransformFilter>(new CTransformFilter(gc, algo, dimBefore, dimAfter, detectMissingValues, defaultValue)) ; 2101 outputFilter->connectOutput(transformFilter,0) ; 2102 outputFilter = transformFilter ; 2100 if (!isSource) 2101 { 2102 shared_ptr<CTransformFilter> transformFilter = shared_ptr<CTransformFilter>(new CTransformFilter(gc, algo, dimBefore, dimAfter, detectMissingValues, defaultValue)) ; 2103 outputFilter->connectOutput(transformFilter,0) ; 2104 outputFilter = transformFilter ; 2105 } 2103 2106 2104 2107 gridSrc=newGrid ; 2105 pair<shared_ptr<CFilter>, shared_ptr<CFilter> > filters = gridSrc->buildTransformationGraph(gc, gridSrc, detectMissingValues, defaultValue, newGrid) ;2108 pair<shared_ptr<CFilter>, shared_ptr<CFilter> > filters = gridSrc->buildTransformationGraph(gc, isSource, gridSrc, detectMissingValues, defaultValue, newGrid) ; 2106 2109 outputFilter->connectOutput(filters.first,0) ; 2107 2110 outputFilter=filters.second ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/grid.hpp
r1984 r1988 236 236 void setGenerated(); 237 237 void setTransformationAlgorithms(); 238 pair<shared_ptr<CFilter>, shared_ptr<CFilter> > buildTransformationGraph(CGarbageCollector& gc, CGrid* gridSrc, double detectMissingValues,238 pair<shared_ptr<CFilter>, shared_ptr<CFilter> > buildTransformationGraph(CGarbageCollector& gc, bool isSource, CGrid* gridSrc, double detectMissingValues, 239 239 double defaultValue, CGrid*& newGrid) ; 240 240 private: -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/algo_types.hpp
r1558 r1988 26 26 #include "domain_algorithm_zoom.hpp" 27 27 #include "domain_algorithm_interpolate.hpp" 28 #include "domain_algorithm_generate_rectilinear.hpp" 28 29 #include "domain_algorithm_compute_connectivity.hpp" 29 30 #include "domain_algorithm_expand.hpp" -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_duplicate_scalar.cpp
r1985 r1988 30 30 int scalarSrcIndex = elementPositionInGridSrc2ScalarPosition[elementPositionInGrid]; 31 31 32 return (new CAxisAlgorithmDuplicateScalar( axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], duplicateScalar));32 return (new CAxisAlgorithmDuplicateScalar(isSource, axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], duplicateScalar)); 33 33 } 34 34 CATCH … … 43 43 44 44 45 CAxisAlgorithmDuplicateScalar::CAxisAlgorithmDuplicateScalar( CAxis* axisDestination, CScalar* scalarSource, CDuplicateScalarToAxis* algo)46 : CAxisAlgorithmTransformation( axisDestination, scalarSource)45 CAxisAlgorithmDuplicateScalar::CAxisAlgorithmDuplicateScalar(bool isSource, CAxis* axisDestination, CScalar* scalarSource, CDuplicateScalarToAxis* algo) 46 : CAxisAlgorithmTransformation(isSource, axisDestination, scalarSource) 47 47 { 48 48 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_duplicate_scalar.hpp
r1985 r1988 27 27 { 28 28 public: 29 CAxisAlgorithmDuplicateScalar( CAxis* axisDestination, CScalar* scalarSource, CDuplicateScalarToAxis* algo);29 CAxisAlgorithmDuplicateScalar(bool isSource, CAxis* axisDestination, CScalar* scalarSource, CDuplicateScalarToAxis* algo); 30 30 31 31 virtual ~CAxisAlgorithmDuplicateScalar(); -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract.cpp
r1985 r1988 28 28 int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 29 29 30 return (new CAxisAlgorithmExtract( axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], extractAxis));30 return (new CAxisAlgorithmExtract(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], extractAxis)); 31 31 } 32 32 CATCH … … 40 40 CATCH 41 41 42 CAxisAlgorithmExtract::CAxisAlgorithmExtract( CAxis* axisDestination, CAxis* axisSource, CExtractAxis* extractAxis)43 : CAxisAlgorithmTransformation( axisDestination, axisSource)42 CAxisAlgorithmExtract::CAxisAlgorithmExtract(bool isSource, CAxis* axisDestination, CAxis* axisSource, CExtractAxis* extractAxis) 43 : CAxisAlgorithmTransformation(isSource, axisDestination, axisSource) 44 44 TRY 45 45 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract.hpp
r1985 r1988 22 22 { 23 23 public: 24 CAxisAlgorithmExtract( CAxis* axisDestination, CAxis* axisSource, CExtractAxis* extractAxis);24 CAxisAlgorithmExtract(bool isSource, CAxis* axisDestination, CAxis* axisSource, CExtractAxis* extractAxis); 25 25 26 26 virtual ~CAxisAlgorithmExtract() {} -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract_domain.cpp
r1985 r1988 34 34 int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 35 35 36 return (new CAxisAlgorithmExtractDomain( axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], extractDomain));36 return (new CAxisAlgorithmExtractDomain(isSource, axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], extractDomain)); 37 37 } 38 38 CATCH … … 47 47 48 48 49 CAxisAlgorithmExtractDomain::CAxisAlgorithmExtractDomain( CAxis* axisDestination, CDomain* domainSource, CExtractDomainToAxis* algo)50 : CAxisAlgorithmTransformation( axisDestination, domainSource), pos_(-1), reduction_(0)49 CAxisAlgorithmExtractDomain::CAxisAlgorithmExtractDomain(bool isSource, CAxis* axisDestination, CDomain* domainSource, CExtractDomainToAxis* algo) 50 : CAxisAlgorithmTransformation(isSource, axisDestination, domainSource), pos_(-1), reduction_(0) 51 51 TRY 52 52 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract_domain.hpp
r1985 r1988 28 28 { 29 29 public: 30 CAxisAlgorithmExtractDomain( CAxis* axisDestination, CDomain* domainSource, CExtractDomainToAxis* algo);30 CAxisAlgorithmExtractDomain(bool isSource, CAxis* axisDestination, CDomain* domainSource, CExtractDomainToAxis* algo); 31 31 32 32 virtual void apply(const std::vector<std::pair<int,double> >& localIndex, -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_interpolate.cpp
r1985 r1988 38 38 int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 39 39 40 return (new CAxisAlgorithmInterpolate( axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpolateAxis));40 return (new CAxisAlgorithmInterpolate(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpolateAxis)); 41 41 } 42 42 CATCH … … 50 50 CATCH 51 51 52 CAxisAlgorithmInterpolate::CAxisAlgorithmInterpolate( CAxis* axisDestination, CAxis* axisSource, CInterpolateAxis* interpAxis)53 : CAxisAlgorithmTransformation( axisDestination, axisSource), coordinate_(), transPosition_()52 CAxisAlgorithmInterpolate::CAxisAlgorithmInterpolate(bool isSource, CAxis* axisDestination, CAxis* axisSource, CInterpolateAxis* interpAxis) 53 : CAxisAlgorithmTransformation(isSource, axisDestination, axisSource), coordinate_(), transPosition_() 54 54 TRY 55 55 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_interpolate.hpp
r1985 r1988 27 27 { 28 28 public: 29 CAxisAlgorithmInterpolate( CAxis* axisDestination, CAxis* axisSource, CInterpolateAxis* interpAxis);29 CAxisAlgorithmInterpolate(bool isSource, CAxis* axisDestination, CAxis* axisSource, CInterpolateAxis* interpAxis); 30 30 31 31 virtual ~CAxisAlgorithmInterpolate() {} -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_inverse.cpp
r1985 r1988 36 36 int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 37 37 38 return (new CAxisAlgorithmInverse( axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], inverseAxis));38 return (new CAxisAlgorithmInverse(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], inverseAxis)); 39 39 } 40 40 CATCH … … 48 48 CATCH 49 49 50 CAxisAlgorithmInverse::CAxisAlgorithmInverse( CAxis* axisDestination, CAxis* axisSource, CInverseAxis* inverseAxis)51 : CAxisAlgorithmTransformation( axisDestination, axisSource)50 CAxisAlgorithmInverse::CAxisAlgorithmInverse(bool isSource, CAxis* axisDestination, CAxis* axisSource, CInverseAxis* inverseAxis) 51 : CAxisAlgorithmTransformation(isSource, axisDestination, axisSource) 52 52 TRY 53 53 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_inverse.hpp
r1985 r1988 25 25 { 26 26 public: 27 CAxisAlgorithmInverse( CAxis* axisDestination, CAxis* axisSource, CInverseAxis* inverseAxis);27 CAxisAlgorithmInverse(bool isSource, CAxis* axisDestination, CAxis* axisSource, CInverseAxis* inverseAxis); 28 28 29 29 virtual ~CAxisAlgorithmInverse() {} -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_axis.cpp
r1985 r1988 33 33 int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 34 34 35 return (new CAxisAlgorithmReduceAxis( axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], reduceAxis));35 return (new CAxisAlgorithmReduceAxis(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], reduceAxis)); 36 36 } 37 37 CATCH … … 46 46 47 47 48 CAxisAlgorithmReduceAxis::CAxisAlgorithmReduceAxis( CAxis* axisDestination, CAxis* axisSource, CReduceAxisToAxis* algo)49 : CAxisAlgorithmTransformation( axisDestination, axisSource), reduction_(0)48 CAxisAlgorithmReduceAxis::CAxisAlgorithmReduceAxis(bool isSource, CAxis* axisDestination, CAxis* axisSource, CReduceAxisToAxis* algo) 49 : CAxisAlgorithmTransformation(isSource, axisDestination, axisSource), reduction_(0) 50 50 TRY 51 51 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_axis.hpp
r1985 r1988 26 26 { 27 27 public: 28 CAxisAlgorithmReduceAxis( CAxis* axisDestination, CAxis* axisSource, CReduceAxisToAxis* algo);28 CAxisAlgorithmReduceAxis(bool isSource, CAxis* axisDestination, CAxis* axisSource, CReduceAxisToAxis* algo); 29 29 30 30 virtual void apply(const std::vector<std::pair<int,double> >& localIndex, -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_domain.cpp
r1985 r1988 34 34 int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 35 35 36 return (new CAxisAlgorithmReduceDomain( axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], reduceDomain));36 return (new CAxisAlgorithmReduceDomain(isSource, axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], reduceDomain)); 37 37 } 38 38 CATCH … … 47 47 48 48 49 CAxisAlgorithmReduceDomain::CAxisAlgorithmReduceDomain( CAxis* axisDestination, CDomain* domainSource, CReduceDomainToAxis* algo)50 : CAxisAlgorithmTransformation( axisDestination, domainSource), reduction_(0)49 CAxisAlgorithmReduceDomain::CAxisAlgorithmReduceDomain(bool isSource, CAxis* axisDestination, CDomain* domainSource, CReduceDomainToAxis* algo) 50 : CAxisAlgorithmTransformation(isSource, axisDestination, domainSource), reduction_(0) 51 51 TRY 52 52 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_domain.hpp
r1985 r1988 27 27 { 28 28 public: 29 CAxisAlgorithmReduceDomain( CAxis* axisDestination, CDomain* domainSource, CReduceDomainToAxis* algo);29 CAxisAlgorithmReduceDomain(bool isSource, CAxis* axisDestination, CDomain* domainSource, CReduceDomainToAxis* algo); 30 30 31 31 virtual void apply(const std::vector<std::pair<int,double> >& localIndex, -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_temporal_splitting.cpp
r1985 r1988 30 30 int scalarSrcIndex = elementPositionInGridSrc2ScalarPosition[elementPositionInGrid]; 31 31 32 return (new CAxisAlgorithmTemporalSplitting( axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], temporalSplitting));32 return (new CAxisAlgorithmTemporalSplitting(isSource, axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], temporalSplitting)); 33 33 } 34 34 CATCH … … 42 42 CATCH 43 43 44 CAxisAlgorithmTemporalSplitting::CAxisAlgorithmTemporalSplitting( CAxis* axisDestination, CScalar* scalarSource, CTemporalSplitting* algo)45 : CAxisAlgorithmTransformation( axisDestination, scalarSource)44 CAxisAlgorithmTemporalSplitting::CAxisAlgorithmTemporalSplitting(bool isSource, CAxis* axisDestination, CScalar* scalarSource, CTemporalSplitting* algo) 45 : CAxisAlgorithmTransformation(isSource, axisDestination, scalarSource) 46 46 { 47 47 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_temporal_splitting.hpp
r1985 r1988 28 28 { 29 29 public: 30 CAxisAlgorithmTemporalSplitting( CAxis* axisDestination, CScalar* scalarSource, CTemporalSplitting* algo);30 CAxisAlgorithmTemporalSplitting(bool isSource, CAxis* axisDestination, CScalar* scalarSource, CTemporalSplitting* algo); 31 31 32 32 virtual ~CAxisAlgorithmTemporalSplitting(); -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_transformation.cpp
r1985 r1988 18 18 namespace xios { 19 19 20 CAxisAlgorithmTransformation::CAxisAlgorithmTransformation( CAxis* axisDestination, CAxis* axisSource)21 : CGenericAlgorithmTransformation( ), axisDest_(axisDestination), axisSrc_(axisSource), domainSrc_(0),scalarSrc_(0)20 CAxisAlgorithmTransformation::CAxisAlgorithmTransformation(bool isSource, CAxis* axisDestination, CAxis* axisSource) 21 : CGenericAlgorithmTransformation(isSource), axisDest_(axisDestination), axisSrc_(axisSource), domainSrc_(0),scalarSrc_(0) 22 22 TRY 23 23 { … … 31 31 CATCH 32 32 33 CAxisAlgorithmTransformation::CAxisAlgorithmTransformation( CAxis* axisDestination, CDomain* domainSource)34 : CGenericAlgorithmTransformation( ), axisDest_(axisDestination), axisSrc_(0), domainSrc_(domainSource),scalarSrc_(0)33 CAxisAlgorithmTransformation::CAxisAlgorithmTransformation(bool isSource, CAxis* axisDestination, CDomain* domainSource) 34 : CGenericAlgorithmTransformation(isSource), axisDest_(axisDestination), axisSrc_(0), domainSrc_(domainSource),scalarSrc_(0) 35 35 TRY 36 36 { … … 44 44 CATCH 45 45 46 CAxisAlgorithmTransformation::CAxisAlgorithmTransformation( CAxis* axisDestination, CScalar* scalarSource)47 : CGenericAlgorithmTransformation( ), axisDest_(axisDestination), axisSrc_(0), domainSrc_(0), scalarSrc_(scalarSource)46 CAxisAlgorithmTransformation::CAxisAlgorithmTransformation(bool isSource, CAxis* axisDestination, CScalar* scalarSource) 47 : CGenericAlgorithmTransformation(isSource), axisDest_(axisDestination), axisSrc_(0), domainSrc_(0), scalarSrc_(scalarSource) 48 48 TRY 49 49 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_transformation.hpp
r1985 r1988 22 22 Algorithms for axis. 23 23 */ 24 class CAxisAlgorithmTransformation : public virtualCGenericAlgorithmTransformation24 class CAxisAlgorithmTransformation : public /*virtual*/ CGenericAlgorithmTransformation 25 25 { 26 26 public: 27 CAxisAlgorithmTransformation( CAxis* axisDestination, CAxis* axisSource);28 CAxisAlgorithmTransformation( CAxis* axisDestination, CDomain* domainSource);29 CAxisAlgorithmTransformation( CAxis* axisDestination, CScalar* scalarSource);27 CAxisAlgorithmTransformation(bool isSource, CAxis* axisDestination, CAxis* axisSource); 28 CAxisAlgorithmTransformation(bool isSource, CAxis* axisDestination, CDomain* domainSource); 29 CAxisAlgorithmTransformation(bool isSource, CAxis* axisDestination, CScalar* scalarSource); 30 30 31 31 virtual ~CAxisAlgorithmTransformation(); -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_zoom.cpp
r1985 r1988 28 28 int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 29 29 30 return (new CAxisAlgorithmZoom( axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], zoomAxis));30 return (new CAxisAlgorithmZoom(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], zoomAxis)); 31 31 } 32 32 CATCH … … 40 40 CATCH 41 41 42 CAxisAlgorithmZoom::CAxisAlgorithmZoom( CAxis* axisDestination, CAxis* axisSource, CZoomAxis* zoomAxis)43 : CAxisAlgorithmTransformation( axisDestination, axisSource)42 CAxisAlgorithmZoom::CAxisAlgorithmZoom(bool isSource, CAxis* axisDestination, CAxis* axisSource, CZoomAxis* zoomAxis) 43 : CAxisAlgorithmTransformation(isSource, axisDestination, axisSource) 44 44 TRY 45 45 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_zoom.hpp
r1985 r1988 22 22 { 23 23 public: 24 CAxisAlgorithmZoom( CAxis* axisDestination, CAxis* axisSource, CZoomAxis* zoomAxis);24 CAxisAlgorithmZoom(bool isSource, CAxis* axisDestination, CAxis* axisSource, CZoomAxis* zoomAxis); 25 25 26 26 virtual ~CAxisAlgorithmZoom() {} -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_compute_connectivity.cpp
r1985 r1988 33 33 int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 34 34 35 return (new CDomainAlgorithmComputeConnectivity( domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], compute_connectivityDomain));35 return (new CDomainAlgorithmComputeConnectivity(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], compute_connectivityDomain)); 36 36 } 37 37 CATCH … … 45 45 CATCH 46 46 47 CDomainAlgorithmComputeConnectivity::CDomainAlgorithmComputeConnectivity( CDomain* domainDestination, CDomain* domainSource,47 CDomainAlgorithmComputeConnectivity::CDomainAlgorithmComputeConnectivity(bool isSource, CDomain* domainDestination, CDomain* domainSource, 48 48 CComputeConnectivityDomain* compute_connectivityDomain) 49 : CDomainAlgorithmTransformation( domainDestination, domainSource)49 : CDomainAlgorithmTransformation(isSource, domainDestination, domainSource) 50 50 TRY 51 51 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_compute_connectivity.hpp
r1985 r1988 23 23 { 24 24 public: 25 CDomainAlgorithmComputeConnectivity( CDomain* domainDestination, CDomain* domainSource, CComputeConnectivityDomain* compute_connectivityDomain);25 CDomainAlgorithmComputeConnectivity(bool isSource, CDomain* domainDestination, CDomain* domainSource, CComputeConnectivityDomain* compute_connectivityDomain); 26 26 27 27 virtual ~CDomainAlgorithmComputeConnectivity() {} -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_expand.cpp
r1985 r1988 35 35 int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 36 36 37 return (new CDomainAlgorithmExpand( domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], expandDomain));37 return (new CDomainAlgorithmExpand(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], expandDomain)); 38 38 } 39 39 CATCH … … 47 47 CATCH 48 48 49 CDomainAlgorithmExpand::CDomainAlgorithmExpand( CDomain* domainDestination,49 CDomainAlgorithmExpand::CDomainAlgorithmExpand(bool isSource, CDomain* domainDestination, 50 50 CDomain* domainSource, 51 51 CExpandDomain* expandDomain) 52 : CDomainAlgorithmTransformation( domainDestination, domainSource),52 : CDomainAlgorithmTransformation(isSource, domainDestination, domainSource), 53 53 isXPeriodic_(false), isYPeriodic_(false) 54 54 TRY -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_expand.hpp
r1985 r1988 23 23 { 24 24 public: 25 CDomainAlgorithmExpand( CDomain* domainDestination, CDomain* domainSource, CExpandDomain* expandDomain);25 CDomainAlgorithmExpand(bool isSource, CDomain* domainDestination, CDomain* domainSource, CExpandDomain* expandDomain); 26 26 27 27 virtual ~CDomainAlgorithmExpand() {} -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_extract.cpp
r1985 r1988 25 25 int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 26 26 27 return (new CDomainAlgorithmExtract( domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], extractDomain));27 return (new CDomainAlgorithmExtract(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], extractDomain)); 28 28 } 29 29 CATCH … … 37 37 CATCH 38 38 39 CDomainAlgorithmExtract::CDomainAlgorithmExtract( CDomain* domainDestination, CDomain* domainSource, CExtractDomain* extractDomain)40 : CDomainAlgorithmTransformation( domainDestination, domainSource)39 CDomainAlgorithmExtract::CDomainAlgorithmExtract(bool isSource, CDomain* domainDestination, CDomain* domainSource, CExtractDomain* extractDomain) 40 : CDomainAlgorithmTransformation(isSource, domainDestination, domainSource) 41 41 TRY 42 42 { … … 238 238 239 239 domainDestination->checkAttributes() ; 240 computeAlgorithm(domainSource->getLocalView(CElementView::WORKFLOW), domainDestination->getLocalView(CElementView::WORKFLOW)) ;240 this->computeAlgorithm(domainSource->getLocalView(CElementView::WORKFLOW), domainDestination->getLocalView(CElementView::WORKFLOW)) ; 241 241 } 242 242 CATCH -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_extract.hpp
r1985 r1988 18 18 { 19 19 public: 20 CDomainAlgorithmExtract( CDomain* domainDestination, CDomain* domainSource, CExtractDomain* extractDomain);20 CDomainAlgorithmExtract(bool isSource, CDomain* domainDestination, CDomain* domainSource, CExtractDomain* extractDomain); 21 21 22 22 virtual ~CDomainAlgorithmExtract() {} -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.cpp
r1985 r1988 13 13 #include "context_client.hpp" 14 14 #include "generate_rectilinear_domain.hpp" 15 #include "grid_transformation_factory_impl.hpp" 15 16 16 17 namespace xios { 17 18 18 CDomainAlgorithmGenerateRectilinear::CDomainAlgorithmGenerateRectilinear(CDomain* domainDestination, CDomain* domainSource, 19 20 CGenericAlgorithmTransformation* CDomainAlgorithmGenerateRectilinear::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 21 CTransformation<CDomain>* transformation, 22 int elementPositionInGrid, 23 std::map<int, int>& elementPositionInGridSrc2ScalarPosition, 24 std::map<int, int>& elementPositionInGridSrc2AxisPosition, 25 std::map<int, int>& elementPositionInGridSrc2DomainPosition, 26 std::map<int, int>& elementPositionInGridDst2ScalarPosition, 27 std::map<int, int>& elementPositionInGridDst2AxisPosition, 28 std::map<int, int>& elementPositionInGridDst2DomainPosition) 29 TRY 30 { 31 std::vector<CDomain*> domainListDestP = gridDst->getDomains(); 32 std::vector<CDomain*> domainListSrcP = gridSrc->getDomains(); 33 34 CGenerateRectilinearDomain* transform = dynamic_cast<CGenerateRectilinearDomain*> (transformation); 35 int domainDstIndex = elementPositionInGridDst2DomainPosition[elementPositionInGrid]; 36 int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 37 38 return (new CDomainAlgorithmGenerateRectilinear(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], gridDst, gridSrc, transform)); 39 } 40 CATCH 41 42 bool CDomainAlgorithmGenerateRectilinear::dummyRegistered_ = CDomainAlgorithmGenerateRectilinear::registerTrans(); 43 44 bool CDomainAlgorithmGenerateRectilinear::registerTrans() 45 TRY 46 { 47 return CGridTransformationFactory<CDomain>::registerTransformation(TRANS_GENERATE_RECTILINEAR_DOMAIN, create); 48 } 49 CATCH 50 51 52 53 CDomainAlgorithmGenerateRectilinear::CDomainAlgorithmGenerateRectilinear(bool isSource, CDomain* domainDestination, CDomain* domainSource, 19 54 CGrid* gridDest, CGrid* gridSource, 20 55 CGenerateRectilinearDomain* genRectDomain) 21 : CDomainAlgorithmTransformation( domainDestination, domainSource), nbDomainDistributedPart_(0)56 : CDomainAlgorithmTransformation(isSource, domainDestination, domainSource), nbDomainDistributedPart_(0) 22 57 TRY 23 58 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.hpp
r1985 r1988 11 11 12 12 #include "domain_algorithm_transformation.hpp" 13 #include "transformation.hpp" 13 14 14 15 namespace xios { … … 27 28 { 28 29 public: 29 CDomainAlgorithmGenerateRectilinear( CDomain* domainDestination, CDomain* domainSource,30 CDomainAlgorithmGenerateRectilinear(bool isSource, CDomain* domainDestination, CDomain* domainSource, 30 31 CGrid* gridDest, CGrid* gridSource, 31 32 CGenerateRectilinearDomain* zoomDomain); 32 33 33 34 virtual ~CDomainAlgorithmGenerateRectilinear() {} 35 static bool registerTrans(); 34 36 35 37 protected: … … 40 42 void computeDistributionGridDestination(CGrid* gridDest); 41 43 void fillInAttributesDomainDestination(); 42 44 static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 45 CTransformation<CDomain>* transformation, 46 int elementPositionInGrid, 47 std::map<int, int>& elementPositionInGridSrc2ScalarPosition, 48 std::map<int, int>& elementPositionInGridSrc2AxisPosition, 49 std::map<int, int>& elementPositionInGridSrc2DomainPosition, 50 std::map<int, int>& elementPositionInGridDst2ScalarPosition, 51 std::map<int, int>& elementPositionInGridDst2AxisPosition, 52 std::map<int, int>& elementPositionInGridDst2DomainPosition); 43 53 private: 44 54 int nbDomainDistributedPart_; //! Number of local domain. -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_interpolate.cpp
r1985 r1988 40 40 int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 41 41 42 return (new CDomainAlgorithmInterpolate( domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], interpolateDomain));42 return (new CDomainAlgorithmInterpolate(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], interpolateDomain)); 43 43 } 44 44 CATCH … … 52 52 CATCH 53 53 54 CDomainAlgorithmInterpolate::CDomainAlgorithmInterpolate( CDomain* domainDestination, CDomain* domainSource, CInterpolateDomain* interpDomain)55 : CDomainAlgorithmTransformation( domainDestination, domainSource), interpDomain_(interpDomain), writeToFile_(false), readFromFile_(false)54 CDomainAlgorithmInterpolate::CDomainAlgorithmInterpolate(bool isSource, CDomain* domainDestination, CDomain* domainSource, CInterpolateDomain* interpDomain) 55 : CDomainAlgorithmTransformation(isSource, domainDestination, domainSource), interpDomain_(interpDomain), writeToFile_(false), readFromFile_(false) 56 56 TRY 57 57 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_interpolate.hpp
r1985 r1988 27 27 { 28 28 public: 29 CDomainAlgorithmInterpolate( CDomain* domainDestination, CDomain* domainSource, CInterpolateDomain* interpDomain);29 CDomainAlgorithmInterpolate(bool isSource, CDomain* domainDestination, CDomain* domainSource, CInterpolateDomain* interpDomain); 30 30 31 31 virtual ~CDomainAlgorithmInterpolate() {} -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_reorder.cpp
r1985 r1988 28 28 int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 29 29 30 return (new CDomainAlgorithmReorder( domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], reorderDomain));30 return (new CDomainAlgorithmReorder(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], reorderDomain)); 31 31 } 32 32 CATCH … … 40 40 CATCH 41 41 42 CDomainAlgorithmReorder::CDomainAlgorithmReorder( CDomain* domainDestination, CDomain* domainSource, CReorderDomain* reorderDomain)43 : CDomainAlgorithmTransformation( domainDestination, domainSource)42 CDomainAlgorithmReorder::CDomainAlgorithmReorder(bool isSource, CDomain* domainDestination, CDomain* domainSource, CReorderDomain* reorderDomain) 43 : CDomainAlgorithmTransformation(isSource, domainDestination, domainSource) 44 44 TRY 45 45 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_reorder.hpp
r1985 r1988 20 20 { 21 21 public: 22 CDomainAlgorithmReorder( CDomain* domainDestination, CDomain* domainSource, CReorderDomain* reorderDomain);22 CDomainAlgorithmReorder(bool isSource, CDomain* domainDestination, CDomain* domainSource, CReorderDomain* reorderDomain); 23 23 24 24 virtual ~CDomainAlgorithmReorder() {} -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_transformation.cpp
r1985 r1988 15 15 namespace xios { 16 16 17 CDomainAlgorithmTransformation::CDomainAlgorithmTransformation( CDomain* domainDestination, CDomain* domainSource)18 : CGenericAlgorithmTransformation( ), domainDest_(domainDestination), domainSrc_(domainSource)17 CDomainAlgorithmTransformation::CDomainAlgorithmTransformation(bool isSource, CDomain* domainDestination, CDomain* domainSource) 18 : CGenericAlgorithmTransformation(isSource), domainDest_(domainDestination), domainSrc_(domainSource) 19 19 { 20 20 } -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_transformation.hpp
r1985 r1988 20 20 Algorithms for domain. 21 21 */ 22 class CDomainAlgorithmTransformation : public virtualCGenericAlgorithmTransformation22 class CDomainAlgorithmTransformation : public /*virtual*/ CGenericAlgorithmTransformation 23 23 { 24 24 public: 25 CDomainAlgorithmTransformation( CDomain* domainDestination, CDomain* domainSource);25 CDomainAlgorithmTransformation(bool isSource, CDomain* domainDestination, CDomain* domainSource); 26 26 27 27 virtual ~CDomainAlgorithmTransformation(); -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_zoom.cpp
r1985 r1988 25 25 int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 26 26 27 return (new CDomainAlgorithmZoom( domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], zoomDomain));27 return (new CDomainAlgorithmZoom(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], zoomDomain)); 28 28 } 29 29 CATCH … … 37 37 CATCH 38 38 39 CDomainAlgorithmZoom::CDomainAlgorithmZoom( CDomain* domainDestination, CDomain* domainSource, CZoomDomain* zoomDomain)40 : CDomainAlgorithmTransformation( domainDestination, domainSource)39 CDomainAlgorithmZoom::CDomainAlgorithmZoom(bool isSource, CDomain* domainDestination, CDomain* domainSource, CZoomDomain* zoomDomain) 40 : CDomainAlgorithmTransformation(isSource, domainDestination, domainSource) 41 41 TRY 42 42 { … … 275 275 domainDest_->computeLocalMask(); 276 276 277 computeAlgorithm(domainSource->getLocalView(CElementView::WORKFLOW), domainDestination->getLocalView(CElementView::WORKFLOW)) ; 277 domainDestination->checkAttributes() ; 278 this->computeAlgorithm(domainSource->getLocalView(CElementView::WORKFLOW), domainDestination->getLocalView(CElementView::WORKFLOW)) ; 278 279 279 280 } -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_zoom.hpp
r1985 r1988 18 18 { 19 19 public: 20 CDomainAlgorithmZoom( CDomain* domainDestination, CDomain* domainSource, CZoomDomain* zoomDomain);20 CDomainAlgorithmZoom(bool isSource, CDomain* domainDestination, CDomain* domainSource, CZoomDomain* zoomDomain); 21 21 22 22 virtual ~CDomainAlgorithmZoom() {} -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/generic_algorithm_transformation.cpp
r1984 r1988 20 20 { 21 21 22 CGenericAlgorithmTransformation::CGenericAlgorithmTransformation( )23 : transformationMapping_(), transformationWeight_(), transformationPosition_(),22 CGenericAlgorithmTransformation::CGenericAlgorithmTransformation(bool isSource) 23 : isSource_(isSource), transformationMapping_(), transformationWeight_(), transformationPosition_(), 24 24 idAuxInputs_(), type_(ELEMENT_NO_MODIFICATION_WITH_DATA), indexElementSrc_(), 25 25 computedProcSrcNonTransformedElement_(false), eliminateRedondantSrc_(true), isDistributedComputed_(false) -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/generic_algorithm_transformation.hpp
r1984 r1988 53 53 public: 54 54 CGenericAlgorithmTransformation(); 55 CGenericAlgorithmTransformation(bool isSource); 55 56 56 57 virtual ~CGenericAlgorithmTransformation() {} … … 173 174 bool eliminateRedondantSrc_ ; // flag to indicate if the transformation must select only one global source point for all proc. 174 175 // In this case it will choose preferentially the current process 175 176 bool isSource_ ; //flag to indicate that the algorithm is a source algorithm, that mean the grid is modified or generated but 177 // no fluxes are tranformed 176 178 177 179 // new methods for new algorithm -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/grid_generate.cpp
r1622 r1988 80 80 { 81 81 genRectDomain = dynamic_cast<CGenerateRectilinearDomain*> (it->second); 82 algo = new CDomainAlgorithmGenerateRectilinear( domainListDestP[domainIndex], domainListSrcP[domainIndex],82 algo = new CDomainAlgorithmGenerateRectilinear(true, domainListDestP[domainIndex], domainListSrcP[domainIndex], 83 83 gridDestination_, gridSource_, genRectDomain); 84 84 } -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_extract_axis.cpp
r1985 r1988 35 35 int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 36 36 37 return (new CScalarAlgorithmExtractAxis( scalarListDestP[scalarDstIndex], axisListSrcP[axisSrcIndex], extractAxis));37 return (new CScalarAlgorithmExtractAxis(isSource, scalarListDestP[scalarDstIndex], axisListSrcP[axisSrcIndex], extractAxis)); 38 38 } 39 39 CATCH … … 47 47 CATCH 48 48 49 CScalarAlgorithmExtractAxis::CScalarAlgorithmExtractAxis(CScalar* scalarDestination, CAxis* axisSource, CExtractAxisToScalar* algo) 50 : CScalarAlgorithmTransformation(scalarDestination, axisSource), 51 reduction_(0) 49 CScalarAlgorithmExtractAxis::CScalarAlgorithmExtractAxis(bool isSource, CScalar* scalarDestination, CAxis* axisSource, CExtractAxisToScalar* algo) 50 : CScalarAlgorithmTransformation(isSource, scalarDestination, axisSource), reduction_(0) 52 51 TRY 53 52 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_extract_axis.hpp
r1985 r1988 27 27 { 28 28 public: 29 CScalarAlgorithmExtractAxis( CScalar* scalarDestination, CAxis* axisSource, CExtractAxisToScalar* algo);29 CScalarAlgorithmExtractAxis(bool isSource, CScalar* scalarDestination, CAxis* axisSource, CExtractAxisToScalar* algo); 30 30 31 31 virtual void apply(const std::vector<std::pair<int,double> >& localIndex, -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_axis.cpp
r1985 r1988 36 36 int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 37 37 38 return (new CScalarAlgorithmReduceAxis( scalarListDestP[scalarDstIndex], axisListSrcP[axisSrcIndex], reduceAxis));38 return (new CScalarAlgorithmReduceAxis(isSource, scalarListDestP[scalarDstIndex], axisListSrcP[axisSrcIndex], reduceAxis)); 39 39 } 40 40 CATCH … … 48 48 CATCH 49 49 50 CScalarAlgorithmReduceAxis::CScalarAlgorithmReduceAxis(CScalar* scalarDestination, CAxis* axisSource, CReduceAxisToScalar* algo) 51 : CScalarAlgorithmTransformation(scalarDestination, axisSource), 52 reduction_(0) 50 CScalarAlgorithmReduceAxis::CScalarAlgorithmReduceAxis(bool isSource, CScalar* scalarDestination, CAxis* axisSource, CReduceAxisToScalar* algo) 51 : CScalarAlgorithmTransformation(isSource, scalarDestination, axisSource),reduction_(0) 53 52 TRY 54 53 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_axis.hpp
r1985 r1988 27 27 { 28 28 public: 29 CScalarAlgorithmReduceAxis( CScalar* scalarDestination, CAxis* axisSource, CReduceAxisToScalar* algo);29 CScalarAlgorithmReduceAxis(bool isSource, CScalar* scalarDestination, CAxis* axisSource, CReduceAxisToScalar* algo); 30 30 31 31 virtual void apply(const std::vector<std::pair<int,double> >& localIndex, -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_domain.cpp
r1985 r1988 35 35 int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 36 36 37 return (new CScalarAlgorithmReduceDomain( scalarListDestP[scalarDstIndex], domainListSrcP[domainSrcIndex], reduceDomain));37 return (new CScalarAlgorithmReduceDomain(isSource, scalarListDestP[scalarDstIndex], domainListSrcP[domainSrcIndex], reduceDomain)); 38 38 } 39 39 CATCH … … 47 47 CATCH 48 48 49 CScalarAlgorithmReduceDomain::CScalarAlgorithmReduceDomain( CScalar* scalarDestination, CDomain* domainSource, CReduceDomainToScalar* algo)50 : CScalarAlgorithmTransformation( scalarDestination, domainSource),49 CScalarAlgorithmReduceDomain::CScalarAlgorithmReduceDomain(bool isSource, CScalar* scalarDestination, CDomain* domainSource, CReduceDomainToScalar* algo) 50 : CScalarAlgorithmTransformation(isSource, scalarDestination, domainSource), 51 51 reduction_(0) 52 52 TRY -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_domain.hpp
r1985 r1988 27 27 { 28 28 public: 29 CScalarAlgorithmReduceDomain( CScalar* scalarDestination, CDomain* domainSource, CReduceDomainToScalar* algo);29 CScalarAlgorithmReduceDomain(bool isSource, CScalar* scalarDestination, CDomain* domainSource, CReduceDomainToScalar* algo); 30 30 31 31 virtual void apply(const std::vector<std::pair<int,double> >& localIndex, -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_scalar.cpp
r1985 r1988 31 31 int scalarSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 32 32 33 return (new CScalarAlgorithmReduceScalar( scalarListDestP[scalarDstIndex], scalarListSrcP[scalarSrcIndex], reduceScalar));33 return (new CScalarAlgorithmReduceScalar(isSource, scalarListDestP[scalarDstIndex], scalarListSrcP[scalarSrcIndex], reduceScalar)); 34 34 } 35 35 CATCH … … 43 43 CATCH 44 44 45 CScalarAlgorithmReduceScalar::CScalarAlgorithmReduceScalar(CScalar* scalarDestination, CScalar* scalarSource, CReduceScalarToScalar* algo) 46 : CScalarAlgorithmTransformation(scalarDestination, scalarSource), 47 reduction_(0) 45 CScalarAlgorithmReduceScalar::CScalarAlgorithmReduceScalar(bool isSource, CScalar* scalarDestination, CScalar* scalarSource, CReduceScalarToScalar* algo) 46 : CScalarAlgorithmTransformation(isSource, scalarDestination, scalarSource), reduction_(0) 48 47 TRY 49 48 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_reduce_scalar.hpp
r1985 r1988 22 22 { 23 23 public: 24 CScalarAlgorithmReduceScalar( CScalar* scalarDestination, CScalar* scalarSource, CReduceScalarToScalar* algo);24 CScalarAlgorithmReduceScalar(bool isSource, CScalar* scalarDestination, CScalar* scalarSource, CReduceScalarToScalar* algo); 25 25 26 26 virtual void apply(const std::vector<std::pair<int,double> >& localIndex, -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_transformation.cpp
r1985 r1988 18 18 namespace xios { 19 19 20 CScalarAlgorithmTransformation::CScalarAlgorithmTransformation( CScalar* scalarDestination, CScalar* scalarSource)21 : CGenericAlgorithmTransformation( ),20 CScalarAlgorithmTransformation::CScalarAlgorithmTransformation(bool isSource, CScalar* scalarDestination, CScalar* scalarSource) 21 : CGenericAlgorithmTransformation(isSource), 22 22 scalarDest_(scalarDestination), 23 23 scalarSrc_(scalarSource), axisSrc_(0), domainSrc_(0) … … 25 25 } 26 26 27 CScalarAlgorithmTransformation::CScalarAlgorithmTransformation( CScalar* scalarDestination, CAxis* axisSource)28 : CGenericAlgorithmTransformation( ),27 CScalarAlgorithmTransformation::CScalarAlgorithmTransformation(bool isSource, CScalar* scalarDestination, CAxis* axisSource) 28 : CGenericAlgorithmTransformation(isSource), 29 29 scalarDest_(scalarDestination), 30 30 scalarSrc_(0), axisSrc_(axisSource), domainSrc_(0) … … 32 32 } 33 33 34 CScalarAlgorithmTransformation::CScalarAlgorithmTransformation( CScalar* scalarDestination, CDomain* domainSource)35 : CGenericAlgorithmTransformation( ),34 CScalarAlgorithmTransformation::CScalarAlgorithmTransformation(bool isSource, CScalar* scalarDestination, CDomain* domainSource) 35 : CGenericAlgorithmTransformation(isSource), 36 36 scalarDest_(scalarDestination), 37 37 scalarSrc_(0), axisSrc_(0), domainSrc_(domainSource) -
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/scalar_algorithm/scalar_algorithm_transformation.hpp
r1985 r1988 22 22 Algorithms for scalar. 23 23 */ 24 class CScalarAlgorithmTransformation : public virtualCGenericAlgorithmTransformation24 class CScalarAlgorithmTransformation : public /*virtual*/ CGenericAlgorithmTransformation 25 25 { 26 26 public: 27 CScalarAlgorithmTransformation( CScalar* scalarDestination, CScalar* scalarSource);28 CScalarAlgorithmTransformation( CScalar* scalarDestination, CAxis* axisSource);29 CScalarAlgorithmTransformation( CScalar* scalarDestination, CDomain* domainSource);27 CScalarAlgorithmTransformation(bool isSource, CScalar* scalarDestination, CScalar* scalarSource); 28 CScalarAlgorithmTransformation(bool isSource, CScalar* scalarDestination, CAxis* axisSource); 29 CScalarAlgorithmTransformation(bool isSource, CScalar* scalarDestination, CDomain* domainSource); 30 30 31 31 virtual ~CScalarAlgorithmTransformation();
Note: See TracChangeset
for help on using the changeset viewer.