Skip to main content

Package to automagically convert step-gometries to h5m descriptions for neutronics by OpenMC

Project description

step_to_h5m

Please note that this tool will likely change its name soon.

This is intended to be a python package heavily inspired by Paramak, and borrowing a lot from its namesake: https://github.com/fusion-energy/step_to_h5m). It's "raison d'etre" is to enable a link between the online CAD-tool onShape and the neutron transport code OpenMC.

We will use cadQuery and its links to OCCT to enable import and imprinting/merging algorithms.

The code structure we intend is a main class Assembly which contains the geometry in terms of a set of volumes. We then use gmsh to generate a surface mesh which may be used by OpenMC through DAGMC/MOAB (i.e. .h5m-files)

To install/set up in a virtual python environment

replace <name> with an arbitrary name for your virtual environment

  1. Clone the github repository as you'd normally do
  2. In the directory where you want your environment to reside do: python -m venv <name>
  3. Activate the environment: source <name>/bin/activate
  4. install the requirements: pip install -r requirements.txt
  5. Build and install moab (if not already installed). The moab team relies on conda for standard installation but are working on a pip-based solution. Once that is done moab would simply be added to the requirements-file instead.
  6. Clone the moab code-repository: e.g. git clone git@bitbucket.org:fathomteam/moab.git
  7. Configure and build the code: mkdir build; cd build; cmake .. -DENABLE_PYMOAB=1; make; make install

Run a test case:

The follwing code-snippet can now be run to explore the capabilities of Assembly/step_to_h5m

  import assembly as ab
  a=ab.Assembly()
  a.stp_files=["file.step"]
  a.import_stp_files()
  a.export_brep('file.brep')
  a.brep_to_h5m(brep_filename='file.brep',min_mesh_size=0.1, max_mesh_size=10, samples=20)

N.b. the last 3 parameters to brep_to_h5m are simply echoing their default values, and uses the default mesher: gmsh. Their significance is that all curves are sampled by 20 points, but limits the generated mesh-elements to be within the size range [min_mesh_size,max_mesh_size]. This procedure will in turn call OCP and gmsh to produce a mesh with merged surfaces in the output file "dagmc.h5m"

The other available meshing backend is the stl-export from CadQuery (accessible by setting backend='stl') which uses the parameters stl_tol and stl_ang_tol to set meshing quality.

The export_brep-step may be omitted, in which case a temporary file will be written.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

h5massembly-0.0.12.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

h5massembly-0.0.12-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file h5massembly-0.0.12.tar.gz.

File metadata

  • Download URL: h5massembly-0.0.12.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for h5massembly-0.0.12.tar.gz
Algorithm Hash digest
SHA256 019b5fac364dffb3dcecab6fe85bc3e5fba3d5c13ad0b97d0639e1aa1fc5fb3c
MD5 3d26115c6c5914c25d4c1c3805f1e3e2
BLAKE2b-256 5215ae08a55d9049fb713ce018529a69e8844c82d87e2c30997cdc0dcfddd7e3

See more details on using hashes here.

File details

Details for the file h5massembly-0.0.12-py3-none-any.whl.

File metadata

File hashes

Hashes for h5massembly-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 2f28697509f505723509ee11cfd018df8f6d34908b85af67172d5ba4fda4cfcc
MD5 aec9573428e2b5e2d9abf60fbbc7258d
BLAKE2b-256 c5a13363d24a6275510edbe14cb67975c782d80e5b56b01bdeb35ae33e3daa14

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page