Skip to content

Commit

Permalink
Update diffusion text.
Browse files Browse the repository at this point in the history
Had the explanations wrong in the main text, and some validation rules needed to be relaxes.  sbmlteam/libsbml#267 are the parallel changes to libsbml itself.
Also needed a couple new validation rules to disallow self-referential diffusion/advection.
  • Loading branch information
luciansmith committed Aug 16, 2022
1 parent 6a42e01 commit 8b316fd
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 11 deletions.
22 changes: 18 additions & 4 deletions sbml-level-3/version-1/spatial/specification/apdx-validation.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1502,7 +1502,7 @@ \subsubsection*{Rules for \class{DiffusionCoefficient} object}

\validRule{spatial-23404}{The value of the attribute
\token{spatial:\-variable} of a \DiffusionCoefficient object must be the
identifier of an existing \Species object defined in the enclosing
identifier of an existing \Species \changed{or \Parameter} object defined in the enclosing
\Model object. (Reference: SBML Level~3 Specification for Spatial
Processes, Version~1, \sec{diffusioncoefficient-class}.)}

Expand Down Expand Up @@ -1554,9 +1554,16 @@ \subsubsection*{Rules for \class{DiffusionCoefficient} object}
\validRule{spatial-23456}{The \DiffusionCoefficient attributes \token{spatial:coordinateReference1} and \token{spa\-tial\-:co\-or\-di\-nate\-Re\-fer\-ence2} may not have a value of \val{cartesianZ} if the Geometry has exactly one or two CoordinateComponent children.
(Reference: SBML Level~3 Specification for Spatial Processes, Version~1, \sec{diffusioncoefficient-class}.)}

\validRule{spatial-23457}{Any \Species may only have a single \DiffusionCoefficient that applies to any given cardinal axis or plane. A \DiffusionCoefficient of type \val{anisotropic} applies to the axis it references, and any plane in the Geometry that contains that axis. A \DiffusionCoefficient of type \val{tensor} applies to the plane defined by the two axes it references. A \DiffusionCoefficient of type \val{isotropic} is considered to apply to all axes and planes in the \Geometry.
\validRule{spatial-23457}{Any \Species \changed{or \Parameter} may only have a single \DiffusionCoefficient that applies to any given cardinal axis or plane. A \DiffusionCoefficient of type \val{anisotropic} applies to the axis it references, and any plane in the Geometry that contains that axis. A \DiffusionCoefficient of type \val{tensor} applies to the plane defined by the two axes it references. A \DiffusionCoefficient of type \val{isotropic} is considered to apply to all axes and planes in the \Geometry.
(Reference: SBML Level~3 Specification for Spatial Processes, Version~1, \sec{diffusioncoefficient-class}.)}

\begin{blockChanged}
\validRule{spatial-23458}{The value of the attribute
\token{spatial:\-variable} of an \DiffusionCoefficient object must not be the identifier of its parent \Parameter.
(Reference: SBML Level~3 Specification for Spatial
Processes, Version~1, \sec{advectioncoefficient-class}.)}
\end{blockChanged}

\subsubsection*{Rules for \class{AdvectionCoefficient} object}

\validRule{spatial-23501}{An \AdvectionCoefficient object may have the
Expand All @@ -1580,7 +1587,7 @@ \subsubsection*{Rules for \class{AdvectionCoefficient} object}

\validRule{spatial-23504}{The value of the attribute
\token{spatial:\-variable} of an \AdvectionCoefficient object must be
the identifier of an existing \Species object defined in the enclosing
the identifier of an existing \Species \changed{or \Parameter} object defined in the enclosing
\Model object. (Reference: SBML Level~3 Specification for Spatial
Processes, Version~1, \sec{advectioncoefficient-class}.)}

Expand All @@ -1597,10 +1604,17 @@ \subsubsection*{Rules for \class{AdvectionCoefficient} object}
(Reference: SBML Level~3 Specification for Spatial Processes, Version~1,
\sec{advectioncoefficient-class}.)}

\validRule{spatial-23551}{No two \AdvectionCoefficient elements in the same \Model may have the same values for the attributes \token{species:variable} and \token{species:coordinate}. Only one advection coefficient may be defined per species per axis.
\validRule{spatial-23551}{No two \AdvectionCoefficient elements in the same \Model may have the same values for the attributes \token{spatial:variable} and \token{spatial:coordinate}. Only one advection coefficient may be defined per species (or parameter) per axis.
(Reference: SBML Level~3 Specification for Spatial Processes, Version~1,
\sec{advectioncoefficient-class}.)}

\begin{blockChanged}
\validRule{spatial-23552}{The value of the attribute
\token{spatial:\-variable} of an \AdvectionCoefficient object must not be the identifier of its parent \Parameter.
(Reference: SBML Level~3 Specification for Spatial
Processes, Version~1, \sec{advectioncoefficient-class}.)}
\end{blockChanged}


\subsubsection*{Rules for \class{BoundaryCondition} object}

Expand Down
Binary file not shown.
14 changes: 7 additions & 7 deletions sbml-level-3/version-1/spatial/specification/syntax.tex
Original file line number Diff line number Diff line change
Expand Up @@ -267,27 +267,27 @@ \subsubsection{\class{DiffusionCoefficient} uniqueness}
Only one \DiffusionCoefficient may be defined per \Species per axis or pair of valid axes in the \Compartment in which it resides. Since isotropic diffusion is defined for all axes at once, this means that if an isotropic \DiffusionCoefficient is defined for a \Species, it may have no other diffusion coefficients. Similarly, if a tensor \DiffusionCoefficient is defined for a \Species for a pair of axes, the model must not also define an anisotopic \DiffusionCoefficient for either of those axes. This means that the following types of diffusion coefficients are allowed in a three-dimensional \Geometry:
\begin{itemize}
\item A single isotropic diffusion coefficient.
\item Up to three anisotropic diffusion coefficients, one per pair of axes.
\item Up to three tensor diffusion coefficients, one per axis.
\item One anisotropic diffusion coefficient for one pair of axes, and a second tensor diffusion coefficient, for the third axis.
\item Up to three \changed{tensor} diffusion coefficients, one per pair of axes.
\item Up to three \changed{anisotropic} diffusion coefficients, one per axis.
\item One \changed{tensor} diffusion coefficient for one pair of axes, and a second \changed{anisotropic} diffusion coefficient, for the third axis.
\end{itemize}
\begin{blockChanged}
For a two-dimensional \Geometry, the following are allowed:
\begin{itemize}
\item A single isotropic diffusion coefficient.
\item A single anisotropic diffusion coefficient, defined for the two axes (equivalent to a single isotropic diffusion coefficient).
\item Up to two tensor diffusion coefficients, one per axis.
\item A single tensor diffusion coefficient, defined for the two axes (equivalent to a single isotropic diffusion coefficient).
\item Up to two anisotropic diffusion coefficients, one per axis.
\end{itemize}
For a one-dimensional \Geometry, the following are allowed:
\begin{itemize}
\item A single isotropic diffusion coefficient.
\item A single tensor diffusion coefficient, defined for the single axis (equivalent to a single isotropic diffusion coefficient).
\item A single anisotropic diffusion coefficient, defined for the single axis (equivalent to a single isotropic diffusion coefficient).
\end{itemize}
Anisotropic diffusion coefficients may not be defined for one-dimensional geometries, as they apply in two dimensions.
Tensor diffusion coefficients may not be defined for one-dimensional geometries, as they apply in two dimensions.
\end{blockChanged}
\subsection{The \class{AdvectionCoefficient} class}
Expand Down

0 comments on commit 8b316fd

Please sign in to comment.