*/
DataArrayDouble *MEDFileUMesh::getCoords() const
{
+ checkCartesian();
MEDCouplingAutoRefCountObjectPtr<DataArrayDouble> tmp(_coords);
if((DataArrayDouble *)tmp)
{
*/
MEDCouplingUMesh *MEDFileUMesh::getGroup(int meshDimRelToMaxExt, const std::string& grp, bool renum) const
{
+ checkCartesian();
synchronizeTinyInfoOnLeaves();
std::vector<std::string> tmp(1);
tmp[0]=grp;
*/
MEDCouplingUMesh *MEDFileUMesh::getGroups(int meshDimRelToMaxExt, const std::vector<std::string>& grps, bool renum) const
{
+ checkCartesian();
synchronizeTinyInfoOnLeaves();
std::vector<std::string> fams2=getFamiliesOnGroups(grps);
MEDCouplingAutoRefCountObjectPtr<MEDCouplingUMesh> zeRet=getFamilies(meshDimRelToMaxExt,fams2,renum);
*/
MEDCouplingUMesh *MEDFileUMesh::getFamily(int meshDimRelToMaxExt, const std::string& fam, bool renum) const
{
+ checkCartesian();
synchronizeTinyInfoOnLeaves();
std::vector<std::string> tmp(1);
tmp[0]=fam;
*/
MEDCouplingUMesh *MEDFileUMesh::getFamilies(int meshDimRelToMaxExt, const std::vector<std::string>& fams, bool renum) const
{
+ checkCartesian();
synchronizeTinyInfoOnLeaves();
if(meshDimRelToMaxExt==1)
{
*/
MEDCouplingUMesh *MEDFileUMesh::getMeshAtLevel(int meshDimRelToMaxExt, bool renum) const
{
+ checkCartesian();
synchronizeTinyInfoOnLeaves();
if(meshDimRelToMaxExt==1)
{
*/
std::vector<MEDCoupling1GTUMesh *> MEDFileUMesh::getDirectUndergroundSingleGeoTypeMeshes(int meshDimRelToMax) const
{
+ checkCartesian();
const MEDFileUMeshSplitL1 *sp(getMeshAtLevSafe(meshDimRelToMax));
return sp->getDirectUndergroundSingleGeoTypeMeshes();
}
*/
MEDCoupling1GTUMesh *MEDFileUMesh::getDirectUndergroundSingleGeoTypeMesh(INTERP_KERNEL::NormalizedCellType gt) const
{
- const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(gt);
+ checkCartesian();
+ const INTERP_KERNEL::CellModel& cm(INTERP_KERNEL::CellModel::GetCellModel(gt));
int lev=(int)cm.getDimension()-getMeshDimension();
const MEDFileUMeshSplitL1 *sp(getMeshAtLevSafe(lev));
return sp->getDirectUndergroundSingleGeoTypeMesh(gt);
*/
MEDFileUMesh *MEDFileUMesh::buildExtrudedMesh(const MEDCouplingUMesh *m1D, int policy) const
{
+ checkCartesian();
if(getMeshDimension()!=2)
throw INTERP_KERNEL::Exception("MEDFileUMesh::buildExtrudedMesh : this is expected to be with mesh dimension equal to 2 !");
MEDCouplingAutoRefCountObjectPtr<MEDFileUMesh> ret(MEDFileUMesh::New());
*/
MEDFileUMesh *MEDFileUMesh::linearToQuadratic(int conversionType, double eps) const
{
+ checkCartesian();
MEDCouplingAutoRefCountObjectPtr<MEDFileUMesh> ret(MEDFileUMesh::New());
int initialNbNodes(getNumberOfNodes());
MEDCouplingAutoRefCountObjectPtr<MEDCouplingUMesh> m0Tmp(getMeshAtLevel(0));
*/
MEDFileUMesh *MEDFileUMesh::quadraticToLinear(double eps) const
{
+ checkCartesian();
MEDCouplingAutoRefCountObjectPtr<MEDFileUMesh> ret(MEDFileUMesh::New());
MEDCouplingAutoRefCountObjectPtr<MEDCouplingUMesh> m0Tmp(getMeshAtLevel(0));
MEDCouplingAutoRefCountObjectPtr<MEDCouplingUMesh> m0(dynamic_cast<MEDCouplingUMesh *>(m0Tmp->deepCpy()));
*/
MEDCouplingMesh *MEDFileStructuredMesh::getMeshAtLevel(int meshDimRelToMax, bool renum) const
{
+ checkCartesian();
if(renum)
throw INTERP_KERNEL::Exception("MEDFileCurveLinearMesh does not support renumbering ! To do it perform request of renum array directly !");
const MEDCouplingStructuredMesh *m(getStructuredMesh());
*/
MEDCoupling1SGTUMesh *MEDFileStructuredMesh::getImplicitFaceMesh() const
{
+ checkCartesian();
return _faces_if_necessary;
}
""" This test is advanced to be sure that no unnecessary copies had been made during cartesianization process. """
# UMesh non cart
arr=DataArrayDouble(4) ; arr.iota() ; m=MEDCouplingCMesh() ; m.setCoords(arr,arr) ; m=m.buildUnstructured()
- mm=MEDFileUMesh() ; mm[0]=m ; mm.forceComputationOfParts() ; mm.setAxType(AX_CYL) #<- important
+ mm=MEDFileUMesh() ; mm[0]=m ; mm.forceComputationOfParts()
d0=DataArrayInt(16) ; d0[:]=0
d1=DataArrayInt(9) ; d1[:]=0
mm.setFamilyFieldArr(0,d1) ; mm.setFamilyFieldArr(1,d0)
ref2=mm[0].getNodalConnectivityIndex().getHiddenCppPointer()
ref3=mm.getDirectUndergroundSingleGeoTypeMesh(NORM_QUAD4).getNodalConnectivity().getHiddenCppPointer()
self.assertEqual(ref0,mm.getDirectUndergroundSingleGeoTypeMesh(NORM_QUAD4).getCoords().getHiddenCppPointer())
+ mm.setAxType(AX_CYL) #<- important
mm2=mm.cartesianize() # the trigger
self.assertEqual(mm2.getAxType(),AX_CART)
+ mm.setAxType(AX_CART) # this is here only to avoid complaints
self.assertTrue(isinstance(mm2,MEDFileUMesh))
self.assertTrue(mm.getHiddenCppPointer()!=mm2.getHiddenCppPointer())
self.assertTrue(ref0==mm.getCoords().getHiddenCppPointer()) # <- here important