# New Composite Surface: Truncated Right Angle Cone

**URL:** <https://openmc.discourse.group/t/new-composite-surface-truncated-right-angle-cone/4835>\
**Category:** New Ideas\
**Created:** [September 25, 2024, 11:09pm UTC](https://openmc.discourse.group/t/new-composite-surface-truncated-right-angle-cone/4835 "2024-09-25T23:09:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![spraguep](https://avatars.discourse-cdn.com/v4/letter/s/fbc32d/32.png) [@spraguep](https://openmc.discourse.group/u/spraguep)\
**Post date:** [September 25, 2024, 11:09pm UTC](https://openmc.discourse.group/t/new-composite-surface-truncated-right-angle-cone/4835/1 "2024-09-25T23:09:18Z")

</div>

Hello,

I believe it would be quite useful to implement a function that replicates the truncated right angle cone (TRC) macrobody from MCNP (see snap from manual below).

![image](https://global.discourse-cdn.com/free1/uploads/openmc/original/2X/4/4d07876786501042af47d75b5fcac3e243ef35b9.png)

This function would take input of the origin point, the height of the truncated cone, the bottom and top radii, and the axis for which the base of the cone is normal to.

i.e.  
`openmc.model.TruncatedCone(center_base=(x0, y0, z0), height=z1, r1=r1, r2=r2, axis='z')`

This function negates the necessity to calculate the apex of the cone, which can be inconvenient if your surface is far from the apex.

Any thoughts?

---

<div class="post-metadata">

**Author:** ![paulromano](https://yyz2.discourse-cdn.com/free1/user_avatar/openmc.discourse.group/paulromano/32/486_2.png) [@paulromano](https://openmc.discourse.group/u/paulromano)\
**Post date:** [September 28, 2024, 8:59pm UTC](https://openmc.discourse.group/t/new-composite-surface-truncated-right-angle-cone/4835/2 "2024-09-28T20:59:42Z")

</div>

@spraguep I’ve just submitted a pull request adding this as a new `ConicalFrustum` class:

> <https://github.com/openmc-dev/openmc/pull/3151>
>
> \# Description
> 
> This PR implements a new \`ConicalFrustum\` surface that allows a… user to define a conical frustum, otherwise known as a truncated cone (equivalent to the TRC macrobody in MCNP). 
> 
> \# Checklist
> 
> \- \[x\] I have performed a self-review of my own code
> \- \[x\] \<s\>I have run \[clang-format\](https://docs.openmc.org/en/latest/devguide/styleguide.html#automatic-formatting) (version 15) on any C++ source files (if applicable)\</s\>
> \- \[x\] I have followed the \[style guidelines\](https://docs.openmc.org/en/latest/devguide/styleguide.html#python) for Python source files (if applicable)
> \- \[x\] I have made corresponding changes to the documentation (if applicable)
> \- \[x\] I have added tests that prove my fix is effective or that my feature works (if applicable)
