Skip to content

Converts Brep CAD geometry files to h5m geometry files compatible with DAGMC simulations

License

Notifications You must be signed in to change notification settings

openmsr/brep_to_h5m

 
 

Repository files navigation

N|Python

CI with install

anaconda-publish Upload Python Package

conda-publish PyPI

brep_to_h5m

A Python package that converts Brep CAD geometry files to h5m geometry files compatible with DAGMC simulations.

The method uses gmsh to create a conformal mesh of the geometry and then exports separate volumes to STL files. The stl-to-h5m package then converts the non overlapping STL files into a h5m geometry.

Installation (Conda)

Create a new enviroment and activate the enviroment.

conda create --name my_env
conda activate my_env

Then install this package

conda install -c fusion-energy -c conda-forge brep_to_h5m

The above command should also install moab and gmsh

Installation (Conda + pip)

Create a new enviroment and activate the enviroment.

conda create --name my_env
conda activate my_env

Install dependancies that are not installed with pip (MOAB and GMSH)

conda install -c conda-forge moab
conda install -c conda-forge gmsh
conda install -c conda-forge python-gmsh

Then install this package

pip install brep_to_h5m

Usage

See the examples folder for a complete workflow from geometry creation to conversion to h5m and then use in and OpenMC simulation.

To make a Brep file with merged surfaces consider using the Paramak as it has a export_brep method that merges the shared surfaces for Brep files.

Starting with a Brep file that has shared surfaces the following command should produce a DAGMC compatible h5m file.

from brep_to_h5m import brep_to_h5m

brep_to_h5m(
    brep_filename='my_brep_file_with_merged_surfaces.brep',
    volumes_with_tags={
        1: 'material_for_volume_1',
        2: 'material_for_volume_2',
        3: 'material_for_volume_3',
        4: 'material_for_volume_4',
        5: 'material_for_volume_5',
        6: 'material_for_volume_6',
        7: 'material_for_volume_7',
        8: 'material_for_volume_8',
    },
    h5m_filename='dagmc.h5m',
    min_mesh_size= 30,
    max_mesh_size = 50,
    mesh_algorithm = 1,
)

The resulting dagmc.h5m file can now be used in neutronics simulation with DAGMC enabled transport codes.

Acknowledgement

Many thanks to @makeclean for suggesting gmsh for meshing and Brep for the CAD file format. Also for showing the way forwards by starting gmsh2dagmc.

About

Converts Brep CAD geometry files to h5m geometry files compatible with DAGMC simulations

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.4%
  • Shell 0.6%