cad-to-dagmc 0.9.6__py3-none-any.whl → 0.9.8__py3-none-any.whl

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.
_version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.9.6'
32
- __version_tuple__ = version_tuple = (0, 9, 6)
31
+ __version__ = version = '0.9.8'
32
+ __version_tuple__ = version_tuple = (0, 9, 8)
33
33
 
34
34
  __commit_id__ = commit_id = None
cad_to_dagmc/core.py CHANGED
@@ -106,6 +106,9 @@ def vertices_to_h5m(
106
106
 
107
107
  moab_core, tags = define_moab_core_and_tags()
108
108
 
109
+ # Add the vertices once at the start
110
+ all_moab_verts = moab_core.create_vertices(vertices)
111
+
109
112
  volume_sets_by_solid_id = {}
110
113
  for material_tag, (solid_id, triangles_on_each_face) in zip(
111
114
  material_tags, triangles_by_solid_by_face.items()
@@ -145,14 +148,21 @@ def vertices_to_h5m(
145
148
 
146
149
  moab_core.tag_set_data(tags["surf_sense"], face_set, sense_data)
147
150
 
148
- moab_verts = moab_core.create_vertices(vertices)
151
+ # Collect only the vertices that lie on triangles on this face
152
+ face_vertices_set = set()
153
+ for triangle in triangles_on_face:
154
+ face_vertices_set.update(triangle)
155
+ face_vertices_list = sorted(face_vertices_set)
156
+
157
+ # Only add these to the MOAB face
158
+ moab_verts = [all_moab_verts[ii] for ii in face_vertices_list]
149
159
  moab_core.add_entity(face_set, moab_verts)
150
160
 
151
161
  for triangle in triangles_on_face:
152
162
  tri = (
153
- moab_verts[int(triangle[0])],
154
- moab_verts[int(triangle[1])],
155
- moab_verts[int(triangle[2])],
163
+ all_moab_verts[int(triangle[0])],
164
+ all_moab_verts[int(triangle[1])],
165
+ all_moab_verts[int(triangle[2])],
156
166
  )
157
167
 
158
168
  moab_triangle = moab_core.create_element(types.MBTRI, tri)
@@ -687,6 +697,7 @@ class CadToDagmc:
687
697
  assembly.add(part)
688
698
 
689
699
  if imprint:
700
+ print("Imprinting assembly for unstructured mesh generation")
690
701
  imprinted_assembly, _ = cq.occ_impl.assembly.imprint(assembly)
691
702
  else:
692
703
  imprinted_assembly = assembly
@@ -777,6 +788,7 @@ class CadToDagmc:
777
788
  assembly.add(part)
778
789
 
779
790
  if imprint:
791
+ print("Imprinting assembly for mesh generation")
780
792
  imprinted_assembly, _ = cq.occ_impl.assembly.imprint(assembly)
781
793
  else:
782
794
  imprinted_assembly = assembly
@@ -1013,6 +1025,7 @@ class CadToDagmc:
1013
1025
  elif meshing_backend == "gmsh":
1014
1026
  # If assembly is not to be imprinted, pass through the assembly as-is
1015
1027
  if imprint:
1028
+ print("Imprinting assembly for mesh generation")
1016
1029
  imprinted_assembly, imprinted_solids_with_org_id = cq.occ_impl.assembly.imprint(
1017
1030
  assembly
1018
1031
  )
@@ -291,6 +291,7 @@ def to_mesh(
291
291
  # Imprinted assemblies end up being compounds, whereas you have to step through each of the
292
292
  # parts in an assembly and extract the solids.
293
293
  if imprint:
294
+ print("Imprinting assembly for mesh generation")
294
295
  # Imprint the assembly and process it as a compound
295
296
  (
296
297
  imprinted_assembly,
@@ -329,6 +330,7 @@ def to_mesh(
329
330
 
330
331
  # Step through all of the collected solids and their respective faces to get the vertices
331
332
  for solid in solids:
333
+ print(f"Meshing solid {solid_idx} of {len(solids)}")
332
334
  # Reset this each time so that we get the correct number of faces per solid
333
335
  face_triangles = {}
334
336
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cad_to_dagmc
3
- Version: 0.9.6
3
+ Version: 0.9.8
4
4
  Summary: Converts CAD files to a DAGMC h5m file
5
5
  Author-email: Jonathan Shimwell <mail@jshimwell.com>
6
6
  Project-URL: Homepage, https://github.com/fusion-energy/cad_to_dagmc
@@ -73,7 +73,7 @@ Cad-to-dagmc offers a wide range of features including.
73
73
 
74
74
  - Install using Mamba
75
75
  - Install using Conda
76
- - Install using pip and source compilations
76
+ - Install using pip
77
77
 
78
78
  ## Install using Mamba
79
79
 
@@ -151,10 +151,10 @@ You may also want to install OpenMC with DAGMC to make use of the h5m geometry f
151
151
 
152
152
  To install OpenMC you can run ```mamba install -c conda-forge openmc``` however this more specific command makes sure the latest version of OpenMC which contains DAGMC is chosen by conda / mamba
153
153
  ```bash
154
- mamba install -c conda-forge -y "openmc=0.15.0=dagmc*nompi*"
154
+ mamba install -c conda-forge -y "openmc=0.15.2=dagmc*nompi*"
155
155
  ```
156
156
 
157
- It might not be possible to install OpenMC and cad-to-dagmc in the same conda/mamba python environment so you may have to create a new conda/mamba environment and install OpenMC there.
157
+ You could also install using this [wheel repo](https://github.com/shimwell/wheels)
158
158
 
159
159
  Another option would be to [install OpenMC from source](https://docs.openmc.org/en/stable/quickinstall.html) which would also need compiling with MOAB and DAGMC options.
160
160
 
@@ -0,0 +1,9 @@
1
+ _version.py,sha256=H7-sGIKTltvB6i41Ij4ifczW_TE-rd9_0VfDTgdon0w,704
2
+ cad_to_dagmc/__init__.py,sha256=oCr1P0QnBsf6AH0RZujX7T7tdrb75NazdF70HtqXSfc,528
3
+ cad_to_dagmc/core.py,sha256=i3iNhvKOLt2VfdQ8frSLQ5L8y1QC23JprLuoeqqiyD4,43222
4
+ cad_to_dagmc/direct_mesh_plugin.py,sha256=iKPYtWQd35Ipxv6g8fZ-r7GFKd1VlCwrSfaNzrGFtf0,24131
5
+ cad_to_dagmc-0.9.8.dist-info/licenses/LICENSE,sha256=B8kznH_777JVNZ3HOKDc4Tj24F7wJ68ledaNYeL9sCw,1070
6
+ cad_to_dagmc-0.9.8.dist-info/METADATA,sha256=rpYNMTMwcYgI_JqMRCcVlT2q0e8UnMCJACtoue617jc,8994
7
+ cad_to_dagmc-0.9.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
8
+ cad_to_dagmc-0.9.8.dist-info/top_level.txt,sha256=zTi8C64SEBsE5WOtPovnxhOzt-E6Oc5nC3RW6M_5aEA,22
9
+ cad_to_dagmc-0.9.8.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- _version.py,sha256=e8-aWL0R1dkk01VJUUTVieOVR2LgJj8i-n3ez_PgchQ,704
2
- cad_to_dagmc/__init__.py,sha256=oCr1P0QnBsf6AH0RZujX7T7tdrb75NazdF70HtqXSfc,528
3
- cad_to_dagmc/core.py,sha256=88L93amP-SMzppnXa7tWTvPnVGTxJUvVLN9B8PL_fp4,42556
4
- cad_to_dagmc/direct_mesh_plugin.py,sha256=5jG5ILafjbDacaAvBRWD_ilMZLepcM6H1Tjze85vAxE,24013
5
- cad_to_dagmc-0.9.6.dist-info/licenses/LICENSE,sha256=B8kznH_777JVNZ3HOKDc4Tj24F7wJ68ledaNYeL9sCw,1070
6
- cad_to_dagmc-0.9.6.dist-info/METADATA,sha256=0CdxtSGC0GnICOxxkFZB45Bj5lJyqBh052HVjiq23K8,9120
7
- cad_to_dagmc-0.9.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
8
- cad_to_dagmc-0.9.6.dist-info/top_level.txt,sha256=zTi8C64SEBsE5WOtPovnxhOzt-E6Oc5nC3RW6M_5aEA,22
9
- cad_to_dagmc-0.9.6.dist-info/RECORD,,