NaxToPy 3.0.0__tar.gz → 3.1.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.0.0/src/NaxToPy.egg-info → naxtopy-3.1.1}/PKG-INFO +32 -8
- {naxtopy-3.0.0 → naxtopy-3.1.1}/README.md +27 -4
- {naxtopy-3.0.0 → naxtopy-3.1.1}/pyproject.toml +3 -3
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSURFACE.py +1 -1
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PAbaqusInputData.py +59 -17
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PComponent.py +58 -45
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PConnector.py +30 -13
- naxtopy-3.1.1/src/NaxToPy/Core/Classes/N2PCoord.py +122 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PElement.py +43 -20
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PFreeBody.py +61 -22
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PIncrement.py +3 -1
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PLoadCase.py +59 -29
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PMaterial.py +22 -60
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PNastranInputData.py +18 -28
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PNode.py +25 -33
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PProperty.py +91 -23
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PReport.py +17 -8
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PResult.py +14 -12
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PSection.py +1 -1
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Constants/Constants.py +5 -5
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Errors/N2PLog.py +822 -182
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/N2PModelContent.py +242 -161
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Reference_Finder/__Reference_Finder.py +28 -3
- naxtopy-3.1.1/src/NaxToPy/Modules/common/__init__.py +2 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/common/data_input_hdf5.py +356 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/common/hdf5.py +313 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/common/material.py +1329 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/common/model_processor.py +294 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/common/property.py +1521 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/__init__.py +2 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/airbus/__init__.py +2 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/airbus/core_shear_crimping_airbus.py +5 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/airbus/dimpling_airbus.py +31 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/airbus/wrinkling_airbus.py +45 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/bruhn/__init__.py +2 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/cmh/__init__.py +2 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/cmh/core_shear_crimping_cmh.py +4 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/cmh/dimpling_cmh.py +31 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/cmh/wrinkling_cmh.py +29 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/esdu/__init__.py +2 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/hsb/__init__.py +2 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/hsb/wrinkling_hsb.py +11 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/hypersizer/__init__.py +2 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/hypersizer/crimping_hypersizer.py +32 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/hypersizer/dimpling_hypersizer.py +54 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/hypersizer/wrinkling_hypersizer.py +62 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/nasa/__init__.py +2 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/handbooks/nasa/wrinkling_nasa.py +14 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/composite/__init__.py +2 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/composite/delamination/N2PEdgeDelamination.py +1390 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/composite/failure_analysis/N2PCompositeFailure.py +2235 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/composite/failure_analysis/N2PFailureComposite_Backupy.py +2000 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/composite/failure_analysis/N2PFailureComposite_Vectorisation.py +2040 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/composite/sandwich/N2PSandwich.py +1860 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/N2PCalculatorRFJoints.py +1186 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/N2PCompRF.py +975 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/N2PGetFasteners.py +494 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/N2PGetLoadFasteners.py +2305 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/N2PMetalRF.py +680 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/N2PRivetRF.py +625 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/N2PUpdateFastener.py +131 -168
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetAttachments.py +113 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetResults.py +151 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PInterpolation.py +134 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysis/Core/Functions/N2PLoadModel.py +22 -4
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PRotation.py +330 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Classes/ARBolt.py +5 -5
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Classes/ARPlate.py +1 -1
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Functions/ARFileInputRivetsIDs.py +1 -1
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Functions/ARGetAttachments.py +3 -3
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Functions/ARGetBolts.py +5 -5
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Functions/ARSerialize.py +2 -2
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/__init__.py +0 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/__init__.py +4 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/Joints → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/joints}/N2PAttachment.py +54 -31
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/Joints → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/joints}/N2PBolt.py +44 -38
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/Joints → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/joints}/N2PFastenerSystem.py +103 -68
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/joints/N2PJoint.py +620 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/joints/N2PJointAnalysisParameters.py +860 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/joints/N2PPlate.py +1025 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/joints/__init__.py +0 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/metallic/__init__.py +2 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/metallic/neuber/N2PNeuber.py +1036 -0
- naxtopy-3.1.1/src/NaxToPy/Modules/static/metallic/neuber/__init__.py +0 -0
- naxtopy-3.1.1/src/NaxToPy/__init__.py +10 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1/src/NaxToPy.egg-info}/PKG-INFO +32 -8
- naxtopy-3.1.1/src/NaxToPy.egg-info/SOURCES.txt +161 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy.egg-info/requires.txt +1 -1
- naxtopy-3.0.0/src/NaxToPy/Core/Classes/N2PCoord.py +0 -82
- naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/Joints/N2PJoint.py +0 -1498
- naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/Joints/N2PPlate.py +0 -925
- naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/N2PGetFasteners.py +0 -312
- naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/N2PGetLoadFasteners.py +0 -1215
- naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetAttachments.py +0 -92
- naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetResults.py +0 -152
- naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/_N2PFastenerAnalysis/Core/Functions/N2PInterpolation.py +0 -149
- naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/_N2PFastenerAnalysis/Core/Functions/N2PRotation.py +0 -406
- naxtopy-3.0.0/src/NaxToPy/__init__.py +0 -10
- naxtopy-3.0.0/src/NaxToPy.egg-info/SOURCES.txt +0 -118
- {naxtopy-3.0.0 → naxtopy-3.1.1}/LICENSE +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/setup.cfg +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/setup.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntity.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityElement.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityNode.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityShell.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQEntities/__init__.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeyword.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordBEAMSECTION.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordCOUPLING.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDENSITY.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDISTRIBUTING.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDISTRIBUTINGCOUPLING.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELASTIC.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELEMENT.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELSET.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordENDINSTANCE.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordENDPART.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordINSTANCE.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordKINEMATIC.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordKINEMATICCOUPLING.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordMATERIAL.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordNODE.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordNSET.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordORIENTATION.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordPART.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordPLASTIC.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSHELLSECTION.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSOLIDSECTION.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ABQKeywords/__init__.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/AllClasses.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/N2PSet.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/ProgresBar.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Classes/__init__.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Constants/__init__.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Constants/librerias.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Errors/N2PColors.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Errors/N2PFileHandler.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Errors/__init__.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/Reference_Finder/__init__.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/_AuxFunc/_NetToPython.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/_AuxFunc/__init__.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Core/__init__.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/Modules/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/N2PEnvelope → naxtopy-3.1.1/src/NaxToPy/Modules/envelope}/N2PEnvelope.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/Joints → naxtopy-3.1.1/src/NaxToPy/Modules/envelope}/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/N2PtoEXE → naxtopy-3.1.1/src/NaxToPy/Modules/n2ptoexe}/N2PtoEXE.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes → naxtopy-3.1.1/src/NaxToPy/Modules/n2ptoexe}/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/_N2PFastenerAnalysis/Core/Functions → naxtopy-3.1.1/src/NaxToPy/Modules/static}/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/_N2PFastenerAnalysis/Core → naxtopy-3.1.1/src/NaxToPy/Modules/static/composite/delamination}/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/_N2PFastenerAnalysis → naxtopy-3.1.1/src/NaxToPy/Modules/static/composite/failure_analysis}/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/_N2PFastenerAnalysisDeprecated → naxtopy-3.1.1/src/NaxToPy/Modules/static/composite/sandwich}/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/N2PFastenerAnalysis.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions}/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/N2PEnvelope → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core}/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Check/Validation.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Classes/AR1DElement.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Classes/ARAttachment.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Classes/ARPlateElements.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes}/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Functions/ARAuxiliarFunctions.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Functions/ARBilinearInterpolation.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Functions/ARConfigurationInput.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Functions/ARDerivedLoadCases.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Functions/ARReadResultsFromFile.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Functions/ARResults.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners}/_N2PFastenerAnalysisDeprecated/Core/Functions/ARRotation.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/Fasteners/_N2PFastenerAnalysisDeprecated/Core → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions}/__init__.py +0 -0
- {naxtopy-3.0.0/src/NaxToPy/Modules/N2PtoEXE → naxtopy-3.1.1/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core}/__init__.py +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/NaxToPy.ico +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy/user_functions.txt +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy.egg-info/dependency_links.txt +0 -0
- {naxtopy-3.0.0 → naxtopy-3.1.1}/src/NaxToPy.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: NaxToPy
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.1.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
|
|
@@ -107,7 +107,7 @@ License: Copyright (c) 2024 Idaero Solutions
|
|
|
107
107
|
|
|
108
108
|
The above copyright notice and this permission notice shall be included in all
|
|
109
109
|
copies or substantial portions of the Software.
|
|
110
|
-
Project-URL: Documentation, https://www.idaerosolutions.com/
|
|
110
|
+
Project-URL: Documentation, https://www.idaerosolutions.com/NaxToDocumentation/NaxToPy/3.1.0/index.html
|
|
111
111
|
Project-URL: LinkedIn, https://www.linkedin.com/company/idaero/
|
|
112
112
|
Keywords: NaxTo,Postprocessing,FEM
|
|
113
113
|
Classifier: Intended Audience :: Science/Research
|
|
@@ -118,12 +118,13 @@ 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
|
|
125
125
|
Dynamic: download-url
|
|
126
126
|
Dynamic: home-page
|
|
127
|
+
Dynamic: license-file
|
|
127
128
|
|
|
128
129
|
[](https://idaerosolutions.com)
|
|
129
130
|
[](https://pypi.org/project/NaxToPy/)
|
|
@@ -151,10 +152,10 @@ additional software beyond NaxTo (see the Download and Homepage links on the lef
|
|
|
151
152
|
---------------
|
|
152
153
|
|
|
153
154
|
⚠️**Warning:** To use NaxToPy, [**NaxTo**](https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US) must be installed.
|
|
154
|
-
This version is compatible with **NaxTo 2025.
|
|
155
|
+
This version is compatible with **NaxTo 2025.1**.
|
|
155
156
|
Check in _Programs and Features_ the NaxTo version that is installed.
|
|
156
157
|
|
|
157
|
-
📘**Note:** If a specific NaxTo version is installed, search the [**NaxToPy History**](https://pypi.org/project/NaxToPy/3.
|
|
158
|
+
📘**Note:** If a specific NaxTo version is installed, search the [**NaxToPy History**](https://pypi.org/project/NaxToPy/3.1.0/#history) to find which newer version is compatible with it.
|
|
158
159
|
|
|
159
160
|
|
|
160
161
|
## Installation
|
|
@@ -343,11 +344,34 @@ is redundant. The coordinate system will prevail.
|
|
|
343
344
|
7. Feat: new method in `N2PModelContent`: `get_elements_filtered()`. It returns a list of `N2PElement` that matches a material, property, part or type-element.
|
|
344
345
|
8. Feat: New checks in the results methods to avoid invalid parameters.
|
|
345
346
|
|
|
347
|
+
### v.3.1.0
|
|
348
|
+
1. Feat: New optional argument in `load_model()` called **loadconnectors**. True by default.
|
|
349
|
+
2. Feat: New module N2PNeuber to obtain stresses using the Neuber method.
|
|
350
|
+
3. Feat: New module N2PSandwich to calculate sandwich structures failure modes.
|
|
351
|
+
4. Feat: New module N2PCompositeFailure for evaluating structural failure in laminates.
|
|
352
|
+
5. Feat: New module N2PEdgeDelamination to obtain interlaminar stresses and RF from edge delamination.
|
|
353
|
+
6. Feat: New module N2PCalculatorRFJoints manages the Reserve Factor (RF) calculation process of the joints obtained through the modules N2PGetFasteners and N2PGetLoadFasteners.
|
|
354
|
+
7. Feat: New module N2PUpdateFastener provides methods to update rivet and bolt stiffness and generate a new FEM Input File (.bdf, .fem, .dat, etc.) file with the updated data.
|
|
355
|
+
8. BugFix: Several bugs are fixed in N2PGetFastener and N2PGetLoadFastener modules.
|
|
356
|
+
9. Feat: Extra information in the log when the NaxToPy is running from a executable.
|
|
357
|
+
10. Feat: `N2PLoadModelContent.SetList` is now an encapsulated property.
|
|
358
|
+
11. Refactor: the method `N2PLoadModelContent.get_result_by_LCs_Incr()` is optimized.
|
|
359
|
+
|
|
360
|
+
### v.3.1.1
|
|
361
|
+
1. BugFix: Small error fixed in `N2PNeuber`.
|
|
362
|
+
2. Feat: New Failure criteria in `N2PCompositeFailure` -> Fiber Mode Concept
|
|
363
|
+
3. BugFix: The property `LevelList` of the abstract class `N2PLog` is now an attribute to be compatible with Python 3.13.
|
|
364
|
+
4. Feat: New class `N2PropMisc` for properties that are not supported.
|
|
365
|
+
5. BugFix: Small errors in `N2PGetFasteners`.
|
|
366
|
+
6. BugFix: Several errors are fixed for properties and materials when reading **InputFileAbaqus** (inp) and **Abaqus** (odb).
|
|
367
|
+
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.
|
|
368
|
+
8. BugFix: the keyword `THRU` is now supported in the bulk data card `SPC1` when reading from a Nastran Input File.
|
|
369
|
+
|
|
346
370
|
# Documentation
|
|
347
371
|
|
|
348
372
|
**NaxToPy** is a package developed by Idaero Solutions© as a part of the **NaxTo** software.
|
|
349
373
|
|
|
350
|
-
NaxToPy only use
|
|
374
|
+
NaxToPy only use four dependeces:
|
|
351
375
|
- NumPy: https://numpy.org/
|
|
352
376
|
- PythonNET: https://pythonnet.github.io/
|
|
353
377
|
- Setuptools: https://setuptools.pypa.io/en/latest/index.html
|
|
@@ -558,7 +582,7 @@ def dataframe_results(model: "N2PModelContent", result: "N2PResult", sections=No
|
|
|
558
582
|
##
|
|
559
583
|
For more documentation visit https://idaerosolutions.com/Home/NaxToPy
|
|
560
584
|
|
|
561
|
-
|
|
585
|
+
Complete NaxToPy documentation at: https://www.idaerosolutions.com/NaxToDocumentation/NaxToPy/3.1.0/index.html
|
|
562
586
|
|
|
563
587
|
# License
|
|
564
588
|
|
|
@@ -24,10 +24,10 @@ 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.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.
|
|
30
|
+
📘**Note:** If a specific NaxTo version is installed, search the [**NaxToPy History**](https://pypi.org/project/NaxToPy/3.1.0/#history) to find which newer version is compatible with it.
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
## Installation
|
|
@@ -216,11 +216,34 @@ is redundant. The coordinate system will prevail.
|
|
|
216
216
|
7. Feat: new method in `N2PModelContent`: `get_elements_filtered()`. It returns a list of `N2PElement` that matches a material, property, part or type-element.
|
|
217
217
|
8. Feat: New checks in the results methods to avoid invalid parameters.
|
|
218
218
|
|
|
219
|
+
### v.3.1.0
|
|
220
|
+
1. Feat: New optional argument in `load_model()` called **loadconnectors**. True by default.
|
|
221
|
+
2. Feat: New module N2PNeuber to obtain stresses using the Neuber method.
|
|
222
|
+
3. Feat: New module N2PSandwich to calculate sandwich structures failure modes.
|
|
223
|
+
4. Feat: New module N2PCompositeFailure for evaluating structural failure in laminates.
|
|
224
|
+
5. Feat: New module N2PEdgeDelamination to obtain interlaminar stresses and RF from edge delamination.
|
|
225
|
+
6. Feat: New module N2PCalculatorRFJoints manages the Reserve Factor (RF) calculation process of the joints obtained through the modules N2PGetFasteners and N2PGetLoadFasteners.
|
|
226
|
+
7. Feat: New module N2PUpdateFastener provides methods to update rivet and bolt stiffness and generate a new FEM Input File (.bdf, .fem, .dat, etc.) file with the updated data.
|
|
227
|
+
8. BugFix: Several bugs are fixed in N2PGetFastener and N2PGetLoadFastener modules.
|
|
228
|
+
9. Feat: Extra information in the log when the NaxToPy is running from a executable.
|
|
229
|
+
10. Feat: `N2PLoadModelContent.SetList` is now an encapsulated property.
|
|
230
|
+
11. Refactor: the method `N2PLoadModelContent.get_result_by_LCs_Incr()` is optimized.
|
|
231
|
+
|
|
232
|
+
### v.3.1.1
|
|
233
|
+
1. BugFix: Small error fixed in `N2PNeuber`.
|
|
234
|
+
2. Feat: New Failure criteria in `N2PCompositeFailure` -> Fiber Mode Concept
|
|
235
|
+
3. BugFix: The property `LevelList` of the abstract class `N2PLog` is now an attribute to be compatible with Python 3.13.
|
|
236
|
+
4. Feat: New class `N2PropMisc` for properties that are not supported.
|
|
237
|
+
5. BugFix: Small errors in `N2PGetFasteners`.
|
|
238
|
+
6. BugFix: Several errors are fixed for properties and materials when reading **InputFileAbaqus** (inp) and **Abaqus** (odb).
|
|
239
|
+
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.
|
|
240
|
+
8. BugFix: the keyword `THRU` is now supported in the bulk data card `SPC1` when reading from a Nastran Input File.
|
|
241
|
+
|
|
219
242
|
# Documentation
|
|
220
243
|
|
|
221
244
|
**NaxToPy** is a package developed by Idaero Solutions© as a part of the **NaxTo** software.
|
|
222
245
|
|
|
223
|
-
NaxToPy only use
|
|
246
|
+
NaxToPy only use four dependeces:
|
|
224
247
|
- NumPy: https://numpy.org/
|
|
225
248
|
- PythonNET: https://pythonnet.github.io/
|
|
226
249
|
- Setuptools: https://setuptools.pypa.io/en/latest/index.html
|
|
@@ -431,7 +454,7 @@ def dataframe_results(model: "N2PModelContent", result: "N2PResult", sections=No
|
|
|
431
454
|
##
|
|
432
455
|
For more documentation visit https://idaerosolutions.com/Home/NaxToPy
|
|
433
456
|
|
|
434
|
-
|
|
457
|
+
Complete NaxToPy documentation at: https://www.idaerosolutions.com/NaxToDocumentation/NaxToPy/3.1.0/index.html
|
|
435
458
|
|
|
436
459
|
# License
|
|
437
460
|
|
|
@@ -4,11 +4,11 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "NaxToPy"
|
|
7
|
-
version = "3.
|
|
7
|
+
version = "3.1.1"
|
|
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"]
|
|
@@ -25,7 +25,7 @@ keywords = ["NaxTo",
|
|
|
25
25
|
"FEM"]
|
|
26
26
|
|
|
27
27
|
[project.urls]
|
|
28
|
-
"Documentation" = "https://www.idaerosolutions.com/
|
|
28
|
+
"Documentation" = "https://www.idaerosolutions.com/NaxToDocumentation/NaxToPy/3.1.0/index.html"
|
|
29
29
|
"LinkedIn" = "https://www.linkedin.com/company/idaero/"
|
|
30
30
|
|
|
31
31
|
[tool.setuptools]
|
|
@@ -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]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""This module contains classes related with a Abaqus Input File (.inp files). The parent classes are similar but not
|
|
2
|
-
the same as the Nastran Input File. Child classes of N2PKeyword are based on Abaqus Keywords Reference Guide"""
|
|
2
|
+
the same as the Nastran Input File. Child classes of N2PKeyword are based on Abaqus Keywords Reference Guide."""
|
|
3
3
|
from __future__ import annotations # For compatibility with Python 3.9 or higher
|
|
4
|
-
from typing import Literal
|
|
4
|
+
from typing import Literal, overload
|
|
5
5
|
|
|
6
6
|
from NaxToPy.Core.Errors.N2PLog import N2PLog
|
|
7
7
|
from NaxToPy.Core.Classes.N2PNastranInputData import N2PInputData
|
|
@@ -10,7 +10,8 @@ from NaxToPy.Core.Classes.ABQEntities import *
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class N2PAbaqusInputData:
|
|
13
|
-
"""
|
|
13
|
+
"""
|
|
14
|
+
Class with the complete data of an Abaqus MEF input file (text file usually with the extension .inp).
|
|
14
15
|
"""
|
|
15
16
|
|
|
16
17
|
__slots__ = (
|
|
@@ -48,34 +49,58 @@ class N2PAbaqusInputData:
|
|
|
48
49
|
{entityelement: N2PEntityElement(entityelement, self.__dictKeywordToN2P, self.__dictEntityToN2P)
|
|
49
50
|
for entityelement in inputfiledata.StructuredInfo.ModelElements})
|
|
50
51
|
|
|
52
|
+
# Método para optener los objetos N2PCard del Input File -----------------------------------------------------------
|
|
51
53
|
@property
|
|
52
54
|
def ListBulkDataKeywords(self) -> list[N2PKeyword, ...]:
|
|
53
|
-
"""
|
|
55
|
+
"""
|
|
56
|
+
List with the N2PCard objects of the input FEM file. It has all bulk data cards of the model.
|
|
57
|
+
"""
|
|
54
58
|
return self.__listbulkdatakeywords
|
|
59
|
+
# ------------------------------------------------------------------------------------------------------------------
|
|
55
60
|
|
|
61
|
+
# Método para obtener el diccionaro de IDs a FilePaths -------------------------------------------------------------
|
|
56
62
|
@property
|
|
57
63
|
def DictionaryIDsFiles(self) -> dict:
|
|
64
|
+
"""
|
|
65
|
+
Dictionary with ID (`int`) as keys and FilePaths (`string`) as values.
|
|
66
|
+
"""
|
|
58
67
|
return dict(self.__inputfiledata.DictionaryIDsFiles)
|
|
68
|
+
# ------------------------------------------------------------------------------------------------------------------
|
|
59
69
|
|
|
70
|
+
# Método para obtener el diccionario de FilePaths a IDs ------------------------------------------------------------
|
|
60
71
|
@property
|
|
61
72
|
def DictionaryFilesIDs(self) -> dict:
|
|
73
|
+
"""
|
|
74
|
+
Dictionary FilePaths (`string`) as keys and with ID (`int`) as values.
|
|
75
|
+
"""
|
|
62
76
|
return dict(self.__dictionary_files_ids)
|
|
77
|
+
# ------------------------------------------------------------------------------------------------------------------
|
|
63
78
|
|
|
79
|
+
# Método para obtener el tipo de Input File ------------------------------------------------------------------------
|
|
64
80
|
@property
|
|
65
81
|
def TypeOfFile(self) -> str:
|
|
82
|
+
"""
|
|
83
|
+
Type of Input File.
|
|
84
|
+
"""
|
|
66
85
|
return "ABAQUS"
|
|
86
|
+
# ------------------------------------------------------------------------------------------------------------------
|
|
67
87
|
|
|
88
|
+
# Método para obtener la lista de comentarios en el Input File -----------------------------------------------------
|
|
68
89
|
@property
|
|
69
90
|
def ListComments(self) -> list[N2PInputData, ]:
|
|
70
|
-
"""
|
|
91
|
+
"""
|
|
92
|
+
List with all the comments in the FEM Input File.
|
|
93
|
+
"""
|
|
71
94
|
if self.__listcomments:
|
|
72
95
|
return self.__listcomments
|
|
73
96
|
else:
|
|
74
97
|
self.__listcomments = [N2PInputData(i) for i in self.__inputfiledata.StructuredInfo.ModelComments]
|
|
75
98
|
return self.__listcomments
|
|
99
|
+
# ------------------------------------------------------------------------------------------------------------------
|
|
76
100
|
|
|
77
101
|
def get_keywords_by_type(self, field: KeyWordType) -> list[N2PKeyword,]:
|
|
78
|
-
"""
|
|
102
|
+
"""
|
|
103
|
+
Method that returns a list with the :class:`N2PKeyword` objects of the input FEM file asked. They can be uppercase or lowecase indistinctly.
|
|
79
104
|
|
|
80
105
|
Args:
|
|
81
106
|
field: str
|
|
@@ -85,36 +110,53 @@ class N2PAbaqusInputData:
|
|
|
85
110
|
"""
|
|
86
111
|
if not isinstance(field, str):
|
|
87
112
|
Exception(N2PLog.Critical.C201())
|
|
88
|
-
elif field not in CONSTRUCTABQDICT:
|
|
113
|
+
elif field.upper() not in CONSTRUCTABQDICT:
|
|
89
114
|
N2PLog.Error.E205()
|
|
90
115
|
return []
|
|
91
116
|
else:
|
|
92
117
|
return [self.__dictKeywordToN2P[keyword] for keyword in self.__inputfiledata.GetKeywordsByType(field)]
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
118
|
+
|
|
119
|
+
@overload
|
|
120
|
+
def get_entity_by_key_and_id(self, entitytype: EntityType, entitityid: int, part: str) -> N2PEntity: ...
|
|
121
|
+
@overload
|
|
122
|
+
def get_entity_by_key_and_id(self, entitytype: EntityType, entitityid: int) -> list[N2PEntity, ]: ...
|
|
123
|
+
# Actual implementation
|
|
124
|
+
def get_entity_by_key_and_id(self, entitytype, entitityid, part=None):
|
|
125
|
+
"""
|
|
126
|
+
Method that returns a list with the :class:`N2PEntities` objects of the input FEM file asked. There can be
|
|
127
|
+
several Entities with the same ID and EntityType as they can belong to different part. If the part is given,
|
|
128
|
+
only a :class:`N2PEntity` will be returned.
|
|
97
129
|
|
|
98
130
|
Args:
|
|
99
131
|
entitytype: str
|
|
100
132
|
entitityid: int
|
|
133
|
+
part: str (optional)
|
|
101
134
|
|
|
102
135
|
Returns:
|
|
103
|
-
list[
|
|
136
|
+
N2PEntity || list[N2PEntity, ]
|
|
104
137
|
"""
|
|
105
138
|
if not isinstance(entitytype, str):
|
|
106
139
|
Exception(N2PLog.Critical.C201())
|
|
107
140
|
elif not isinstance(entitityid, int):
|
|
108
141
|
Exception(N2PLog.Critical.C201())
|
|
109
|
-
elif
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
142
|
+
elif part:
|
|
143
|
+
entity_error = self.__inputfiledata.GetEntitiesByTypeAndId(entitytype, entitityid, part)
|
|
144
|
+
if entity_error.Item2 == 0:
|
|
145
|
+
return self.__dictEntityToN2P[entity_error.Item1]
|
|
146
|
+
elif entity_error.Item2 == -1:
|
|
147
|
+
N2PLog.Error.E205(entitytype)
|
|
148
|
+
elif entity_error.Item2 == -2:
|
|
149
|
+
N2PLog.Error.E241(part)
|
|
150
|
+
elif entity_error.Item2 == -3:
|
|
151
|
+
N2PLog.Error.E242(part, entitityid)
|
|
152
|
+
return None
|
|
153
|
+
else:
|
|
113
154
|
return [self.__dictEntityToN2P[entitytype]
|
|
114
155
|
for entitytype in self.__inputfiledata.GetEntitiesByTypeAndId(entitytype, entitityid)]
|
|
115
156
|
|
|
116
157
|
def rebuild_file(self, folder: str) -> None:
|
|
117
|
-
"""
|
|
158
|
+
"""
|
|
159
|
+
Method that writes the solver input file with the same file structure that was read in the folder is specified.
|
|
118
160
|
|
|
119
161
|
Args:
|
|
120
162
|
folder: str -> Path of the folder where the file or files will be writen
|
|
@@ -21,13 +21,9 @@ from NaxToPy.Core.Classes.N2PNode import N2PNode
|
|
|
21
21
|
# Clase Component de Python
|
|
22
22
|
# -----------------------------------------------------------------------
|
|
23
23
|
class N2PComponent:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Name: str.
|
|
28
|
-
Sections: list[N2PSection].
|
|
29
|
-
IsTransformable: bool.
|
|
30
|
-
'''
|
|
24
|
+
"""
|
|
25
|
+
Class which contains the information associated to a component of a :class:`N2PResult` instance.
|
|
26
|
+
"""
|
|
31
27
|
|
|
32
28
|
__slots__ = (
|
|
33
29
|
"_name",
|
|
@@ -35,10 +31,10 @@ class N2PComponent:
|
|
|
35
31
|
"_result_father",
|
|
36
32
|
)
|
|
37
33
|
|
|
38
|
-
# Constructor de N2PComponent
|
|
39
|
-
# -----------------------------------------------------------------
|
|
34
|
+
# Constructor de N2PComponent --------------------------------------------------------------------------------------
|
|
40
35
|
def __init__(self, name, sections, result_father):
|
|
41
|
-
"""
|
|
36
|
+
"""
|
|
37
|
+
Python Component Constructor.
|
|
42
38
|
|
|
43
39
|
Args:
|
|
44
40
|
name: str -> name of the component
|
|
@@ -49,26 +45,31 @@ class N2PComponent:
|
|
|
49
45
|
self._sections = [N2PSection(sections[i].Name,
|
|
50
46
|
sections[i].Number) for i in range(0, len(sections))]
|
|
51
47
|
self._result_father = result_father
|
|
52
|
-
#
|
|
48
|
+
# ------------------------------------------------------------------------------------------------------------------
|
|
53
49
|
|
|
54
|
-
# Metodo para
|
|
55
|
-
# ----------------------------------------------
|
|
50
|
+
# Metodo para obtener el Nombre de la Componente -------------------------------------------------------------------
|
|
56
51
|
@property
|
|
57
52
|
def Name(self) -> str:
|
|
53
|
+
"""
|
|
54
|
+
Name of the component.
|
|
55
|
+
"""
|
|
58
56
|
return(str(self._name))
|
|
59
|
-
#
|
|
57
|
+
# ------------------------------------------------------------------------------------------------------------------
|
|
60
58
|
|
|
61
|
-
# Metodo para
|
|
59
|
+
# Metodo para obtener una lista con las secciones de la componente -------------------------------------------------
|
|
62
60
|
@property
|
|
63
61
|
def Sections(self) -> list[N2PSection, ...]:
|
|
64
|
-
"""
|
|
62
|
+
"""
|
|
63
|
+
Returns a list of N2PSection objects with all the sections contained in the component.
|
|
65
64
|
"""
|
|
66
65
|
return(self._sections)
|
|
67
|
-
#
|
|
66
|
+
# ------------------------------------------------------------------------------------------------------------------
|
|
68
67
|
|
|
68
|
+
# Método para comprobar si el resultado es transformable en otro sistema de coordenadas ----------------------------
|
|
69
69
|
@property
|
|
70
70
|
def IsTransformable(self) -> bool:
|
|
71
|
-
"""
|
|
71
|
+
"""
|
|
72
|
+
Property that keeps if the component of a result is transformable in other coordinate system.
|
|
72
73
|
"""
|
|
73
74
|
# No se guarda como atributo privado durante la instanciacion de un objeto porque algunas variables
|
|
74
75
|
# aun no se han construido. Por eso el metodo de la propiedad es la que busca los argumentos y llama
|
|
@@ -77,23 +78,27 @@ class N2PComponent:
|
|
|
77
78
|
result = self._result_father.Name
|
|
78
79
|
component = self.Name
|
|
79
80
|
return bool(N2TensorTransformation.IsResultSupported(solver, result, component))
|
|
81
|
+
# ------------------------------------------------------------------------------------------------------------------
|
|
80
82
|
|
|
81
|
-
# Metodo para llamar a la funcion de NaxToModel que devueleve el array de resultados
|
|
83
|
+
# Metodo para llamar a la funcion de NaxToModel que devueleve el array de resultados--------------------------------
|
|
82
84
|
def get_result_array(self, sections=None, aveSections=-1, cornerData=False, aveNodes=-1, variation=100,
|
|
83
85
|
realPolar=0, coordsys: int = -1000,
|
|
84
86
|
v1: tuple = (1, 0, 0), v2: tuple = (0, 1, 0)) -> tuple[list, str]:
|
|
85
|
-
"""
|
|
86
|
-
|
|
87
|
+
"""
|
|
88
|
+
Deprecated method. Please, use get_result_list instead for asking the results as a list. If a numpy array is
|
|
89
|
+
preferred, use get_result_ndarray.
|
|
90
|
+
"""
|
|
87
91
|
return self.get_result_list(sections, aveSections, cornerData, aveNodes, variation,
|
|
88
92
|
realPolar, coordsys, v1, v2)
|
|
89
93
|
# ------------------------------------------------------------------------------------------------------------------
|
|
90
94
|
|
|
91
|
-
# Metodo para llamar a la funcion de NaxToModel que devueleve el array de resultados como lista
|
|
95
|
+
# Metodo para llamar a la funcion de NaxToModel que devueleve el array de resultados como lista --------------------
|
|
92
96
|
def get_result_list(self, sections=None, aveSections=-1, cornerData=False, aveNodes=-1, variation=100,
|
|
93
97
|
realPolar=0, coordsys: int = -1000,
|
|
94
98
|
v1: Union[tuple, np.ndarray] = (1,0,0), v2: Union[tuple, np.ndarray] = (0,1,0)) -> tuple[list, str]:
|
|
95
|
-
"""
|
|
96
|
-
|
|
99
|
+
"""
|
|
100
|
+
Returns a tuple with the list of floats with the result array asked and a str with the position of the
|
|
101
|
+
results.
|
|
97
102
|
|
|
98
103
|
Args:
|
|
99
104
|
|
|
@@ -180,13 +185,14 @@ class N2PComponent:
|
|
|
180
185
|
return(-1, 'NO RESULTS')
|
|
181
186
|
# ------------------------------------------------------------------------------------------------------------------
|
|
182
187
|
|
|
183
|
-
# Metodo para llamar a la funcion de NaxToModel que devuelve el array de resultados como array de numpy
|
|
188
|
+
# Metodo para llamar a la funcion de NaxToModel que devuelve el array de resultados como array de numpy ------------
|
|
184
189
|
def get_result_ndarray(self, sections=None, aveSections=-1, cornerData=False, aveNodes=-1, variation=100,
|
|
185
190
|
realPolar=0, coordsys: int = -1000,
|
|
186
191
|
v1: Union[tuple, np.ndarray ] = (1,0,0), v2: Union[tuple, np.ndarray ] = (0,1,0),
|
|
187
192
|
filter_list: list = None) -> tuple[np.array, str]:
|
|
188
|
-
"""
|
|
189
|
-
the
|
|
193
|
+
"""
|
|
194
|
+
Returns a tuple with the numpy array of floats with the result array asked and a str with the position of
|
|
195
|
+
the results.
|
|
190
196
|
|
|
191
197
|
Args:
|
|
192
198
|
|
|
@@ -275,7 +281,7 @@ class N2PComponent:
|
|
|
275
281
|
return (self._filter_array(np.array(results[0], np.float64), filter_list, where, None, cornerData), where)
|
|
276
282
|
# ------------------------------------------------------------------------------------------------------------------
|
|
277
283
|
|
|
278
|
-
# # Metodo que devulve un dataframe con los resulados tras llamar a la funcion de NaxToModel
|
|
284
|
+
# # Metodo que devulve un dataframe con los resulados tras llamar a la funcion de NaxToModel------------------------
|
|
279
285
|
# def get_result_dataframe(self, sections=None, aveSections=-1, cornerData=False, aveNodes=-1,
|
|
280
286
|
# variation=100, realPolar=0, coordsys: int = -1000,
|
|
281
287
|
# v1: tuple = (1,0,0), v2: tuple = (0,1,0)) -> DataFrame:
|
|
@@ -397,7 +403,7 @@ class N2PComponent:
|
|
|
397
403
|
# df = df.rename_axis(indexname, axis='index')
|
|
398
404
|
#
|
|
399
405
|
# return df
|
|
400
|
-
# #
|
|
406
|
+
# # ----------------------------------------------------------------------------------------------------------------
|
|
401
407
|
|
|
402
408
|
# Método que devuelve un diccionario con la tupla (LC, Incr) como clave y una lista de resultados como valor -------
|
|
403
409
|
def _get_result_by_LCs_Incr(self, list_lc_incr: list[tuple["N2PLoadCase", "N2PIncrement"],...], components = None,
|
|
@@ -447,25 +453,20 @@ class N2PComponent:
|
|
|
447
453
|
ii_map = None
|
|
448
454
|
|
|
449
455
|
if not components[0]:
|
|
450
|
-
|
|
456
|
+
py_dict.update({
|
|
451
457
|
(int(key.split(":")[0].replace("DoF_LCD", "-").replace("DoF_LC", "")), int(key.split(":")[1][2:])) :
|
|
452
458
|
self._filter_array(np.array(value, np.float64), filter_list, None, ii_map, cornerData)
|
|
453
459
|
for key, value in dict(cs_dict[0]).items()
|
|
454
|
-
}
|
|
460
|
+
})
|
|
455
461
|
else:
|
|
456
|
-
|
|
462
|
+
py_dict.update({
|
|
457
463
|
(int(key.split(":")[0].replace("DoF_LCD", "-").replace("DoF_LC", "")), int(key.split(":")[1][2:]), component) :
|
|
458
464
|
self._filter_array(np.array(value, np.float64), filter_list, None, ii_map, cornerData)
|
|
459
465
|
for key, value in dict(cs_dict[0]).items()
|
|
460
|
-
}
|
|
466
|
+
})
|
|
461
467
|
|
|
462
468
|
del cs_dict
|
|
463
|
-
|
|
464
|
-
py_dict.update(py_dict_aux)
|
|
465
|
-
|
|
466
|
-
# Clear memomry
|
|
467
|
-
py_dict_aux.clear()
|
|
468
|
-
gc.collect()
|
|
469
|
+
# endfor
|
|
469
470
|
|
|
470
471
|
if first_shoot:
|
|
471
472
|
_, _, final_memory = _get_memory_usage()
|
|
@@ -477,11 +478,15 @@ class N2PComponent:
|
|
|
477
478
|
first_shoot = False
|
|
478
479
|
else:
|
|
479
480
|
i += n_opt
|
|
481
|
+
|
|
482
|
+
# Limpiamos memoria antes de pasar al siguiente bloque de casos de carga
|
|
483
|
+
self._result_father._loadCase_father._modelFather.clear_results_memory()
|
|
484
|
+
# endwhile
|
|
480
485
|
|
|
481
486
|
return py_dict
|
|
482
487
|
# ------------------------------------------------------------------------------------------------------------------
|
|
483
488
|
|
|
484
|
-
# Metodo que crea la formula que necesita la funcion de NaxToModel
|
|
489
|
+
# Metodo que crea la formula que necesita la funcion de NaxToModel -------------------------------------------------
|
|
485
490
|
def _create_formula(self, list_lc_incr: list[tuple["N2PLoadCase", "N2PIncrement"],...]) -> str:
|
|
486
491
|
|
|
487
492
|
if isinstance(list_lc_incr, tuple):
|
|
@@ -532,8 +537,12 @@ class N2PComponent:
|
|
|
532
537
|
raise Exception(msg)
|
|
533
538
|
|
|
534
539
|
elif not self.IsTransformable and (coordsys != -1000 or (v1 != (1, 0, 0) or v2 != (0, 1, 0))):
|
|
535
|
-
|
|
536
|
-
|
|
540
|
+
if component:
|
|
541
|
+
comp = component
|
|
542
|
+
else:
|
|
543
|
+
comp = str(self.Name)
|
|
544
|
+
N2PLog.Warning.W210(comp)
|
|
545
|
+
resultsParameters = N2ParamInputResults.structResults(0)
|
|
537
546
|
|
|
538
547
|
else:
|
|
539
548
|
# Initializer if it is no transformable
|
|
@@ -622,7 +631,8 @@ class N2PComponent:
|
|
|
622
631
|
return resultsParameters
|
|
623
632
|
# ------------------------------------------------------------------------------------------------------------------
|
|
624
633
|
|
|
625
|
-
def _filter_array(self, array: np.ndarray, filter_list: list[Union[N2PElement, N2PNode]],
|
|
634
|
+
def _filter_array(self, array: np.ndarray, filter_list: list[Union[N2PElement, N2PNode]],
|
|
635
|
+
where=None, ii_map=None, cornerData=False) -> np.ndarray:
|
|
626
636
|
|
|
627
637
|
if not filter_list:
|
|
628
638
|
return array
|
|
@@ -655,7 +665,8 @@ class N2PComponent:
|
|
|
655
665
|
|
|
656
666
|
|
|
657
667
|
def _get_axis(v1: Union[tuple, np.ndarray], v2: Union[tuple, np.ndarray]) -> np.ndarray:
|
|
658
|
-
"""
|
|
668
|
+
"""
|
|
669
|
+
Function that returns the components of the three vectors of a rectangular coordinate system.
|
|
659
670
|
|
|
660
671
|
Args:
|
|
661
672
|
v1: tuple|ndarray
|
|
@@ -676,7 +687,9 @@ def _get_axis(v1: Union[tuple, np.ndarray], v2: Union[tuple, np.ndarray]) -> np.
|
|
|
676
687
|
return np.vstack((v1, y, z))
|
|
677
688
|
|
|
678
689
|
def _get_memory_usage() -> tuple[float, float, float]:
|
|
679
|
-
"""
|
|
690
|
+
"""
|
|
691
|
+
Returns total_memory, available_memory, used_memory in MB.
|
|
692
|
+
"""
|
|
680
693
|
|
|
681
694
|
class MEMORYSTATUSEX(ctypes.Structure):
|
|
682
695
|
_fields_ = [
|