Add EnergyFunctionFilters to documentation

This commit is contained in:
Sterling Harper 2016-12-04 21:11:15 -05:00
parent 9c7d9432a2
commit f1eeb091a7
5 changed files with 160 additions and 71 deletions

View file

@ -201,15 +201,28 @@ if run_mode == 'k-eigenvalue':
**/tallies/tally <uid>/filter <j>/type** (*char[]*)
Type of the j-th filter. Can be 'universe', 'material', 'cell', 'cellborn',
'surface', 'mesh', 'energy', 'energyout', or 'distribcell'.
'surface', 'mesh', 'energy', 'energyout', 'distribcell', 'mu', 'polar',
'azimuthal', 'delayedgroup', or 'energyfunction'.
**/tallies/tally <uid>/filter <j>/n_bins** (*int*)
Number of bins for the j-th filter.
Number of bins for the j-th filter. Not present for 'energyfunction'
filters.
**/tallies/tally <uid>/filter <j>/bins** (*int[]* or *double[]*)
Value for each filter bin of this type.
Value for each filter bin of this type. Not present for 'energyfunction'
filters.
**/tallies/tally <uid>/filter <j>/energy** (*double[]*)
Energy grid points for energyfunction interpolation. Only used for
'energyfunction' filters.
**/tallies/tally <uid>/filter <j>/y** (*double[]*)
Interpolant values for energyfunction interpolation. Only used for
'energyfunction' filters.
**/tallies/tally <uid>/nuclides** (*char[][]*)

View file

@ -146,6 +146,7 @@ Constructing Tallies
openmc.AzimuthalFilter
openmc.DistribcellFilter
openmc.DelayedGroupFilter
openmc.EnergyFunctionFilter
openmc.Mesh
openmc.Trigger
openmc.Tally

View file

@ -1481,9 +1481,12 @@ The ``<tally>`` element accepts the following sub-elements:
*Default*: ""
:filter:
Specify a filter that restricts contributions to the tally to particles
within certain regions of phase space. This element and its
attributes/sub-elements are described below.
Specify a filter that modifies tally behavior. Most tallies (e.g. ``cell``,
``energy``, and ``material``) restrict the tally so that only particles
within certain regions of phase space contribute to the tally. Others
(e.g. ``delayedgroup`` and ``energyfunction``) can apply some other function
to the scored values. This element and its attributes/sub-elements are
described below.
.. note::
You may specify zero, one, or multiple filters to apply to the tally. To
@ -1494,7 +1497,7 @@ The ``<tally>`` element accepts the following sub-elements:
:type:
The type of the filter. Accepted options are "cell", "cellborn",
"material", "universe", "energy", "energyout", "mesh", "distribcell",
and "delayedgroup".
"delayedgroup", and "energyfunction".
:bins:
For each filter type, the corresponding ``bins`` entry is given as
@ -1629,6 +1632,22 @@ The ``<tally>`` element accepts the following sub-elements:
<filter type="delayedgroup" bins="1 2 3 4 5 6" />
:energyfunction:
``energyfunction`` filters do not use the ``bins`` entry. Instead
they use ``energy`` and ``y``.
:energy:
``energyfunction`` filters multiply tally scores by an arbitrary
function. The function is described by a piecewise linear-linear set of
(energy, y) values. This entry specifies the energy values. (Only used
for ``energyfunction`` filters)
:y:
``energyfunction`` filters multiply tally scores by an arbitrary
function. The function is described by a piecewise linear-linear set of
(energy, y) values. This entry specifies the y values. (Only used
for ``energyfunction`` filters)
:nuclides:
If specified, the scores listed will be for particular nuclides, not the
summation of reactions from all nuclides. The format for nuclides should be

View file

@ -25,8 +25,8 @@ element tallies {
| attribute variable { ( "nuclide_density" ) } )
&
(element nuclide { xsd:string { maxLength = "12" } }
| attribute nuclide { xsd:string { maxLength = "12" } } ) |
)
| attribute nuclide { xsd:string { maxLength = "12" } } )
) |
(element variable { ( "temperature") }
| attribute variable { ( "temperature" ) } )
)
@ -39,14 +39,24 @@ element tallies {
(element estimator { ( "analog" | "tracklength" | "collision" ) } |
attribute estimator { ( "analog" | "tracklength" | "collision" ) })? &
element filter {
(element type { ( "cell" | "cellborn" | "material" | "universe" |
"surface" | "distribcell" | "mesh" | "energy" | "energyout" | "mu" |
"polar" | "azimuthal" | "delayedgroup") } |
attribute type { ( "cell" | "cellborn" | "material" | "universe" |
"surface" | "distribcell" | "mesh" | "energy" | "energyout" | "mu" |
"polar" | "azimuthal" | "delayedgroup") }) &
(element bins { list { xsd:double+ } } |
attribute bins { list { xsd:double+ } })
(
(element type { ( "cell" | "cellborn" | "material" | "universe" |
"surface" | "distribcell" | "mesh" | "energy" | "energyout" | "mu" |
"polar" | "azimuthal" | "delayedgroup" | "energyfunction") } |
attribute type { ( "cell" | "cellborn" | "material" | "universe" |
"surface" | "distribcell" | "mesh" | "energy" | "energyout" | "mu" |
"polar" | "azimuthal" | "delayedgroup" | "energyfunction") }) &
(element bins { list { xsd:double+ } } |
attribute bins { list { xsd:double+ } })
) |
(
(element type { ("energyfunction") } |
attribute type { ("energyfunction") }) &
(element energy { list { xsd:double+ } } |
attribute energy { list { xsd:double+ } }) &
(element y { list { xsd:double+ } } |
attribute y { list { xsd:double+ } })
)
}* &
element nuclides {
list { xsd:string { maxLength = "12" }+ }

View file

@ -196,60 +196,106 @@
</optional>
<zeroOrMore>
<element name="filter">
<interleave>
<choice>
<element name="type">
<choice>
<value>cell</value>
<value>cellborn</value>
<value>material</value>
<value>universe</value>
<value>surface</value>
<value>distribcell</value>
<value>mesh</value>
<value>energy</value>
<value>energyout</value>
<value>mu</value>
<value>polar</value>
<value>azimuthal</value>
<value>delayedgroup</value>
</choice>
</element>
<attribute name="type">
<choice>
<value>cell</value>
<value>cellborn</value>
<value>material</value>
<value>universe</value>
<value>surface</value>
<value>distribcell</value>
<value>mesh</value>
<value>energy</value>
<value>energyout</value>
<value>mu</value>
<value>polar</value>
<value>azimuthal</value>
<value>delayedgroup</value>
</choice>
</attribute>
</choice>
<choice>
<element name="bins">
<list>
<oneOrMore>
<data type="double"/>
</oneOrMore>
</list>
</element>
<attribute name="bins">
<list>
<oneOrMore>
<data type="double"/>
</oneOrMore>
</list>
</attribute>
</choice>
</interleave>
<choice>
<interleave>
<choice>
<element name="type">
<choice>
<value>cell</value>
<value>cellborn</value>
<value>material</value>
<value>universe</value>
<value>surface</value>
<value>distribcell</value>
<value>mesh</value>
<value>energy</value>
<value>energyout</value>
<value>mu</value>
<value>polar</value>
<value>azimuthal</value>
<value>delayedgroup</value>
<value>energyfunction</value>
</choice>
</element>
<attribute name="type">
<choice>
<value>cell</value>
<value>cellborn</value>
<value>material</value>
<value>universe</value>
<value>surface</value>
<value>distribcell</value>
<value>mesh</value>
<value>energy</value>
<value>energyout</value>
<value>mu</value>
<value>polar</value>
<value>azimuthal</value>
<value>delayedgroup</value>
<value>energyfunction</value>
</choice>
</attribute>
</choice>
<choice>
<element name="bins">
<list>
<oneOrMore>
<data type="double"/>
</oneOrMore>
</list>
</element>
<attribute name="bins">
<list>
<oneOrMore>
<data type="double"/>
</oneOrMore>
</list>
</attribute>
</choice>
</interleave>
<interleave>
<choice>
<element name="type">
<value>energyfunction</value>
</element>
<attribute name="type">
<value>energyfunction</value>
</attribute>
</choice>
<choice>
<element name="energy">
<list>
<oneOrMore>
<data type="double"/>
</oneOrMore>
</list>
</element>
<attribute name="energy">
<list>
<oneOrMore>
<data type="double"/>
</oneOrMore>
</list>
</attribute>
</choice>
<choice>
<element name="y">
<list>
<oneOrMore>
<data type="double"/>
</oneOrMore>
</list>
</element>
<attribute name="y">
<list>
<oneOrMore>
<data type="double"/>
</oneOrMore>
</list>
</attribute>
</choice>
</interleave>
</choice>
</element>
</zeroOrMore>
<optional>