NaxToPy 3.1.0__tar.gz → 3.1.2__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.0/src/NaxToPy.egg-info → naxtopy-3.1.2}/PKG-INFO +20 -5
- {naxtopy-3.1.0 → naxtopy-3.1.2}/README.md +18 -3
- {naxtopy-3.1.0 → naxtopy-3.1.2}/pyproject.toml +2 -2
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSURFACE.py +1 -1
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PComponent.py +175 -138
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PElement.py +3 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PMaterial.py +2 -2
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PProperty.py +43 -15
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Constants/Constants.py +4 -4
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Errors/N2PLog.py +5 -14
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/N2PModelContent.py +360 -225
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Reference_Finder/__Reference_Finder.py +22 -1
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/common/material.py +65 -1
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/common/property.py +46 -1
- naxtopy-3.1.2/src/NaxToPy/Modules/static/composite/__init__.py +3 -0
- naxtopy-3.1.2/src/NaxToPy/Modules/static/composite/failure_analysis/N2PCompositeFailure.py +2043 -0
- naxtopy-3.1.0/src/NaxToPy/Modules/static/composite/failure_analysis/N2PCompositeFailure.py → naxtopy-3.1.2/src/NaxToPy/Modules/static/composite/failure_analysis/N2PFailureComposite_Backupy.py +407 -472
- naxtopy-3.1.2/src/NaxToPy/Modules/static/composite/failure_analysis/N2PFailureComposite_Vectorisation.py +2742 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/N2PGetFasteners.py +4 -2
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/joints/N2PJoint.py +77 -17
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/__init__.py +1 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2/src/NaxToPy.egg-info}/PKG-INFO +20 -5
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy.egg-info/SOURCES.txt +2 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy.egg-info/requires.txt +1 -1
- naxtopy-3.1.0/src/NaxToPy/Modules/static/composite/__init__.py +0 -2
- {naxtopy-3.1.0 → naxtopy-3.1.2}/LICENSE +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/setup.cfg +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/setup.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntity.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityElement.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityNode.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityShell.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQEntities/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeyword.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordBEAMSECTION.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordCOUPLING.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDENSITY.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDISTRIBUTING.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDISTRIBUTINGCOUPLING.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELASTIC.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELEMENT.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELSET.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordENDINSTANCE.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordENDPART.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordINSTANCE.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordKINEMATIC.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordKINEMATICCOUPLING.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordMATERIAL.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordNODE.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordNSET.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordORIENTATION.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordPART.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordPLASTIC.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSHELLSECTION.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSOLIDSECTION.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ABQKeywords/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/AllClasses.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PAbaqusInputData.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PConnector.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PCoord.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PFreeBody.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PIncrement.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PLoadCase.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PNastranInputData.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PNode.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PReport.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PResult.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PSection.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/N2PSet.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/ProgresBar.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Classes/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Constants/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Constants/librerias.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Errors/N2PColors.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Errors/N2PFileHandler.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Errors/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/Reference_Finder/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/_AuxFunc/_NetToPython.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/_AuxFunc/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Core/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/common/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/common/data_input_hdf5.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/common/hdf5.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/common/model_processor.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/envelope/N2PEnvelope.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/envelope/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/airbus/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/airbus/core_shear_crimping_airbus.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/airbus/dimpling_airbus.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/airbus/wrinkling_airbus.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/bruhn/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/cmh/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/cmh/core_shear_crimping_cmh.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/cmh/dimpling_cmh.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/cmh/wrinkling_cmh.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/esdu/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/hsb/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/hsb/wrinkling_hsb.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/hypersizer/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/hypersizer/crimping_hypersizer.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/hypersizer/dimpling_hypersizer.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/hypersizer/wrinkling_hypersizer.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/nasa/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/handbooks/nasa/wrinkling_nasa.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/n2ptoexe/N2PtoEXE.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/n2ptoexe/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/composite/delamination/N2PEdgeDelamination.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/composite/delamination/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/composite/failure_analysis/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/composite/sandwich/N2PSandwich.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/composite/sandwich/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/N2PCalculatorRFJoints.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/N2PCompRF.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/N2PFastenerAnalysis.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/N2PGetLoadFasteners.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/N2PMetalRF.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/N2PRivetRF.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/N2PUpdateFastener.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetAttachments.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetResults.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PInterpolation.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PLoadModel.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PRotation.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Check/Validation.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/AR1DElement.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARAttachment.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARBolt.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARPlate.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARPlateElements.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARAuxiliarFunctions.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARBilinearInterpolation.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARConfigurationInput.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARDerivedLoadCases.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARFileInputRivetsIDs.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARGetAttachments.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARGetBolts.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARReadResultsFromFile.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARResults.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARRotation.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARSerialize.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/joints/N2PAttachment.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/joints/N2PBolt.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/joints/N2PFastenerSystem.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/joints/N2PJointAnalysisParameters.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/joints/N2PPlate.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/fasteners/joints/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/metallic/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/metallic/neuber/N2PNeuber.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/Modules/static/metallic/neuber/__init__.py +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/NaxToPy.ico +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy/user_functions.txt +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy.egg-info/dependency_links.txt +0 -0
- {naxtopy-3.1.0 → naxtopy-3.1.2}/src/NaxToPy.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: NaxToPy
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.2
|
|
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
|
|
@@ -118,7 +118,7 @@ Classifier: Topic :: Scientific/Engineering
|
|
|
118
118
|
Requires-Python: >=3.9
|
|
119
119
|
Description-Content-Type: text/markdown
|
|
120
120
|
License-File: LICENSE
|
|
121
|
-
Requires-Dist: pythonnet>=3.0.
|
|
121
|
+
Requires-Dist: pythonnet>=3.0.4
|
|
122
122
|
Requires-Dist: numpy>=1.22.0
|
|
123
123
|
Requires-Dist: setuptools>=67.8.0
|
|
124
124
|
Requires-Dist: h5py>=3.12.1
|
|
@@ -155,7 +155,7 @@ additional software beyond NaxTo (see the Download and Homepage links on the lef
|
|
|
155
155
|
This version is compatible with **NaxTo 2025.1**.
|
|
156
156
|
Check in _Programs and Features_ the NaxTo version that is installed.
|
|
157
157
|
|
|
158
|
-
📘**Note:** If a specific NaxTo version is installed, search the [**NaxToPy History**](https://pypi.org/project/NaxToPy/3.1.
|
|
158
|
+
📘**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.
|
|
159
159
|
|
|
160
160
|
|
|
161
161
|
## Installation
|
|
@@ -186,6 +186,7 @@ same directory. When ever you want to use the NaxToPy package add the following
|
|
|
186
186
|
import sys
|
|
187
187
|
sys.path.append("...\directory")
|
|
188
188
|
import NaxToPy as n2p
|
|
189
|
+
|
|
189
190
|
## Updating NaxToPy
|
|
190
191
|
|
|
191
192
|
If python is callable from the command line:
|
|
@@ -357,12 +358,26 @@ is redundant. The coordinate system will prevail.
|
|
|
357
358
|
10. Feat: `N2PLoadModelContent.SetList` is now an encapsulated property.
|
|
358
359
|
11. Refactor: the method `N2PLoadModelContent.get_result_by_LCs_Incr()` is optimized.
|
|
359
360
|
|
|
361
|
+
### v.3.1.1
|
|
362
|
+
1. BugFix: Small error fixed in `N2PNeuber`.
|
|
363
|
+
2. Feat: New Failure criteria in `N2PCompositeFailure` -> Fiber Mode Concept
|
|
364
|
+
3. BugFix: The property `LevelList` of the abstract class `N2PLog` is now an attribute to be compatible with Python 3.13.
|
|
365
|
+
4. Feat: New class `N2PropMisc` for properties that are not supported.
|
|
366
|
+
5. BugFix: Small errors in `N2PGetFasteners`.
|
|
367
|
+
6. BugFix: Several errors are fixed for properties and materials when reading **InputFileAbaqus** (inp) and **Abaqus** (odb).
|
|
368
|
+
7. Feat: Now, when a executable is created, if the version of NaxTo of the exe matches the instaled, it will use the **installed** NaxTo libraries. If the version doesn't match or NaxTo is not installed, **exe** NaxTo libraries will be used.
|
|
369
|
+
8. BugFix: the keyword `THRU` is now supported in the bulk data card `SPC1` when reading from a Nastran Input File.
|
|
370
|
+
|
|
371
|
+
### v.3.1.2
|
|
372
|
+
1. BugFix: Changes to fix the Mat IDs attributes in N2Property from Abaqus files.
|
|
373
|
+
2. Refactor: Updated vectorised method for N2PCompositeFailure module.
|
|
374
|
+
3. Docs: Improved documentation in some methods.
|
|
360
375
|
|
|
361
376
|
# Documentation
|
|
362
377
|
|
|
363
378
|
**NaxToPy** is a package developed by Idaero Solutions© as a part of the **NaxTo** software.
|
|
364
379
|
|
|
365
|
-
NaxToPy only use
|
|
380
|
+
NaxToPy only use four dependeces:
|
|
366
381
|
- NumPy: https://numpy.org/
|
|
367
382
|
- PythonNET: https://pythonnet.github.io/
|
|
368
383
|
- Setuptools: https://setuptools.pypa.io/en/latest/index.html
|
|
@@ -573,7 +588,7 @@ def dataframe_results(model: "N2PModelContent", result: "N2PResult", sections=No
|
|
|
573
588
|
##
|
|
574
589
|
For more documentation visit https://idaerosolutions.com/Home/NaxToPy
|
|
575
590
|
|
|
576
|
-
|
|
591
|
+
Complete NaxToPy documentation at: https://www.idaerosolutions.com/NaxToDocumentation/NaxToPy/3.1.0/index.html
|
|
577
592
|
|
|
578
593
|
# License
|
|
579
594
|
|
|
@@ -27,7 +27,7 @@ additional software beyond NaxTo (see the Download and Homepage links on the lef
|
|
|
27
27
|
This version is compatible with **NaxTo 2025.1**.
|
|
28
28
|
Check in _Programs and Features_ the NaxTo version that is installed.
|
|
29
29
|
|
|
30
|
-
📘**Note:** If a specific NaxTo version is installed, search the [**NaxToPy History**](https://pypi.org/project/NaxToPy/3.1.
|
|
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.
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
## Installation
|
|
@@ -58,6 +58,7 @@ same directory. When ever you want to use the NaxToPy package add the following
|
|
|
58
58
|
import sys
|
|
59
59
|
sys.path.append("...\directory")
|
|
60
60
|
import NaxToPy as n2p
|
|
61
|
+
|
|
61
62
|
## Updating NaxToPy
|
|
62
63
|
|
|
63
64
|
If python is callable from the command line:
|
|
@@ -229,12 +230,26 @@ is redundant. The coordinate system will prevail.
|
|
|
229
230
|
10. Feat: `N2PLoadModelContent.SetList` is now an encapsulated property.
|
|
230
231
|
11. Refactor: the method `N2PLoadModelContent.get_result_by_LCs_Incr()` is optimized.
|
|
231
232
|
|
|
233
|
+
### v.3.1.1
|
|
234
|
+
1. BugFix: Small error fixed in `N2PNeuber`.
|
|
235
|
+
2. Feat: New Failure criteria in `N2PCompositeFailure` -> Fiber Mode Concept
|
|
236
|
+
3. BugFix: The property `LevelList` of the abstract class `N2PLog` is now an attribute to be compatible with Python 3.13.
|
|
237
|
+
4. Feat: New class `N2PropMisc` for properties that are not supported.
|
|
238
|
+
5. BugFix: Small errors in `N2PGetFasteners`.
|
|
239
|
+
6. BugFix: Several errors are fixed for properties and materials when reading **InputFileAbaqus** (inp) and **Abaqus** (odb).
|
|
240
|
+
7. Feat: Now, when a executable is created, if the version of NaxTo of the exe matches the instaled, it will use the **installed** NaxTo libraries. If the version doesn't match or NaxTo is not installed, **exe** NaxTo libraries will be used.
|
|
241
|
+
8. BugFix: the keyword `THRU` is now supported in the bulk data card `SPC1` when reading from a Nastran Input File.
|
|
242
|
+
|
|
243
|
+
### v.3.1.2
|
|
244
|
+
1. BugFix: Changes to fix the Mat IDs attributes in N2Property from Abaqus files.
|
|
245
|
+
2. Refactor: Updated vectorised method for N2PCompositeFailure module.
|
|
246
|
+
3. Docs: Improved documentation in some methods.
|
|
232
247
|
|
|
233
248
|
# Documentation
|
|
234
249
|
|
|
235
250
|
**NaxToPy** is a package developed by Idaero Solutions© as a part of the **NaxTo** software.
|
|
236
251
|
|
|
237
|
-
NaxToPy only use
|
|
252
|
+
NaxToPy only use four dependeces:
|
|
238
253
|
- NumPy: https://numpy.org/
|
|
239
254
|
- PythonNET: https://pythonnet.github.io/
|
|
240
255
|
- Setuptools: https://setuptools.pypa.io/en/latest/index.html
|
|
@@ -445,7 +460,7 @@ def dataframe_results(model: "N2PModelContent", result: "N2PResult", sections=No
|
|
|
445
460
|
##
|
|
446
461
|
For more documentation visit https://idaerosolutions.com/Home/NaxToPy
|
|
447
462
|
|
|
448
|
-
|
|
463
|
+
Complete NaxToPy documentation at: https://www.idaerosolutions.com/NaxToDocumentation/NaxToPy/3.1.0/index.html
|
|
449
464
|
|
|
450
465
|
# License
|
|
451
466
|
|
|
@@ -4,11 +4,11 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "NaxToPy"
|
|
7
|
-
version = "3.1.
|
|
7
|
+
version = "3.1.2"
|
|
8
8
|
license = {file = "LICENSE"}
|
|
9
9
|
authors = [ { name = "Idaero Solutions", email = "manuel.sanchez@idaerosolutions.com" }, ]
|
|
10
10
|
requires-python = ">=3.9"
|
|
11
|
-
dependencies = ["pythonnet>=3.0.
|
|
11
|
+
dependencies = ["pythonnet>=3.0.4",
|
|
12
12
|
"numpy>=1.22.0",
|
|
13
13
|
"setuptools>=67.8.0",
|
|
14
14
|
"h5py>=3.12.1"]
|
|
@@ -21,4 +21,4 @@ class N2PKeywordSURFACE(N2PKeyword):
|
|
|
21
21
|
@property
|
|
22
22
|
def EntityList(self) -> list[N2PEntity, ]:
|
|
23
23
|
"""List of entities (based on Type)"""
|
|
24
|
-
return
|
|
24
|
+
return [self._N2PKeyword__dictEntityToN2P[i] for i in self._N2PKeyword__info.EntityList]
|
|
@@ -96,77 +96,84 @@ class N2PComponent:
|
|
|
96
96
|
def get_result_list(self, sections=None, aveSections=-1, cornerData=False, aveNodes=-1, variation=100,
|
|
97
97
|
realPolar=0, coordsys: int = -1000,
|
|
98
98
|
v1: Union[tuple, np.ndarray] = (1,0,0), v2: Union[tuple, np.ndarray] = (0,1,0)) -> tuple[list, str]:
|
|
99
|
-
"""
|
|
100
|
-
|
|
101
|
-
results
|
|
102
|
-
|
|
103
|
-
Args:
|
|
99
|
+
"""Get the result array as a list with position information.
|
|
100
|
+
|
|
101
|
+
Returns a tuple containing the list of floats with the requested results
|
|
102
|
+
and a string indicating the position/location of the results.
|
|
104
103
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
104
|
+
Parameters
|
|
105
|
+
----------
|
|
106
|
+
sections : ``list[str] | list[N2PSection]``
|
|
107
|
+
Optional. Sections on which to perform operations. If None (default), operations
|
|
108
|
+
are performed on all sections.
|
|
109
|
+
aveSections : ``int``, default -1
|
|
110
|
+
Optional. Operation to perform among sections:
|
|
111
|
+
|
|
112
|
+
* -1: Maximum (default)
|
|
113
|
+
* -2: Minimum
|
|
114
|
+
* -3: Average
|
|
115
|
+
* -4: Extreme
|
|
116
|
+
* -6: Difference
|
|
117
|
+
|
|
118
|
+
cornerData : ``bool``, default False
|
|
119
|
+
Optional. Flag to control result location:
|
|
120
|
+
|
|
121
|
+
* True: Results at element nodes
|
|
122
|
+
* False: Results at element centroid (default)
|
|
123
|
+
|
|
124
|
+
aveNodes : ``int``, default -1
|
|
125
|
+
Optional. Operation among nodes when ``cornerData=True``:
|
|
126
|
+
|
|
127
|
+
* 0: None
|
|
128
|
+
* -1: Maximum (default)
|
|
129
|
+
* -2: Minimum
|
|
130
|
+
* -3: Average
|
|
131
|
+
* -6: Difference
|
|
132
|
+
|
|
133
|
+
variation : ``int``, default 100
|
|
134
|
+
Optional. Averaging parameter between nodes (0-100):
|
|
135
|
+
|
|
136
|
+
* 0: No averaging between nodes
|
|
137
|
+
* 100: Total averaging between nodes (default)
|
|
138
|
+
|
|
139
|
+
realPolar : ``int``, default 0
|
|
140
|
+
Optional. Data type for complex results:
|
|
141
|
+
|
|
142
|
+
* 1: Real/Imaginary
|
|
143
|
+
* 2: Magnitude/Phase
|
|
144
|
+
|
|
145
|
+
coordsys : ``int``, default -1000
|
|
146
|
+
Optional. Coordinate system for result representation:
|
|
147
|
+
|
|
148
|
+
* 0: Global coordinate system
|
|
149
|
+
* -1: Material coordinate system
|
|
150
|
+
* -10: User defined coordinate system
|
|
151
|
+
* -20: Element/Node user defined coordinate system
|
|
152
|
+
* -1000: Analysis coordinate system (default)
|
|
153
|
+
* \>0: Solver ID of predefined coordinate system
|
|
154
|
+
|
|
155
|
+
.. note::
|
|
156
|
+
|
|
157
|
+
In Nastran > 2021 the results in the OP2 could be in material coordinate
|
|
158
|
+
system if the user requested it.
|
|
159
|
+
|
|
160
|
+
v1 : ``tuple[float] | numpy.ndarray``, default (1, 0, 0)
|
|
161
|
+
Optional. 3D vector defining the x-axis of the coordinate system.
|
|
162
|
+
v2 : ``tuple[float] | numpy.ndarray``, default (0, 1, 0)
|
|
163
|
+
Optional. 3D vector defining the xy-plane. The coordinate system axes are generated as:
|
|
164
|
+
|
|
165
|
+
* x = v1
|
|
166
|
+
* z = v1 ^ v2 (cross product)
|
|
167
|
+
* y = z ^ x (cross product)
|
|
168
|
+
|
|
169
|
+
Returns
|
|
170
|
+
-------
|
|
171
|
+
tuple[list[float], str]
|
|
172
|
+
Tuple containing:
|
|
173
|
+
|
|
174
|
+
* **results list**: list of floats with the requested results
|
|
175
|
+
* **position**: string indicating the location/position of the results
|
|
159
176
|
"""
|
|
160
|
-
# Aquí se prepara la llamada a la funcion de NaxToModel.N2PModelContent.getArraytoPlot(). Esta usa como
|
|
161
|
-
# argumento un objeto de la clase N2ParamImputResults. Por se instancia y se modifican sus propiedades antes
|
|
162
|
-
# de hacer la llamada a la funcion.
|
|
163
|
-
|
|
164
|
-
# Aqui se mete el sistema de coordenadas en el que queremos que nos saque la informacion.
|
|
165
|
-
# Para ello primero comprobamos que es viable hacer la tansformacion (puede que aun no este implementada o que
|
|
166
|
-
# la componente simplemente no la admita al ser un escalar a secas)
|
|
167
|
-
|
|
168
|
-
#resultsParameters.coordSys = -10
|
|
169
|
-
#orientationcoordinatesystem = algo
|
|
170
177
|
|
|
171
178
|
resultsParameters = self._create_n2paraminputresult(None, sections, aveSections, cornerData, aveNodes, variation,
|
|
172
179
|
realPolar, coordsys, v1, v2)
|
|
@@ -190,76 +197,106 @@ class N2PComponent:
|
|
|
190
197
|
realPolar=0, coordsys: int = -1000,
|
|
191
198
|
v1: Union[tuple, np.ndarray ] = (1,0,0), v2: Union[tuple, np.ndarray ] = (0,1,0),
|
|
192
199
|
filter_list: list = None) -> tuple[np.array, str]:
|
|
193
|
-
"""
|
|
194
|
-
|
|
195
|
-
the results
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
200
|
+
"""Get the result array as a numpy array with position information.
|
|
201
|
+
|
|
202
|
+
Returns a tuple containing the numpy array of floats with the requested results
|
|
203
|
+
and a string indicating the position/location of the results.
|
|
204
|
+
|
|
205
|
+
Parameters
|
|
206
|
+
----------
|
|
207
|
+
sections : ``list[str] | list[N2PSection]``
|
|
208
|
+
Optional. Sections on which to perform operations. If None (default), operations
|
|
209
|
+
are performed on all sections.
|
|
210
|
+
aveSections : ``int``, default -1
|
|
211
|
+
Optional. Operation to perform among sections:
|
|
212
|
+
|
|
213
|
+
* -1: Maximum (default)
|
|
214
|
+
* -2: Minimum
|
|
215
|
+
* -3: Average
|
|
216
|
+
* -4: Extreme
|
|
217
|
+
* -6: Difference
|
|
218
|
+
|
|
219
|
+
cornerData : ``bool``, default False
|
|
220
|
+
Optional. Flag to control result location:
|
|
221
|
+
|
|
222
|
+
* True: Results at element nodes
|
|
223
|
+
* False: Results at element centroid (default)
|
|
224
|
+
|
|
225
|
+
aveNodes : ``int``, default -1
|
|
226
|
+
Optional. Operation among nodes when ``cornerData=True``:
|
|
227
|
+
|
|
228
|
+
* 0: None
|
|
229
|
+
* -1: Maximum (default)
|
|
230
|
+
* -2: Minimum
|
|
231
|
+
* -3: Average
|
|
232
|
+
* -6: Difference
|
|
233
|
+
|
|
234
|
+
variation : ``int``, default 100
|
|
235
|
+
Optional. Averaging parameter between nodes (0-100):
|
|
236
|
+
|
|
237
|
+
* 0: No averaging between nodes
|
|
238
|
+
* 100: Total averaging between nodes (default)
|
|
239
|
+
|
|
240
|
+
realPolar : ``int``, default 0
|
|
241
|
+
Optional. Data type for complex results:
|
|
242
|
+
|
|
243
|
+
* 1: Real/Imaginary
|
|
244
|
+
* 2: Magnitude/Phase
|
|
245
|
+
|
|
246
|
+
coordsys : ``int``, default -1000
|
|
247
|
+
Optional. Coordinate system for result representation:
|
|
248
|
+
|
|
249
|
+
* 0: Global coordinate system
|
|
250
|
+
* -1: Material coordinate system
|
|
251
|
+
* -10: User defined coordinate system
|
|
252
|
+
* -20: Element/Node user defined coordinate system
|
|
253
|
+
* -1000: Analysis coordinate system (default)
|
|
254
|
+
* \>0: Solver ID of predefined coordinate system
|
|
255
|
+
|
|
256
|
+
.. note::
|
|
257
|
+
|
|
258
|
+
In Nastran > 2021 the results in the OP2 could be in material coordinate
|
|
259
|
+
system if the user requested it.
|
|
260
|
+
|
|
261
|
+
v1 : ``tuple[float] | numpy.ndarray``, default (1, 0, 0)
|
|
262
|
+
Optional. 3D vector defining the x-axis of the coordinate system.
|
|
263
|
+
v2 : ``tuple[float] | numpy.ndarray``, default (0, 1, 0)
|
|
264
|
+
Optional. 3D vector defining the xy-plane. The coordinate system axes are generated as:
|
|
265
|
+
|
|
266
|
+
* x = v1
|
|
267
|
+
* z = v1 ^ v2 (cross product)
|
|
268
|
+
* y = z ^ x (cross product)
|
|
269
|
+
|
|
270
|
+
filter_list : ``list[N2PElement] | list[N2PNode]``
|
|
271
|
+
Optional. List of elements or nodes where results are requested. If None, results
|
|
272
|
+
for all elements/nodes are returned.
|
|
273
|
+
|
|
274
|
+
.. warning::
|
|
275
|
+
|
|
276
|
+
Filtering results can slow down extraction. If results are needed for multiple
|
|
277
|
+
separate lists, extract all results first and filter afterward.
|
|
278
|
+
|
|
279
|
+
Returns
|
|
280
|
+
-------
|
|
281
|
+
tuple[numpy.ndarray, str]
|
|
282
|
+
Tuple containing:
|
|
283
|
+
|
|
284
|
+
* **results array**: numpy array of floats with the requested results
|
|
285
|
+
* **position**: string indicating the location/position of the results
|
|
286
|
+
|
|
258
287
|
Examples
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
288
|
+
--------
|
|
289
|
+
>>> # N2PComponent is a N2PLoadCase.get_results("DISPLACEMENTS").get_component("X")
|
|
290
|
+
>>> displ_X_array, where = N2PComponent.get_result_ndarray(
|
|
291
|
+
... aveSections=-3,
|
|
292
|
+
... coordsys=-1
|
|
293
|
+
... )
|
|
294
|
+
|
|
295
|
+
>>> # N2PComponent is a N2PLoadCase.get_results("STRESSES").get_component("XX")
|
|
296
|
+
>>> stress_array, where = N2PComponent.get_result_ndarray(
|
|
297
|
+
... v1=(-1, 0, 0),
|
|
298
|
+
... v2=(0, -1, 0)
|
|
299
|
+
... )
|
|
263
300
|
"""
|
|
264
301
|
resultsParameters = self._create_n2paraminputresult(None, sections, aveSections, cornerData, aveNodes, variation,
|
|
265
302
|
realPolar, coordsys, v1, v2)
|
|
@@ -69,6 +69,9 @@ class N2PElement:
|
|
|
69
69
|
if self.__model.Solver == "Abaqus":
|
|
70
70
|
id_prop = self.__model._N2PModelContent__propertyIDtoStr.get(id_prop)
|
|
71
71
|
part = "ASSEMBLY"
|
|
72
|
+
elif self.__model.Solver == "InputFileAbaqus":
|
|
73
|
+
id_prop = self.__model._N2PModelContent__propertyIDtoStr.get(id_prop)
|
|
74
|
+
part = self.PartID
|
|
72
75
|
else:
|
|
73
76
|
part = self.PartID
|
|
74
77
|
return (id_prop, part)
|
|
@@ -28,7 +28,7 @@ class N2PMaterial(ABC):
|
|
|
28
28
|
"""
|
|
29
29
|
ID of the material.
|
|
30
30
|
"""
|
|
31
|
-
if self.__model__.Solver == "Abaqus":
|
|
31
|
+
if self.__model__.Solver == "Abaqus" or self.__model__.Solver == "InputFileAbaqus":
|
|
32
32
|
return self.__info__.Name
|
|
33
33
|
else:
|
|
34
34
|
return self.__info__.ID
|
|
@@ -63,7 +63,7 @@ class N2PMaterial(ABC):
|
|
|
63
63
|
|
|
64
64
|
# Special Method for Object Representation -------------------------------------------------------------------------
|
|
65
65
|
def __repr__(self):
|
|
66
|
-
if self.__model__.Solver == "Abaqus":
|
|
66
|
+
if self.__model__.Solver == "Abaqus" or self.__model__.Solver == "InputFileAbaqus":
|
|
67
67
|
reprs = f"N2PMaterial(\'{self.ID}\', \'{self.MatType}\')"
|
|
68
68
|
else:
|
|
69
69
|
reprs = f"N2PMaterial({self.ID}, \'{self.MatType}\')"
|
|
@@ -66,7 +66,7 @@ class N2PProperty(ABC):
|
|
|
66
66
|
|
|
67
67
|
# Special Method for Object Representation -------------------------------------------------------------------------
|
|
68
68
|
def __repr__(self):
|
|
69
|
-
if self.__model.Solver == "Abaqus":
|
|
69
|
+
if self.__model.Solver == "Abaqus" or self.__model.Solver == "InputFileAbaqus":
|
|
70
70
|
reprs = f"N2PProperty(\'{self.Name}\', \'{self.PropertyType}\')"
|
|
71
71
|
else:
|
|
72
72
|
reprs = f"N2PProperty({self.ID}, \'{self.PropertyType}\')"
|
|
@@ -123,6 +123,8 @@ class N2PComp(N2PProperty):
|
|
|
123
123
|
def MatID(self) -> tuple[tuple[int, str]]:
|
|
124
124
|
"""Tuple with the solver tuple of thr id and part of the material for each ply of the laminate"""
|
|
125
125
|
part = self.PartID
|
|
126
|
+
if self.__model__.Solver == "InputFileAbaqus":
|
|
127
|
+
return tuple((self.__model__._N2PModelContent__materialsID[mat], part) for mat in self.__info__.Mat)
|
|
126
128
|
return tuple((mat, part) for mat in self.__info__.Mat)
|
|
127
129
|
|
|
128
130
|
@property
|
|
@@ -386,16 +388,22 @@ class N2PShell(N2PProperty):
|
|
|
386
388
|
@property
|
|
387
389
|
def MatMemID(self) -> Union[tuple[int, str], tuple[str, str]]:
|
|
388
390
|
"""Material index for the membrane behavior"""
|
|
391
|
+
if self.__model__.Solver == "InputFileAbaqus":
|
|
392
|
+
return (self.__model__._N2PModelContent__materialsID[self.__info__.MatMemID], "ASSEMBLY")
|
|
389
393
|
return (self.__info__.MatMemID, self.PartID)
|
|
390
394
|
|
|
391
395
|
@property
|
|
392
396
|
def MatBenID(self) -> Union[tuple[int, str], tuple[str, str]]:
|
|
393
397
|
"""Material index for the bending behavior"""
|
|
398
|
+
if self.__model__.Solver == "InputFileAbaqus":
|
|
399
|
+
return (self.__model__._N2PModelContent__materialsID[self.__info__.MatBenID], "ASSEMBLY")
|
|
394
400
|
return (self.__info__.MatBenID, self.PartID)
|
|
395
401
|
|
|
396
402
|
@property
|
|
397
403
|
def MatSheID(self) -> Union[tuple[int, str], tuple[str, str]]:
|
|
398
404
|
"""Material index for the shell behavior"""
|
|
405
|
+
if self.__model__.Solver == "InputFileAbaqus":
|
|
406
|
+
return (self.__model__._N2PModelContent__materialsID[self.__info__.MatSheID], "ASSEMBLY")
|
|
399
407
|
return (self.__info__.MatSheID, self.PartID)
|
|
400
408
|
|
|
401
409
|
@property
|
|
@@ -427,6 +435,8 @@ class N2PShell(N2PProperty):
|
|
|
427
435
|
@property
|
|
428
436
|
def MatCouplID(self) -> Union[tuple[int, str], tuple[str, str]]:
|
|
429
437
|
"""Material identification number for membrane-bending coupling"""
|
|
438
|
+
if self.__model__.Solver == "InputFileAbaqus":
|
|
439
|
+
return (self.__model__._N2PModelContent__materialsID[self.__info__.MatCoupl], "ASSEMBLY")
|
|
430
440
|
return (self.__info__.MatCoupl, self.PartID)
|
|
431
441
|
# ----------------------------------------------------------------------------------------------------------------------
|
|
432
442
|
|
|
@@ -448,6 +458,8 @@ class N2PSolid(N2PProperty):
|
|
|
448
458
|
@property
|
|
449
459
|
def MatID(self) -> Union[tuple[int, str], tuple[str, str]]:
|
|
450
460
|
"""Index of the material of the solid property"""
|
|
461
|
+
if self.__model__.Solver == "InputFileAbaqus":
|
|
462
|
+
return (self.__model__._N2PModelContent__materialsID[self.__info__.MatID], "ASSEMBLY")
|
|
451
463
|
return (self.__info__.MatID, self.PartID)
|
|
452
464
|
|
|
453
465
|
@property
|
|
@@ -492,10 +504,9 @@ class N2PRod(N2PProperty):
|
|
|
492
504
|
@property
|
|
493
505
|
def MatID(self) -> Union[tuple[int, str], tuple[str, str]]:
|
|
494
506
|
"""Material identification number."""
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
return (mat_id, self.PartID)
|
|
507
|
+
if self.__model__.Solver == "InputFileAbaqus":
|
|
508
|
+
return (self.__model__._N2PModelContent__materialsID[self.__info__.MatID], "ASSEMBLY")
|
|
509
|
+
return (self.__info__.MatID, self.PartID)
|
|
499
510
|
|
|
500
511
|
@property
|
|
501
512
|
def Area(self) -> float:
|
|
@@ -534,8 +545,8 @@ class N2PBeam(N2PProperty):
|
|
|
534
545
|
def MatID(self) -> Union[tuple[int, str], tuple[str, str]]:
|
|
535
546
|
"""Material identification number."""
|
|
536
547
|
mat_id = self.__info__.MatID
|
|
537
|
-
if self.__model__.Solver == "
|
|
538
|
-
|
|
548
|
+
if self.__model__.Solver == "InputFileAbaqus":
|
|
549
|
+
return (self.__model__._N2PModelContent__materialsID[mat_id], "ASSEMBLY")
|
|
539
550
|
elif mat_id == -1:
|
|
540
551
|
return N2PLog.Warning.W702()
|
|
541
552
|
return (mat_id, self.PartID)
|
|
@@ -899,10 +910,9 @@ class N2PWeld(N2PProperty):
|
|
|
899
910
|
"""
|
|
900
911
|
Material identification number.
|
|
901
912
|
"""
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
return (mat_id, self.PartID)
|
|
913
|
+
if self.__model__.Solver == "InputFileAbaqus":
|
|
914
|
+
return (self.__model__._N2PModelContent__materialsID[self.__info__.MatID], "ASSEMBLY")
|
|
915
|
+
return (self.__info__.MatID, self.PartID)
|
|
906
916
|
|
|
907
917
|
@property
|
|
908
918
|
def Diameter(self) -> float:
|
|
@@ -957,10 +967,9 @@ class N2PBeamL(N2PProperty):
|
|
|
957
967
|
"""
|
|
958
968
|
Material identification number.
|
|
959
969
|
"""
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
return (mat_id, self.PartID)
|
|
970
|
+
if self.__model__.Solver == "InputFileAbaqus":
|
|
971
|
+
return (self.__model__._N2PModelContent__materialsID[self.__info__.MatID], "ASSEMBLY")
|
|
972
|
+
return (self.__info__.MatID, self.PartID)
|
|
964
973
|
|
|
965
974
|
@property
|
|
966
975
|
def Group(self) -> str:
|
|
@@ -1005,3 +1014,22 @@ class N2PBeamL(N2PProperty):
|
|
|
1005
1014
|
return self.__info__.FractionalDistance
|
|
1006
1015
|
|
|
1007
1016
|
|
|
1017
|
+
class N2PPropMisc(N2PProperty):
|
|
1018
|
+
"""
|
|
1019
|
+
Class representing the undefined properties (equivalent to N2MatMisc in C#).
|
|
1020
|
+
It derives from N2PProperty.
|
|
1021
|
+
"""
|
|
1022
|
+
def __init__(self, information, model_father):
|
|
1023
|
+
"""
|
|
1024
|
+
Constructor for N2PMatMisc, mapping the properties from the C# class.
|
|
1025
|
+
"""
|
|
1026
|
+
super().__init__(information, model_father)
|
|
1027
|
+
self.__info__ = information
|
|
1028
|
+
self.__model__ = model_father
|
|
1029
|
+
|
|
1030
|
+
@property
|
|
1031
|
+
def QualitiesDict(self) -> dict[str, float]:
|
|
1032
|
+
"""
|
|
1033
|
+
Dictionary with the material properties and their values.
|
|
1034
|
+
"""
|
|
1035
|
+
return self.__info__.QualitiesDict
|