Create parametric 3D fusion reactor CAD models

Paramak

J. Shimwell, J. Billingsley, R Delaporte-Mathurin, D. Morbey, M. Bluteau, P. Shriwise, A. Davis

This work was funded by the RCUK Energy Programme
[Grant number EP/P012450/1]

Motivation

Diagram / sketch / idea

Manual CAD model creation via GUI

CAD model geometry created

CAD model cleaned

Analysis

Decompose existing models

Method

Shapes

Components

Reactors

Base parametric Shapes()

  • Shapes require the user to provide points / coordinates to make a 3D geometry.

 

  • A rotate, extrude or sweep operation is applied to the points

 

  • Boolean operations such as cut, union, intersection are supported

 

  • Repeating patterns around an axis are supported

Components from Shapes

import paramak

height = 700
blanket_rear = 400
blanket_front = 300
blanket_mid_point = 350

blanket = paramak.RotateMixedShape(
  rotation_angle=180,
  points=[
    (blanket_rear, height / 2.0, "straight"),
    (blanket_rear, -height / 2.0, "straight"),
    (blanket_front, -height / 2.0, "spline"),
    (blanket_mid_point, 0, "spline"),
    (blanket_front, height / 2.0, "straight"),
  ]
)

blanket.export_stp('"blanket.stp")
                   
import paramak


blanket = paramak.RotateMixedShape(
  rotation_angle=180,
  points=[
    (538, 305, "straight"),
    (538, -305, "straight"),
    (322, -305, "spline"),
    (470, 0, "spline"),
    (322, 305, "straight"),
  ]
)

blanket.export_stp("blanket.stp")

CAD from points

CAD from parameters

Simple Parametric Compents

All instances of Shape classes with encoded design rules for generating the points needed

More complex Components

All instances of Shape classes with encoded design rules for generating the points needed

Parametric Components()

Example parametric Reactors

Decompose existing models

Progress

Rough estimate of how we have built up the number of parametric shapes, parametric components  and parametric reactors over time.

 

9

33

6

Features

Geometry output formats:

  • stp
  • stl
  • h5m

Automatic conversion of geometry into neutronics model

Use cases - parameter studies

Software practices employed

Automated static code analysis with code-inspector.com

Automated docker build and distribution to dockerhub

Testing with Circle CI and Github Actions

Code coverage

Automated PyPi updating

Online Documentation

Speeding up the neutronics workflow

Preparing for compute

OpenMC: A state-of-the-art Monte Carlo code for research and development

doi.org/10.1016/j.anucene.2014.07.048

Dimensional reduction removes some variables but the number of simulations require to explore the parameter space is stilll quite large.