<HTML>
<CENTER><A HREF = "https://sparta.github.io">SPARTA WWW Site</A> - <A HREF = "Manual.html">SPARTA Documentation</A> - <A HREF = "Section_commands.html#comm">SPARTA Commands</A> 
</CENTER>






<HR>

<H3>compute react/surf command 
</H3>
<P><B>Syntax:</B>
</P>
<PRE>compute ID react/surf group-ID reaction-ID value1 value2 ... 
</PRE>
<UL><LI>ID is documented in <A HREF = "compute.html">compute</A> command 

<LI>react/surf = style name of this compute command 

<LI>group-ID = group ID for which surface elements to perform calculation on 

<LI>reaction-ID = surface reaction ID which defines surface reactions 

<LI>zero or more values can be appended 

<LI>value = <I>r:s1/s2/s3 ...</I> or <I>p:s1/s2/s3 ...</I> 

<PRE>  r: or p: = list of reactant species or product species
  s1,s2,s3 = one or more species IDs, separated by "/" character 
</PRE>

</UL>
<P><B>Examples:</B>
</P>
<PRE>surf_react air prob air.surf
compute 1 react/surf all air
compute 2 react/surf all air r:N/O/N2/O2 p:N/O/NO 
</PRE>
<P>These commands will dump time averages for each surface element to a
dump file every 1000 steps:
</P>
<PRE>compute 2 react/surf all air r:N/O/N2/O2 p:N/O/NO
fix 1 ave/surf all 10 100 1000 c_2[*]
dump 1 surf all 1000 tmp.surf id f_1[*] 
</PRE>
<P><B>Description:</B>
</P>
<P>Define a computation that tallies counts of reactions for each
explicit surface element in a surface element group, based on the
particles that collide with that element.  Only surface elements in
the surface group specified by <I>group-ID</I> are included in the
tallying.  See the <A HREF = "group.html">group surf</A> command for info on how
surface elements can be assigned to surface groups.  Likewise only
surface elements assigned to the surface reaction model specified by
<I>reaction-ID</I> are included in the tallying.
</P>
<P>Explicit surface elements are triangles for 3d simulations and line
segments for 2d simulations.  Unlike implicit surface elements, each
explicit triangle or line segment may span multiple grid cells.  See
the <A HREF = "read_surf.html">read_surf</A> command for details.
</P>
<P>This command can only be used for simulations with explicit surface
elements.  See the similar <A HREF = "compute_react_isurf_grid.html">compute
react/isurf/grid</A> command for use with
simulations with implicit surface elements.
</P>
<P>Note that when a particle collides with a surface element, it can
bounce off (possibly as a different species), be captured by the
surface (vanish), or a 2nd particle can also be emitted.
</P>
<P>The doc page for the <A HREF = "surf_react.html">surf_react</A> command explains the
different reactions that can occur for each specified style.
</P>
<P>If no values are specified each reaction specified by the
<A HREF = "surf_react.html">surf_react</A> style is tallied individually for each
surface element.
</P>
<P>If M values are specified, then M tallies are made for each surface
element, one per value.  If the value starts with "r:" then any
reaction which occurs with one (or more) of the listed species as a
reactant is counted as part of that tally.  If the value starts with
"p:" then any reaction which occurs with one (or more) of the listed
species as a product is counted as part of that tally.  Note that
these rules mean that a single reaction may be tallied multiple times
depending on which values it matches.
</P>
<P>The results of this compute can be used by different commands in
different ways.  The values for a single timestep can be output by the
<A HREF = "dump.html">dump surf</A> command.
</P>
<P>The values over many sampling timesteps can be averaged by the <A HREF = "fix_ave_surf.html">fix
ave/surf</A> command.
</P>
<HR>

<P><B>Output info:</B>
</P>
<P>This compute calculates a per-surf array, with the number of columns
either equal to the number of reactions defined by the
<A HREF = "surf_react">surf_react</A> style (if no values are specified) or equal to
M = the # of values specified.
</P>
<P>Surface elements not in the specified <I>group-ID</I> or not assigned to
the specified <I>reaction-ID</I> will output zeroes for all their values.
</P>
<P>The array can be accessed by any command that uses per-surf values
from a compute as input.  See <A HREF = "Section_howto.html#howto_4">Section 6.4</A>
for an overview of SPARTA output options.
</P>
<P>The per-surf array values are counts of the number of reactions that
occurred.
</P>
<HR>

<P><B>Restrictions:</B> none
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "fix_ave_surf.html">fix ave/surf</A>, <A HREF = "dump.html">dump surf</A>, <A HREF = "compute_react_isurf_grid.html">compute
react/isurf/grid</A>
</P>
<P><B>Default:</B> none
</P>
</HTML>
