sgio 0.2.13__tar.gz → 0.2.15__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.
- {sgio-0.2.13 → sgio-0.2.15}/PKG-INFO +5 -1
- {sgio-0.2.13 → sgio-0.2.15}/pyproject.toml +4 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/__init__.py +24 -4
- sgio-0.2.15/sgio/_version.py +1 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/_meshio.py +31 -28
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/main.py +3 -1
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/swiftcomp/_input.py +14 -3
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/swiftcomp/_mesh.py +54 -10
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/swiftcomp/_swiftcomp.py +4 -1
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/vabs/_mesh.py +48 -2
- sgio-0.2.15/sgio/model/beam.py +835 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/utils/execu.py +12 -1
- sgio-0.2.13/sgio/_version.py +0 -1
- sgio-0.2.13/sgio/model/beam.py +0 -1698
- {sgio-0.2.13 → sgio-0.2.15}/.gitignore +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/LICENSE +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/README.md +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/__main__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_exceptions.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_global.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/NoneSort.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/centroid.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/config.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/config_re.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/csid.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/elType.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/eval2.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpDecimal.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpInt.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpKeyword.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpKeywordHelper.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpKeywordSequence.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/Read_Disclaimer_First.txt +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/_importedModules.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/_inpCustom.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/_inpFind.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/_inpFindRefs.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/_inpMod.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/_inpR.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/_inpW.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/elInfoDict.txt +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/keyword_names.txt +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/keyword_sub.txt +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW/legal_notices.pdf +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW-2023.10.6.dist-info/METADATA +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW-2023.10.6.dist-info/RECORD +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW-2023.10.6.dist-info/WHEEL +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW-2023.10.6.dist-info/license.txt +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRW-2023.10.6.dist-info/top_level.txt +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpRWErrors.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/inpString.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/mesh.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/misc_functions.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/paramTypes.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/printer.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/_vendors/inprw/repr2.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/app.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/core/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/core/builder.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/core/merge.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/core/mesh.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/core/sg.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/execu.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/abaqus/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/abaqus/_abaqus.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/abaqus/_abaqus_old.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/gmsh/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/gmsh/_common.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/gmsh/_gmsh.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/gmsh/_gmsh22.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/gmsh/_gmsh41.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/nastran/_nastran.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/swiftcomp/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/swiftcomp/_global.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/swiftcomp/_output.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/vabs/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/vabs/_input.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/vabs/_output.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/iofunc/vabs/main.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/iofunc/_common.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/iofunc/_helpers.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/mesh/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/mesh/base.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/mesh/formats/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/mesh/formats/abaqus.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/__about__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_cli/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_cli/_ascii.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_cli/_binary.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_cli/_compress.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_cli/_convert.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_cli/_decompress.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_cli/_info.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_cli/_main.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_common.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_cxml/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_cxml/etree.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_exceptions.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_files.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_helpers.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_mesh.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_mesh_original.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/_vtk_common.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/abaqus/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/abaqus/_abaqus.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/abaqus/_abaqus_original.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/ansys/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/ansys/_ansys.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/avsucd/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/avsucd/_avsucd.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/cgns/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/cgns/_cgns.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/dolfin/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/dolfin/_dolfin.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/exodus/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/exodus/_exodus.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/flac3d/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/flac3d/_flac3d.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/gmsh/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/gmsh/_gmsh22.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/gmsh/_gmsh22_original.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/gmsh/_gmsh40.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/gmsh/_gmsh41.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/gmsh/_gmsh41_original.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/gmsh/common.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/gmsh/common_origin.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/gmsh/main.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/gmsh/main_origin.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/h5m/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/h5m/_h5m.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/hmf/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/hmf/_hmf.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/mdpa/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/mdpa/_mdpa.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/med/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/med/_med.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/medit/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/medit/_medit.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/medit/_medit_internal.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/nastran/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/nastran/_nastran.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/netgen/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/netgen/_netgen.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/neuroglancer/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/neuroglancer/_neuroglancer.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/obj/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/obj/_obj.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/off/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/off/_off.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/permas/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/permas/_permas.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/ply/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/ply/_ply.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/sg/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/sg/_swiftcomp.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/sg/_vabs.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/sg/common.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/sg/main.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/stl/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/stl/_stl.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/su2/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/su2/_su2.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/svg/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/svg/_svg.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/tecplot/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/tecplot/_tecplot.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/tetgen/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/tetgen/_tetgen.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/ugrid/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/ugrid/_ugrid.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/vtk/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/vtk/_main.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/vtk/_vtk_42.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/vtk/_vtk_51.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/vtu/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/vtu/_vtu.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/wkt/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/wkt/_wkt.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/xdmf/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/xdmf/common.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/xdmf/main.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/legacy/meshio_old/xdmf/time_series.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/model/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/model/failure.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/model/general.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/model/shell.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/model/solid.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/utils/__init__.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/utils/database.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/utils/io.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/utils/logging.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/utils/math.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/utils/plot.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/utils/timer.py +0 -0
- {sgio-0.2.13 → sgio-0.2.15}/sgio/utils/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sgio
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.15
|
|
4
4
|
Summary: I/O for VABS and SwiftComp
|
|
5
5
|
Project-URL: Homepage, https://github.com/wenbinyugroup/sgio
|
|
6
6
|
Project-URL: Documentation, https://wenbinyugroup.github.io/sgio/
|
|
@@ -10,10 +10,14 @@ License-File: LICENSE
|
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
12
|
Requires-Python: >=3.9
|
|
13
|
+
Requires-Dist: build>=1.3.0
|
|
14
|
+
Requires-Dist: hatchling>=1.27.0
|
|
13
15
|
Requires-Dist: matplotlib
|
|
14
16
|
Requires-Dist: meshio
|
|
17
|
+
Requires-Dist: pydantic>=2.0
|
|
15
18
|
Requires-Dist: pyyaml
|
|
16
19
|
Requires-Dist: scipy
|
|
20
|
+
Requires-Dist: twine>=6.2.0
|
|
17
21
|
Provides-Extra: all
|
|
18
22
|
Requires-Dist: h5py; extra == 'all'
|
|
19
23
|
Requires-Dist: netcdf4; extra == 'all'
|
|
@@ -14,6 +14,7 @@ from ._exceptions import (
|
|
|
14
14
|
|
|
15
15
|
from .core import (
|
|
16
16
|
StructureGene,
|
|
17
|
+
SGMesh,
|
|
17
18
|
check_isolated_nodes,
|
|
18
19
|
renumber_elements,
|
|
19
20
|
)
|
|
@@ -50,7 +51,11 @@ from .utils import (
|
|
|
50
51
|
from ._vendors import inprw
|
|
51
52
|
|
|
52
53
|
__all__ = [
|
|
54
|
+
# Version
|
|
55
|
+
"__version__",
|
|
56
|
+
# Configuration and logging
|
|
53
57
|
"configure_logging",
|
|
58
|
+
# I/O functions
|
|
54
59
|
"read",
|
|
55
60
|
"readOutput",
|
|
56
61
|
"readOutputModel",
|
|
@@ -58,11 +63,26 @@ __all__ = [
|
|
|
58
63
|
"write",
|
|
59
64
|
"convert",
|
|
60
65
|
"readLoadCsv",
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
66
|
+
"addCellDictDataToMesh",
|
|
67
|
+
"addPointDictDataToMesh",
|
|
68
|
+
# Execution
|
|
69
|
+
"run",
|
|
70
|
+
# Core functions and classes
|
|
71
|
+
"buildSG1D",
|
|
72
|
+
"combineSG",
|
|
64
73
|
"SGMesh",
|
|
65
|
-
|
|
74
|
+
"StructureGene",
|
|
75
|
+
"check_isolated_nodes",
|
|
76
|
+
"renumber_elements",
|
|
77
|
+
# Utility functions
|
|
78
|
+
"plot_sg_2d",
|
|
79
|
+
# Model classes from .model import *
|
|
80
|
+
"CauchyContinuumModel",
|
|
81
|
+
"KirchhoffLovePlateShellModel",
|
|
82
|
+
"ReissnerMindlinPlateShellModel",
|
|
83
|
+
"EulerBernoulliBeamModel",
|
|
84
|
+
"TimoshenkoBeamModel",
|
|
85
|
+
# Exception classes
|
|
66
86
|
"SwiftCompLicenseError",
|
|
67
87
|
"VABSLicenseError",
|
|
68
88
|
"SwiftCompIOError",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.15"
|
|
@@ -281,35 +281,35 @@ def _sg_to_meshio_order(cell_type: str, idx: ArrayLike) -> np.ndarray:
|
|
|
281
281
|
|
|
282
282
|
|
|
283
283
|
|
|
284
|
-
def _meshio_to_sg_order(cell_type:str, idx:ArrayLike):
|
|
285
|
-
|
|
284
|
+
# def _meshio_to_sg_order(cell_type:str, idx:ArrayLike):
|
|
285
|
+
# idx_sg = np.asarray(idx) + 1
|
|
286
286
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
287
|
+
# idx_to_insert = None
|
|
288
|
+
# if cell_type == 'triangle6':
|
|
289
|
+
# idx_to_insert = 3
|
|
290
|
+
# elif cell_type == 'tetra10':
|
|
291
|
+
# idx_to_insert = 4
|
|
292
|
+
# elif cell_type == 'wedge15':
|
|
293
|
+
# idx_to_insert = 6
|
|
294
294
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
295
|
+
# max_nodes = idx_sg.shape[1]
|
|
296
|
+
# if cell_type.startswith('line'):
|
|
297
|
+
# max_nodes = 5
|
|
298
|
+
# elif cell_type.startswith('triangle') or cell_type.startswith('quad'):
|
|
299
|
+
# max_nodes = 9
|
|
300
|
+
# elif cell_type.startswith('tetra') or cell_type.startswith('wedge') or cell_type.startswith('hexahedron'):
|
|
301
|
+
# max_nodes = 20
|
|
302
302
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
303
|
+
# # Insert 0 for some types of cells
|
|
304
|
+
# if idx_to_insert:
|
|
305
|
+
# idx_sg = np.insert(idx_sg, idx_to_insert, 0, axis=1)
|
|
306
306
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
307
|
+
# # Fill the remaining location with 0s
|
|
308
|
+
# pad_width = max_nodes - idx_sg.shape[1]
|
|
309
|
+
# # logger.debug('pad width = {}'.format(pad_width))
|
|
310
|
+
# idx_sg = np.pad(idx_sg, ((0, 0), (0, pad_width)), 'constant', constant_values=0)
|
|
311
311
|
|
|
312
|
-
|
|
312
|
+
# return idx_sg
|
|
313
313
|
|
|
314
314
|
|
|
315
315
|
|
|
@@ -398,7 +398,7 @@ def _write_nodes(
|
|
|
398
398
|
|
|
399
399
|
def _meshio_to_sg_order(
|
|
400
400
|
cell_type:str, idx:ArrayLike,
|
|
401
|
-
node_id=[], renumber_nodes:bool=
|
|
401
|
+
node_id=[], renumber_nodes:bool=True
|
|
402
402
|
):
|
|
403
403
|
"""Convert meshio cell ordering to SG ordering.
|
|
404
404
|
|
|
@@ -418,11 +418,14 @@ def _meshio_to_sg_order(
|
|
|
418
418
|
idx_sg: np.ndarray (n_cells, n_elem_nodes_sg)
|
|
419
419
|
Array of cell connectivity in SG ordering.
|
|
420
420
|
"""
|
|
421
|
+
print(f'{renumber_nodes = }')
|
|
421
422
|
idx_sg = np.asarray(idx)
|
|
422
423
|
if renumber_nodes:
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
424
|
+
if len(node_id) == 0:
|
|
425
|
+
idx_sg = np.asarray(idx) + 1
|
|
426
|
+
else:
|
|
427
|
+
idx_map = {v: i+1 for i, v in enumerate(node_id)}
|
|
428
|
+
idx_sg = np.vectorize(idx_map.get)(idx_sg)
|
|
426
429
|
|
|
427
430
|
idx_to_insert = None
|
|
428
431
|
if cell_type == 'triangle6':
|
|
@@ -133,7 +133,7 @@ def readOutputModel(
|
|
|
133
133
|
with open(filename, "r") as file:
|
|
134
134
|
if file_format.lower().startswith("s"):
|
|
135
135
|
model = _swiftcomp.read_output_buffer(
|
|
136
|
-
file, analysis="h", model_type=model_type, **kwargs
|
|
136
|
+
file, analysis="h", model_type=model_type, sg=sg, **kwargs
|
|
137
137
|
)
|
|
138
138
|
elif file_format.lower().startswith("v"):
|
|
139
139
|
model = _vabs.read_output_buffer(
|
|
@@ -680,6 +680,8 @@ def write(
|
|
|
680
680
|
analysis=analysis, model=model_type,
|
|
681
681
|
macro_responses=macro_responses,
|
|
682
682
|
model_space=model_space, prop_ref_y=prop_ref_y,
|
|
683
|
+
renumber_nodes=renumber_nodes,
|
|
684
|
+
renumber_elements=renumber_elements,
|
|
683
685
|
load_type=load_type,
|
|
684
686
|
sfi=sfi, sff=sff, version=format_version
|
|
685
687
|
)
|
|
@@ -248,7 +248,9 @@ def _readThermalProperty(file, isotropy:int):
|
|
|
248
248
|
|
|
249
249
|
|
|
250
250
|
def writeInputBuffer(
|
|
251
|
-
sg, file, analysis, physics,
|
|
251
|
+
sg, file, analysis, physics,
|
|
252
|
+
model_space, prop_ref_y,
|
|
253
|
+
renumber_nodes=False, renumber_elements=False,
|
|
252
254
|
sfi:str='8d', sff:str='20.12e', version=None):
|
|
253
255
|
"""
|
|
254
256
|
"""
|
|
@@ -271,6 +273,9 @@ def writeInputBuffer(
|
|
|
271
273
|
file=file,
|
|
272
274
|
sgdim=sg.sgdim,
|
|
273
275
|
model_space=model_space,
|
|
276
|
+
prop_ref_y=prop_ref_y,
|
|
277
|
+
renumber_nodes=renumber_nodes,
|
|
278
|
+
renumber_elements=renumber_elements,
|
|
274
279
|
int_fmt=sfi, float_fmt=sff
|
|
275
280
|
)
|
|
276
281
|
|
|
@@ -359,13 +364,19 @@ def writeInputBufferGlobal(
|
|
|
359
364
|
|
|
360
365
|
|
|
361
366
|
|
|
362
|
-
def _writeMesh(
|
|
367
|
+
def _writeMesh(
|
|
368
|
+
mesh, file, sgdim, model_space, prop_ref_y='x',
|
|
369
|
+
renumber_nodes=False, renumber_elements=False,
|
|
370
|
+
int_fmt='8d', float_fmt='20.12e'
|
|
371
|
+
):
|
|
363
372
|
"""
|
|
364
373
|
"""
|
|
365
374
|
logger.debug('writing mesh...')
|
|
366
375
|
|
|
367
376
|
write_buffer(
|
|
368
|
-
file, mesh, sgdim=sgdim,
|
|
377
|
+
file, mesh, sgdim=sgdim,
|
|
378
|
+
model_space=model_space, prop_ref_y=prop_ref_y,
|
|
379
|
+
renumber_nodes=renumber_nodes, renumber_elements=renumber_elements,
|
|
369
380
|
int_fmt=int_fmt, float_fmt=float_fmt)
|
|
370
381
|
|
|
371
382
|
return
|
|
@@ -208,30 +208,52 @@ def _read_property_ref_csys(file, nelem, cells, cell_ids):
|
|
|
208
208
|
# ====================================================================
|
|
209
209
|
|
|
210
210
|
def write(
|
|
211
|
-
filename, mesh:SGMesh, sgdim, model_space,
|
|
211
|
+
filename, mesh:SGMesh, sgdim, model_space, prop_ref_y='x',
|
|
212
|
+
renumber_nodes=False, renumber_elements=False,
|
|
212
213
|
int_fmt='8d', float_fmt="20.9e"):
|
|
213
214
|
"""
|
|
214
215
|
"""
|
|
215
216
|
if is_buffer(filename, 'w'):
|
|
216
|
-
write_buffer(
|
|
217
|
+
write_buffer(
|
|
218
|
+
filename, mesh, sgdim, model_space,
|
|
219
|
+
renumber_nodes, renumber_elements,
|
|
220
|
+
int_fmt, float_fmt
|
|
221
|
+
)
|
|
217
222
|
else:
|
|
218
223
|
with open(filename, 'at') as file:
|
|
219
|
-
write_buffer(
|
|
224
|
+
write_buffer(
|
|
225
|
+
file, mesh, sgdim, model_space,
|
|
226
|
+
renumber_nodes, renumber_elements,
|
|
227
|
+
int_fmt, float_fmt
|
|
228
|
+
)
|
|
220
229
|
|
|
221
230
|
|
|
222
231
|
|
|
223
232
|
def write_buffer(
|
|
224
|
-
file, mesh:SGMesh, sgdim, model_space,
|
|
225
|
-
|
|
233
|
+
file, mesh:SGMesh, sgdim, model_space, prop_ref_y='x',
|
|
234
|
+
renumber_nodes=False, renumber_elements=False,
|
|
235
|
+
int_fmt='8d', float_fmt="20.9e"
|
|
236
|
+
):
|
|
226
237
|
"""
|
|
227
238
|
"""
|
|
228
239
|
|
|
240
|
+
_node_id = mesh.point_data.get('node_id', [])
|
|
241
|
+
|
|
229
242
|
_write_nodes(
|
|
230
|
-
file, mesh.points, sgdim,
|
|
243
|
+
file, mesh.points, sgdim, node_id=_node_id,
|
|
244
|
+
model_space=model_space,
|
|
245
|
+
renumber_nodes=renumber_nodes,
|
|
231
246
|
int_fmt=int_fmt, float_fmt=float_fmt
|
|
232
247
|
)
|
|
233
248
|
|
|
234
|
-
|
|
249
|
+
if not 'element_id' in mesh.cell_data.keys():
|
|
250
|
+
mesh.cell_data['element_id'] = []
|
|
251
|
+
cell_id_to_elem_id = _write_elements(
|
|
252
|
+
file, mesh.cells, mesh.cell_data['property_id'],
|
|
253
|
+
mesh.cell_data['element_id'], _node_id,
|
|
254
|
+
renumber_nodes=renumber_nodes,
|
|
255
|
+
int_fmt=int_fmt
|
|
256
|
+
)
|
|
235
257
|
|
|
236
258
|
if 'property_ref_csys' in mesh.cell_data.keys():
|
|
237
259
|
_write_property_ref_csys(
|
|
@@ -244,9 +266,18 @@ def write_buffer(
|
|
|
244
266
|
|
|
245
267
|
|
|
246
268
|
|
|
247
|
-
def _write_elements(
|
|
269
|
+
def _write_elements(
|
|
270
|
+
f, cells, cell_prop_ids, elem_id, node_id, renumber_nodes=False,
|
|
271
|
+
int_fmt:str='8d'
|
|
272
|
+
):
|
|
248
273
|
"""
|
|
249
274
|
"""
|
|
275
|
+
if len(elem_id) == 0:
|
|
276
|
+
generate_eid = True
|
|
277
|
+
else:
|
|
278
|
+
generate_eid = False
|
|
279
|
+
# print(f'{generate_eid = }')
|
|
280
|
+
|
|
250
281
|
cell_id_to_elem_id = []
|
|
251
282
|
|
|
252
283
|
sfi = '{:' + int_fmt + '}'
|
|
@@ -254,12 +285,25 @@ def _write_elements(f, cells, cell_prop_ids, int_fmt:str='8d'):
|
|
|
254
285
|
consecutive_index = 0
|
|
255
286
|
for k, cell_block in enumerate(cells):
|
|
256
287
|
cell_type = cell_block.type
|
|
257
|
-
|
|
288
|
+
# print(f'cell_block.data = {cell_block.data}')
|
|
289
|
+
node_idcs = _meshio_to_sg_order(
|
|
290
|
+
cell_type, cell_block.data,
|
|
291
|
+
node_id=node_id, renumber_nodes=renumber_nodes
|
|
292
|
+
)
|
|
293
|
+
print(f'{node_idcs = }')
|
|
258
294
|
|
|
259
295
|
_cid_to_eid = []
|
|
296
|
+
if generate_eid:
|
|
297
|
+
elem_id.append([])
|
|
260
298
|
|
|
261
299
|
for i, c in enumerate(node_idcs):
|
|
262
|
-
|
|
300
|
+
if generate_eid:
|
|
301
|
+
_eid = consecutive_index + i + 1
|
|
302
|
+
elem_id[k].append(_eid)
|
|
303
|
+
else:
|
|
304
|
+
_eid = elem_id[k][i]
|
|
305
|
+
# print(f'{_eid = }')
|
|
306
|
+
|
|
263
307
|
_pid = cell_prop_ids[k][i]
|
|
264
308
|
|
|
265
309
|
_nums = [_eid, _pid] # Element id, property id
|
|
@@ -186,6 +186,7 @@ def read_output_buffer(
|
|
|
186
186
|
def write_buffer(
|
|
187
187
|
sg:StructureGene, file, analysis='h', model='sd1',
|
|
188
188
|
model_space='xy', prop_ref_y='x',
|
|
189
|
+
renumber_nodes=False, renumber_elements=False,
|
|
189
190
|
macro_responses:list[smdl.StateCase]=[],
|
|
190
191
|
load_type=0,
|
|
191
192
|
sfi:str='8d', sff:str='20.12e', version=None
|
|
@@ -211,7 +212,9 @@ def write_buffer(
|
|
|
211
212
|
|
|
212
213
|
if analysis == 'h':
|
|
213
214
|
writeInputBuffer(
|
|
214
|
-
sg, file, analysis, sg.physics,
|
|
215
|
+
sg, file, analysis, sg.physics,
|
|
216
|
+
model_space, prop_ref_y,
|
|
217
|
+
renumber_nodes, renumber_elements,
|
|
215
218
|
sfi, sff, version)
|
|
216
219
|
|
|
217
220
|
elif (analysis == 'd') or (analysis == 'l') or (analysis.startswith('f')):
|
|
@@ -236,7 +236,33 @@ def write_buffer(
|
|
|
236
236
|
renumber_nodes=False, renumber_elements=False,
|
|
237
237
|
int_fmt='8d', float_fmt="20.9e"
|
|
238
238
|
):
|
|
239
|
-
"""
|
|
239
|
+
"""Write mesh data to VABS format buffer.
|
|
240
|
+
|
|
241
|
+
Parameters
|
|
242
|
+
----------
|
|
243
|
+
file : file
|
|
244
|
+
The file buffer to write to.
|
|
245
|
+
mesh : SGMesh
|
|
246
|
+
The mesh object containing points, cells, and associated data.
|
|
247
|
+
sgdim : int
|
|
248
|
+
The spatial dimension of the structural gene (2 or 3).
|
|
249
|
+
model_space : str, optional
|
|
250
|
+
The model coordinate space ('xy', 'yz', 'zx'), by default ''.
|
|
251
|
+
prop_ref_y : str, optional
|
|
252
|
+
Reference axis for property coordinate system ('x', 'y', 'z'), by default 'x'.
|
|
253
|
+
renumber_nodes : bool, optional
|
|
254
|
+
Whether to renumber nodes, by default False.
|
|
255
|
+
renumber_elements : bool, optional
|
|
256
|
+
Whether to renumber elements, by default False.
|
|
257
|
+
int_fmt : str, optional
|
|
258
|
+
Format string for integer output, by default '8d'.
|
|
259
|
+
float_fmt : str, optional
|
|
260
|
+
Format string for float output, by default "20.9e".
|
|
261
|
+
|
|
262
|
+
Returns
|
|
263
|
+
-------
|
|
264
|
+
None
|
|
265
|
+
Writes mesh data directly to the file buffer.
|
|
240
266
|
"""
|
|
241
267
|
|
|
242
268
|
# _node_id = []
|
|
@@ -290,7 +316,27 @@ def _write_elements(
|
|
|
290
316
|
f, cells, elem_id, node_id, renumber_nodes=False,
|
|
291
317
|
int_fmt:str='8d'
|
|
292
318
|
):
|
|
293
|
-
"""
|
|
319
|
+
"""Write element connectivity data to VABS format file.
|
|
320
|
+
|
|
321
|
+
Parameters
|
|
322
|
+
----------
|
|
323
|
+
f : file
|
|
324
|
+
The file object to write to.
|
|
325
|
+
cells : list
|
|
326
|
+
List of cell blocks containing element connectivity data.
|
|
327
|
+
elem_id : list
|
|
328
|
+
List of element IDs for each cell block. If empty, IDs are auto-generated.
|
|
329
|
+
node_id : list
|
|
330
|
+
List of node IDs for renumbering (currently unused).
|
|
331
|
+
renumber_nodes : bool, optional
|
|
332
|
+
Whether to renumber nodes (currently unused), by default False.
|
|
333
|
+
int_fmt : str, optional
|
|
334
|
+
Format string for integer output, by default '8d'.
|
|
335
|
+
|
|
336
|
+
Returns
|
|
337
|
+
-------
|
|
338
|
+
None
|
|
339
|
+
Modifies elem_id list in-place if auto-generating element IDs.
|
|
294
340
|
"""
|
|
295
341
|
if len(elem_id) == 0:
|
|
296
342
|
generate_eid = True
|