ada-py 0.0.45.dev8__tar.gz → 0.2.0__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.
Files changed (433) hide show
  1. {ada-py-0.0.45.dev8/src/ada_py.egg-info → ada-py-0.2.0}/PKG-INFO +1 -1
  2. ada-py-0.2.0/pyproject.toml +55 -0
  3. ada-py-0.2.0/src/ada/api/animations.py +160 -0
  4. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/beams/geom_beams.py +5 -5
  5. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/containers.py +5 -3
  6. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/spatial/assembly.py +12 -6
  7. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/spatial/part.py +38 -4
  8. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/base/physical_objects.py +40 -0
  9. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/convert_length_unit_patch.py +1 -1
  10. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/units_conversion.py +3 -2
  11. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/calc/beams.py +6 -2
  12. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/__init__.py +8 -1
  13. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/common.py +2 -1
  14. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/concept.py +14 -12
  15. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/constraints.py +34 -33
  16. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/read/reader.py +21 -11
  17. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_output_requests.py +0 -1
  18. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_parts.py +1 -0
  19. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/writer.py +4 -3
  20. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/common.py +8 -1
  21. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/execute.py +11 -10
  22. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/api_helpers.py +34 -55
  23. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/steps/dynamic.py +3 -2
  24. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/write_med.py +7 -7
  25. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/write_steps.py +1 -1
  26. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/writer.py +0 -1
  27. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/general.py +1 -1
  28. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/write/write_sections.py +2 -1
  29. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/write/writer.py +3 -1
  30. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/utils.py +5 -2
  31. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/vtu/write.py +2 -1
  32. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/meshing/concepts.py +12 -8
  33. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/outputs.py +18 -18
  34. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/results/common.py +111 -8
  35. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/results/concepts.py +12 -11
  36. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/results/field_data.py +3 -1
  37. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/results/sqlite_store.py +4 -1
  38. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/sections.py +4 -5
  39. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/shapes/definitions.py +6 -6
  40. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/store.py +2 -2
  41. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/tessellating.py +10 -3
  42. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/utils.py +5 -3
  43. ada-py-0.2.0/src/ada/visit/comms.py +150 -0
  44. ada-py-0.2.0/src/ada/visit/rendering/femviz.py +28 -0
  45. ada-py-0.0.45.dev8/src/ada/visit/render_pygfx_helpers.py → ada-py-0.2.0/src/ada/visit/rendering/pygfx_helpers.py +4 -2
  46. {ada-py-0.0.45.dev8/src/ada/visit → ada-py-0.2.0/src/ada/visit/rendering}/render_pygfx.py +9 -4
  47. ada-py-0.2.0/src/ada/visit/rendering/renderer_react.py +59 -0
  48. ada-py-0.2.0/src/ada/visit/resources/index.zip +0 -0
  49. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/utils.py +31 -0
  50. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/websocket_server.py +52 -4
  51. {ada-py-0.0.45.dev8 → ada-py-0.2.0/src/ada_py.egg-info}/PKG-INFO +1 -1
  52. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada_py.egg-info/SOURCES.txt +6 -10
  53. ada-py-0.0.45.dev8/MANIFEST.in +0 -4
  54. ada-py-0.0.45.dev8/pyproject.toml +0 -35
  55. ada-py-0.0.45.dev8/src/ada/visit/comms.py +0 -86
  56. ada-py-0.0.45.dev8/src/ada/visit/rendering/femviz.py +0 -130
  57. ada-py-0.0.45.dev8/src/ada/visit/rendering/new_render_api.py +0 -109
  58. ada-py-0.0.45.dev8/src/ada/visit/rendering/render_fem.py +0 -49
  59. ada-py-0.0.45.dev8/src/ada/visit/rendering/renderer_ipygany.py +0 -16
  60. ada-py-0.0.45.dev8/src/ada/visit/rendering/renderer_pythreejs.py +0 -875
  61. ada-py-0.0.45.dev8/src/ada/visit/rendering/renderer_pyvista.py +0 -33
  62. ada-py-0.0.45.dev8/src/ada/visit/rendering/threejs_utils.py +0 -127
  63. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/LICENSE +0 -0
  64. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/README.md +0 -0
  65. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/setup.cfg +0 -0
  66. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/__init__.py +0 -0
  67. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/__init__.py +0 -0
  68. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/beams/__init__.py +0 -0
  69. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/beams/base_bm.py +0 -0
  70. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/beams/helpers.py +0 -0
  71. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/bounding_box.py +0 -0
  72. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/connections.py +0 -0
  73. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/curves.py +0 -0
  74. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/exceptions.py +0 -0
  75. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/fasteners.py +0 -0
  76. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/groups.py +0 -0
  77. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/nodes.py +0 -0
  78. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/piping/__init__.py +0 -0
  79. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/piping/base_piping.py +0 -0
  80. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/plates/__init__.py +0 -0
  81. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/plates/base_pl.py +0 -0
  82. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/presentation_layers.py +0 -0
  83. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/primitive_boolean.py +0 -0
  84. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/primitives.py +0 -0
  85. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/spatial/__init__.py +0 -0
  86. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/transforms.py +0 -0
  87. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/user.py +0 -0
  88. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/walls/__init__.py +0 -0
  89. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/api/walls/base_walls.py +0 -0
  90. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/base/__init__.py +0 -0
  91. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/base/adacpp_interface.py +0 -0
  92. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/base/changes.py +0 -0
  93. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/base/ifc_types.py +0 -0
  94. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/base/root.py +0 -0
  95. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/base/types.py +0 -0
  96. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/base/units.py +0 -0
  97. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cache/__init__.py +0 -0
  98. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cache/reader.py +0 -0
  99. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cache/store.py +0 -0
  100. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cache/utils.py +0 -0
  101. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cache/writer.py +0 -0
  102. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/__init__.py +0 -0
  103. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/cad_store.py +0 -0
  104. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/__init__.py +0 -0
  105. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/read/__init__.py +0 -0
  106. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/read/helpers.py +0 -0
  107. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/read/read_bcs.py +0 -0
  108. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/read/read_beams.py +0 -0
  109. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/read/read_groups.py +0 -0
  110. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/read/read_joints.py +0 -0
  111. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/read/read_masses.py +0 -0
  112. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/read/read_materials.py +0 -0
  113. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/read/read_sections.py +0 -0
  114. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/read/read_sets.py +0 -0
  115. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/sat_helpers.py +0 -0
  116. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/store.py +0 -0
  117. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/write/__init__.py +0 -0
  118. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/write/resources/xml_blank.xml +0 -0
  119. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/write/write_bcs.py +0 -0
  120. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/write/write_beams.py +0 -0
  121. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/write/write_masses.py +0 -0
  122. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/write/write_materials.py +0 -0
  123. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/write/write_sat_embedded.py +0 -0
  124. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/write/write_sections.py +0 -0
  125. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/write/write_utils.py +0 -0
  126. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/gxml/write/write_xml.py +0 -0
  127. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/__init__.py +0 -0
  128. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/ifc_template.py +0 -0
  129. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/__init__.py +0 -0
  130. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/exceptions.py +0 -0
  131. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/geom/__init__.py +0 -0
  132. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/geom/curves.py +0 -0
  133. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/geom/geom_reader.py +0 -0
  134. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/geom/placement.py +0 -0
  135. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/geom/solids.py +0 -0
  136. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/geom/surfaces.py +0 -0
  137. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/read_beam_section.py +0 -0
  138. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/read_beams.py +0 -0
  139. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/read_curves.py +0 -0
  140. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/read_ifc.py +0 -0
  141. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/read_materials.py +0 -0
  142. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/read_parts.py +0 -0
  143. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/read_physical_objects.py +0 -0
  144. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/read_pipe.py +0 -0
  145. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/read_plates.py +0 -0
  146. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/read_shapes.py +0 -0
  147. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/read/reader_utils.py +0 -0
  148. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/store.py +0 -0
  149. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/utils.py +0 -0
  150. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/__init__.py +0 -0
  151. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/geom/__init__.py +0 -0
  152. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/geom/curves.py +0 -0
  153. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/geom/placement.py +0 -0
  154. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/geom/solids.py +0 -0
  155. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/geom/surfaces.py +0 -0
  156. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/primitive_helper_utils.py +0 -0
  157. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_beams.py +0 -0
  158. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_curves.py +0 -0
  159. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_fasteners.py +0 -0
  160. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_groups.py +0 -0
  161. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_ifc.py +0 -0
  162. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_instances.py +0 -0
  163. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_material.py +0 -0
  164. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_openings.py +0 -0
  165. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_pipe.py +0 -0
  166. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_plates.py +0 -0
  167. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_sections.py +0 -0
  168. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_shapes.py +0 -0
  169. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_spatial_elements.py +0 -0
  170. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_stru_components.py +0 -0
  171. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_user.py +0 -0
  172. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/ifc/write/write_wall.py +0 -0
  173. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/sat/__init__.py +0 -0
  174. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/sat/exceptions.py +0 -0
  175. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/sat/read/__init__.py +0 -0
  176. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/sat/read/bsplinesurface.py +0 -0
  177. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/sat/read/face.py +0 -0
  178. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/sat/reader.py +0 -0
  179. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/sat/store.py +0 -0
  180. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/sat/utils.py +0 -0
  181. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/sat/write/__init__.py +0 -0
  182. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/sat/write/writer.py +0 -0
  183. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/step/__init__.py +0 -0
  184. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/step/read/__init__.py +0 -0
  185. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/step/read/reader_utils.py +1 -1
  186. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/step/store.py +0 -0
  187. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/step/stp_to_ifc.py +0 -0
  188. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/step/write/__init__.py +0 -0
  189. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/cadit/step/write/writer.py +0 -0
  190. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/calc/__init__.py +0 -0
  191. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/calc/ec3_ex.py +0 -0
  192. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/calc/utils.py +0 -0
  193. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/config.py +0 -0
  194. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/__init__.py +0 -0
  195. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/alignment_utils.py +0 -0
  196. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/bimserver.py +0 -0
  197. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/blender.py +0 -0
  198. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/clash_check.py +0 -0
  199. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/constants.py +0 -0
  200. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/curve_fitting_utils.py +0 -0
  201. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/curve_utils.py +0 -0
  202. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/date_utils.py +0 -0
  203. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/exceptions.py +0 -0
  204. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/file_system.py +0 -0
  205. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/guid.py +0 -0
  206. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/tools.py +0 -0
  207. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/utils.py +0 -0
  208. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/vector_transforms.py +0 -0
  209. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/core/vector_utils.py +0 -0
  210. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/drawings/__init__.py +0 -0
  211. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/drawings/export.py +0 -0
  212. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/constants.py +0 -0
  213. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/containers.py +0 -0
  214. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/conversion_utils.py +0 -0
  215. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/elements.py +0 -0
  216. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/exceptions/__init__.py +0 -0
  217. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/exceptions/element_support.py +0 -0
  218. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/exceptions/fea_execution.py +0 -0
  219. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/exceptions/fea_software.py +0 -0
  220. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/exceptions/model_definition.py +0 -0
  221. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/__init__.py +0 -0
  222. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/__init__.py +0 -0
  223. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/elem_formulations.py +0 -0
  224. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/elem_shapes.py +0 -0
  225. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/execute.py +0 -0
  226. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/options.py +0 -0
  227. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/read/__init__.py +0 -0
  228. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/read/cards.py +0 -0
  229. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/read/helper_utils.py +0 -0
  230. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/read/read_elements.py +0 -0
  231. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/read/read_masses.py +0 -0
  232. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/read/read_materials.py +0 -0
  233. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/read/read_orientations.py +0 -0
  234. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/read/read_sections.py +0 -0
  235. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/results/__init__.py +0 -0
  236. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/results/_results.py +0 -0
  237. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/results/aba_io.py +0 -0
  238. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/results/read_odb.py +0 -0
  239. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/solver.py +0 -0
  240. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/__init__.py +0 -0
  241. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/helper_utils.py +0 -0
  242. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/templates.py +0 -0
  243. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_amplitudes.py +0 -0
  244. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_bc.py +0 -0
  245. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_connectors.py +0 -0
  246. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_constraints.py +0 -0
  247. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_elements.py +0 -0
  248. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_interactions.py +0 -0
  249. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_loads.py +0 -0
  250. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_main_inp.py +0 -0
  251. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_masses.py +0 -0
  252. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_materials.py +0 -0
  253. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_nodes.py +0 -0
  254. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_orientations.py +0 -0
  255. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_predefined_state.py +0 -0
  256. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_sections.py +0 -0
  257. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_sets.py +0 -0
  258. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_springs.py +0 -0
  259. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_steps.py +0 -0
  260. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/abaqus/write/write_surfaces.py +0 -0
  261. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/__init__.py +0 -0
  262. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/common.py +0 -0
  263. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/compatibility.py +0 -0
  264. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/execute.py +0 -0
  265. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/results/__init__.py +0 -0
  266. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/results/read_eigen_data.py +0 -0
  267. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/results/read_frd_file.py +0 -0
  268. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/results/read_results.py +0 -0
  269. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/write/__init__.py +0 -0
  270. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/write/templates.py +0 -0
  271. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/write/write_elements.py +0 -0
  272. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/write/write_loads.py +0 -0
  273. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/write/write_steps.py +0 -0
  274. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/calculix/write/writer.py +0 -0
  275. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/__init__.py +0 -0
  276. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/compatibility.py +0 -0
  277. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/read/__init__.py +0 -0
  278. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/read/read_sets.py +0 -0
  279. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/read/reader.py +0 -0
  280. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/results/__init__.py +0 -0
  281. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/results/read_rmed_results.py +0 -0
  282. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/results/results.py +0 -0
  283. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/results/results_helpers.py +0 -0
  284. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/__init__.py +0 -0
  285. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/helper_utils.py +0 -0
  286. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/steps/__init__.py +0 -0
  287. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/steps/eigen.py +0 -0
  288. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/steps/fields.py +0 -0
  289. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/steps/static.py +0 -0
  290. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/steps/static_lin.py +0 -0
  291. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/steps/static_nonlin.py +0 -0
  292. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/templates.py +0 -0
  293. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/write_bc.py +0 -0
  294. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/write_loads.py +0 -0
  295. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/write_materials.py +0 -0
  296. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/write_nodes.py +0 -0
  297. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/write_sections.py +0 -0
  298. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/code_aster/write/write_sets.py +0 -0
  299. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/execute.py +0 -0
  300. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/ifc/__init__.py +0 -0
  301. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/ifc/helper_utils.py +0 -0
  302. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/ifc/writer.py +0 -0
  303. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/mesh_io/__init__.py +0 -0
  304. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/mesh_io/common.py +0 -0
  305. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/mesh_io/reader.py +0 -0
  306. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/mesh_io/writer.py +0 -0
  307. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/postprocess.py +0 -0
  308. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/__init__.py +0 -0
  309. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/common.py +0 -0
  310. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/execute.py +0 -0
  311. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/read/__init__.py +0 -0
  312. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/read/cards.py +0 -0
  313. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/read/read_constraints.py +0 -0
  314. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/read/read_elements.py +0 -0
  315. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/read/read_materials.py +0 -0
  316. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/read/read_nodes.py +0 -0
  317. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/read/read_sections.py +0 -0
  318. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/read/read_sets.py +0 -0
  319. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/read/reader.py +0 -0
  320. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/results/__init__.py +0 -0
  321. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/results/_results.py +0 -0
  322. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/results/read_cc.py +0 -0
  323. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/results/read_sif.py +0 -0
  324. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/results/sin2sif.py +0 -0
  325. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/write/__init__.py +0 -0
  326. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/write/templates.py +0 -0
  327. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/write/write_bm_profiles.py +0 -0
  328. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/write/write_constraints.py +0 -0
  329. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/write/write_elements.py +0 -0
  330. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/write/write_loads.py +0 -0
  331. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/write/write_masses.py +0 -0
  332. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/write/write_steps.py +0 -0
  333. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/sesam/write/write_utils.py +0 -0
  334. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/tools.py +0 -0
  335. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/usfos/__init__.py +0 -0
  336. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/usfos/write/__init__.py +0 -0
  337. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/usfos/write/write_elements.py +0 -0
  338. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/usfos/write/write_profiles.py +0 -0
  339. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/usfos/write/writer.py +0 -0
  340. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/vtu/__init__.py +0 -0
  341. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/xdmf/__init__.py +0 -0
  342. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/xdmf/common.py +0 -0
  343. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/xdmf/reader.py +0 -0
  344. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formats/xdmf/writer.py +0 -0
  345. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formulations/__init__.py +0 -0
  346. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/formulations/lines.py +0 -0
  347. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/interactions.py +0 -0
  348. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/loads.py +0 -0
  349. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/meshing/__init__.py +0 -0
  350. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/meshing/common.py +0 -0
  351. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/meshing/exceptions.py +0 -0
  352. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/meshing/multisession.py +0 -0
  353. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/meshing/partitioning/__init__.py +0 -0
  354. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/meshing/partitioning/partition_beams.py +0 -0
  355. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/meshing/partitioning/strategies.py +0 -0
  356. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/meshing/recipes.py +0 -0
  357. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/meshing/utils.py +0 -0
  358. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/options.py +0 -0
  359. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/results/__init__.py +0 -0
  360. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/results/components.py +0 -0
  361. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/results/eigenvalue.py +0 -0
  362. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/results/interface.py +0 -0
  363. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/results/resources/results.sql +0 -0
  364. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/sets.py +0 -0
  365. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/shapes/__init__.py +0 -0
  366. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/shapes/lines.py +0 -0
  367. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/shapes/mesh_types.py +0 -0
  368. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/shapes/shells.py +0 -0
  369. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/shapes/solids.py +0 -0
  370. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/steps.py +0 -0
  371. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/surfaces.py +0 -0
  372. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/fem/utils.py +0 -0
  373. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/geom/__init__.py +0 -0
  374. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/geom/booleans.py +0 -0
  375. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/geom/core.py +0 -0
  376. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/geom/curve_utils.py +0 -0
  377. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/geom/curves.py +0 -0
  378. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/geom/placement.py +0 -0
  379. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/geom/points.py +0 -0
  380. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/geom/solids.py +0 -0
  381. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/geom/surfaces.py +0 -0
  382. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/materials/__init__.py +0 -0
  383. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/materials/concept.py +0 -0
  384. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/materials/metals/__init__.py +0 -0
  385. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/materials/metals/base_models.py +0 -0
  386. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/materials/metals/plasticity_models.py +0 -0
  387. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/materials/metals/resources/NLMatParams.json +0 -0
  388. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/materials/polymers/__init__.py +0 -0
  389. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/materials/polymers/models.py +0 -0
  390. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/materials/polymers/utils.py +0 -0
  391. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/materials/utils.py +0 -0
  392. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/__init__.py +0 -0
  393. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/exceptions.py +0 -0
  394. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/geom/__init__.py +0 -0
  395. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/geom/boolean.py +0 -0
  396. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/geom/curves.py +0 -0
  397. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/geom/solids.py +0 -0
  398. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/geom/surfaces.py +0 -0
  399. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/gltf_writer.py +0 -0
  400. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/serializers.py +0 -0
  401. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/visit_utils.py +0 -0
  402. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/occ/xcaf_utils.py +0 -0
  403. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/param_models/__init__.py +0 -0
  404. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/param_models/basic_joints.py +0 -0
  405. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/param_models/basic_module.py +0 -0
  406. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/param_models/basic_structural_components.py +0 -0
  407. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/param_models/fem_models.py +0 -0
  408. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/param_models/primitives_generators.py +0 -0
  409. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/param_models/utils.py +0 -0
  410. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/sections/__init__.py +0 -0
  411. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/sections/bm_sh_ident.py +0 -0
  412. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/sections/categories.py +0 -0
  413. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/sections/concept.py +0 -0
  414. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/sections/profiles.py +0 -0
  415. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/sections/properties.py +0 -0
  416. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/sections/resources/ProfileDB.json +0 -0
  417. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/sections/utils.py +0 -0
  418. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/__init__.py +0 -0
  419. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/colors.py +0 -0
  420. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/concept.py +0 -0
  421. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/config.py +0 -0
  422. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/gltf/__init__.py +0 -0
  423. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/gltf/graph.py +0 -0
  424. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/gltf/meshes.py +0 -0
  425. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/gltf/optimize.py +0 -0
  426. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/gltf/store.py +0 -0
  427. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/optimizing.py +0 -0
  428. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/plots.py +0 -0
  429. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada/visit/rendering/__init__.py +0 -0
  430. {ada-py-0.0.45.dev8/src/ada/visit → ada-py-0.2.0/src/ada/visit/rendering}/render_backend.py +0 -0
  431. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada_py.egg-info/dependency_links.txt +0 -0
  432. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada_py.egg-info/entry_points.txt +0 -0
  433. {ada-py-0.0.45.dev8 → ada-py-0.2.0}/src/ada_py.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ada-py
3
- Version: 0.0.45.dev8
3
+ Version: 0.2.0
4
4
  Summary: Assembly for Design & Analysis - A python library for structural analysis and design
5
5
  Author-email: "Kristoffer H. Andersen" <kristoffer_andersen@outlook.com>
6
6
  Project-URL: Homepage, https://github.com/Krande/adapy
@@ -0,0 +1,55 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "ada-py"
7
+ version = "0.2.0"
8
+ authors = [
9
+ { name = "Kristoffer H. Andersen", email = "kristoffer_andersen@outlook.com" },
10
+ ]
11
+ description = "Assembly for Design & Analysis - A python library for structural analysis and design"
12
+ readme = "README.md"
13
+ requires-python = ">=3.10"
14
+ classifiers = [
15
+ "Development Status :: 3 - Alpha",
16
+ "Intended Audience :: Science/Research",
17
+ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
18
+ "Operating System :: OS Independent",
19
+ "Programming Language :: Python",
20
+ "Programming Language :: Python :: 3.10",
21
+ "Programming Language :: Python :: 3.11",
22
+ "Topic :: Scientific/Engineering",
23
+ "Topic :: Utilities",
24
+ ]
25
+ [project.scripts]
26
+ ada-viewer = "ada.visit.render_pygfx:main"
27
+
28
+ [project.urls]
29
+ "Homepage" = "https://github.com/Krande/adapy"
30
+ "Bug Tracker" = "https://github.com/Krande/adapy/issues"
31
+
32
+ [tool.setuptools.packages.find]
33
+ where = ["src"]
34
+ include = ["ada*"]
35
+ exclude = ["frontend*"]
36
+
37
+ [tool.setuptools.package-data]
38
+ ada = [
39
+ "sections/resources/ProfileDB.json",
40
+ "materials/metals/resources/NLMatParams.json",
41
+ "cadit/gxml/write/resources/xml_blank.xml",
42
+ "fem/results/resources/results.sql",
43
+ "visit/resources/index.zip"
44
+ ]
45
+
46
+ [tool.black]
47
+ line-length = 120
48
+
49
+ [tool.ruff]
50
+ line-length = 120
51
+ ignore = ["E741"]
52
+ exclude = ["examples/"]
53
+
54
+ [tool.isort]
55
+ profile = "black"
@@ -0,0 +1,160 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import dataclass, field
4
+
5
+ import numpy as np
6
+ from trimesh.exchange.gltf import _data_append
7
+
8
+
9
+ @dataclass
10
+ class Animation:
11
+ name: str
12
+ keyframe_times: list[float | int]
13
+ translation_keyframes: list[float | int] = None
14
+ rotation_keyframes: list[list[float, float, float, float]] = None
15
+ deformation_weights_keyframes: list[float | int] = None
16
+ deformation_shape: list[list[float]] = None
17
+ node_idx: int | list[int] = None
18
+
19
+ def __call__(self, buffer_items, tree, morph_target_index, num_morph_targets):
20
+ node_idx_list = self.node_idx
21
+ if not isinstance(node_idx_list, list):
22
+ node_idx_list = [node_idx_list]
23
+
24
+ keyframe_idx = _data_append(
25
+ acc=tree["accessors"],
26
+ buff=buffer_items,
27
+ blob={"componentType": 5126, "type": "SCALAR"},
28
+ data=np.array(self.keyframe_times, dtype="float32"),
29
+ )
30
+
31
+ samplers = []
32
+ channels = []
33
+ if self.translation_keyframes is not None:
34
+ translation_idx = _data_append(
35
+ acc=tree["accessors"],
36
+ buff=buffer_items,
37
+ blob={"componentType": 5126, "type": "VEC3"},
38
+ data=np.array(self.translation_keyframes, dtype="float32"),
39
+ )
40
+ translation_sampler = {"input": keyframe_idx, "interpolation": "LINEAR", "output": translation_idx}
41
+ sampler_idx = len(samplers)
42
+ samplers.append(translation_sampler)
43
+ for node_idx in node_idx_list:
44
+ translation_channel = {"sampler": sampler_idx, "target": {"node": node_idx, "path": "translation"}}
45
+ channels.append(translation_channel)
46
+
47
+ if self.rotation_keyframes is not None:
48
+ rotation_idx = _data_append(
49
+ acc=tree["accessors"],
50
+ buff=buffer_items,
51
+ blob={"componentType": 5126, "type": "VEC4"},
52
+ data=np.array(self.rotation_keyframes, dtype="float32"),
53
+ )
54
+ rotation_sampler = {"input": keyframe_idx, "interpolation": "LINEAR", "output": rotation_idx}
55
+ sampler_idx = len(samplers)
56
+ samplers.append(rotation_sampler)
57
+ for node_idx in node_idx_list:
58
+ rotation_channel = {"sampler": sampler_idx, "target": {"node": node_idx, "path": "rotation"}}
59
+ channels.append(rotation_channel)
60
+
61
+ if self.deformation_weights_keyframes is not None:
62
+ deformation_shape_idx = _data_append(
63
+ acc=tree["accessors"],
64
+ buff=buffer_items,
65
+ blob={"componentType": 5126, "type": "VEC3"},
66
+ data=np.array(self.deformation_shape, dtype="float32"),
67
+ )
68
+
69
+ keyframe_weights = np.zeros((len(self.deformation_weights_keyframes) * num_morph_targets), dtype="float32")
70
+ for i, weight in enumerate(self.deformation_weights_keyframes):
71
+ keyframe_weights[i * num_morph_targets + morph_target_index] = weight
72
+
73
+ # print(keyframe_weights)
74
+ deformation_weights_keys_idx = _data_append(
75
+ acc=tree["accessors"],
76
+ buff=buffer_items,
77
+ blob={"componentType": 5126, "type": "SCALAR"},
78
+ data=keyframe_weights,
79
+ )
80
+
81
+ deformation_sampler = {
82
+ "input": keyframe_idx,
83
+ "interpolation": "LINEAR",
84
+ "output": deformation_weights_keys_idx,
85
+ }
86
+ sampler_idx = len(samplers)
87
+ samplers.append(deformation_sampler)
88
+
89
+ for node_idx in node_idx_list:
90
+ deformation_channel = {"sampler": sampler_idx, "target": {"node": node_idx, "path": "weights"}}
91
+ channels.append(deformation_channel)
92
+
93
+ # add position targets
94
+ mesh_no = tree["nodes"][node_idx]["mesh"]
95
+ mesh = tree["meshes"][mesh_no]
96
+
97
+ deform_target = {"POSITION": deformation_shape_idx}
98
+
99
+ # make sure the referenced bufferview contains the target property
100
+ primitive = mesh["primitives"][0]
101
+ if primitive.get("targets") is None:
102
+ primitive["targets"] = []
103
+
104
+ target_idx = len(primitive["targets"])
105
+ primitive["targets"].append(deform_target)
106
+
107
+ if mesh["extras"].get("targetNames") is None:
108
+ mesh["extras"]["targetNames"] = []
109
+ mesh["extras"]["targetNames"].append(self.name)
110
+
111
+ if mesh.get("weights") is None:
112
+ mesh["weights"] = []
113
+
114
+ mesh["weights"].append(target_idx)
115
+
116
+ # Update tree with data added to buffer
117
+ if tree.get("animations") is None:
118
+ tree["animations"] = []
119
+
120
+ tree["animations"].append(
121
+ {
122
+ "name": self.name,
123
+ "samplers": samplers,
124
+ "channels": channels,
125
+ }
126
+ )
127
+
128
+
129
+ @dataclass
130
+ class AnimationStore:
131
+ animations: list[Animation] = field(default_factory=list)
132
+
133
+ def __call__(self, buffer_items, tree, *args, **kwargs):
134
+ for idx, animation in enumerate(self.animations):
135
+ animation(buffer_items, tree, morph_target_index=idx, num_morph_targets=len(self.animations))
136
+
137
+ def add(self, animation: Animation):
138
+ self.animations.append(animation)
139
+
140
+ @staticmethod
141
+ def update_buffer_view(tree, accessor_idx, target_num):
142
+ buffer_view_idx = tree["accessors"][accessor_idx]["bufferView"]
143
+ buffer_view = tree["bufferViews"][buffer_view_idx]
144
+ if buffer_view.get("target") is None:
145
+ buffer_view["target"] = target_num
146
+
147
+ @staticmethod
148
+ def tree_postprocessor(tree):
149
+ for material in tree["materials"]:
150
+ material["doubleSided"] = True
151
+
152
+ for anim in tree["animations"]:
153
+ node_idx = anim["channels"][0]["target"]["node"]
154
+ mesh_idx = tree["nodes"][node_idx]["mesh"]
155
+ mesh = tree["meshes"][mesh_idx]
156
+ for primitive in mesh["primitives"]:
157
+ AnimationStore.update_buffer_view(tree, primitive["attributes"]["POSITION"], 34962)
158
+ AnimationStore.update_buffer_view(tree, primitive["indices"], 34963)
159
+ for target in primitive["targets"]:
160
+ AnimationStore.update_buffer_view(tree, target["POSITION"], 34962)
@@ -26,11 +26,11 @@ def straight_beam_to_geom(beam: Beam | PipeSegStraight, is_solid=True) -> Geomet
26
26
  geom = Geometry(beam.guid, solid, beam.color)
27
27
  else:
28
28
  if beam.section.type in (
29
- beam.section.TYPES.IPROFILE,
30
- beam.section.TYPES.TPROFILE,
31
- beam.section.TYPES.ANGULAR,
32
- beam.section.TYPES.CHANNEL,
33
- beam.section.TYPES.FLATBAR,
29
+ beam.section.TYPES.IPROFILE,
30
+ beam.section.TYPES.TPROFILE,
31
+ beam.section.TYPES.ANGULAR,
32
+ beam.section.TYPES.CHANNEL,
33
+ beam.section.TYPES.FLATBAR,
34
34
  ):
35
35
  geom = profile_disconnected_to_face_geom(beam)
36
36
  elif beam.section.type == beam.section.TYPES.BOX:
@@ -941,7 +941,9 @@ class Nodes:
941
941
  def nodes(self) -> list[Node]:
942
942
  return self._nodes
943
943
 
944
- def get_by_volume(self, p=None, vol_box=None, vol_cyl=None, tol=Settings.point_tol, single_member=False) -> list[Node]:
944
+ def get_by_volume(
945
+ self, p=None, vol_box=None, vol_cyl=None, tol=Settings.point_tol, single_member=False
946
+ ) -> list[Node]:
945
947
  """
946
948
 
947
949
  :param p: Point
@@ -1002,12 +1004,12 @@ class Nodes:
1002
1004
  result = list(simplesearch)
1003
1005
 
1004
1006
  if len(result) == 0:
1005
- logger.info(f'No vertices found using {p=}, {vol_box=}, {vol_cyl=} and {tol=}')
1007
+ logger.info(f"No vertices found using {p=}, {vol_box=}, {vol_cyl=} and {tol=}")
1006
1008
  return result
1007
1009
 
1008
1010
  if single_member:
1009
1011
  if len(result) != 1:
1010
- logger.warning(f'Returning member at index=0 despite {len(result)=}. Please check your results')
1012
+ logger.warning(f"Returning member at index=0 despite {len(result)=}. Please check your results")
1011
1013
  return result[0]
1012
1014
 
1013
1015
  return result
@@ -64,9 +64,6 @@ class Assembly(Part):
64
64
  clear_cache: bool = False,
65
65
  ifc_class: SpatialTypes = SpatialTypes.IfcSite,
66
66
  ):
67
- from ada.cadit.ifc.store import IfcStore
68
- from ada.cadit.ifc.utils import assembly_to_ifc_file
69
-
70
67
  metadata = dict() if metadata is None else metadata
71
68
  metadata["project"] = project
72
69
  metadata["schema"] = schema
@@ -76,7 +73,8 @@ class Assembly(Part):
76
73
  self._user = user
77
74
 
78
75
  self._ifc_class = ifc_class
79
- self._ifc_file = assembly_to_ifc_file(self)
76
+ self._ifc_store = None
77
+ self._ifc_file = None
80
78
  self._convert_options = _ConvertOptions()
81
79
  self._ifc_sections = None
82
80
  self._ifc_materials = None
@@ -84,7 +82,6 @@ class Assembly(Part):
84
82
  self._ifc_settings = ifc_settings
85
83
  self._presentation_layers = PresentationLayers()
86
84
 
87
- self._ifc_store = IfcStore(assembly=self)
88
85
  self._cache_store = None
89
86
  if enable_cache:
90
87
  self._cache_store = CacheStore(name)
@@ -208,7 +205,9 @@ class Assembly(Part):
208
205
 
209
206
  scratch_dir = Settings.scratch_dir if scratch_dir is None else pathlib.Path(scratch_dir)
210
207
 
211
- write_to_fem(self, name, fem_format, overwrite, fem_converter, scratch_dir, metadata, make_zip_file, model_data_only)
208
+ write_to_fem(
209
+ self, name, fem_format, overwrite, fem_converter, scratch_dir, metadata, make_zip_file, model_data_only
210
+ )
212
211
 
213
212
  # Execute
214
213
  if execute:
@@ -288,6 +287,13 @@ class Assembly(Part):
288
287
 
289
288
  @property
290
289
  def ifc_store(self) -> IfcStore:
290
+ if self._ifc_store is None:
291
+ from ada.cadit.ifc.store import IfcStore
292
+ from ada.cadit.ifc.utils import assembly_to_ifc_file
293
+
294
+ self._ifc_file = assembly_to_ifc_file(self)
295
+ self._ifc_store = IfcStore(assembly=self)
296
+
291
297
  return self._ifc_store
292
298
 
293
299
  @ifc_store.setter
@@ -6,6 +6,7 @@ from itertools import chain
6
6
  from typing import TYPE_CHECKING, Any, Callable, Iterable
7
7
 
8
8
  from ada import Node, Pipe, PrimBox, PrimCyl, PrimExtrude, PrimRevolve, Shape
9
+ from ada.api.animations import AnimationStore
9
10
  from ada.api.beams.base_bm import Beam, BeamTapered
10
11
  from ada.api.connections import JointBase
11
12
  from ada.api.containers import Beams, Connections, Materials, Nodes, Plates, Sections
@@ -76,6 +77,7 @@ class Part(BackendGeom):
76
77
  self._groups: dict[str, Group] = dict()
77
78
  self._ifc_class = ifc_class
78
79
  self._props = settings
80
+ self._animation_store = AnimationStore()
79
81
  if fem is not None:
80
82
  fem.parent = self
81
83
 
@@ -253,7 +255,7 @@ class Part(BackendGeom):
253
255
  return self._sections.add(section)
254
256
 
255
257
  def add_object(self, obj: Part | Beam | Plate | Wall | Pipe | Shape | Weld | Section):
256
- from ada import Beam, Part, Pipe, Plate, Shape, Wall, Weld, Section
258
+ from ada import Beam, Part, Pipe, Plate, Section, Shape, Wall, Weld
257
259
 
258
260
  if isinstance(obj, Beam):
259
261
  return self.add_beam(obj)
@@ -791,10 +793,42 @@ class Part(BackendGeom):
791
793
 
792
794
  step_writer.export(destination_file)
793
795
 
794
- def to_viewer(self, **kwargs):
795
- from ada.visit.comms import send_to_viewer
796
+ def show(
797
+ self,
798
+ renderer="react",
799
+ auto_open_viewer=False,
800
+ host="localhost",
801
+ port=8765,
802
+ server_exe: pathlib.Path = None,
803
+ server_args: list[str] = None,
804
+ **kwargs,
805
+ ):
806
+ from ada.occ.tessellating import BatchTessellator
807
+ from ada.visit.comms import PYGFX_RENDERER_EXE_PY, start_ws_server
808
+
809
+ server_exe = None
810
+ if renderer == "pygfx":
811
+ server_exe = PYGFX_RENDERER_EXE_PY
812
+
813
+ # Start the websocket server
814
+ ws = start_ws_server(server_exe=server_exe, server_args=server_args, host=host, port=port)
815
+
816
+ # Set the rendering engine
817
+ if renderer == "react":
818
+ from ada.visit.rendering.renderer_react import RendererReact
796
819
 
797
- send_to_viewer(self, **kwargs)
820
+ if auto_open_viewer:
821
+ RendererReact().show()
822
+
823
+ # Tessellate the geometry
824
+ bt = BatchTessellator()
825
+ scene = bt.tessellate_part(self)
826
+
827
+ ws.send_scene(scene, self.animation_store, **kwargs)
828
+
829
+ @property
830
+ def animation_store(self) -> AnimationStore:
831
+ return self._animation_store
798
832
 
799
833
  @property
800
834
  def parts(self) -> dict[str, Part]:
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import pathlib
3
4
  from typing import TYPE_CHECKING, Callable, Iterable
4
5
 
5
6
  from ada.api.transforms import Placement
@@ -160,6 +161,45 @@ class BackendGeom(Root):
160
161
 
161
162
  return occ_geom_to_poly_mesh(self, geom_repr=geom_repr, export_config=export_config)
162
163
 
164
+ def show(
165
+ self,
166
+ renderer="react",
167
+ auto_open_viewer=False,
168
+ host="localhost",
169
+ port=8765,
170
+ server_exe: pathlib.Path = None,
171
+ server_args: list[str] = None,
172
+ dry_run=False,
173
+ ):
174
+ from itertools import groupby
175
+
176
+ import trimesh
177
+
178
+ from ada.occ.tessellating import BatchTessellator
179
+ from ada.visit.comms import start_ws_server
180
+ from ada.visit.gltf.optimize import concatenate_stores
181
+ from ada.visit.gltf.store import merged_mesh_to_trimesh_scene
182
+
183
+ bt = BatchTessellator()
184
+ mesh_stores = list(bt.batch_tessellate([self]))
185
+
186
+ scene = trimesh.Scene()
187
+ mesh_map = []
188
+
189
+ for mat_id, meshes in groupby(mesh_stores, lambda x: x.material):
190
+ meshes = list(meshes)
191
+
192
+ merged_store = concatenate_stores(meshes)
193
+ mesh_map.append((mat_id, meshes, merged_store))
194
+ merged_mesh_to_trimesh_scene(scene, merged_store, bt.get_mat_by_id(mat_id), mat_id, None)
195
+
196
+ if dry_run:
197
+ return None
198
+
199
+ ws = start_ws_server(server_exe=server_exe, server_args=server_args, host=host, port=port)
200
+ ws.send_scene(scene)
201
+ return scene.show("notebook")
202
+
163
203
  @property
164
204
  def booleans(self) -> list[Boolean]:
165
205
  return self._booleans
@@ -121,4 +121,4 @@ class Patcher:
121
121
 
122
122
  if self.file.schema == "IFC2X3":
123
123
  ifcopenshell.api.owner.settings.get_user = old_get_user
124
- ifcopenshell.api.owner.settings.get_application = old_get_application
124
+ ifcopenshell.api.owner.settings.get_application = old_get_application
@@ -1,8 +1,9 @@
1
- from typing import Iterable, Any
1
+ from typing import Any, Iterable
2
2
 
3
+ import ifcopenshell.api
3
4
  import ifcopenshell.util.element
4
5
  import ifcopenshell.util.unit
5
- import ifcopenshell.api
6
+
6
7
  from ada.base.units import Units
7
8
  from ada.cadit.ifc.convert_length_unit_patch import Patcher
8
9
 
@@ -6,8 +6,6 @@ from ada import Beam
6
6
  from ada.core.utils import Counter
7
7
  from ada.visit.plots import easy_plotly
8
8
 
9
- from .utils import equation_compiler
10
-
11
9
 
12
10
  class ResType:
13
11
  displ = "DISPL"
@@ -79,12 +77,18 @@ class BeamCalc:
79
77
  self._p.append((name, p, x, use_relative_position))
80
78
 
81
79
  def get_displ_formula(self):
80
+ from .utils import equation_compiler
81
+
82
82
  return equation_compiler(displ, True)
83
83
 
84
84
  def get_shear_formula(self):
85
+ from .utils import equation_compiler
86
+
85
87
  return equation_compiler(shear, True)
86
88
 
87
89
  def get_moment_formula(self):
90
+ from .utils import equation_compiler
91
+
88
92
  return equation_compiler(moment, True)
89
93
 
90
94
  def _repr_html_(self):
@@ -9,7 +9,13 @@ from .loads import Load, LoadCase, LoadGravity, LoadPoint, LoadPressure
9
9
  from .outputs import FieldOutput, HistOutput
10
10
  from .sections import ConnectorSection, FemSection
11
11
  from .sets import FemSet
12
- from .steps import StepEigen, StepExplicit, StepImplicitStatic, StepSteadyState, StepImplicitDynamic
12
+ from .steps import (
13
+ StepEigen,
14
+ StepExplicit,
15
+ StepImplicitDynamic,
16
+ StepImplicitStatic,
17
+ StepSteadyState,
18
+ )
13
19
  from .surfaces import Surface
14
20
 
15
21
  __all__ = [
@@ -21,6 +27,7 @@ __all__ = [
21
27
  "StepSteadyState",
22
28
  "StepEigen",
23
29
  "StepImplicitStatic",
30
+ "StepImplicitDynamic",
24
31
  "StepExplicit",
25
32
  "Surface",
26
33
  "Elem",
@@ -1,9 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
- import numpy as np
4
3
  from dataclasses import dataclass
5
4
  from typing import TYPE_CHECKING
6
5
 
6
+ import numpy as np
7
+
7
8
  from ada.config import Settings
8
9
 
9
10
  if TYPE_CHECKING:
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from dataclasses import dataclass, field
4
4
  from itertools import chain
5
- from typing import TYPE_CHECKING, Dict, Iterable, List, Tuple, Union
5
+ from typing import TYPE_CHECKING, Dict, Iterable, List, Union
6
6
 
7
7
  from ada.api.containers import Nodes
8
8
  from ada.config import logger
@@ -38,7 +38,7 @@ if TYPE_CHECKING:
38
38
  from ada.fem.results.common import Mesh
39
39
  from ada.fem.steps import Step
40
40
 
41
- _step_types = Union["StepSteadyState", "StepEigen", "StepImplicit", "StepExplicit"]
41
+ _step_types = Union["StepSteadyState", "StepEigen", "StepImplicitStatic", "StepExplicit"]
42
42
 
43
43
 
44
44
  @dataclass
@@ -66,8 +66,9 @@ class FEM:
66
66
  constraints: Dict[str, Constraint] = field(init=False, default_factory=dict)
67
67
 
68
68
  bcs: List[Bc] = field(init=False, default_factory=list)
69
- steps: List[Union[StepSteadyState, StepEigen, StepImplicitStatic, StepExplicit]] = field(init=False,
70
- default_factory=list)
69
+ steps: List[Union[StepSteadyState, StepEigen, StepImplicitStatic, StepExplicit]] = field(
70
+ init=False, default_factory=list
71
+ )
71
72
 
72
73
  nodes: Nodes = field(default_factory=Nodes, init=True)
73
74
  ref_points: Nodes = field(default_factory=Nodes, init=True)
@@ -130,13 +131,13 @@ class FEM:
130
131
  return mass
131
132
 
132
133
  def add_set(
133
- self,
134
- fem_set: FemSet,
135
- p=None,
136
- vol_box=None,
137
- vol_cyl=None,
138
- single_member=False,
139
- tol=1e-4,
134
+ self,
135
+ fem_set: FemSet,
136
+ p=None,
137
+ vol_box=None,
138
+ vol_cyl=None,
139
+ single_member=False,
140
+ tol=1e-4,
140
141
  ) -> FemSet:
141
142
  """
142
143
  :param fem_set: A fem set object
@@ -250,7 +251,8 @@ class FEM:
250
251
  connector.parent = self
251
252
  if not isinstance(self.parent, Assembly):
252
253
  logger.warning(
253
- "Connector Elements can usually only be added to an Assembly object. Please check your model.")
254
+ "Connector Elements can usually only be added to an Assembly object. Please check your model."
255
+ )
254
256
 
255
257
  self.elements.add(connector)
256
258
  connector.csys.parent = self