From 4c4e89a6922083baa25b1a00885a00baa3e5658d Mon Sep 17 00:00:00 2001 From: eap Date: Fri, 11 Oct 2013 13:16:37 +0000 Subject: [PATCH] 22341: [CEA 958] sauv2med: different nb of gauss points in components Fix regression of tests: correct creation of a supporting mesh for a partial field on nodes --- src/MEDLoader/SauvMedConvertor.cxx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/MEDLoader/SauvMedConvertor.cxx b/src/MEDLoader/SauvMedConvertor.cxx index f243840ce..9d1e08eb4 100644 --- a/src/MEDLoader/SauvMedConvertor.cxx +++ b/src/MEDLoader/SauvMedConvertor.cxx @@ -3348,13 +3348,26 @@ void IntermediateMED::setTS( SauvUtilities::DoubleField* fld, timeStamp->setName( fld->_name.c_str() ); timeStamp->setDescription( fld->_description.c_str() ); // set the mesh - MEDCouplingAutoRefCountObjectPtr< MEDCouplingUMesh > dimMesh = mesh->getMeshAtLevel( dimRel ); if ( onAll ) { + MEDCouplingAutoRefCountObjectPtr + < MEDCouplingUMesh > dimMesh = mesh->getMeshAtLevel( dimRel ); timeStamp->setMesh( dimMesh ); } + else if ( timeStamp->getTypeOfField() == ParaMEDMEM::ON_NODES ) + { + DataArrayDouble * coo = mesh->getCoords(); + MEDCouplingAutoRefCountObjectPtr + subCoo = coo->selectByTupleId(support->_medGroup->begin(), + support->_medGroup->end()); + MEDCouplingAutoRefCountObjectPtr< MEDCouplingUMesh > nodeSubMesh = + MEDCouplingUMesh::Build0DMeshFromCoords( subCoo ); + timeStamp->setMesh( nodeSubMesh ); + } else { + MEDCouplingAutoRefCountObjectPtr + < MEDCouplingUMesh > dimMesh = mesh->getMeshAtLevel( dimRel ); MEDCouplingAutoRefCountObjectPtr subMesh = dimMesh->buildPart(support->_medGroup->begin(), support->_medGroup->end()); -- 2.39.2