NaxToPy 3.2.2__tar.gz → 3.2.3__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.2.2/src/NaxToPy.egg-info → naxtopy-3.2.3}/PKG-INFO +12 -4
- {naxtopy-3.2.2 → naxtopy-3.2.3}/README.md +9 -1
- {naxtopy-3.2.2 → naxtopy-3.2.3}/pyproject.toml +3 -3
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PNastranInputData.py +93 -51
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Constants/Constants.py +4 -4
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/N2PModelContent.py +31 -33
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/joints/N2PBolt.py +1 -1
- {naxtopy-3.2.2 → naxtopy-3.2.3/src/NaxToPy.egg-info}/PKG-INFO +12 -4
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy.egg-info/SOURCES.txt +0 -2
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy.egg-info/requires.txt +2 -2
- naxtopy-3.2.2/src/NaxToPy/Modules/static/composite/failure_analysis/N2PFailureComposite_Backupy.py +0 -2000
- naxtopy-3.2.2/src/NaxToPy/Modules/static/composite/failure_analysis/N2PFailureComposite_Vectorisation.py +0 -2742
- {naxtopy-3.2.2 → naxtopy-3.2.3}/LICENSE +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/setup.cfg +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/setup.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntity.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityElement.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityNode.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityShell.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQEntities/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeyword.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordBEAMSECTION.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordCOUPLING.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDENSITY.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDISTRIBUTING.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDISTRIBUTINGCOUPLING.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELASTIC.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELEMENT.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELSET.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordENDINSTANCE.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordENDPART.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordINSTANCE.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordKINEMATIC.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordKINEMATICCOUPLING.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordMATERIAL.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordNODE.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordNSET.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordORIENTATION.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordPART.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordPLASTIC.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSHELLSECTION.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSOLIDSECTION.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSURFACE.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ABQKeywords/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/AllClasses.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PAbaqusInputData.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PComponent.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PConnector.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PCoord.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PElement.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PFreeBody.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PIncrement.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PLoadCase.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PMaterial.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PNode.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PProperty.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PReport.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PResult.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PSection.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/N2PSet.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/ProgresBar.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Classes/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Constants/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Constants/librerias.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Errors/N2PColors.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Errors/N2PFileHandler.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Errors/N2PLog.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Errors/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Reference_Finder/__Reference_Finder.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/Reference_Finder/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/_AuxFunc/_NetToPython.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/_AuxFunc/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Core/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/common/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/common/data_input_hdf5.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/common/hdf5.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/common/material.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/common/model_processor.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/common/property.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/envelope/N2PEnvelope.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/envelope/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/airbus/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/airbus/core_shear_crimping_airbus.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/airbus/dimpling_airbus.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/airbus/wrinkling_airbus.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/bruhn/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/cmh/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/cmh/core_shear_crimping_cmh.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/cmh/dimpling_cmh.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/cmh/wrinkling_cmh.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/esdu/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/hsb/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/hsb/wrinkling_hsb.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/hypersizer/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/hypersizer/crimping_hypersizer.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/hypersizer/dimpling_hypersizer.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/hypersizer/wrinkling_hypersizer.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/nasa/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/handbooks/nasa/wrinkling_nasa.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/n2ptoexe/N2PtoEXE.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/n2ptoexe/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/numericaltools/N2PCoefficientsFinder.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/numericaltools/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/composite/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/composite/delamination/N2PEdgeDelamination.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/composite/delamination/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/composite/failure_analysis/N2PCompositeFailure.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/composite/failure_analysis/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/composite/sandwich/N2PSandwich.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/composite/sandwich/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/N2PCalculatorRFJoints.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/N2PCompRF.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/N2PFastenerAnalysis.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/N2PGetFasteners.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/N2PGetLoadFasteners.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/N2PMetalRF.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/N2PRivetRF.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/N2PUpdateFastener.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetAttachments.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetResults.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PInterpolation.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PLoadModel.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PRotation.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Check/Validation.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/AR1DElement.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARAttachment.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARBolt.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARPlate.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARPlateElements.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARAuxiliarFunctions.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARBilinearInterpolation.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARConfigurationInput.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARDerivedLoadCases.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARFileInputRivetsIDs.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARGetAttachments.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARGetBolts.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARReadResultsFromFile.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARResults.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARRotation.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARSerialize.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/joints/N2PAttachment.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/joints/N2PFastenerSystem.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/joints/N2PJoint.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/joints/N2PJointAnalysisParameters.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/joints/N2PPlate.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/fasteners/joints/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/metallic/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/metallic/neuber/N2PNeuber.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/Modules/static/metallic/neuber/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/NaxToPy.ico +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/__init__.py +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy/user_functions.txt +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/src/NaxToPy.egg-info/dependency_links.txt +0 -0
- {naxtopy-3.2.2 → naxtopy-3.2.3}/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.2.
|
|
3
|
+
Version: 3.2.3
|
|
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
|
|
@@ -18,9 +18,9 @@ Requires-Python: >=3.9
|
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
20
|
Requires-Dist: pythonnet>=3.0.4
|
|
21
|
-
Requires-Dist: numpy>=1.
|
|
21
|
+
Requires-Dist: numpy>=1.25.1
|
|
22
22
|
Requires-Dist: setuptools>=67.8.0
|
|
23
|
-
Requires-Dist: h5py>=3.
|
|
23
|
+
Requires-Dist: h5py>=3.8.0
|
|
24
24
|
Dynamic: download-url
|
|
25
25
|
Dynamic: home-page
|
|
26
26
|
Dynamic: license-file
|
|
@@ -292,7 +292,15 @@ is redundant. The coordinate system will prevail.
|
|
|
292
292
|
1. BugFix: Logs message are not printed double when the buffer is called several times.
|
|
293
293
|
2. BugFix: `get_load_case()` now returns correctly the load cases if it is called before and after calling `import_results_from_files()`.
|
|
294
294
|
3. Refactor: New structure for the h5 files generated by N2PNeuber module.
|
|
295
|
-
4. BugFix: MCID in CQUAD4 and CTRIA3 are now correctly
|
|
295
|
+
4. BugFix: MCID in CQUAD4 and CTRIA3 are now correctly read from a bdf file.
|
|
296
|
+
|
|
297
|
+
### v.3.2.3
|
|
298
|
+
1. Refactor: lower minimum required versions of NumPy and HDF5.
|
|
299
|
+
- numpy >= 1.25.1
|
|
300
|
+
- h5py >= 3.8.0
|
|
301
|
+
2. Feat: Now is possible to read Nastran and Optistruct **SET**s. They are loaded as `N2Set`.
|
|
302
|
+
3. Refactor: Reorder in `N2PNastranInputData.find_cards()` params making superElements optional. `category` is the first argument. `superElements` is now optional (default=None) to allow searching across all superelements by default.
|
|
303
|
+
4. BugFix: Internal lazy dictionary for N2Cards (reading a Nastran or Optistruct input file) is fixed.
|
|
296
304
|
|
|
297
305
|
# Documentation
|
|
298
306
|
|
|
@@ -265,7 +265,15 @@ is redundant. The coordinate system will prevail.
|
|
|
265
265
|
1. BugFix: Logs message are not printed double when the buffer is called several times.
|
|
266
266
|
2. BugFix: `get_load_case()` now returns correctly the load cases if it is called before and after calling `import_results_from_files()`.
|
|
267
267
|
3. Refactor: New structure for the h5 files generated by N2PNeuber module.
|
|
268
|
-
4. BugFix: MCID in CQUAD4 and CTRIA3 are now correctly
|
|
268
|
+
4. BugFix: MCID in CQUAD4 and CTRIA3 are now correctly read from a bdf file.
|
|
269
|
+
|
|
270
|
+
### v.3.2.3
|
|
271
|
+
1. Refactor: lower minimum required versions of NumPy and HDF5.
|
|
272
|
+
- numpy >= 1.25.1
|
|
273
|
+
- h5py >= 3.8.0
|
|
274
|
+
2. Feat: Now is possible to read Nastran and Optistruct **SET**s. They are loaded as `N2Set`.
|
|
275
|
+
3. Refactor: Reorder in `N2PNastranInputData.find_cards()` params making superElements optional. `category` is the first argument. `superElements` is now optional (default=None) to allow searching across all superelements by default.
|
|
276
|
+
4. BugFix: Internal lazy dictionary for N2Cards (reading a Nastran or Optistruct input file) is fixed.
|
|
269
277
|
|
|
270
278
|
# Documentation
|
|
271
279
|
|
|
@@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "NaxToPy"
|
|
7
|
-
version = "3.2.
|
|
7
|
+
version = "3.2.3"
|
|
8
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.25.1",
|
|
13
13
|
"setuptools>=67.8.0",
|
|
14
|
-
"h5py>=3.
|
|
14
|
+
"h5py>=3.8.0"]
|
|
15
15
|
description = "Package for postprocessing FEM results in Python"
|
|
16
16
|
readme = "README.md"
|
|
17
17
|
classifiers = ["Intended Audience :: Science/Research",
|
|
@@ -6,60 +6,86 @@ from typing import Union, overload, Literal
|
|
|
6
6
|
|
|
7
7
|
from NaxToPy.Core.Errors.N2PLog import N2PLog
|
|
8
8
|
|
|
9
|
+
from typing import Union
|
|
10
|
+
|
|
9
11
|
class _LazyList(list):
|
|
10
12
|
"""
|
|
11
13
|
A lazy list connected to a LazyDict. The items are lazily instantiated
|
|
12
|
-
from the LazyDict when accessed. It is immutable
|
|
14
|
+
from the LazyDict when accessed. It is immutable.
|
|
13
15
|
"""
|
|
14
16
|
def __init__(self, lazy_dict):
|
|
15
|
-
|
|
17
|
+
# Extract the C# object references (not the tuple keys!)
|
|
18
|
+
self._cs_refs = []
|
|
19
|
+
for hash_code, cs_list in lazy_dict._hash_to_cs_list.items():
|
|
20
|
+
self._cs_refs.extend(cs_list)
|
|
21
|
+
|
|
22
|
+
super().__init__([None] * len(self._cs_refs)) # Initialize with placeholders
|
|
16
23
|
self._lazy_dict = lazy_dict
|
|
17
|
-
self.keys = list(lazy_dict.keys()) # Extract keys from the LazyDict
|
|
18
24
|
|
|
19
25
|
def __getitem__(self, index: Union[slice, int]):
|
|
20
|
-
if isinstance(index,
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
if isinstance(index, slice):
|
|
27
|
+
# Handle slice: load each item in the slice range
|
|
28
|
+
indices = range(*index.indices(len(self._cs_refs)))
|
|
29
|
+
return [self._load_item(i) for i in indices]
|
|
23
30
|
else:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
# Handle single index
|
|
32
|
+
if not (-len(self._cs_refs) <= index < len(self._cs_refs)):
|
|
33
|
+
raise IndexError("list index out of range")
|
|
34
|
+
|
|
35
|
+
# Normalize negative indices
|
|
36
|
+
if index < 0:
|
|
37
|
+
index = len(self._cs_refs) + index
|
|
38
|
+
|
|
39
|
+
return self._load_item(index)
|
|
40
|
+
|
|
41
|
+
def __iter__(self):
|
|
42
|
+
"""Override iterator to trigger lazy loading."""
|
|
43
|
+
for i in range(len(self._cs_refs)):
|
|
44
|
+
yield self._load_item(i)
|
|
45
|
+
|
|
46
|
+
def _load_item(self, index: int):
|
|
47
|
+
"""Load and cache a single item at the given index."""
|
|
29
48
|
value = super().__getitem__(index)
|
|
30
|
-
|
|
49
|
+
|
|
31
50
|
if value is None:
|
|
32
|
-
#
|
|
33
|
-
|
|
51
|
+
# Get the C# object reference and use it to access LazyDict
|
|
52
|
+
cs_ref = self._cs_refs[index]
|
|
53
|
+
value = self._lazy_dict[cs_ref] # Pass C# object
|
|
34
54
|
# Update the list with the created value
|
|
35
55
|
super().__setitem__(index, value)
|
|
36
|
-
|
|
56
|
+
|
|
37
57
|
return value
|
|
38
|
-
|
|
58
|
+
|
|
59
|
+
# Make it truly immutable by blocking mutations
|
|
39
60
|
def __setitem__(self, index, value):
|
|
40
|
-
raise TypeError("
|
|
41
|
-
|
|
61
|
+
raise TypeError("_LazyList is immutable")
|
|
62
|
+
|
|
63
|
+
def __delitem__(self, index):
|
|
64
|
+
raise TypeError("_LazyList is immutable")
|
|
65
|
+
|
|
42
66
|
def append(self, value):
|
|
43
|
-
raise TypeError("
|
|
44
|
-
|
|
67
|
+
raise TypeError("_LazyList is immutable")
|
|
68
|
+
|
|
45
69
|
def extend(self, iterable):
|
|
46
|
-
raise TypeError("
|
|
47
|
-
|
|
70
|
+
raise TypeError("_LazyList is immutable")
|
|
71
|
+
|
|
48
72
|
def insert(self, index, value):
|
|
49
|
-
raise TypeError("
|
|
50
|
-
|
|
51
|
-
def pop(self, index=-1):
|
|
52
|
-
raise TypeError("ListBulkDataCards is immutable")
|
|
53
|
-
|
|
73
|
+
raise TypeError("_LazyList is immutable")
|
|
74
|
+
|
|
54
75
|
def remove(self, value):
|
|
55
|
-
raise TypeError("
|
|
56
|
-
|
|
76
|
+
raise TypeError("_LazyList is immutable")
|
|
77
|
+
|
|
78
|
+
def pop(self, index=-1):
|
|
79
|
+
raise TypeError("_LazyList is immutable")
|
|
80
|
+
|
|
57
81
|
def clear(self):
|
|
58
|
-
raise TypeError("
|
|
82
|
+
raise TypeError("_LazyList is immutable")
|
|
59
83
|
|
|
60
|
-
def
|
|
61
|
-
|
|
62
|
-
|
|
84
|
+
def sort(self, **kwargs):
|
|
85
|
+
raise TypeError("_LazyList is immutable")
|
|
86
|
+
|
|
87
|
+
def reverse(self):
|
|
88
|
+
raise TypeError("_LazyList is immutable")
|
|
63
89
|
|
|
64
90
|
|
|
65
91
|
class IndexTrackingList(list):
|
|
@@ -298,30 +324,44 @@ class N2PNastranInputData:
|
|
|
298
324
|
# self.__listcomments = [N2PInputDataNas(i) for i in self.__inputfiledata.StructuredInfo.ModelComments]
|
|
299
325
|
# return self.__listcomments
|
|
300
326
|
|
|
301
|
-
def find_cards(self,
|
|
327
|
+
def find_cards(self,
|
|
302
328
|
category: Literal["GRID", "ELEMENT", "CONNECTOR", "PROPERTY", "MATERIAL", "COORDINATESYSTEM", "LOAD", "CONSTRAINT"],
|
|
303
|
-
cardTypes: list[str] = None, filters: dict[str, object] = None) -> list [N2PCard]:
|
|
304
|
-
"""Searches for cards based on specified criteria
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
329
|
+
cardTypes: list[str] = None, filters: dict[str, object] = None, superElements: int = None) -> list [N2PCard]:
|
|
330
|
+
"""Searches for cards based on specified criteria.
|
|
331
|
+
|
|
332
|
+
Args:
|
|
333
|
+
category: Card category to search. Valid values: GRID, ELEMENT,
|
|
334
|
+
CONNECTOR, PROPERTY, MATERIAL, COORDINATESYSTEM, LOAD, CONSTRAINT.
|
|
335
|
+
cardTypes: Specific card types to filter by (e.g., CQUAD4, PBEAM, COORD2R).
|
|
336
|
+
If None, all card types within the category are returned.
|
|
337
|
+
filters: Dictionary of field-value pairs to filter results. Available
|
|
338
|
+
fields depend on the category:
|
|
310
339
|
- GRID: "ID", "CP", "CD", "PS", "SEID", "X1", "X2", "X3"
|
|
311
|
-
- ELEMENT: "EID,
|
|
340
|
+
- ELEMENT: "EID", "PID", "NodeArray"
|
|
312
341
|
- CONNECTOR:
|
|
313
342
|
- PROPERTY: "PID"
|
|
314
343
|
- MATERIAL: "MID"
|
|
315
344
|
- COORDINATESYSTEM: "CoordinateSystemIds", "ReferenceSystemId"
|
|
316
345
|
- LOAD:
|
|
317
346
|
- CONSTRAINT:
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
347
|
+
superElements: Superelement (part) ID to search within. Use 0 for the
|
|
348
|
+
global model. If None, searches across all superelements.
|
|
349
|
+
|
|
350
|
+
Returns:
|
|
351
|
+
List of N2PCard objects matching the specified criteria.
|
|
352
|
+
|
|
353
|
+
Examples:
|
|
354
|
+
>>> # Get all grids from global model
|
|
355
|
+
>>> grids = model.ModelInputData.find_cards("GRID", superElements=0)
|
|
356
|
+
|
|
357
|
+
>>> # Get all CQUAD4 elements from global model
|
|
358
|
+
>>> quads = model.ModelInputData.find_cards("ELEMENT", ["CQUAD4"], superElements=0)
|
|
359
|
+
|
|
360
|
+
>>> # Get PSHELL property with PID=3
|
|
361
|
+
>>> pshell_3 = model.ModelInputData.find_cards("PROPERTY", ["PSHELL"], {"PID": 3}, superElements=0)
|
|
362
|
+
|
|
363
|
+
>>> # Get all grids with CP=10 across all superelements
|
|
364
|
+
>>> grids_cp10 = model.ModelInputData.find_cards("GRID", filters={"CP": 10})
|
|
325
365
|
"""
|
|
326
366
|
# Convert superElements (part id) to System.Byte[] (or None)
|
|
327
367
|
if not superElements and superElements != 0:
|
|
@@ -368,7 +408,7 @@ class N2PNastranInputData:
|
|
|
368
408
|
|
|
369
409
|
cs_result = self.__inputfiledata.BulkDataSection.FindCards(part, category, cardTypes, filter_names, filter_values)
|
|
370
410
|
|
|
371
|
-
return [self.__dictcardscston2p[
|
|
411
|
+
return [self.__dictcardscston2p[i] for i in cs_result]
|
|
372
412
|
|
|
373
413
|
|
|
374
414
|
def print_include_hierarchy(self) -> None:
|
|
@@ -13361,5 +13401,7 @@ CONSTRUCTDICT = {
|
|
|
13361
13401
|
"SPCD_NASTRAN": SPCDNAS,
|
|
13362
13402
|
"SPC1": SPC1,
|
|
13363
13403
|
"SPCADD": SPCADD,
|
|
13364
|
-
"UNSUPPORTED": N2PCard
|
|
13404
|
+
"UNSUPPORTED": N2PCard,
|
|
13405
|
+
"FIELD_MAPPING_ERROR_NASTRAN": N2PCard,
|
|
13406
|
+
"FIELD_MAPPING_ERROR_OPTISTRUCT": N2PCard
|
|
13365
13407
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"""Constants of the NaxToPy package"""
|
|
2
2
|
|
|
3
3
|
# NaxToPy Version
|
|
4
|
-
VERSION = "3.2.
|
|
4
|
+
VERSION = "3.2.3"
|
|
5
5
|
|
|
6
6
|
# Supported for Naxto:
|
|
7
7
|
NAXTO_VERSION = '2025R2'
|
|
8
|
-
NAXTO_STEP = "
|
|
9
|
-
NAXTO_ADVANCED_INSTALLER = "2025.2.
|
|
8
|
+
NAXTO_STEP = "3"
|
|
9
|
+
NAXTO_ADVANCED_INSTALLER = "2025.2.3"
|
|
10
10
|
|
|
11
11
|
# Assembly version of NaxToModel.dll
|
|
12
|
-
VIZZER_COMPATIBILITY = ("5.2.0.
|
|
12
|
+
VIZZER_COMPATIBILITY = ("5.2.0.3")
|
|
13
13
|
"""Tuple with the compatible versions of NaxToModel.dll"""
|
|
14
14
|
|
|
15
15
|
# PYTHON EXTERNO ----------------------------------------------------------------------------------
|
|
@@ -312,49 +312,47 @@ class N2PModelContent:
|
|
|
312
312
|
|
|
313
313
|
def __init__(self, keys_list: list):
|
|
314
314
|
super().__init__()
|
|
315
|
-
self.
|
|
316
|
-
self._collision_counter = {} # Track collision index per hash
|
|
315
|
+
self._hash_to_cs_list = {} # hash -> list of C# objects
|
|
317
316
|
|
|
318
317
|
for cs_ref in keys_list:
|
|
319
318
|
if cs_ref.GetN2PCardType() not in CONSTRUCTDICT:
|
|
320
319
|
continue
|
|
321
320
|
|
|
322
|
-
|
|
321
|
+
hash_code = RuntimeHelpers.GetHashCode(cs_ref)
|
|
323
322
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
self._collision_counter[hash] += 1
|
|
327
|
-
unique_key = (hash, self._collision_counter[hash])
|
|
328
|
-
else:
|
|
329
|
-
self._collision_counter[hash] = 0
|
|
330
|
-
unique_key = (hash, 0)
|
|
323
|
+
if hash_code not in self._hash_to_cs_list:
|
|
324
|
+
self._hash_to_cs_list[hash_code] = []
|
|
331
325
|
|
|
326
|
+
self._hash_to_cs_list[hash_code].append(cs_ref)
|
|
327
|
+
# Store with unique tuple key
|
|
328
|
+
unique_key = (hash_code, len(self._hash_to_cs_list[hash_code]) - 1)
|
|
332
329
|
self[unique_key] = None
|
|
333
|
-
self._hash_to_cs[unique_key] = cs_ref
|
|
334
330
|
|
|
335
|
-
def __getitem__(self,
|
|
336
|
-
|
|
337
|
-
if isinstance(key, tuple):
|
|
338
|
-
hash, index = key
|
|
339
|
-
else:
|
|
340
|
-
hash = key
|
|
341
|
-
index = 0
|
|
342
|
-
key = (hash, 0)
|
|
331
|
+
def __getitem__(self, cs_key):
|
|
332
|
+
hash_code = RuntimeHelpers.GetHashCode(cs_key)
|
|
343
333
|
|
|
344
|
-
if
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
if
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
334
|
+
if hash_code not in self._hash_to_cs_list:
|
|
335
|
+
raise KeyError(f"Object not found")
|
|
336
|
+
|
|
337
|
+
# Find the matching C# object by reference equality
|
|
338
|
+
cs_objects = self._hash_to_cs_list[hash_code]
|
|
339
|
+
|
|
340
|
+
for idx, cs_ref in enumerate(cs_objects):
|
|
341
|
+
if System.Object.ReferenceEquals(cs_ref, cs_key): # Checks C# object identity directly
|
|
342
|
+
key = (hash_code, idx)
|
|
343
|
+
|
|
344
|
+
if self.get(key) is None:
|
|
345
|
+
# Lazy construction
|
|
346
|
+
value = CONSTRUCTDICT.get(cs_ref.GetN2PCardType(), CONSTRUCTDICT["UNSUPPORTED"])
|
|
347
|
+
if value:
|
|
348
|
+
constructed = value(cs_ref)
|
|
349
|
+
self[key] = constructed
|
|
350
|
+
return constructed
|
|
351
|
+
return None
|
|
352
|
+
else:
|
|
353
|
+
return self.get(key)
|
|
354
|
+
|
|
355
|
+
raise KeyError(f"Object not found in collision list")
|
|
358
356
|
|
|
359
357
|
cslistbulkdatacards = self.__vzmodel.NasOptInputReader.BulkDataSection.GetCardDataBaseList()
|
|
360
358
|
self.__modelinputdata = N2PNastranInputData(
|
|
@@ -68,7 +68,7 @@ class N2PBolt:
|
|
|
68
68
|
self._id: int = int(self.__info__.ID)
|
|
69
69
|
self._one_dim_elems_id_list: list[int] = list(self.__info__.OneDimElemsIdList)
|
|
70
70
|
|
|
71
|
-
self._cards: list[N2PCard] = [self.__input_data_father__._N2PNastranInputData__dictcardscston2p[
|
|
71
|
+
self._cards: list[N2PCard] = [self.__input_data_father__._N2PNastranInputData__dictcardscston2p[i]
|
|
72
72
|
for i in self.__info__.Cards if self.__info__.Cards[0] is not None]
|
|
73
73
|
self._type: str = self.__info__.Type.ToString()
|
|
74
74
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: NaxToPy
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.3
|
|
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
|
|
@@ -18,9 +18,9 @@ Requires-Python: >=3.9
|
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
20
|
Requires-Dist: pythonnet>=3.0.4
|
|
21
|
-
Requires-Dist: numpy>=1.
|
|
21
|
+
Requires-Dist: numpy>=1.25.1
|
|
22
22
|
Requires-Dist: setuptools>=67.8.0
|
|
23
|
-
Requires-Dist: h5py>=3.
|
|
23
|
+
Requires-Dist: h5py>=3.8.0
|
|
24
24
|
Dynamic: download-url
|
|
25
25
|
Dynamic: home-page
|
|
26
26
|
Dynamic: license-file
|
|
@@ -292,7 +292,15 @@ is redundant. The coordinate system will prevail.
|
|
|
292
292
|
1. BugFix: Logs message are not printed double when the buffer is called several times.
|
|
293
293
|
2. BugFix: `get_load_case()` now returns correctly the load cases if it is called before and after calling `import_results_from_files()`.
|
|
294
294
|
3. Refactor: New structure for the h5 files generated by N2PNeuber module.
|
|
295
|
-
4. BugFix: MCID in CQUAD4 and CTRIA3 are now correctly
|
|
295
|
+
4. BugFix: MCID in CQUAD4 and CTRIA3 are now correctly read from a bdf file.
|
|
296
|
+
|
|
297
|
+
### v.3.2.3
|
|
298
|
+
1. Refactor: lower minimum required versions of NumPy and HDF5.
|
|
299
|
+
- numpy >= 1.25.1
|
|
300
|
+
- h5py >= 3.8.0
|
|
301
|
+
2. Feat: Now is possible to read Nastran and Optistruct **SET**s. They are loaded as `N2Set`.
|
|
302
|
+
3. Refactor: Reorder in `N2PNastranInputData.find_cards()` params making superElements optional. `category` is the first argument. `superElements` is now optional (default=None) to allow searching across all superelements by default.
|
|
303
|
+
4. BugFix: Internal lazy dictionary for N2Cards (reading a Nastran or Optistruct input file) is fixed.
|
|
296
304
|
|
|
297
305
|
# Documentation
|
|
298
306
|
|
|
@@ -108,8 +108,6 @@ src/NaxToPy/Modules/static/composite/__init__.py
|
|
|
108
108
|
src/NaxToPy/Modules/static/composite/delamination/N2PEdgeDelamination.py
|
|
109
109
|
src/NaxToPy/Modules/static/composite/delamination/__init__.py
|
|
110
110
|
src/NaxToPy/Modules/static/composite/failure_analysis/N2PCompositeFailure.py
|
|
111
|
-
src/NaxToPy/Modules/static/composite/failure_analysis/N2PFailureComposite_Backupy.py
|
|
112
|
-
src/NaxToPy/Modules/static/composite/failure_analysis/N2PFailureComposite_Vectorisation.py
|
|
113
111
|
src/NaxToPy/Modules/static/composite/failure_analysis/__init__.py
|
|
114
112
|
src/NaxToPy/Modules/static/composite/sandwich/N2PSandwich.py
|
|
115
113
|
src/NaxToPy/Modules/static/composite/sandwich/__init__.py
|