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
- Clone the github repository as you'd normally do
- In the directory where you want your environment to reside do:
python -m venv <name>
- Activate the environment:
source <name>/bin/activate
- install the requirements:
pip install -r requirements.txt
- 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.
- Clone the moab code-repository: e.g.
git clone git@bitbucket.org:fathomteam/moab.git
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 019b5fac364dffb3dcecab6fe85bc3e5fba3d5c13ad0b97d0639e1aa1fc5fb3c |
|
MD5 | 3d26115c6c5914c25d4c1c3805f1e3e2 |
|
BLAKE2b-256 | 5215ae08a55d9049fb713ce018529a69e8844c82d87e2c30997cdc0dcfddd7e3 |
File details
Details for the file h5massembly-0.0.12-py3-none-any.whl
.
File metadata
- Download URL: h5massembly-0.0.12-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f28697509f505723509ee11cfd018df8f6d34908b85af67172d5ba4fda4cfcc |
|
MD5 | aec9573428e2b5e2d9abf60fbbc7258d |
|
BLAKE2b-256 | c5a13363d24a6275510edbe14cb67975c782d80e5b56b01bdeb35ae33e3daa14 |