#include "redistribute_scalar.hpp" #include "scalar_algorithm_redistribute.hpp" #include "type.hpp" #include "field.hpp" namespace xios { /// ////////////////////// Définitions ////////////////////// /// CRedistributeScalar::CRedistributeScalar(void) : CObjectTemplate(), CRedistributeScalarAttributes(), CTransformation() { /* Ne rien faire de plus */ } CRedistributeScalar::CRedistributeScalar(const StdString & id) : CObjectTemplate(id), CRedistributeScalarAttributes(), CTransformation() { /* Ne rien faire de plus */ } CRedistributeScalar::~CRedistributeScalar(void) {} CTransformation* CRedistributeScalar::create(const StdString& id, xml::CXMLNode* node) { CRedistributeScalar* redistributeScalar = CRedistributeScalarGroup::get("redistribute_scalar_definition")->createChild(id); if (node) redistributeScalar->parse(*node); return static_cast*>(redistributeScalar); } bool CRedistributeScalar::registerTrans() { return registerTransformation(TRANS_REDISTRIBUTE_SCALAR, {create, getTransformation}); } bool CRedistributeScalar::_dummyRegistered = CRedistributeScalar::registerTrans(); //---------------------------------------------------------------- StdString CRedistributeScalar::GetName(void) { return StdString("redistribute_scalar"); } StdString CRedistributeScalar::GetDefName(void) { return StdString("redistribute_scalar"); } ENodeType CRedistributeScalar::GetType(void) { return eRedistributeScalar; } void CRedistributeScalar::checkValid(CScalar* scalarSrc) { } shared_ptr CRedistributeScalar::createAlgorithm(bool isSource, CGrid* gridDst, CGrid* gridSrc, int elementPositionInGrid, std::map& elementPositionInGridSrc2ScalarPosition, std::map& elementPositionInGridSrc2AxisPosition, std::map& elementPositionInGridSrc2DomainPosition, std::map& elementPositionInGridDst2ScalarPosition, std::map& elementPositionInGridDst2AxisPosition, std::map& elementPositionInGridDst2DomainPosition) { return CScalarAlgorithmRedistribute::create(isSource, gridDst, gridSrc, this, elementPositionInGrid, elementPositionInGridSrc2ScalarPosition, elementPositionInGridSrc2AxisPosition, elementPositionInGridSrc2DomainPosition, elementPositionInGridDst2ScalarPosition, elementPositionInGridDst2AxisPosition, elementPositionInGridDst2DomainPosition); } }