NaxToPy 3.1.2__tar.gz → 3.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {naxtopy-3.1.2/src/NaxToPy.egg-info → naxtopy-3.2.1}/PKG-INFO +20 -105
- {naxtopy-3.1.2 → naxtopy-3.2.1}/README.md +17 -1
- {naxtopy-3.1.2 → naxtopy-3.2.1}/pyproject.toml +3 -3
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeyword.py +22 -2
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PAbaqusInputData.py +2 -4
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PComponent.py +36 -9
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PNastranInputData.py +2435 -1972
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PProperty.py +1 -21
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Constants/Constants.py +6 -4
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Errors/N2PLog.py +141 -51
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/N2PModelContent.py +75 -34
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Reference_Finder/__Reference_Finder.py +8 -3
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/common/material.py +6 -5
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/n2ptoexe/N2PtoEXE.py +7 -7
- naxtopy-3.2.1/src/NaxToPy/Modules/numericaltools/N2PCoefficientsFinder.py +758 -0
- naxtopy-3.2.1/src/NaxToPy/Modules/numericaltools/__init__.py +2 -0
- naxtopy-3.2.1/src/NaxToPy/Modules/static/composite/failure_analysis/N2PCompositeFailure.py +2239 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/N2PGetFasteners.py +1 -1
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/N2PUpdateFastener.py +17 -7
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetResults.py +7 -3
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/__init__.py +4 -1
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/joints/N2PBolt.py +3 -1
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/joints/N2PPlate.py +12 -4
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/metallic/neuber/N2PNeuber.py +4 -9
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/__init__.py +8 -1
- {naxtopy-3.1.2 → naxtopy-3.2.1/src/NaxToPy.egg-info}/PKG-INFO +20 -105
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy.egg-info/SOURCES.txt +2 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy.egg-info/requires.txt +1 -1
- naxtopy-3.1.2/src/NaxToPy/Modules/static/composite/failure_analysis/N2PCompositeFailure.py +0 -2043
- {naxtopy-3.1.2 → naxtopy-3.2.1}/LICENSE +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/setup.cfg +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/setup.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntity.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityElement.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityNode.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityShell.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQEntities/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordBEAMSECTION.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordCOUPLING.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDENSITY.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDISTRIBUTING.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDISTRIBUTINGCOUPLING.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELASTIC.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELEMENT.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELSET.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordENDINSTANCE.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordENDPART.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordINSTANCE.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordKINEMATIC.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordKINEMATICCOUPLING.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordMATERIAL.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordNODE.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordNSET.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordORIENTATION.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordPART.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordPLASTIC.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSHELLSECTION.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSOLIDSECTION.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSURFACE.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ABQKeywords/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/AllClasses.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PConnector.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PCoord.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PElement.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PFreeBody.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PIncrement.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PLoadCase.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PMaterial.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PNode.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PReport.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PResult.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PSection.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/N2PSet.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/ProgresBar.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Classes/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Constants/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Constants/librerias.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Errors/N2PColors.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Errors/N2PFileHandler.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Errors/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/Reference_Finder/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/_AuxFunc/_NetToPython.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/_AuxFunc/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Core/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/common/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/common/data_input_hdf5.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/common/hdf5.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/common/model_processor.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/common/property.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/envelope/N2PEnvelope.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/envelope/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/airbus/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/airbus/core_shear_crimping_airbus.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/airbus/dimpling_airbus.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/airbus/wrinkling_airbus.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/bruhn/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/cmh/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/cmh/core_shear_crimping_cmh.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/cmh/dimpling_cmh.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/cmh/wrinkling_cmh.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/esdu/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/hsb/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/hsb/wrinkling_hsb.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/hypersizer/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/hypersizer/crimping_hypersizer.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/hypersizer/dimpling_hypersizer.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/hypersizer/wrinkling_hypersizer.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/nasa/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/handbooks/nasa/wrinkling_nasa.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/n2ptoexe/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/composite/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/composite/delamination/N2PEdgeDelamination.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/composite/delamination/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/composite/failure_analysis/N2PFailureComposite_Backupy.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/composite/failure_analysis/N2PFailureComposite_Vectorisation.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/composite/failure_analysis/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/composite/sandwich/N2PSandwich.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/composite/sandwich/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/N2PCalculatorRFJoints.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/N2PCompRF.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/N2PFastenerAnalysis.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/N2PGetLoadFasteners.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/N2PMetalRF.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/N2PRivetRF.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetAttachments.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PInterpolation.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PLoadModel.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PRotation.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Check/Validation.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/AR1DElement.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARAttachment.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARBolt.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARPlate.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARPlateElements.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARAuxiliarFunctions.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARBilinearInterpolation.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARConfigurationInput.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARDerivedLoadCases.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARFileInputRivetsIDs.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARGetAttachments.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARGetBolts.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARReadResultsFromFile.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARResults.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARRotation.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARSerialize.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/joints/N2PAttachment.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/joints/N2PFastenerSystem.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/joints/N2PJoint.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/joints/N2PJointAnalysisParameters.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/fasteners/joints/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/metallic/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/Modules/static/metallic/neuber/__init__.py +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/NaxToPy.ico +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy/user_functions.txt +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy.egg-info/dependency_links.txt +0 -0
- {naxtopy-3.1.2 → naxtopy-3.2.1}/src/NaxToPy.egg-info/top_level.txt +0 -0
|
@@ -1,112 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: NaxToPy
|
|
3
|
-
Version: 3.1
|
|
3
|
+
Version: 3.2.1
|
|
4
4
|
Summary: Package for postprocessing FEM results in Python
|
|
5
5
|
Home-page: https://www.idaerosolutions.com/Home/NaxToPy
|
|
6
6
|
Download-URL: https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US
|
|
7
7
|
Author-email: Idaero Solutions <manuel.sanchez@idaerosolutions.com>
|
|
8
|
-
License:
|
|
9
|
-
|
|
10
|
-
This freeware license agreement (“agreement”) is a legally binding contract
|
|
11
|
-
between the individual who downloads the software (“you”) and the licensor,
|
|
12
|
-
that should be read in its entirety. This is an agreement governing your use
|
|
13
|
-
this software own by Idaero Solutions, further defined herein as “software”,
|
|
14
|
-
and the licensor of the software is willing to provide you with access to the
|
|
15
|
-
software only on the condition that you accept all of the terms and conditions
|
|
16
|
-
contained in this agreement. You are deemed to have read, understood and accepted
|
|
17
|
-
all such terms and conditions upon executing a download of any free software.
|
|
18
|
-
|
|
19
|
-
1. License Grant:
|
|
20
|
-
|
|
21
|
-
Subject to the terms and conditions of this Agreement, Idaero Solutions grants
|
|
22
|
-
the User a limited, non-exclusive, non-transferable license to use the Software
|
|
23
|
-
solely for non commercial purposes. This license does not grant any rights to the
|
|
24
|
-
source code of the Software. It is only free for non-professional and non-commercial
|
|
25
|
-
purposes. For commercial and professional purposes, you must install the professional
|
|
26
|
-
NaxTo(c) version.
|
|
27
|
-
|
|
28
|
-
2. Ownership:
|
|
29
|
-
|
|
30
|
-
The User acknowledges that the Software, including any and all intellectual
|
|
31
|
-
property rights associated with it, is the sole property of Idaero Solutions
|
|
32
|
-
and/or its Suppliers. The User agrees not to claim ownership or proprietary
|
|
33
|
-
rights over the Software.
|
|
34
|
-
|
|
35
|
-
3. Distribution:
|
|
36
|
-
|
|
37
|
-
The User is allowed to distribute the Software to third parties free of charge,
|
|
38
|
-
ONLY under .exe files that use the software as a dependence of the script,
|
|
39
|
-
provided that the distribution includes the complete and unmodified Software
|
|
40
|
-
package as originally provided by Idaero Solutions. The User must not charge
|
|
41
|
-
any fees or payments for the distribution of the Software.
|
|
42
|
-
|
|
43
|
-
4. Modifications:
|
|
44
|
-
|
|
45
|
-
The User agrees not to modify, adapt, reverse engineer, decompile or disassemble,
|
|
46
|
-
the Software. Any attempt to do so shall be a violation of this Agreement. The
|
|
47
|
-
User is allowed to develop further code based on the Software. However, the
|
|
48
|
-
User agrees that the new software shall be subject to the same license terms
|
|
49
|
-
as this Agreement, including the prohibition on modification, reverse
|
|
50
|
-
engineering, and proprietization.
|
|
51
|
-
|
|
52
|
-
5. Proprietization:
|
|
53
|
-
|
|
54
|
-
The User agrees not to use the Software or any part thereof to develop a
|
|
55
|
-
competing product or service or engage in any activities that may lead to
|
|
56
|
-
the proprietization of the Software.
|
|
57
|
-
|
|
58
|
-
6. Termination:
|
|
59
|
-
|
|
60
|
-
This Agreement is effective until terminated. Idaero Solutions may terminate this
|
|
61
|
-
Agreement immediately and without notice if the User fails to comply with any
|
|
62
|
-
of the terms and conditions herein. Upon termination, the User must cease all
|
|
63
|
-
use of the Software and destroy all copies in their possession.
|
|
64
|
-
|
|
65
|
-
7. Warranty and Liability:
|
|
66
|
-
|
|
67
|
-
The software is provided "as is", without warranty of any kind, express or
|
|
68
|
-
implied, including but not limited to the warranties of merchantability,
|
|
69
|
-
fitness for a particular purpose and noninfringement. In no event shall the
|
|
70
|
-
authors or copyright holders be liable for any claim, damages or other
|
|
71
|
-
liability, whether in an action of contract, tort or otherwise, arising from,
|
|
72
|
-
out of or in connection with the software or the use or other dealings in the
|
|
73
|
-
software.
|
|
74
|
-
|
|
75
|
-
8. An extension of NaxTo(c) from Idaero Solutions:
|
|
76
|
-
|
|
77
|
-
The software is an extension of the NaxTo software developed by Idaero Solutions.
|
|
78
|
-
Therefore, the terms of use of this software are an extension of the
|
|
79
|
-
NaxTo license. In the event of any discrepancies, the NaxTo license takes precedence.
|
|
80
|
-
|
|
81
|
-
9. Governing Law:
|
|
82
|
-
|
|
83
|
-
This Agreement shall be governed by and construed in accordance with the laws
|
|
84
|
-
of the jurisdiction in which Idaero Solutions is located.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
IDAERO DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
88
|
-
LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
|
|
89
|
-
AND NON-INFRINGEMENT. IDAERO DOES NOT GUARANTEE THAT THE PRODUCTS WILL MEET LICENSEE'S
|
|
90
|
-
REQUIREMENTS, OPERATE UNINTERRUPTED OR ERROR-FREE, OR BE COMPATIBLE WITH ANY SPECIFIC
|
|
91
|
-
HARDWARE OR SOFTWARE. THE ENTIRE RISK ASSOCIATED WITH THE USE, PERFORMANCE, OR RESULTS
|
|
92
|
-
OBTAINED FROM THE PRODUCTS RESTS WITH THE LICENSEE, NOT IDAERO. IDAERO MAKES
|
|
93
|
-
NO WARRANTIES REGARDING THE ACCURACY, COMPLETENESS, FUNCTIONALITY, SAFETY, PERFORMANCE,
|
|
94
|
-
OR ANY OTHER ASPECT OF ANY DESIGN, PROTOTYPE, OR FINAL PRODUCT DEVELOPED BY THE LICENSEE
|
|
95
|
-
USING THE PRODUCTS.
|
|
96
|
-
|
|
97
|
-
IN NO EVENT SHALL IDAERO OR ITS SUPPLIERS BE LIABLE FOR INDIRECT, SPECIAL, INCIDENTAL,
|
|
98
|
-
OR CONSEQUENTIAL DAMAGES, INCLUDING BUT NOT LIMITED TO LOSS OF PROFITS OR DATA, DEFECTS
|
|
99
|
-
IN DESIGN OR PRODUCTS CREATED USING THE PRODUCTS, OR ANY INJURY OR DAMAGE RESULTING
|
|
100
|
-
FROM SUCH DEFECTS, SUFFERED BY THE LICENSEE OR ANY THIRD PARTY, EVEN IF IDAERO OR
|
|
101
|
-
ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE PRODUCTS
|
|
102
|
-
PROVIDED HEREUNDER ARE INTENDED ONLY TO AID THE LICENSEE IN DEVELOPING THEIR OWN
|
|
103
|
-
PRODUCTS OR CONDUCTING DATA ANALYSIS AND ARE NOT INTENDED TO SUBSTITUTE FOR SOUND
|
|
104
|
-
ENGINEERING JUDGMENT, INDEPENDENT TESTING OF PHYSICAL PROTOTYPES, CAREFUL NUMERICAL
|
|
105
|
-
REVIEW, OR SOUND BUSINESS JUDGMENT.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
The above copyright notice and this permission notice shall be included in all
|
|
109
|
-
copies or substantial portions of the Software.
|
|
8
|
+
License: MIT
|
|
110
9
|
Project-URL: Documentation, https://www.idaerosolutions.com/NaxToDocumentation/NaxToPy/3.1.0/index.html
|
|
111
10
|
Project-URL: LinkedIn, https://www.linkedin.com/company/idaero/
|
|
112
11
|
Keywords: NaxTo,Postprocessing,FEM
|
|
@@ -119,7 +18,7 @@ Requires-Python: >=3.9
|
|
|
119
18
|
Description-Content-Type: text/markdown
|
|
120
19
|
License-File: LICENSE
|
|
121
20
|
Requires-Dist: pythonnet>=3.0.4
|
|
122
|
-
Requires-Dist: numpy>=1.
|
|
21
|
+
Requires-Dist: numpy>=1.26.0
|
|
123
22
|
Requires-Dist: setuptools>=67.8.0
|
|
124
23
|
Requires-Dist: h5py>=3.12.1
|
|
125
24
|
Dynamic: download-url
|
|
@@ -152,7 +51,7 @@ additional software beyond NaxTo (see the Download and Homepage links on the lef
|
|
|
152
51
|
---------------
|
|
153
52
|
|
|
154
53
|
⚠️**Warning:** To use NaxToPy, [**NaxTo**](https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US) must be installed.
|
|
155
|
-
This version is compatible with **NaxTo 2025.
|
|
54
|
+
This version is compatible with **NaxTo 2025.2**.
|
|
156
55
|
Check in _Programs and Features_ the NaxTo version that is installed.
|
|
157
56
|
|
|
158
57
|
📘**Note:** If a specific NaxTo version is installed, search the [**NaxToPy History**](https://pypi.org/project/NaxToPy/3.1.2/#history) to find which newer version is compatible with it.
|
|
@@ -373,6 +272,22 @@ is redundant. The coordinate system will prevail.
|
|
|
373
272
|
2. Refactor: Updated vectorised method for N2PCompositeFailure module.
|
|
374
273
|
3. Docs: Improved documentation in some methods.
|
|
375
274
|
|
|
275
|
+
### v.3.2.0
|
|
276
|
+
1. Refactor: `N2PGetFasteners` and `N2PGetLoadFasteners`: Improvement in warning and error messages and documentation
|
|
277
|
+
2. Refactor: `N2PNastranInputData`: The Nastran input file reading libraries (Bulk Data Files) have been updated, and this class has been adapted to the new changes, which improve memory management and file loading speed.
|
|
278
|
+
3. Refactor: `NaxToPy.load_model()`: Improved file type selection (binary or text) and identification of which Solver type they belong to (`"InputFileNastran"`, `"InputFileAbaqus"`).
|
|
279
|
+
4. Refactor: `N2PModelContent.get_result_by_LCs_Incr()`: Now, if the requested result or component does not exist in one of the load case-increment cases, the key-value pair is returned in the dictionary, but with the value set to a numpy array filled with "nan", instead of omitting the key from the dictionary.
|
|
280
|
+
5. Refactor: `N2PCompositeFailure`: Improved module efficiency by vectorizing calculations and added a new failure criterion, FMC - Fiber Mode Concept, which is compatible with FirstPly and PlyByPly.
|
|
281
|
+
6. Feat: `N2PCoefficientsFinder`: New NaxToPy module that detects and defines linear dependencies between rows of a given matrix.
|
|
282
|
+
7. Feat: `N2PNastranInputData.find_cards()`: New method that replaces the old `get_cards_by_field()`. Allows searching for cards with various filter types efficiently.
|
|
283
|
+
8. Feat: `N2PNastranInputData.get_failed_cards()`: New method that allows retrieving cards that are poorly formatted or have reading errors when opening a Nastran input file (.bdf).
|
|
284
|
+
9. Feat: `N2PNastranInputData.create_card()`: New method that allows creating Nastran cards completely from scratch, which will be added to the end of the Nastran input file once the `rebuild_file()` command is executed.
|
|
285
|
+
|
|
286
|
+
### v.3.2.1
|
|
287
|
+
1. BugFix: Derived components are now founded right while using `get_result_by_LCs_Incr()`.
|
|
288
|
+
1. BugFix: All sections are now founded right while using `get_result_by_LCs_Incr()`.
|
|
289
|
+
3. BugFix: Now symbols like "\" or "-" are supported as part of the name of Components and Load Cases while creating new derived Components and Derived Load Cases.
|
|
290
|
+
|
|
376
291
|
# Documentation
|
|
377
292
|
|
|
378
293
|
**NaxToPy** is a package developed by Idaero Solutions© as a part of the **NaxTo** software.
|
|
@@ -24,7 +24,7 @@ additional software beyond NaxTo (see the Download and Homepage links on the lef
|
|
|
24
24
|
---------------
|
|
25
25
|
|
|
26
26
|
⚠️**Warning:** To use NaxToPy, [**NaxTo**](https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US) must be installed.
|
|
27
|
-
This version is compatible with **NaxTo 2025.
|
|
27
|
+
This version is compatible with **NaxTo 2025.2**.
|
|
28
28
|
Check in _Programs and Features_ the NaxTo version that is installed.
|
|
29
29
|
|
|
30
30
|
📘**Note:** If a specific NaxTo version is installed, search the [**NaxToPy History**](https://pypi.org/project/NaxToPy/3.1.2/#history) to find which newer version is compatible with it.
|
|
@@ -245,6 +245,22 @@ is redundant. The coordinate system will prevail.
|
|
|
245
245
|
2. Refactor: Updated vectorised method for N2PCompositeFailure module.
|
|
246
246
|
3. Docs: Improved documentation in some methods.
|
|
247
247
|
|
|
248
|
+
### v.3.2.0
|
|
249
|
+
1. Refactor: `N2PGetFasteners` and `N2PGetLoadFasteners`: Improvement in warning and error messages and documentation
|
|
250
|
+
2. Refactor: `N2PNastranInputData`: The Nastran input file reading libraries (Bulk Data Files) have been updated, and this class has been adapted to the new changes, which improve memory management and file loading speed.
|
|
251
|
+
3. Refactor: `NaxToPy.load_model()`: Improved file type selection (binary or text) and identification of which Solver type they belong to (`"InputFileNastran"`, `"InputFileAbaqus"`).
|
|
252
|
+
4. Refactor: `N2PModelContent.get_result_by_LCs_Incr()`: Now, if the requested result or component does not exist in one of the load case-increment cases, the key-value pair is returned in the dictionary, but with the value set to a numpy array filled with "nan", instead of omitting the key from the dictionary.
|
|
253
|
+
5. Refactor: `N2PCompositeFailure`: Improved module efficiency by vectorizing calculations and added a new failure criterion, FMC - Fiber Mode Concept, which is compatible with FirstPly and PlyByPly.
|
|
254
|
+
6. Feat: `N2PCoefficientsFinder`: New NaxToPy module that detects and defines linear dependencies between rows of a given matrix.
|
|
255
|
+
7. Feat: `N2PNastranInputData.find_cards()`: New method that replaces the old `get_cards_by_field()`. Allows searching for cards with various filter types efficiently.
|
|
256
|
+
8. Feat: `N2PNastranInputData.get_failed_cards()`: New method that allows retrieving cards that are poorly formatted or have reading errors when opening a Nastran input file (.bdf).
|
|
257
|
+
9. Feat: `N2PNastranInputData.create_card()`: New method that allows creating Nastran cards completely from scratch, which will be added to the end of the Nastran input file once the `rebuild_file()` command is executed.
|
|
258
|
+
|
|
259
|
+
### v.3.2.1
|
|
260
|
+
1. BugFix: Derived components are now founded right while using `get_result_by_LCs_Incr()`.
|
|
261
|
+
1. BugFix: All sections are now founded right while using `get_result_by_LCs_Incr()`.
|
|
262
|
+
3. BugFix: Now symbols like "\" or "-" are supported as part of the name of Components and Load Cases while creating new derived Components and Derived Load Cases.
|
|
263
|
+
|
|
248
264
|
# Documentation
|
|
249
265
|
|
|
250
266
|
**NaxToPy** is a package developed by Idaero Solutions© as a part of the **NaxTo** software.
|
|
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "NaxToPy"
|
|
7
|
-
version = "3.1
|
|
8
|
-
license = {
|
|
7
|
+
version = "3.2.1"
|
|
8
|
+
license = {text = "MIT"}
|
|
9
9
|
authors = [ { name = "Idaero Solutions", email = "manuel.sanchez@idaerosolutions.com" }, ]
|
|
10
10
|
requires-python = ">=3.9"
|
|
11
11
|
dependencies = ["pythonnet>=3.0.4",
|
|
12
|
-
"numpy>=1.
|
|
12
|
+
"numpy>=1.26.0",
|
|
13
13
|
"setuptools>=67.8.0",
|
|
14
14
|
"h5py>=3.12.1"]
|
|
15
15
|
description = "Package for postprocessing FEM results in Python"
|
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
from __future__ import annotations # For compatibility with Python 3.9 or higher
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
class N2PInputDataAbqs:
|
|
4
|
+
"""General class for the information in an input file of Nastran
|
|
5
|
+
"""
|
|
4
6
|
|
|
7
|
+
__slots__ = (
|
|
8
|
+
"__inputdata"
|
|
9
|
+
)
|
|
5
10
|
|
|
6
|
-
|
|
11
|
+
def __init__(self, inputdata):
|
|
12
|
+
self.__inputdata = inputdata
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def DataType(self) -> str:
|
|
16
|
+
return self.__inputdata.DataType.ToString()
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def Lines(self) -> list[str]:
|
|
20
|
+
return list(self.__inputdata.Lines)
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def FilePathId(self) -> int:
|
|
24
|
+
return self.__inputdata.FilePathId
|
|
25
|
+
|
|
26
|
+
class N2PKeyword(N2PInputDataAbqs):
|
|
7
27
|
|
|
8
28
|
def __init__(self, info, dictKeywordToN2P, dictEntityToN2P):
|
|
9
29
|
super().__init__(info)
|
|
@@ -4,11 +4,9 @@ from __future__ import annotations # For compatibility with Python 3.9 or highe
|
|
|
4
4
|
from typing import Literal, overload
|
|
5
5
|
|
|
6
6
|
from NaxToPy.Core.Errors.N2PLog import N2PLog
|
|
7
|
-
from NaxToPy.Core.Classes.N2PNastranInputData import N2PInputData
|
|
8
7
|
from NaxToPy.Core.Classes.ABQKeywords import *
|
|
9
8
|
from NaxToPy.Core.Classes.ABQEntities import *
|
|
10
9
|
|
|
11
|
-
|
|
12
10
|
class N2PAbaqusInputData:
|
|
13
11
|
"""
|
|
14
12
|
Class with the complete data of an Abaqus MEF input file (text file usually with the extension .inp).
|
|
@@ -87,14 +85,14 @@ class N2PAbaqusInputData:
|
|
|
87
85
|
|
|
88
86
|
# Método para obtener la lista de comentarios en el Input File -----------------------------------------------------
|
|
89
87
|
@property
|
|
90
|
-
def ListComments(self) -> list[
|
|
88
|
+
def ListComments(self) -> list[N2PInputDataAbqs, ]:
|
|
91
89
|
"""
|
|
92
90
|
List with all the comments in the FEM Input File.
|
|
93
91
|
"""
|
|
94
92
|
if self.__listcomments:
|
|
95
93
|
return self.__listcomments
|
|
96
94
|
else:
|
|
97
|
-
self.__listcomments = [
|
|
95
|
+
self.__listcomments = [N2PInputDataAbqs(i) for i in self.__inputfiledata.StructuredInfo.ModelComments]
|
|
98
96
|
return self.__listcomments
|
|
99
97
|
# ------------------------------------------------------------------------------------------------------------------
|
|
100
98
|
|
|
@@ -454,7 +454,14 @@ class N2PComponent:
|
|
|
454
454
|
i = 0
|
|
455
455
|
n_opt = 0
|
|
456
456
|
n_lcs = len(list_lc_incr)
|
|
457
|
-
|
|
457
|
+
|
|
458
|
+
if not sections:
|
|
459
|
+
if isinstance(list_lc_incr[0][0], int):
|
|
460
|
+
sections = list({section.Name for lc, _ in list_lc_incr for component in self._result_father._loadCase_father._modelFather.get_load_case(lc).Results[self._result_father.Name].Components.values() for section in component.Sections})
|
|
461
|
+
else:
|
|
462
|
+
sections = list({section.Name for lc, _ in list_lc_incr for component in lc.Results[self._result_father.Name].Components.values() for section in component.Sections})
|
|
463
|
+
|
|
464
|
+
|
|
458
465
|
# A first shoot with a block of 5 load cases is made. The memory used in the process wil be measured
|
|
459
466
|
# using the function _get_memory_usage(). Acording to de memory used, the optimum number of load cases
|
|
460
467
|
# per block will be claculated and the remain load cases will be launched in blocks.
|
|
@@ -491,13 +498,13 @@ class N2PComponent:
|
|
|
491
498
|
|
|
492
499
|
if not components[0]:
|
|
493
500
|
py_dict.update({
|
|
494
|
-
(int(key.split(":")[0].replace("DoF_LCD", "-").replace("DoF_LC", "")), int(key.split(":")[1][2:])) :
|
|
501
|
+
(int(key.split(":")[0].replace("DoF_LCD", "-").replace("DoF_LC", "")), int(key.split(":")[1][2:].replace("_DoF", ""))) :
|
|
495
502
|
self._filter_array(np.array(value, np.float64), filter_list, None, ii_map, cornerData)
|
|
496
503
|
for key, value in dict(cs_dict[0]).items()
|
|
497
504
|
})
|
|
498
505
|
else:
|
|
499
506
|
py_dict.update({
|
|
500
|
-
(int(key.split(":")[0].replace("DoF_LCD", "-").replace("DoF_LC", "")), int(key.split(":")[1][2:]), component) :
|
|
507
|
+
(int(key.split(":")[0].replace("DoF_LCD", "-").replace("DoF_LC", "")), int(key.split(":")[1][2:].replace("_DoF", "")), component) :
|
|
501
508
|
self._filter_array(np.array(value, np.float64), filter_list, None, ii_map, cornerData)
|
|
502
509
|
for key, value in dict(cs_dict[0]).items()
|
|
503
510
|
})
|
|
@@ -520,6 +527,31 @@ class N2PComponent:
|
|
|
520
527
|
self._result_father._loadCase_father._modelFather.clear_results_memory()
|
|
521
528
|
# endwhile
|
|
522
529
|
|
|
530
|
+
# Check if the dictionary has the same number of keys as expected
|
|
531
|
+
if len(py_dict) != n_lcs * len(components):
|
|
532
|
+
N2PLog.Warning.W211()
|
|
533
|
+
|
|
534
|
+
# Create NaN array template
|
|
535
|
+
len_arr = len(next(iter(py_dict.values())))
|
|
536
|
+
arr = np.full(len_arr, np.nan)
|
|
537
|
+
|
|
538
|
+
# Fill missing keys
|
|
539
|
+
for lc_id, incr_id in list_lc_incr:
|
|
540
|
+
if isinstance(lc_id, int):
|
|
541
|
+
base_key = (lc_id, incr_id)
|
|
542
|
+
else:
|
|
543
|
+
base_key = (lc_id.ID, incr_id.ID)
|
|
544
|
+
|
|
545
|
+
if not components[0]:
|
|
546
|
+
# No components - use base key only
|
|
547
|
+
if base_key not in py_dict:
|
|
548
|
+
py_dict[base_key] = arr
|
|
549
|
+
else:
|
|
550
|
+
# With components - add component to key
|
|
551
|
+
for component in components:
|
|
552
|
+
key = (*base_key, component)
|
|
553
|
+
if key not in py_dict:
|
|
554
|
+
py_dict[key] = arr
|
|
523
555
|
return py_dict
|
|
524
556
|
# ------------------------------------------------------------------------------------------------------------------
|
|
525
557
|
|
|
@@ -619,16 +651,11 @@ class N2PComponent:
|
|
|
619
651
|
if not isinstance(sections, list):
|
|
620
652
|
msg = N2PLog.Error.E218()
|
|
621
653
|
raise TypeError(msg)
|
|
622
|
-
actual_sections = {s.Name for s in self.Sections}
|
|
623
654
|
for section in sections:
|
|
624
655
|
if type(section) is N2PSection:
|
|
625
656
|
sectionParam += str(section.Name) + '#'
|
|
626
657
|
else:
|
|
627
|
-
|
|
628
|
-
sectionParam += str(section) + '#'
|
|
629
|
-
else:
|
|
630
|
-
msg = N2PLog.Error.E238(section, actual_sections)
|
|
631
|
-
raise Exception(msg)
|
|
658
|
+
sectionParam += str(section) + '#'
|
|
632
659
|
|
|
633
660
|
resultsParameters.sectPoint = sectionParam
|
|
634
661
|
|