Skip to content

Commit

Permalink
Merge pull request #105 from fusion-energy/develop
Browse files Browse the repository at this point in the history
refactor and removal of redundant neutronics/h5m related code
  • Loading branch information
shimwell authored Sep 27, 2021
2 parents 7c44d7c + 02c89e7 commit 91be39e
Show file tree
Hide file tree
Showing 146 changed files with 421 additions and 2,487 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
*.stp
*.step
*.stl
*.brep

# output files such as neutronics description files
*.json
Expand Down
5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,7 @@
The Paramak python package allows rapid production of 3D CAD models of fusion
reactors. The purpose of the Paramak is to provide geometry for parametric
studies. The paramak can created geometry in standard CAD formats such as STP,
STL. It can also create h5m files for
[DAGMC](https://svalinn.github.io/DAGMC/) and carry out neutronics simulations
when used with the optional [paramak-neutronics](https://github.com/fusion-energy/paramak-neutronics)
module.
STL and Brep.

:point_right: [Documentation](https://paramak.readthedocs.io)

Expand Down
30 changes: 11 additions & 19 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,12 @@ Paramak

The Paramak python package allows rapid production of 3D CAD models of fusion
reactors. The purpose of the Paramak is to provide geometry for parametric
studies. It is possible to use the created geometry in engineering and
neutronics studies as the STP files produced can be automatically converted to
DAGMC compatible neutronics models or meshed and used in finite element
analysis codes.
studies in a varity of CAD formats including STL, STP and Brep files.

Features have been added to address particular needs and the software is by no
means a finished product. Contributions are welcome. CadQuery functions provide
the majority of the features, and incorporating additional capabilities is
straightforward for developers with Python knowledge.

You might also be interested in the `paramak-neutronics <https://github.com/fusion-energy/paramak-neutronics>`_
which is a separate module that adds neutronics capabilties.
adQuery functions provide the majority of the features, and incorporating
additional capabilities is straightforward for developers with Python knowledge.

Contributions are welcome. C

.. raw:: html

Expand Down Expand Up @@ -63,8 +56,7 @@ became open-source and has flourished ever since.

The project has grown largely due to two contributors in particular
(John Billingsley and Remi Delaporte-Mathurin) and others have also helped,
you can see all those who have helped the development in the
`Authors.md <https://github.com/fusion-energy/paramak/blob/main/AUTHORS.md>`_ and in the
you can see all those who have helped the development in the
`GitHub contributions <https://github.com/fusion-energy/paramak/graphs/contributors>`_.

The code has been professionally reviewed by
Expand Down Expand Up @@ -97,12 +89,12 @@ be accomplished via the use of parametric Shapes, parametric Components and
parametric Reactors with each level building upon the level below.

Parametric Shapes are the simplest and accept points and connection information
in 2D space (defaults to x,z) and performs operations on them to create 3D
in 2D space (defaults to x,z plane) and performs operations on them to create 3D
volumes. The points and connections are provided by the user when making
parametric Shapes. Supported CAD opperations include (rotate, extrude, sweep)
and Boolean opperations such as cut, union and intersect. Additionally the
parametric Shapes. Supported CAD operations include (rotate, extrude, sweep)
and Boolean operations such as cut, union and intersect. Additionally the
CadQuery objects created can be combined and modified using CadQuery's powerful
filtering capabilties to furter customise the shapes by performing operations
filtering capabilities to further customise the shapes by performing operations
like edge filleting.

Parametric Components build on top of this foundation and will calculate the
Expand All @@ -111,8 +103,8 @@ differ between components as a center column requires different inputs to a
breeder blanket or a magnet.

Parametric Reactors build upon these two lower level objects to create an
entire reactor model from input parameters. Linkage between the componets is
encoded in each parametric Ractor design.
entire reactor model from input parameters. Linkage between the components is
encoded in each parametric Rector design.

The different parametric reactor families are shown below.

Expand Down
41 changes: 36 additions & 5 deletions docs/source/paramak.parametric_components.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ parametric Shape classes.
Blankets
---------


BlanketConstantThicknessArcH()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -33,6 +34,7 @@ BlanketConstantThicknessArcH()
:members:
:show-inheritance:


BlanketConstantThicknessArcV()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -58,6 +60,7 @@ BlanketConstantThicknessArcV()
:members:
:show-inheritance:


BlanketFP()
^^^^^^^^^^^

Expand Down Expand Up @@ -114,6 +117,7 @@ BlanketFPPoloidalSegments()
Blanket Cutting Tools
---------------------


BlanketCutterParallels()
^^^^^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -148,6 +152,7 @@ BlanketCutterStar()
:members:
:show-inheritance:


PoloidalSegmenter()
^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -201,6 +206,7 @@ CenterColumnShieldCylinder()
:members:
:show-inheritance:


CenterColumnShieldHyperbola()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -226,6 +232,7 @@ CenterColumnShieldHyperbola()
:members:
:show-inheritance:


CenterColumnShieldFlatTopHyperbola()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -252,6 +259,7 @@ CenterColumnShieldFlatTopHyperbola()
:members:
:show-inheritance:


CenterColumnShieldFlatTopCircular()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -278,6 +286,7 @@ CenterColumnShieldFlatTopCircular()
:members:
:show-inheritance:


CenterColumnShieldPlasmaHyperbola()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -304,6 +313,7 @@ CenterColumnShieldPlasmaHyperbola()
:members:
:show-inheritance:


InboardFirstwallFCCS()
^^^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -340,6 +350,7 @@ InboardFirstwallFCCS()
Coolant Channels
----------------


CoolantChannelRingStraight()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -366,6 +377,7 @@ CoolantChannelRingStraight()
:members:
:show-inheritance:


CoolantChannelRingCurved()
^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -386,6 +398,7 @@ CoolantChannelRingCurved()
Cutting Tools
-------------


CuttingWedge()
^^^^^^^^^^^^^^

Expand All @@ -400,6 +413,7 @@ CuttingWedge()
:members:
:show-inheritance:


CuttingWedgeFS()
^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -438,6 +452,7 @@ ITERtypeDivertor()
:members:
:show-inheritance:


ITERtypeDivertorNoDome()
^^^^^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -484,6 +499,7 @@ InnerTfCoilsCircular()
:members:
:show-inheritance:


InnerTfCoilsFlat()
^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -546,6 +562,7 @@ PoloidalFieldCoil()
:members:
:show-inheritance:


PoloidalFieldCoilFP()
^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -560,6 +577,7 @@ PoloidalFieldCoilFP()
:members:
:show-inheritance:


PoloidalFieldCoilSet()
^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -585,6 +603,7 @@ PoloidalFieldCoilSet()
:members:
:show-inheritance:


PoloidalFieldCoilCase()
^^^^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -614,6 +633,7 @@ PoloidalFieldCoilCase()
:members:
:show-inheritance:


PoloidalFieldCoilCaseFC()
^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -627,8 +647,7 @@ PoloidalFieldCoilCaseFC()
center_point=(100, 100),
height=20,
width=20,
rotation_angle=180,
stp_filename="poloidal_field_coil.stp"
rotation_angle=180
)

my_component = paramak.PoloidalFieldCoilCaseFC(
Expand All @@ -647,6 +666,7 @@ PoloidalFieldCoilCaseFC()
:members:
:show-inheritance:


PoloidalFieldCoilCaseSet()
^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -674,6 +694,7 @@ PoloidalFieldCoilCaseSet()
:members:
:show-inheritance:


PoloidalFieldCoilCaseSetFC()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -737,6 +758,7 @@ PortCutterRotated()
:members:
:show-inheritance:


PortCutterRectangular()
^^^^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -766,6 +788,7 @@ PortCutterRectangular()
:members:
:show-inheritance:


PortCutterCircular()
^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -826,6 +849,7 @@ Plasma()
:members:
:show-inheritance:


PlasmaFromPoints()
^^^^^^^^^^^^^^^^^^

Expand All @@ -840,6 +864,7 @@ PlasmaFromPoints()
:members:
:show-inheritance:


PlasmaBoundaries()
^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -903,6 +928,7 @@ ToroidalFieldCoilRectangle()
:members:
:show-inheritance:


ToroidalFieldCoilCoatHanger()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -919,10 +945,10 @@ ToroidalFieldCoilCoatHanger()
:members:
:show-inheritance:


ToroidalFieldCoilPrincetonD()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


.. cadquery::
:select: cadquery_object
:gridsize: 0
Expand All @@ -933,8 +959,7 @@ ToroidalFieldCoilPrincetonD()
R2=300,
thickness=30,
distance=30,
number_of_coils=1,
stp_filename="toroidal_field_coil_princeton_d.stp"
number_of_coils=1
)

cadquery_object = my_component.solid
Expand All @@ -952,6 +977,7 @@ ToroidalFieldCoilPrincetonD()
:members:
:show-inheritance:


ToroidalFieldCoilTripleArc()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -1055,6 +1081,7 @@ VacuumVessel()
:members:
:show-inheritance:


VacuumVesselInnerLeg()
^^^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -1085,6 +1112,7 @@ VacuumVesselInnerLeg()
:members:
:show-inheritance:


CapsuleVacuumVessel()
^^^^^^^^^^^^^^^^^^^^^
.. cadquery::
Expand Down Expand Up @@ -1133,6 +1161,7 @@ ExtrudeRectangle()
:members:
:show-inheritance:


HexagonPin()
^^^^^^^^^^^^

Expand Down Expand Up @@ -1160,6 +1189,7 @@ HexagonPin()
:members:
:show-inheritance:


RotatedTrapezoid()
^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -1190,6 +1220,7 @@ RotatedTrapezoid()
:members:
:show-inheritance:


RotatedIsoscelesTriangle
^^^^^^^^^^^^^^^^^^^^^^^^

Expand Down
Loading

0 comments on commit 91be39e

Please sign in to comment.