text:
\section{Conservative discretization}

{\narrower \it ``Numerical methods for nonlinear conservation laws are among
the great success stories of modern numerical analysis.'' \rm
(Iserles \cite{iserles})

}

\bigskip
Conservative discretizations of partial differential equations have
been explored for a long time. What does ``conservative'' mean?
An early definition is due to Lax and Wendroff \cite{la-we}, who
considered the class on PDEs with one spatial dimension,
\begin{equation}
\label{conspde}
u_t + \partial_x(f(u)) = 0
\end{equation}
and called discretizations of the form
\begin{equation}
\label{laxwendroff}
{u^{n+1}_i - u^n_i \over \Delta t} =
{H(u^n_{i+j},\dots,u^n_{i-j+1}) - H(u^n_{i+j-1},\dots,u^n_{i-j})\over
\Delta x}
\end{equation}
conservative. See \cite{iserles} for an introduction to such
methods. More generally, the formulation (\ref{conspde})
is called conservative, and the expanded form
$$ u_t + f'(u)u_x $$
nonconservative, with these terms carrying over to the corresponding
discrete forms. The PDE (\ref{conspde}) reflects, amongst other
things, conservation of the integral of $u$ (e.g. total mass,
momentum, etc.), and the conservative discretization
(\ref{laxwendroff}) preserves a discrete analog:
$\sum_i u^{n+1}_i = \sum_i u^n$. The full consequences
for the discrete scheme of the form (\ref{laxwendroff})
remain unclear.

More recently the term has been applied to PDEs that can be
written purely in terms of intrinsic differential operators such as
div, grad, and curl. A conservative spatial discretization is
then one which preserves discrete analogues of these operators' integral
identities (e.g., Stokes's theorem). In many cases these obey maximum
principles and have robust stability properties in difficult situations
such as rough grids and discontinuous coefficients \cite{shashkov}.

Schemes have also been developed for particular equations that inherit
conserved quantities approximating those of the PDE. An early and
famous example is the Arakawa Jacobian \cite{arakawa}, a discretization
of $v_x w_y - v_y w_x$ which, when applied to the two-dimensional
Euler fluid equations, provides two conservation laws corresponding
to energy and enstrophy, both quadratic functions. It is widely used
in computational meteorology. There are many energy-conserving
schemes for particular PDEs: Fei and V\'asquez \cite{fe-va} for
the sine-Gordon equation; Glassey \cite{glassey} for the
Zakharov equations;
Glassey and Schaeffer \cite{gl-sc} for a nonlinear wave equation.
The original presentations of all these are somewhat ad-hoc, the
proof of conservation relying on a telescoping sum.

The Arakawa Jacobian has the extremely nice property that
it can be applied to systems (in two space dimensions,
with two variables) with {\it any} two integrals,
not just energy and enstrophy. It was further explained
and generalized to arbitrary grids by Salmon and Talley
in \cite{sa-ta}. It is this systematic approach that
we generalize in this paper to equations with any number
of integrals, space dimensions, and variables. Our formulation
includes all integral-preserving discretizations.

Having integrals of course reduces the evolution to a smaller
space, which, when their level sets are compact, gives
the method a form or nonlinear stability. Often, more is true:
Preservation of a discrete form of $\int u\,dx$ by the
Lax-Wendroff form (\ref{laxwendroff}) leads to correct
shock speeds, and preservation of energy and enstrophy
by the Arakawa Jacobian prevents energy cascading to small
length scales \cite{arakawa}.

The Euler equations, the sine-Gordon equation and so on are examples
of {\it Hamiltonian} PDEs, which suggests that one should look for
semi- or fully-discrete forms which preserve not only a discrete energy
but also a discrete Hamiltonian (symplectic) structure.
For systems with canonical Hamiltonian structure, this possibility
was explored in \cite{mclachlan}.  But
even before the importance of Hamiltonian PDEs was widely recognized,
for which a watershed event was perhaps the 1983 conference \cite{sandiego},
it had been pointed out by Morrison \cite{phil} that spatial
discretizations of non-canonical Hamiltonian PDEs will not normally
be Hamiltonian. One example apart, the curious `sine bracket' Hamiltonian
discretization of the Jacobian \cite{zeitlin}, this
is a difficult and essentially unsolved problem.
Probably the right
generalization of `Hamiltonian' has not yet been found.

We are thus
reluctantly led to consider only energy-conserving discretizations.
Or perhaps we should not be reluctant: Simo et al.
\cite{si-ta-wo} have argued
and presented detailed evidence from elastodynamics that conserving
energy leads to excellent nonlinear stability properties that
preserving symplectic structure does not. (Essentially because
symplectic schemes can only brake the fast modes, whereas energy-conserving
schemes can also damp them.)

In Hamiltonian systems, energy is normally seen as playing a distinguished
role. Yet there may be other conserved quantities just as important
for the long-time dynamics. Some of them, the `Casimir' integrals,
can be due to the Hamiltonian structure itself. Non-Hamiltonian
systems can also have conserved quantities. Even in the ODE example
of the free rigid body,
the relationship between
schemes preserving energy and/or momentum and/or symplectic structure
is quite complicated \cite{le-si}.

In this paper we go some way towards uniting these different
integrals and different points of view.
Our goal is to develop a methodology for building spatial discretizations
that preserve discrete analogues of any given set of integrals.
It should be systematic, all-inclusive, and reproduce known schemes.
We do this in a formulation in which the integrals appear explicitly;
the integrals themselves can then be discretized in any way. The
basic ``finite difference molecule'' is now a completely skew-symmetric
tensor. Symmetry plays a fundamental role, and we will see how the
skew-symmetry of this tensor interacts with other desired symmetries
of the scheme (e.g., translational and rotational invariance) in
a nontrivial way.

\section{Hamiltonian and other PDEs with integrals}

We consider PDEs with independent spatial variables $x\in\BB{R}^d$ and
dependent variables $u(x)\in\BB{R}^m$. We loosely call $m$ the ``number
of variables.'' The relevant class of sufficiently smooth
real-valued functionals of $u(x)$ will be denoted ${\cal{U}}$.
A Hamiltonian PDE is specified by a Hamiltonian
${\cal{H}}\in{\cal{U}}$ and a Poisson bracket $\{\, , \, \}:{\cal{U}}\times {\cal{U}}\to {\cal{U}}$:
\begin{equation}
\label{eom}
\dot u = \{u,{\cal{H}}\},
\end{equation}
where the Poisson bracket is bilinear, skew-symmetric
\begin{equation}
\{{\cal{F}},{\cal{G}}\} = -\{{\cal{G}},{\cal{F}}\},
\end{equation}
and obeys the Jacobi identity
\begin{equation}
\{{\cal{F}},\{{\cal{G}},{\cal{H}}\}\} + \{{\cal{G}},\{{\cal{H}},{\cal{F}}\}\} + \{{\cal{H}},\{{\cal{F}},{\cal{G}}\}\} = 0
\end{equation}
and the Leibniz rule
\begin{equation}
\{{\cal{F}},{\cal{G}}{\cal{H}}\} = \{{\cal{F}},{\cal{G}}\}{\cal{H}} + \{{\cal{F}},{\cal{H}}\}{\cal{G}}
\end{equation}
for all ${\cal{F}}$, ${\cal{G}}$, ${\cal{H}}\in{\cal{U}}$.
In fact, these axioms imply the existence of a Hamiltonian (or `Poisson')
operator ${\cal{J}}$, such that the Poisson bracket takes the form
\begin{equation}
\{{\cal{F}},{\cal{G}}\} = \int {\delta {\cal{F}} \over \delta u} {\cal{J}} {\delta{\cal{G}}\over \delta u}\,dx
\end{equation}
and (\ref{eom}) becomes
\begin{equation}
\dot u = {\cal{J}} {\delta {\cal{H}} \over \delta u}
\end{equation}
A particularly important example is the conservation law (\ref{conspde}),
which takes this form with $x$, $u\in R$ and
\begin{equation}
\label{conspde2}
{\cal{H}} = \int F(u(x))\,dx,\quad {\cal{J}} = \partial_x,\quad F' = f.
\end{equation}

The system (\ref{eom}) has functional ${\cal{I}}\in{\cal{U}}$ as an integral
if $\dot {\cal{I}} = \{{\cal{I}},{\cal{H}}\}$=0. Some integrals ${\cal{C}}$ are distinguished in
that $\{C,{\cal{F}}\}=0$ for all ${\cal{F}}\in {\cal{U}}$; they are called Casimirs.
The operator ${\cal{J}}=\partial_x$ has a single Casimir, ${\cal{C}} = \int u\,dx$,
because ${\cal{J}}(\delta {\cal{C}}/\delta u) = \partial_x 1 = 0$.

The peculiarly Hamiltonian character of these PDEs is due to
the Jacobi identity satisfied by the Poisson bracket. If, as
argued previously, we discard this identity, what class of systems
result? Energy is still conserved, because of the skew-symmetry
of the bracket. Systems (\ref{eom}) may still have integrals
and the operator ${\cal{J}}$ may still have Casimirs. Do such systems
retain any other special properties? The answer is no: {\it all} systems
with an integral ${\cal{H}}$ can be written in the form (\ref{eom}) for
some choice of the bracket (or equivalently, for some choice
of the skew-adjoint operator ${\cal{J}}$). So to study systems with
an integral, and their discretizations, we may without
loss of generality assume the form (\ref{eom}).

This is most easily seen in the finite dimensional case, as shown
recently by Quispel and Capel \cite{qu-ca}. Take
$u\in \BB{R}^n$ as coordinates on phase space. Poisson ($\equiv$
non-canonical Hamiltonian) systems
$$ \dot u = \{u,H\} = J(u)\nabla H(u) $$
have integral $H$.
But suppose an arbitrary system $\dot u = f(u)$ has integral $H$.
Let $z=\nabla H$ and
\begin{equation}
\label{Jij}
J_{ij} = {f_i z_j - f_j z_i\over \sum_k z_k^2}
\end{equation}
Then $J$ is skew-symmetric, and $J\nabla H=f$ as required.
This $J$ is singular at critical points of $H$, but in \cite{mc-qu-ro} it
is shown that if $f$ and $H$ are smooth, and the critical points
of $H$ are nondegenerate, then there is a smooth matrix $J$ such
that $f=J\nabla H$.

This idea extends easily to systems with any number of integrals:
The system of ODEs $\dot u = f(x)$
has integrals $I^1,\dots,I^p$ if and only if there exists a
totally skew-symmetric $(p+1)$-tensor $K$ such that for all
$x$ where the vectors $\nabla I^i$ are linearly independent,
\begin{equation}
\label{Kijk}
 f_i = K_{ijk\dots} {\partial I^1\over \partial x_j}
{\partial I^2\over\partial x_k}\dots.
\end{equation}
For, suppose $K$ exists. Then $\dot I^j = f\cdot\nabla I^j
=0$, so each $I^j$ is an integral. Conversely, suppose $f$ has integrals
$I^j$. Then (using exterior algebra, see \cite{darling})
$$K={f\wedge\nabla I^1\dots\wedge\nabla I^p \over
\det(\nabla I^i\cdot\nabla I^j)}
$$
satisfies (\ref{Kijk}).
$K$ is determined uniquely only in the case $n=p+1$;
see \cite{mc-qu-ro} for further details.
We write the inner product (\ref{Kijk}) as
$$
f = K(\nabla I^1,\nabla I^2,\dots).
$$

What about Casimirs? Suppose that instead of contracting $K$ against
all the integrals, as in (\ref{Kijk}), we contract against just one,
say $I^1$. Then $\widetilde K = K(\nabla I^1)$ is a skew $p$-tensor which has
$I^1$ as a Casimir, in the sense that $\widetilde K(\nabla I^1) \equiv 0$ and
any differential equation formed from this $\widetilde K$ (as in (\ref{Kijk}))
will have $I^1$ as an integral. But there are many different $K$'s, all
generating the same system $\dot u = f$, that do not have $I^1$ as a Casimir.
Thus the distinction between the Hamiltonian, other integrals, and Casimirs,
that was present for Hamiltonian systems, is lost now. We are free
to move between different representations of $f$ as needed.

(There is another importance difference. If $J\in \BB{R}^{n\times n}$
satisfies the Jacobi identity and has locally constant rank $m$, then
$J$ automatically has $n-m$ Casimirs \cite{olver}. This need not be true if the
Jacobi identity does not hold: there may not be $n-m$ functions whose
gradients span $J$'s nullspace. This is another reason for constructing
$J$'s as above that automatically have the required Casimirs.)

One can use the tensor $K$ to define a $(p+1)$-bracket,
$$ \{F_1,\dots,F_{p+1}\} = K(\nabla F_1,\dots,\nabla F_{p+1}) $$
which is multilinear, a derivation in each argument, and completely
antisymmetric. Such brackets have been revived in modern times
by Nambu \cite{nambu}, who, amongst other things, introduced the
3-bracket on $\BB{R}^3$ given by $K_{ijk} = \varepsilon_{ijk}$ (the
alternating tensor). This gives systems of the form
$$ \dot u = K(\nabla I^1,\nabla I^2) = \nabla I^1 \times \nabla I^2. $$
In particular, the free rigid body takes this form with
$I^1={1\over 2}|u|^2$ being total angular momentum and
$I^2={1\over 2}\sum u_i^2/A_i$ being the kinetic energy, where
the $A_i$ are the body's moments of inertia.
Contracting against $\nabla I^1$ gives the standard, Lie-Poisson form
of the equations,
$$ \dot u_i = J_{ik}(u) {\partial I^2\over u_k} = \varepsilon_{ijk} u_j
{\partial I^2 \over \partial u_k}.$$
However, later studies \cite{gautheron,takhtajan}, attempting to build
a true generalization of Hamiltonian mechanics from such brackets,
have found that not all constant $K$'s satisfy the required ``fundamental
identity'' (the analogue of the Jacobi identity); its solutions
all lead to systems with $n-1$ integrals. So it is not clear that
interesting dynamics as well as interesting algebraic structure
will arise in this way.

The situation for PDEs is formally the same. For example, for a PDE
$\dot u = f(u)$
with one integral ${\cal{I}}$, one can define the operator $\mathcal J$
analogously to (\ref{Jij}) by
$$ {\cal{J}}(x,x')v(x') = {\int \left(f(x)z(x') - f(x')z(x)\right)v(x')\,dx' \over
\int {\delta {\cal{I}}\over\delta u}(x')z(x')\,dx' }$$
where $z(x)$ is any smooth function, and
$$ f(x) = \int {\cal{J}}(x,x'){\delta I\over\delta u}(x')\,dx'. $$
The extension to multiple integrals $\{{\cal{I}}^j\}$ is similar.
However, questions of convergence of the integrals arise,
and the nonuniqueness
situation is much worse: it is not clear how to construct
{\it local} operators, for example. However, as our goal is to construct
finite-dimensional finite difference operators, the representation
(\ref{Kijk}) is sufficient.

Looking back at Eq. (\ref{conspde}), we see that it encompasses two
important conservation laws expressed in two different ways.
The fact that $\partial_x (\delta u/\delta u) = \partial_x 1 = 0$
means that the Casimir $\int u\,dx$ is an integral, and the
conservative scheme (\ref{laxwendroff}) maintains a discrete
analog of this.
In this example, this property is relatively easy to preserve
under discretization: a system has $\sum_i u_i$ as an integral
if and only if it can be written in the form $\dot u_i = J_{ij} F_j$,
where $J$ is not necessarily skew, but $\sum_i J_{ij}=0$ for all $j$.
Without loss of generality we
can take $J$ to be in the form (\ref{laxwendroff}), with just two
nonzero diagonals. The form of the $F_j$ chosen in (\ref{laxwendroff})
is necessary for translation invariance.

Secondly, if $f$ is a variational derivative,
$f=\delta {\cal{H}}/\delta u$ say, then the skew-adjointness of
${\cal{J}} = \partial_x$ means that ${\cal{H}}$ is an integral.
To preserve this property under discretization means taking (again,
without loss of generality) $\dot u_i = J_{ij}{\partial H\over \partial
u_j}$, where $J$ is skew symmetric. Note that such a $J$ need
not {\it a priori} have $\sum u_i$ as a Casimir, and, similarly,
the nonsymmetric $J$ used in (\ref{laxwendroff}) does not preserve
any discrete $H$.
Thus, the two expressions of conservation laws are in fact independent.

In this paper we generalize the second form. The first form is
deceptively simple in this example, because the Casimir is so simple.
It is not clear how to modify (\ref{laxwendroff}) to incorporate
different Casimirs. In the second form the integral appears
explicitly and, once $J$ is found, {\it any} quantity can be conserved.

Before continuing, we mention one trivial but complete solution to
the whole problem. Why not contract $K$ against {\it all} the
integrals and have simply $\dot u_i = f_i$, with all $I^j$
being integrals of $f$? That is, $f\cdot\nabla I^j=0$ for all $j$.
This case is already included in the above formulation, with
$f$ regarded as a
``skew 1-tensor.'' The equations $f\cdot\nabla I^j=0$ are linear
and can be solved in many ways, for example, by starting with
an arbitrary $f$ and projecting to the subspace $\{f\cdot \nabla I^j=0\:
j=1,\dots,p\}$. One objection is that this solution is
so general that it is not clear how to proceed in any particular case.
For example, to modify $f$ as little as possible one might choose orthogonal
projection, but this will couples all of the $f_i$.
By incorporating more of the known structure of the problem
we can work more systematically.

\section{Method of discretization}

We wish to construct discretizations of the form (\ref{Kijk}).
There are two ways to proceed. One could take a particular PDE,
write it in the form $\dot u = {\cal{K}}(\delta I^1,\dots)$,
and discretize this skew-adjoint operator ${\cal{K}}$, preserving
skew symmetry. This is difficult, if only because such formulations
of PDEs are new and have not been widely developed yet.
Instead, we study systems of the
form (\ref{Kijk}) in their own right, constructing
elementary tensors $K_{ijk\dots}$, and
seeing what PDEs they can be used to approximate. That is, we establish
(in a sense defined below)
$$ K(v^1,\dots,v^p) \dots = {\cal{K}}(v^1,\dots,v^p) + \O{h^r}.$$
We call $K$ a {\it finite difference tensor} and $K(v^1,\dots,v^p)$
a {\it finite difference}.
Then, the integrals ${\cal{I}}^i$ can be discretized in any way, say by
$$ I^i(u) = {\cal{I}}^i(u) + \O{h^r}$$
(this amounts to a numerical quadrature)
giving the conservative system of ODEs
\begin{equation}
\label{Kbracket}
\dot u = K(\nabla I^1,\dots,\nabla I^p).
\end{equation}
Since this form includes all systems with integrals $I^i$, we can be
confident of not missing any in our construction.

We start with an elementary example illustrating how
easy it is to break skew symmetry. With one integral in
one space dimension, we are seeking an antisymmetric matrix $K$.
On a constant-spaced grid, central differences have
\begin{equation}
\label{central}
K = {1\over 2h}\left(
\begin{array}{cccc}
\ddots & & & \\
-1 & 0 & 1 & \\
& -1 & 0 & 1 \\
& & & \ddots \\
\end{array}
\right),
\end{equation}
which is antisymmetric. On a non-constant-spaced grid,
if we let $p(x)$ be the quadratic interpolating
$(x_0,v_0)$, $(x_1,v_1)$, and $(x_2,v_2)$ and use
the estimate $v_1'= p'(x_1)$, the associated matrix
$K$ is not antisymmetric---it even has a nonzero diagonal.
Taking its antisymmetric part is not a good idea, as we
have no idea what operator $K^{\rm T}$ approximates.
Indeed, it is not immediately clear what bandwidth is
required to achieve order 2, say, with an antisymmetric matrix.
The element $K_{i,i-1}$, which is relevant to $\dot u_i$, must
also contribute to $\dot u_{i-1}$.

Nonconstant operators also pose problems. Let ${\cal{K}} = u\partial_x
+ \partial_x u$. Central differences are not skew,
but it is not obvious that the skew matrix
\begin{equation}
\label{nonskew}
K = {1\over h}\left(\begin{array}{cccc}
\ddots & & & \\
-u_{i-1} & 0 & u_i & \\
& -u_i & 0 & u_{i+1} \\
& & & \ddots \\
\end{array}\right),
\end{equation}
is a discretization of ${\cal{K}}$, or how to increase its order from 1.

Below we develop some requirements on the tensors $K$, and construct
all the elementary ones, for various numbers of integrals, space
dimensions, and grids.

\section{Definitions \& theory}

The fundamental objects are the {\it grid} $L$, the
{\it index set} $M$, the {\it symmetry group} $G$,
and the skew tensors $K\in \Lambda^{p+1}(\BB{R}^{M})$, which
we now define.

Let $L$ be a set of indices of grid points. To each index $i\in L$
there is a physical point $x_i\in\BB{R}^d$. Let $\{1,\dots,m\}$ be
the set of indices of the dependent variables, so that the full,
discrete state space is indexed by the {\it index set}
$$ M = L\times\{1,\dots,m\}.$$
A {\it grid function} is a real function on $M$;
for example, the system
state is given by the grid function $u:M\to\BB{R}$. Its value at
point $i=(l,\alpha)\in M$ is written $u_i=u_{(l,\alpha)}$.
(That is, we are assembling all the unknowns into a big ``column
vector.'')
When $m=1$, we drop the second subscript entirely.

For simplicity, we only consider the
interpretation of this function in which
$u_{(l,\alpha)}\approx u_\alpha(x_l)$.
(Staggered grids and $u_i$ representing other functionals of $u(x)$ do not
affect our main line of argument.)

The $p$ functions, and their corresponding grid functions,
which are to be inserted in (\ref{Kbracket}) are denoted $v^1,\dots,v^p$.
However, when $p=1$ we denote it $v$, and when $p=2$
we denote them $v$ and $w$, to reduce the number of indices.

A discretization of a PDE is thus a vector field on $\BB{R}^M$,
and a discretization of an operator ${\cal{K}}$ is a skew $(p+1)$-tensor
$K_{i_0\dots i_p} = K_{\Mm{i}}= K_{({\Mm{l}},{\Mm{\alpha}})}
\in \BB{R}$, $i_j\in M$; i.e.,
$K\in \Lambda^{p+1}(\BB{R}^M)$. Since we are trying to {\it construct}
such tensors, intermediate steps will also involve nonskew
tensors, i.e., real functions on $M^{p+1}$.

$K$ {\it approximates ${\cal{K}}$ to order $r$} if
$$ K_{i_0\dots i_p}v^1(x_{i_1})\dots v^p(x_{i_p}) =
{\cal{K}}(v_1,\dots,v^p)(x_{i_0})+\O{h^r}$$
for all smooth $v^1,\dots,v^p$.
We sometimes
drastically abbreviate this to $Kv = {\cal{K}} v + \O{h^r}$.
We also abbreviate $v^1_{i_1}\dots v^p_{i_p}$ to $v_{\Mm{i}}$.

Let the grid $L$ have a nonnegative distance
function $|j-k|$. This
extends to $M$  by $|(j,\alpha)-(k,\beta)| := |j-k|$.
The {\it bandwidth} of $K$ is the smallest $c$ such that
$K_{\Mm{i}}=0$ for all ${\MM{i}}$ such that $|i_j - i_k|>c$.

Two examples are
the Euclidean distance $|x_i-x_j|$, giving the ``Euclidean
bandwidth,'' and
the minimum number of edges traversed going from $i$ and $j$,
where the grid points have been connected to form a graph,
giving the ``graph bandwidth.''
For example, $K$ in Eq. (\ref{nonskew}) has graph bandwidth 1.
$K$ is {\it local} if it has a finite bandwidth even on
infinite grids.

The grid $L$ may be structured, like
a square or triangular lattice, or unstructured. Let $G$ be
a symmetry group acting on $M=L\times\{1,\dots,m\}$.
We usually consider only {\it spatial symmetries}, those which are
the identity in their second slot, i.e. $\pi_2 g(l,\alpha)=\alpha$.
These merely rearrange grid functions on $L$.

Furthermore, $G$ is usually a subgroup of the
symmetry group of the continuous physical space.
For example, suppose this space is the plane. Many PDEs of
physical interest are invariant under the group $E(2)$
of Euclidean motions of the plane
(the
semi-direct product of rotations, reflections, and translations,
$O(2)\mathbin{\circledS}\BB{R}^2$).
A discrete version of such a PDE can inherit
some of this invariance if $L$ has a subgroup of $E(2)$ as a symmetry
group. Examples are the square lattice, which has $D_4\mathbin{\circledS}\BB{Z}^2$
as a symmetry group (8 rotations and reflections, plus discrete translations)
and the equilateral triangular lattice, which has $D_3\mathbin{\circledS}\BB{Z}^2$.
For the Euclidean group of the sphere there are no such natural lattices,
and the dislocations that occur, e.g.,
when triangulating an icosahedral grid,
are known to destabilize numerical methods and create artifacts in the
solutions.

Some nonspatial symmetries can also be included. For example,
for a PDE involving $f(v_{2x}-v_{1y})$ we might include the map
$(x,y,v_1,v_2)\mapsto (y,x,v_2,v_1)$ in $G$.

Order of accuracy can also sometimes be expressed as a symmetry.
One way to ensure second-order accuracy is for the expansion
of the discretization error in powers of the spatial grid size $h$
to have only odd or only even terms present.
This is equivalent to being invariant
under the operation $h\mapsto -h$, or $x\mapsto -x$. This can only
apply if $x\mapsto-x$ is a symmetry of the lattice itself, which it
is for square and triangular lattices.

To include this possibility we equip each element of $G$ with a
sign, $\mathop{\rm sgn}(g)=\pm 1$, such that $G$ is homomorphic to $\BB{Z}_2$.
The map corresponding to $h\mapsto -h$ would then have sign
$1$ ($-1$) when the operator has an even (odd) number of derivatives.

The action of $G$ extends to an action on $\Lambda^{p+1}(\BB{R}^M)$ by
$$g K_{i_0\dots i_p} := K_{g(i_0)\dots g(i_p)}$$
which we write as
$$(g K)_{\Mm{i}} =  g(K_{\Mm{i}}) = K_{g({\Mm{i}})}.$$
A tensor $K$ is {\it $G$-invariant} if $g K = (\mathop{\rm sgn} g) K$ for all
$g\in G$.

Thus we have the following requirements on the finite difference operator $K$:
\begin{itemize}
\item $K$ should be completely skew-symmetric;
\item $K$ should be $G$-invariant;
\item $K$ should be as simple as possible;
\item $K$ should approximate the desired continuous operator to
the desired order;
\item $K$ should be local.
\end{itemize}
However, these requirements conflict with each other.

One way to construct operators such as $K$
with the required symmetry properties
is to sum over the symmetry group. Given any
tensor $K$,
\begin{equation}
\label{sum1}
\sum_{\sigma\in S_{p+1},g\in G} \mathop{\rm sgn}(\sigma)\mathop{\rm sgn}(g)
K_{\sigma(g({\Mm{i}}))}
\end{equation}
is completely skew-symmetric and $G$-invariant.
This suggests two ways to construct symmetric $K$'s:
\begin{itemize}
\item Start with a $K$ which approximates the desired continuous operator,
and symmetrize it;
\item Start with a very simple $K$, such as a basis element for the
space of $(p+1)$-tensors, symmetrize it, and see what continuous operator it
approximates.
\end{itemize}
A major drawback of the first strategy is that we have no control over
what the symmetrized $K$ approximates.

The second strategy builds a ``library'' of all such
difference operators, from which linear combinations can
be taken as desired. However, the form (\ref{sum1}) is not convenient
for writing down these operators in the usual way, which
requires the coefficients of each $v^j_k$ appearing
in the resulting grid function at a particular point
$i_0$. That is, we want to know $K_{i_0 i_1 \dots i_p}$ for
a particular $i_0$.  We derive finite differences in this
form in three stages: firstly, for $m=1$ variable;
secondly, for $m\ge 1$ variables with no unknowns at the
same grid point coupled; thirdly, the general case, $m\ge 1$
variables with arbitrary coupling.

\subsection*{Case 1. $m=1$ variable}
When $m=1$ we drop the second component
of the index $i=(l,\alpha)$.
We can take $i_0=0$.
Fix a multi-index ${\MM{i}}\in M^{p+1}$ where $i_0=0$
and start with the elementary tensor defined by $K_{\Mm{i}} = 1$,
$K_{\Mm{j}}=0$
for all ${\MM{j}} \ne {\MM{i}}$. We assume that the indices in ${\MM{i}}$
are distinct, for otherwise skew-symmetrizing $K$ would lead to
the zero tensor. Skew-symmetrizing $K$ gives a tensor of bandwidth
$\max_{j,k}|i_j-i_k|$. It is
$$
H_{\Mm{l}} = \sum_{\rho\in S_{p+1},h\in G}
\mathop{\rm sgn}(\rho) \mathop{\rm sgn}(h)  K_{h(\rho({\Mm{l}}))}
$$
so the vector field at the point $0$ is $\sum_{\Mm{l}} H_{\Mm{l}} v_{\Mm{l}}$
where $l_0=0$. Since $K$ is a discrete delta function,
there is only one nonzero term in this sum, i.e.,
\begin{equation}
\label{Hsl}
\sum_{\Mm{l}} H_{\Mm{l}} v_{\Mm{l}} = \sum_{\rho,h,{\Mm{l}}}
\mathop{\rm sgn}(\rho)\mathop{\rm sgn}(h) v_{\Mm{l}},
\end{equation}
where the sum is taken over all $\rho$, $h$, and ${\MM{l}}$
such that $\rho(h({\MM{l}}))={\MM{i}}$ and $l_0=0$. Therefore,
${\MM{l}} = \rho^{-1}(h^{-1}({\MM{i}}))$. Let $g=h^{-1}$, $\sigma=\rho^{-1}$
so that Eq. (\ref{Hsl}) becomes
\begin{equation}
\label{sv}
\sum_{\sigma,g}\mathop{\rm sgn}(\sigma)\mathop{\rm sgn}(g) v_{\sigma(g({\Mm{i}}))}
\end{equation}
where the sum is over all $\sigma$ and $g$ such that
$\sigma(g({\MM{i}}))_0=0$.

Since no two indices in ${\MM{i}}$ are the same,
for each such $g$, let $\sigma$ be such that
$\sigma(g({\MM{i}}))_0=0$; then the remaining $\sigma$'s
that satisfy this equation
lie in $S_p$, the
permutations of the last $p$ indices. The sum over $S_p$
can be evaluated to give a determinant, giving the
vector field at point 0,
\begin{equation}
\label{the_f}
F({\MM{i}}) := \sum_{g\in G_{\Mm{i}}}\mathop{\rm sgn} (\sigma)\mathop{\rm sgn} (g)\det V_{\sigma(g({\Mm{i}}))}
\end{equation}
where
\begin{equation}
\label{Gi}
G_{\Mm{i}} = \{ g\in G: \exists \sigma\in S_{p+1}\hbox{\rm\ such that\ }
\sigma(g({\MM{i}}))_0 = 0\},
\end{equation}
and the $p\times p$ matrix $V$ has $(j,k)$ entry
\begin{equation}
\label{V}
(V_{\Mm{l}})_{jk} = v^j_{l_k},\quad 1\le j,k\le p.
\end{equation}
(The first subscript of $l_0=0$
and does not appear in the matrix.)

We introduce a graphical notation for formulas such as Eq.
(\ref{the_f}).
An arrow connecting gridpoints
$i_1,\dots,i_p$ will indicate a term $\det V_{\Mm{i}}$.
For $p>1$, the sign factors can be incorporated by applying
a permutation of
sign $\mathop{\rm sgn}(\sigma)\mathop{\rm sgn}(g)$ to the $i_j$ (for $p=2$ and $p=3$
we merely change the direction of the arrow if the required sign
is $-1$, equivalent to writing the columns of $V$ in reverse order)
or by choosing $\sigma$ in (\ref{Gi}) so that $\mathop{\rm sgn}(\sigma)\mathop{\rm sgn}(g)=1$.
The reader is encouraged
to refer immediately to Fig. (\ref{fig1}(a)) and its
associated finite difference Eq. (\ref{p2d1}) to see how
easy this is.

Thus, constructing skew finite differences amounts to choosing an
initial arrow, finding the group $G_{\Mm{i}}$, and finding the image
of the initial arrow under $G_{\Mm{i}}$.

\subsection*{Case 2. $m\ge 1$ variables, distinct points
coupled}
Let ${\MM{i}}=({\MM{l}},{\MM{\alpha}})$ is the chosen basis element,
where $l_0=0$. ``Distinct points coupled'' means that
$l_j\ne l_k$ for all $j$, $k$.

The single element ${\MM{i}}$ will contribute to the vector field at
$(0,\alpha_j)$ for all $j$;
therefore, we will construct, not a single basis vector field,
but the family of vector fields spanned by $K_{({\Mm{l}},{\Mm{\alpha}})}$
{\it for all} ${\MM{\alpha}}$. That is, we allow coupling of all
components right from the start. We introduce the rank $p+1$,
dimension $m$ tensor $T_{\Mm{\alpha}}
\in \BB{R}^{m^{p+1}}$
and start with $K_{{\Mm{i}},{\Mm{\alpha}}}=T_{\Mm{\alpha}}$, $K_{{\Mm{j}},{\Mm{\alpha}}}=0$
for ${\MM{j}}\ne {\MM{i}}$.

Passing from
Eq. (\ref{sv}) to Eq. (\ref{the_f}) only required that
the $l_j$ be distinct; therefore the
symmetrized vector field at the point 0
(corresponding to Eq. (\ref{the_f})
in the single variable case) is
\begin{equation}
\twosum{g\in G_{\Mm{i}}}{\alpha_0,\dots,\alpha_p}\mathop{\rm sgn} (\sigma)\mathop{\rm sgn} (g)
T_{\Mm{\alpha}}\det V_{\sigma(g({\Mm{i}}))}
{\partial \over \partial u_{\sigma(g({\Mm{\alpha}}))_0}}
\end{equation}
We want to find the $\alpha_0$-component of this vector field.
To do this we relabel the
dummy indices ${\MM{\alpha}}$ by applying
$(\sigma g)^{-1}$ {\it in the second slot only} to get
the vector field at point 0 in component $\alpha_0$,
\begin{equation}
\label{the_f2}
F({\MM{i}}) := \twosum{g\in G_{\Mm{i}}}{\alpha_1,\dots,\alpha_p}
\mathop{\rm sgn} (\sigma)\mathop{\rm sgn} (g)
T_{g^{-1}(\sigma^{-1}({\Mm{\alpha}}))}\det V_{(\sigma(g({\Mm{l}})),{\Mm{\alpha}})}
\end{equation}

Notice that in (\ref{the_f2}), each determinant involves
the same components of the $v^i$. Also, if $g$ is a spatial symmetry,
then $g^{-1}(\sigma^{-1}({\MM{\alpha}}))=\sigma^{-1}({\MM{\alpha}})$.

The diagram notation extends easily to (\ref{the_f2}).
To the arrow $\sigma(g({\MM{l}}))$ we attach the label
$g^{-1}(\sigma^{-1}({\MM{\alpha}}))$ indicating the $T$-tensor
attached to that determinant.

\subsection*{Case 3. $m\ge 1$ variables, arbitrary coupling.}

Equality of some of the $l_j$ affects the sum over permutations
in Eq. (\ref{sv}).
Let ${\MM{j}}=h(\rho({\MM{l}}))$ where $j_0=0$. Let $n({\MM{j}})$ be the
number of 0's in ${\MM{j}}$. Then the subgroup of $S_{p+1}$
leaving $\sigma({\MM{j}})_0=0$ is not $S_p$ as it was before.
It is convenient to have a sum of determinants of
all $p\times p$ matrices, so we express this subgroup as
the product of $S_p$ and the flips $(0k)$, $k=1,\dots,n({\MM{j}})-1$.
This subgroups of $S_{p+1}$
contains all permutations of the first $n$
elements; summing over these merely skew-symmetrizes $T$.
We could have imposed this in the first place for simplicity.
Since there will usually be $g_j$ (a translation, say)
with $g_j(l_j)=0$, this is true for any set of equal
elements of ${\MM{l}}$.

Let $\Sigma_l=\{\sigma: \sigma({\MM{l}})={\MM{l}}\}$ be the symmetry
group of ${\MM{l}}$. To sum up, we
\begin{equation}
\label{Tsym}
\hbox{\rm take $T$ to skew-symmetric under $\Sigma_{\Mm{l}}$.}
\end{equation}

With this assumption, each flip $(0k)$ gives
an equal contribution and we can evaluate the sum
over permutations to give the symmetrized vector
field at the point 0
\begin{equation}
\label{the_f3}
F({\MM{i}}) := \twosum{g\in G_{\Mm{i}}}{\alpha_1,\dots,\alpha_p}
\mathop{\rm sgn} (\sigma)\mathop{\rm sgn} (g) n(g({\MM{l}}))
T_{g^{-1}(\sigma^{-1}({\Mm{\alpha}}))}\det V_{(\sigma(g({\Mm{l}})),{\Mm{\alpha}})}
\end{equation}

In the diagrams, to the arrow $\sigma(g({\MM{l}}))$ we attach
the weight $n(g({\MM{l}}))$.

To summarize, the final finite difference evaluated at
the point $(0,\alpha_0)$, is given by Equations (\ref{the_f3})
(\ref{Gi}), and (\ref{V}).  Eq. (\ref{the_f3}) specializes
to Eq. (\ref{the_f2}) when all elements of ${\MM{l}}$ are distinct,
and specializes further to (\ref{the_f}) when $m=1$.
In practice, from a diagram
one writes down the finite difference directly from its
diagram.

We develop these diagrams and study the resulting differences
for different numbers of
integrals and dimensions of phase space, and different
symmetry groups $G$.

\section{Examples}

\subsection*{Case 1. $p=1$ integral, $d=1$ space dimension.}
By scaling it is sufficient to consider ${\MM{i}}=(0,1)$.
The bandwidth is 1.
The group $G_{\Mm{i}}$ has the single element $i\mapsto i-1$. The
permutation which brings $0$ to the front is $(0,-1)\mapsto (-1,0)$,
with sign $-1$. Thus we get the standard central difference
$$F(0,1) = v_1 - v_{-1}.$$
On a grid with constant spacing $h$,
$$ v_1 - v_{-1} = 2 h v_x + \O{h^3}$$.

All other examples are related to this one:
\begin{enumerate}
\item by Richardson extrapolation,
$$ 8 F(0,1) - F(0,2)  = 12 h v_x + \O{h^5}.$$
\item eliminating the leading order term(s) gives finite differences
approximating
higher-order differential operators:
$$ F(0,2) - 2 F(0,1) = 2 h^3 v_{xxx} + \O{h^5}.$$
\item taking a linear combination of these basis elements gives stencils that
approximate
other first-order differential operators. This is equivalent to multiplying
by a symmetric tensor $s_{ij}$. To get a smooth continuous
limit we can take, e.g.,
$s_{ij} = q(x_i,x_j,u_i,u_j)$, where $q$ is symmetric in its first and
second pairs of arguments. If $K$ is the tensor corresponding to
the vector field $F(0,1)$,
\begin{equation}
\label{gen1d}
s_{ij}K_{ij} v_j = 2h(s\partial_x +
\partial_x s)v + \O{h^3},
\end{equation}
where $s := q(x,x,u,u)$ (no sum on $i$).
\end{enumerate}
We consider this last example in more detail, since it gives the class
of all skew tridiagonal (i.e., bandwidth 1) finite differences.

Firstly, suppose we have the non-constant operator ${\cal{J}} = u\partial_x
+ \partial_x u$. Eq. (\ref{gen1d}) discretizes this if $s(x,u) = u$.
The only constraint is the the tensor $s_{ij}$ must be symmetric,
to maintain the overall skew-symmetry of the finite difference.
For example, we can take $s_{ij} = (u_i+u_j)/2$ (only elements with
$|i-j|=1$ are actually used). This gives the finite difference
tensor
\begin{equation}
\label{vp}
K = {1\over 2}\left(\begin{array}{ccccc}
\ddots & & & &\\
-u_0-u_1 & 0 & u_1 + u_2 & & \\
& -u_1 - u_2 & 0 & u_2 + u_3 & \\
& & -u_2 - u_3 & 0 & u_3 + u_4 \\
& & & & \ddots \\
\end{array}\right),
\end{equation}
showing how the skew-symmetry is maintained.
\footnote{Interestingly, the choice $s_{ij} = \sqrt{u_i u_j}$
actually gives a {\it Poisson} $K$. This is because it is the
image of the standard central difference under a
change of variables which sends $\partial_x$
into $u \partial_x + \partial_x u$.}

Secondly,
suppose we wish to difference on an irregular grid,
where the data are known at the points $c(x_i)= c(ih)$---we know
$v(c(x_i))$. Then we
want an approximation of $v' = v_c$. From the chain rule, this is
equal to $v_x/c_x$. We cannot get
this by applying (\ref{gen1d}) to $v$, since the terms
in $v$ only cannot cancel.

We apply (\ref{gen1d})
to a function $w(x,v(c(x))$. This  gives the equation
$$ (s\partial_x + \partial_x s)w(x,v(c(x))) =
(\sqrt{2s}\partial_x\sqrt{2s})w(x,v(c(x)) = {v_x(c(x))\over c'(x)}$$
with solution
$$s = {1\over 2{c'}^2},\quad w = c' v.$$

For the discretization, any $w_j$ and any symmetric $s_{ij}$
with this continuous
limit can be taken. If $c'$ is known analytically, we can use the
midpoints of the intervals to get
$$s_{0,1} = {1\over2(c_{1\over2}')^2},\quad
s_{0,-1}={-1\over 2(c_{-{1\over2}}')^2},$$
$$ v'_0 = {1\over 4h}\left({c'_1 v_1 \over {c_{1\over2}'}^2 }-
{c'_{-1} v_{-1} \over {c_{-{1\over2}}'}^2} \right)
+\O{h^2}$$
---that is, a second order, 2-point, anti-symmetric discretization of the
derivative on smooth grids.
With constant spacing, $c(x)=x$ and it reduces to the standard
central difference.

If $c'$ is not known, we can approximate it symmetrically with
$$f_{0i} = {1\over2}\left({c_i-c_0\over h}\right)^{-2},$$
$$w_i = {(v_{i}+v_{i+1})(c_{i+1}-c_i) + (v_i+v_{i-1})(c_i-c_{i-1})\over4h},$$
which has bandwidth 2. It is not consistent on rough grids, however;
the error is $\O{h^2 c''''}=\O{h^{-1}}$ near a discontinuity of $c'$.

With $m>1$ components and bandwidth 1, the two possibilities
are ${\MM{l}} = (0,0)$ and ${\MM{l}}=(0,1)$. In the first case, the tensor
$T$ must be skew symmetric in its only two slots, but there
are no group symmetries. In the second case, $G_{\Mm{l}}$
has two elements, the identity and left translation. Under
left translation,
$(0,1)\mapsto (-1,0)$; applying $\sigma=(01)$ of sign $-1$ maps
$(-1,0)\mapsto(0,-1)$. In
the last step we apply the $\sigma^{-1}$ to
the indices of $T$. Combining both possibilities gives the
finite difference
$$ -T^{\rm T} v_{-1} + J v_0 + T v_1 = (J+T-T^{\rm T})v +
h (T+T^{\rm T})v_x +\O{h^2},$$
where $J=-J^{\rm T}$.
Further imposing the symmetry $i\to -i$, of sign $-1$, is equivalent
to taking $T=T^{\rm T}$; then the finite difference is second order.
As above, nonconstant operators are approximated by taking
$T_l=T(x_l, x_{l+1}, u_l,u_{l+1})$, symmetric
in its first and second pairs of arguments, and
$J_l = J(x_{l-1},x_l,x_{l+1},u_{l-1},u_l,u_{l+1})$,
symmetric under $(13)$ and $(46)$.

 \begin{figure}[tb]
 \begin{center}
 \leavevmode

\setlength{\unitlength}{4144sp}%
\begingroup\makeatletter\ifx\SetFigFont\undefined%
\gdef\SetFigFont#1#2#3#4#5{%
  \reset@font\fontsize{#1}{#2pt}%
  \fontfamily{#3}\fontseries{#4}\fontshape{#5}%
  \selectfont}%
\fi\endgroup%
\begin{picture}(4861,1225)(1074,-2011)
\thinlines
\put(4065,-1109){\circle*{70}}
\put(4508,-1101){\circle*{70}}
\put(5408,-1101){\circle*{70}}
\put(5858,-1109){\circle*{70}}
\special{ps: gsave 0 0 0 setrgbcolor}\put(5528,-1109){\vector( 1, 0){225}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(5273,-1116){\vector(-1, 0){653}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4178,-1109){\vector( 1, 0){210}}
\special{ps: grestore}\put(5385,-899){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}1\special{ps: grestore}}}}
\put(5828,-891){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}2\special{ps: grestore}}}}
\put(4935,-900){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}0\special{ps: grestore}}}}
\put(3961,-913){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}-2\special{ps: grestore}}}}
\put(4418,-914){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}-1\special{ps: grestore}}}}
\put(4951,-1366){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}cab\special{ps: grestore}}}}
\put(5626,-1366){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}abc\special{ps: grestore}}}}
\put(4951,-1591){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}cab\special{ps: grestore}}}}
\put(4276,-1591){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}abc\special{ps: grestore}}}}
\put(4276,-1366){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}bca\special{ps: grestore}}}}
\put(5626,-1546){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}bca\special{ps: grestore}}}}
\put(1178,-1141){\circle*{70}}
\put(1621,-1133){\circle*{70}}
\put(2521,-1133){\circle*{70}}
\put(2971,-1141){\circle*{70}}
\special{ps: gsave 0 0 0 setrgbcolor}\put(2641,-1141){\vector( 1, 0){225}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(2386,-1148){\vector(-1, 0){653}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(1291,-1141){\vector( 1, 0){210}}
\special{ps: grestore}\put(2498,-931){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}1\special{ps: grestore}}}}
\put(2941,-923){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}2\special{ps: grestore}}}}
\put(2048,-932){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}0\special{ps: grestore}}}}
\put(1074,-945){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}-2\special{ps: grestore}}}}
\put(1531,-946){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}-1\special{ps: grestore}}}}
\put(1966,-2011){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(a)\special{ps: grestore}}}}
\put(4906,-1996){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(b)\special{ps: grestore}}}}
\end{picture}
 \caption{Case 2, Two integrals, one space dimension. (a) One variable;
 (b) $m$ variables. See Eq. (\ref{p2d1}) for the finite difference
 interpretation of (a).}
 \label{fig1}
 \end{center}
 \end{figure}

\subsection*{Case 2. $p=2$ integrals, $d=1$ space dimension}

With $m=1$ component, the simplest tensor has base index
${\MM{i}}=(0,1,2)$. This will lead to bandwidth 2.
We start with the arrow $1\to 2$ (see Figure \ref{fig1}).
Translating left by 1 and
rotating indices right (an even permutation) (i.e.,
performing $(0,1,2)\mapsto (-1,0,1)\mapsto (0,1,-1)$)
gives the arrow $1\to -1$. Repeating gives the
arrow $-2\to-1$. The resulting diagram is already
symmetric under $h\to -h$, so we do not need to add
this operation.
The diagram in Fig. \ref{fig1}(a) corresponds to the finite
difference
\begin{equation}
\label{p2d1}
\eqalign{
F(0,1,2) &=
\det V_{1,2} + \det V_{1,-1} + \det V_{-2,-1} \cr
& = (v_1 w_2-v_2 w_1) + (v_{1}w_{-1}-v_{-1}w_{1}) +
(v_{-2}w_{-1}-v_{-1}w_{-2})
}
\end{equation}
Expanding in Taylor series, this is
$$ h^3(3(v'w''-w'v'') + 2(vw'''-wv''')) + \O{h^5}$$

With $m>1$ component there is essentially one finite difference
each with bandwidth 0, 1, and 2.
We write $T_{\alpha_1,\alpha_2,\alpha_3}
=T_{abc}$.

With ${\MM{l}}=(0,0,0)$ (bandwidth 0), Eq. (\ref{Tsym})
says we must have $T_{abc}$
completely skew-symmetric. One might not call this a ``difference,''
since it only acts on $v_0$ and $w_0$.

 \begin{figure}[tb]
 \begin{center}
 \leavevmode

\setlength{\unitlength}{4144sp}%
\begingroup\makeatletter\ifx\SetFigFont\undefined%
\gdef\SetFigFont#1#2#3#4#5{%
  \reset@font\fontsize{#1}{#2pt}%
  \fontfamily{#3}\fontseries{#4}\fontshape{#5}%
  \selectfont}%
\fi\endgroup%
\begin{picture}(4250,827)(1341,-406)
\thinlines
\special{ps: gsave 0 0 0 setrgbcolor}\put(1671, 89){\oval(170,122)[tr]}
\put(1671, 59){\oval(182,182)[tl]}
\put(1671, 59){\oval(182,182)[bl]}
\put(1671, 29){\oval(170,122)[br]}
\put(1756, 29){\vector( 0, 1){0}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(5131, 29){\vector( 0, 1){0}}
\put(5216, 29){\oval(170,122)[bl]}
\put(5216, 59){\oval(182,182)[br]}
\put(5216, 59){\oval(182,182)[tr]}
\put(5216, 89){\oval(170,122)[tl]}
\special{ps: grestore}\put(1891, 74){\circle*{70}}
\put(2791, 74){\circle*{70}}
\put(2341, 74){\circle*{70}}
\put(4996, 74){\circle*{70}}
\put(4096, 74){\circle*{70}}
\put(4546, 74){\circle*{70}}
\special{ps: gsave 0 0 0 setrgbcolor}\put(2431, 74){\vector( 1, 0){225}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4456, 74){\vector(-1, 0){225}}
\special{ps: grestore}\put(2775,308){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}1\special{ps: grestore}}}}
\put(2325,307){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}0\special{ps: grestore}}}}
\put(4996,299){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}1\special{ps: grestore}}}}
\put(4546,299){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}0\special{ps: grestore}}}}
\put(4051,299){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}--1\special{ps: grestore}}}}
\put(1890,316){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}--1\special{ps: grestore}}}}
\put(1441,-83){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}bca\special{ps: grestore}}}}
\put(2558,-188){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}abc(2)\special{ps: grestore}}}}
\put(4344,-151){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}abc(2)\special{ps: grestore}}}}
\put(5491,-76){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}bca\special{ps: grestore}}}}
\put(4494,-391){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(b)\special{ps: grestore}}}}
\put(2251,-406){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(a)\special{ps: grestore}}}}
\end{picture}
 \caption{Case 2, Two integrals, one space dimension, $m$ variables,
 ${\MM{l}}=(0,0,1)$.}
 \label{fig2}
 \end{center}
 \end{figure}

With ${\MM{l}}=(0,0,1)$ (bandwidth 1), Eq. (\ref{Tsym})
says we have $T_{abc}=-T_{bac}$.
The weight of ${\MM{l}}$ is $n({\MM{l}})=2$, since it has 2 zeros.
$G_{\Mm{l}}$ has two elements, the identity and a left translation.
Applying the  left translation followed by
a shift-right permutation $\sigma$ (of sign 1),
$(0,0,1)\mapsto(-1,-1,0)\mapsto(0,-1,-1)$, giving
the arrow $-1\to-1$ with label $\sigma^{-1}(abc)=bca$.
$(0,-1,-1)$ has one zero, so the weight of this arrow is 1.
Together we get two arrows, with diagram
Fig. \ref{fig2}(a) and finite difference
$$ \eqalign{& 2 T_{abc} (v_{0,b}w_{1,c}-v_{1,c}w_{0,b})
+ T_{bca}(v_{-1,b}w_{-1,c}-v_{-1,c}w_{-1,b}) \cr
& = (T_{abc}+T_{bca}+T_{cab})v_b w_c +
h (T_{abc}-T_{bca})v_b w'_c +
h (T_{cab} - T_{bca})v'_b w_c + {\mathcal O}(h^2).
}
$$
(The initial, skew-symmetric term could be removed by
a term $F(0,0,0)$.)

The resulting tensor is not invariant under $g:i\mapsto -i$.
Its image under $g$ is shown in Fig. \ref{fig2}(b).
These two diagrams can be added or subtracted to get a tensor
that is $g$-invariant with sign $1$ or $-1$, as desired.

With ${\MM{l}}=(0,1,2)$ (bandwidth 2), Eq. (\ref{Tsym}) says
that $T$ is arbitrary.
The group $G_{\Mm{l}}$ has three elements: the identity, and a shift
left by 1 or 2.
Apply the two translations gives the diagram Fig. \ref{fig1}(b).
However,
unlike this case with $m=1$,
this is not invariant under $i\mapsto -i$, i.e., it
does not give a second-order finite difference. Applying
this symmetry gives the second row of labels in Fig. \ref{fig3}(b).
(For example, under $(0,1,2)\mapsto
(0,-1,-2)$ the arrow
$1\to 2(abc)$ maps to the arrow
$-1\to -2(abc)$ with sign $-1$, or
$-2\to -1(abc)$ with sign 1. Adding these
makes $T_{abc}=T_{bca}$,
i.e., we can take $T$ to be symmetric under even permutations.

\subsection*{Case 3. $p=1$ integral, $d=2$ space dimensions}
With $p$ free indices in $K$ we can only couple unknowns which span
a $p$-dimensional subspace of $\BB{R}^d$. This is equivalent to
the case $d=p$. For example, on a square grid in $\BB{R}^2$,
$F((0,0),(0,1))= h v_y + {\mathcal O}(h^3)$.

Thus, to get fundamentally new finite difference tensors, we need
$p\ge d$.

 \begin{figure}[tb]
 \begin{center}
 \leavevmode

\setlength{\unitlength}{4144sp}%
\begingroup\makeatletter\ifx\SetFigFont\undefined%
\gdef\SetFigFont#1#2#3#4#5{%
  \reset@font\fontsize{#1}{#2pt}%
  \fontfamily{#3}\fontseries{#4}\fontshape{#5}%
  \selectfont}%
\fi\endgroup%
\begin{picture}(3377,3323)(1343,-3098)
\thinlines
\put(1870,-82){\circle*{70}}
\put(2320,-75){\circle*{70}}
\put(1420,-82){\circle*{70}}
\put(1420,-532){\circle*{70}}
\put(2312,-532){\circle*{70}}
\put(2320,-982){\circle*{70}}
\put(1870,-975){\circle*{70}}
\put(1870,-525){\circle*{70}}
\put(1420,-967){\circle*{70}}
\put(1750, 90){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(0,1)\special{ps: grestore}}}}
\put(2470,-563){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(1,0)\special{ps: grestore}}}}
\put(4120,-82){\circle*{70}}
\put(4570,-75){\circle*{70}}
\put(3670,-82){\circle*{70}}
\put(3670,-532){\circle*{70}}
\put(4562,-532){\circle*{70}}
\put(4570,-982){\circle*{70}}
\put(4120,-975){\circle*{70}}
\put(4120,-525){\circle*{70}}
\put(3670,-967){\circle*{70}}
\put(4000, 90){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(0,1)\special{ps: grestore}}}}
\put(4720,-563){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(1,0)\special{ps: grestore}}}}
\special{ps: gsave 0 0 0 setrgbcolor}\put(4478,-450){\vector(-1, 1){277}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(3676,-181){\vector( 0,-1){255}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4208,-983){\vector( 1, 0){248}}
\special{ps: grestore}\put(1870,-1882){\circle*{70}}
\put(2320,-1875){\circle*{70}}
\put(1420,-1882){\circle*{70}}
\put(1420,-2332){\circle*{70}}
\put(2312,-2332){\circle*{70}}
\put(2320,-2782){\circle*{70}}
\put(1870,-2775){\circle*{70}}
\put(1870,-2325){\circle*{70}}
\put(1420,-2767){\circle*{70}}
\put(4120,-1882){\circle*{70}}
\put(4570,-1875){\circle*{70}}
\put(3670,-1882){\circle*{70}}
\put(3670,-2332){\circle*{70}}
\put(4562,-2332){\circle*{70}}
\put(4570,-2782){\circle*{70}}
\put(4120,-2775){\circle*{70}}
\put(4120,-2325){\circle*{70}}
\put(3670,-2767){\circle*{70}}
\special{ps: gsave 0 0 0 setrgbcolor}\put(2217,-432){\vector(-1, 1){277}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4186,-2701){\vector( 1, 1){270}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4036,-1958){\vector(-1,-1){285}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4471,-1891){\vector(-1, 0){240}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(3668,-2416){\vector( 0,-1){232}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(3766,-2783){\vector( 1, 0){240}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(1478,-2416){\vector( 1,-1){293}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(2311,-2686){\vector( 0, 1){248}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(1763,-1891){\vector(-1, 0){232}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(2228,-2250){\vector(-1, 1){277}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(1958,-2783){\vector( 1, 0){248}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(1418,-1981){\vector( 0,-1){255}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(3728,-2416){\vector( 1,-1){293}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4561,-2686){\vector( 0, 1){248}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4013,-1891){\vector(-1, 0){232}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4478,-2250){\vector(-1, 1){277}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4208,-2783){\vector( 1, 0){248}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(3668,-1981){\vector( 0,-1){255}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4568,-2228){\vector( 0, 1){240}}
\special{ps: grestore}\put(1801,-1298){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(a)\special{ps: grestore}}}}
\put(4066,-1261){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(b)\special{ps: grestore}}}}
\put(1748,-3098){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(c)\special{ps: grestore}}}}
\put(4118,-3091){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(d)\special{ps: grestore}}}}
\put(1750,-1710){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(0,1)\special{ps: grestore}}}}
\put(2470,-2363){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(1,0)\special{ps: grestore}}}}
\put(4000,-1710){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(0,1)\special{ps: grestore}}}}
\put(4720,-2363){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(1,0)\special{ps: grestore}}}}
\end{picture}
 \caption{Case 4, Step-by-step construction of the Arakawa Jacobian.}
 \label{fig3}
 \end{center}
 \end{figure}

 \begin{figure}[tb]
 \begin{center}
 \leavevmode

\setlength{\unitlength}{4144sp}%
\begingroup\makeatletter\ifx\SetFigFont\undefined%
\gdef\SetFigFont#1#2#3#4#5{%
  \reset@font\fontsize{#1}{#2pt}%
  \fontfamily{#3}\fontseries{#4}\fontshape{#5}%
  \selectfont}%
\fi\endgroup%
\begin{picture}(5792,1500)(863,-1366)
\thinlines
\put(901,-526){\circle*{70}}
\put(1351,-518){\circle*{70}}
\put(1801,-518){\circle*{70}}
\put(1133,-136){\circle*{70}}
\put(1583,-128){\circle*{70}}
\put(1576,-908){\circle*{70}}
\put(1126,-908){\circle*{70}}
\put(2446,-519){\circle*{70}}
\put(2896,-511){\circle*{70}}
\put(3346,-511){\circle*{70}}
\put(2678,-129){\circle*{70}}
\put(3128,-121){\circle*{70}}
\put(3121,-901){\circle*{70}}
\put(2671,-901){\circle*{70}}
\special{ps: gsave 0 0 0 setrgbcolor}\put(4231,-181){\vector(-2,-3){174.462}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4320,-893){\vector( 1, 0){315}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4898,-428){\vector(-2, 3){164.769}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4736,-833){\vector( 2, 3){174.462}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4647,-121){\vector(-1, 0){315}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(4069,-586){\vector( 2,-3){164.769}}
\special{ps: grestore}\put(4036,-511){\circle*{70}}
\put(4486,-503){\circle*{70}}
\put(4936,-503){\circle*{70}}
\put(4268,-121){\circle*{70}}
\put(4718,-113){\circle*{70}}
\put(4711,-893){\circle*{70}}
\put(4261,-893){\circle*{70}}
\special{ps: gsave 0 0 0 setrgbcolor}\put(5806,-174){\vector(-2,-3){174.462}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(5895,-886){\vector( 1, 0){315}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(6473,-421){\vector(-2, 3){164.769}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(6311,-826){\vector( 2, 3){174.462}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(6222,-114){\vector(-1, 0){315}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(5644,-579){\vector( 2,-3){164.769}}
\special{ps: grestore}\put(5611,-504){\circle*{70}}
\put(6061,-496){\circle*{70}}
\put(6511,-496){\circle*{70}}
\put(5843,-114){\circle*{70}}
\put(6293,-106){\circle*{70}}
\put(6286,-886){\circle*{70}}
\put(5836,-886){\circle*{70}}
\special{ps: gsave 0 0 0 setrgbcolor}\put(1756,-443){\vector(-2, 3){164.769}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(3301,-428){\vector(-2, 3){164.769}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(2648,-188){\vector(-2,-3){174.462}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(2723,-901){\vector( 1, 0){315}}
\special{ps: grestore}\put(1351,-1366){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(a)\special{ps: grestore}}}}
\put(2911,-1358){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(b)\special{ps: grestore}}}}
\put(4493,-1366){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(c)\special{ps: grestore}}}}
\put(1703, -1){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(0,1)\special{ps: grestore}}}}
\put(1966,-398){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(1,0)\special{ps: grestore}}}}
\put(6053, -8){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}bca\special{ps: grestore}}}}
\put(5574,-263){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}cab\special{ps: grestore}}}}
\put(5536,-781){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}abc\special{ps: grestore}}}}
\put(6046,-1081){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}bca\special{ps: grestore}}}}
\put(6526,-788){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}cab\special{ps: grestore}}}}
\put(6555,-286){\makebox(0,0)[b]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}abc\special{ps: grestore}}}}
\put(6068,-1358){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(d)\special{ps: grestore}}}}
\end{picture}
 \caption{Case 4, The Arakawa Jacobian on a triangular grid.}
 \label{fig4}
 \end{center}
 \end{figure}

\subsection*{Case 4. $p=2$ integrals, $d=2$ space dimensions}
Consider $m=1$ and a square grid. The simplest index set
${\MM{i}}$ we can take is ${\MM{i}}=((0,0),(1,0),(0,1))$, as shown
in Fig. \ref{fig3}(a). Unfortunately, this has lattice bandwidth 2
and Euclidean bandwidth $\sqrt{2}$, an unavoidable property
of the lattice.

Applying the two translations gives the diagram \ref{fig3}(b):
the simplest translation-invariant skew tensor. It gives
$h(v_x w_y - v_y w_x) + \O{h^2}$. That is, it is an
``Arakawa''-type Jacobian.

With even operators on this grid, reflections (necessary
for second order accuracy) and rotations coincide,
which reduces the complexity of the generated finite
difference.
Applying them gives
the diagram \ref{fig3}(c), a second-order Jacobian.
Finally, applying the rotations by $\pi/2$ gives
the diagram \ref{fig3}(d), a Jacobian with the full symmetry
group $D_4\mathbin{\circledS} \BB{Z}^2$.
As can be shown by expanding the entire finite difference,
{\it Fig. \ref{fig3}(d) is the Arakawa Jacobian} (first
derived in \cite{arakawa}.)

We could have stopped at Fig. \ref{fig3}(c); its anisotropy
may be irrelevant for some problems, and its complexity
is half that of \ref{fig2}(d)---12 terms instead of 24.

Consider the same problem on a regular triangular grid.
Now ${\MM{i}}=((0,0),(1,0),(0,1))$ (Fig. \ref{fig4}(a))
will give a graph bandwidth
of 1, not 2. Applying the two translations gives
Fig. \ref{fig4}(b), and reflections
Fig. \ref{fig4}(c), which
{\it already} has the full symmetry of the grid. Thus
Arakawa-type Jacobians are naturally suited to triangular
grids. (Notice that Figs. \ref{fig4}(c) and \ref{fig3}(c)
are essentially the same.)

There are two points to learn from this:
\begin{enumerate}
\item
With $p$ integrals, grids with $p+1$ mutual nearest neighbours
around a cell will give tensors of bandwidth 1. This
is only possible in dimension $d\ge p$.
\item
On some grids, the (optional) spatial symmetries coincide
with some of the (required) skew symmetries and/or reflection
symmetry (needed for second order accuracy).
\end{enumerate}
Cases 5 and 6 illustrate these points.

(An $m$-variable analogue of the Arakawa Jacobian is
shown in Fig. \ref{fig4}(c). It approximates a complicated
second order operator, but if $T_{abc}$ is symmetric
under even permutations, it is
$3\sqrt{3}h^2 T_{abc} {\cal{J}}(v_b,w_c)+{\mathcal O}(h^4)$.)

 \begin{figure}[tb]
 \begin{center}
 \leavevmode

\setlength{\unitlength}{4144sp}%
\begingroup\makeatletter\ifx\SetFigFont\undefined%
\gdef\SetFigFont#1#2#3#4#5{%
  \reset@font\fontsize{#1}{#2pt}%
  \fontfamily{#3}\fontseries{#4}\fontshape{#5}%
  \selectfont}%
\fi\endgroup%
\begin{picture}(1127,1284)(893,-744)
\thinlines
\put(1420,233){\circle*{70}}
\put(1870,240){\circle*{70}}
\put(970,233){\circle*{70}}
\put(970,-217){\circle*{70}}
\put(1862,-217){\circle*{70}}
\put(1870,-667){\circle*{70}}
\put(1420,-660){\circle*{70}}
\put(1420,-210){\circle*{70}}
\put(970,-652){\circle*{70}}
\put(1300,405){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(0,1)\special{ps: grestore}}}}
\put(2020,-248){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\rmdefault}{\mddefault}{\updefault}\special{ps: gsave 0 0 0 setrgbcolor}(1,0)\special{ps: grestore}}}}
\special{ps: gsave 0 0 0 setrgbcolor}\put(1861,-106){\line( 0, 1){345}}
\put(1861,239){\vector(-1, 0){330}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(1313,232){\line(-1, 0){352}}
\put(961,232){\vector( 0,-1){345}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(961,-323){\line( 0,-1){330}}
\put(961,-653){\vector( 1, 0){322}}
\special{ps: grestore}\special{ps: gsave 0 0 0 setrgbcolor}\put(1523,-668){\line( 1, 0){345}}
\put(1868,-668){\vector( 0, 1){337}}
\special{ps: grestore}\end{picture}
 \caption{Case 5, 3 integrals in 2 dimensions}
 \label{fig5}
 \end{center}
 \end{figure}

\subsection*{Cases 5 \& 6: $p=3$ integrals in 2 \& 3 dimensions.}

The above observation suggests that in two dimensions,
the square grid, with 4 vertices
around each cell, is better suited to the case of three rather
than two
integrals. With ${\MM{i}}=((0,0),(1,0),(1,1),(0,1))$, applying
the 3 translations only gives a tensor which is
$D_4$-symmetric (Fig. \ref{fig5}). It equals
$$ 4 h^2 (v^1 {\cal{J}}(v^2,v^3) + v^2 {\cal{J}}(v^3,v^1) + v^3 {\cal{J}}(v^1,v^2))
+{\mathcal O}(h^4)$$
where ${\cal{J}}$ is the Jacobian.
Taking $v^3=1$, for example, recovers the Arakawa Jacobian
Fig. \ref{fig2}(d), and shows that the Arakawa Jacobian also has the
(Casimir) integral $\sum_i u_i$.

It also suggests that in three dimensions with three integrals,
a face-centered-cubic grid (the red points
in a red-black colouring of a cubic grid) is suitable.
Each vertex is surrounded by 8 tetrahedra. Taking
${\MM{l}}=((0,0,0),(0,1,1),(1,0,1),(1,1,0))$ (i.e, coupling the
unknowns around one of the tetrahedra) leads to
a fully symmetric discretization of the three-dimensional
Jacobian $\det(\partial v^i/\partial x_j)$.
Using a cubic grid with ${\MM{l}}=((0,0,0),(0,0,1),(0,1,0),(1,0,0))$
leads to a 3D Jacobian with twice the complexity.

\section{Discussion}

We have presented a systematic method for discretizing
PDEs with a known list of integrals. Since all vector
fields $f_i$ with integrals $I^1,\dots,I^p$ can be
written in the form (\ref{Kijk}), the vector fields
$F({\MM{i}})$ span all integral-preserving discretizations.
The required symmetry properties of $K$ make the
the finite differences unavoidably complicated,
but sometimes the (optional) spatial symmetries $G$
coincide with the (compulsory) skew symmetries $S_{p+1}$,
reducing the overall complexity of the finite difference.

We close with some comments on future directions.

\begin{enumerate}
\item We have not yet mentioned time integration.
It may not as crucial to preserve integrals in
time as in space; this is not usually done with
the Arakawa Jacobian, for example. If it is
important, we note that linear integrals are
preserved by an consistent linearly covariant method
(such as the Euler method used in (\ref{laxwendroff}));
quadratic integrals are preserved by some Runge-Kutta
methods such as the midpoint rule; and any number
of arbitrary integrals can be preserved by a discrete-time
analogue of (\ref{Kbracket}) \cite{mc-qu-ro}.
With one integral, a simple method is based on
splitting $K$ \cite{mc-qu}.
\item To get simpler finite differences, some of the
spatial symmetries can be broken, as for example in
the half- and quarter-size Arakawa Jacobians in
Fig. \ref{fig3}(b,c). How important is this in
practice? These Jacobians are still fully translation
invariant. Breaking {\it this} symmetry gives
even simpler tensors $K$, in which, e.g.,
different differences are applied to red and to
black points. Is this useful?
\item Such broken symmetries may be partially
repaired ``on the fly'' during the time integration.
At the $n$th time step we use the finite difference
tensor $\mathop{\rm sgn}(g_n)gK$, with $g_n$ ranging over the
symmetries. This decreases the symmetry errors
by one power of the time step \cite{is-mc-za},
which, with $\Delta t = (\Delta x)^r$, may be plenty.
Most drastically, $K$ could be only first-order
accurate, improving to second through the time
integration. This would require a careful stability
analysis.
\item Although our discretizations are not
Hamiltonian (unless ${\cal{K}}$ is constant), they can
be volume-preserving. The system (\ref{Kijk}) is
volume preserving for all $I^j$ if $\sum_i \partial K_{ijk\dots}
/\partial u_i=0$ for all $j$, $k,\dots$. In simple
cases this is simple to arrange; $K$ in Eq. (\ref{nonskew})
is not volume-preserving, but $K$ in Eq.
(\ref{vp}) is. Incorporating volume-preservation
in general is more difficult; see \cite{mc-qu} for
a discussion.
\item We have deliberately avoid mentioning boundaries
and the precise degree of smoothness required of
the arguments that make ${\cal{K}}$ skew. These are studied
in \cite{mc-ro}. If the PDE develops shocks, a
careful weighting of the $F({\MM{i}})$ will be required to
capture them well, the analogue of the many methods
for choosing $H$ in (\ref{laxwendroff}) \cite{iserles}.
The present work
applies to infinite or (trivially) to periodic domains.
With finite domains, one can start with $K_{\Mm{i}}$ at
an interior point ${\MM{i}}$, and extend it to the boundary
by skew-symmetry, giving finite difference tensors
satisfying certain ``natural'' boundary conditions.
Also on finite domains, there is the possibility of
using global (e.g. spectral) methods. Of course,
these are in the span of our basis, but that is
not the best way to view them. Preserving
integrals with global methods is studied in \cite{mc-ro}.
\item We have concentrated on constructing skew-symmetric
tensors approximating skew operators. Exactly the
same technique can be used to construct symmetric
tensors. We replace the canonical sign function
on $S_{p+1}$ by any sign function $\sigma$ that makes
$S_{p+1}\cong \BB{Z}_2$. If $\sigma({\MM{i}})=1$ for all ${\MM{i}}$,
for example, the resulting $K$ is completely symmetric,
and when contracted against any $p-1$ of the $I^j$, has
real eigenvalues. If negative definite, the $I^j$ decrease
in time. What is the relationship with the
support operator method \cite{shashkov}?
\end{enumerate}

\subsection*{Acknowledgements}
This paper had a long gestation, during which the support
of the Isaac Newton Institute, Cambridge, and the MSRI,
Berkeley, were invaluable. Useful discussions with
Phil Morrison, Reinout Quispel, Nicolas Robidoux, and
Rick Salmon are gratefully acknowledged.
This work was supported in part by a grant from the
Marsden Fund of the Royal Society of New Zealand.

redpajama_set_name: RedPajamaArXiv


text:
La Selección de fútbol sub-20 de Montenegro es el equipo que representa al país en el Mundial Sub-20 y en la Eurocopa Sub-19; y es controlado por la Federación de Fútbol de Montenegro.

Participaciones

Mundial Sub-20

Eurocopa Sub-19

Referencias

Enlaces externos
 Football Association of Montenegro
 JadranSport.org - South-Eastern European football news coverage
 UEFA.com (Montenegro)

Montenegro
Fútbol en Montenegro

redpajama_set_name: RedPajamaWikipedia


text:
American cities saw uneven growth last decade, new census data show
William H. Frey Tuesday, May 26, 2020
For media inquiries, contact:
MetroMediaRelations@brookings.edu 202.238.3139
Senior Fellow - Metropolitan Policy Program
The 2010s began with great optimism for urban enthusiasts, with many large U.S. cities displaying high enough growth rates to suggest that it could be "the decade of the city." But newly released U.S. Census Bureau estimates show that the nation's large cities experienced uneven growth trajectories over the last decade. In the last several years, many cities registered growth slowdowns and declines while the rest of the country rebounded from the Great Recession and the population dispersed toward suburbs and smaller areas. Some cities grew more rapidly than their surrounding suburbs in the early 2010s, but for many, this is no longer the case.
When the 2020 census results are reported next year, cities' early-decade growth surge may allow them to register a healthy decade-long growth rate. Yet for most, that growth will have been front-loaded, leaving them stagnating just before the COVID-19 pandemic began.
This analysis focuses on two aspects of city growth. First, it assesses annual changes for the 89 large U.S. cities with populations exceeding 250,000, using the new census estimates for each year between July 2010 and July 2019. Second, the analysis examines city and suburb population growth during this period for major metropolitan areas with populations exceeding 1 million. The final section discusses how the 2010s compare to the previous decade, and speculates on what might be in store for big cities during the post-COVID-19 era.
A surge, then a downturn
Growth in cities—especially those that lie within the biggest metropolitan areas—followed a roller coaster pattern in the last decade. This is in part because their surrounding metropolitan areas followed similar trajectories.
Figure 1 displays the annual growth rates of cities grouped into three size categories: cities with populations exceeding 1 million (10 cities), those with populations between 500,000 and 1 million (27), and cities with populations between 250,000 and 500,000 (52).
All three categories saw noticeably lower growth in the past three years—most pronounced in cities with over 1 million population, which registered absolute losses for both 2017 to 2018 and 2018 to 2019.
A closer look at the 10 cities with populations over 1 million reveals that each registered its highest growth rate in the first five years of the decade, and that growth rate exceeded 1% everywhere except Los Angeles, Chicago and Philadelphia. However, in the most recent year, only two of these cities (Phoenix and San Antonio) showed growth above that level, with three cities (New York, Chicago, and San Jose, Calif.) experiencing negative growth.
There is great variation among cities' peak growth levels, with Phoenix, Houston, San Antonio, Dallas, San Diego, San Jose, and Los Angeles besting their Frostbelt counterparts New York, Chicago, and Philadelphia. Yet aside from Phoenix, each showed noticeable downward growth trends in the last three years.
There is even greater variation in growth levels among cities in the other two size categories (download Table A). Irvine, Calif. increased its population by at least 2% each of the nine years, topping out at a 4.7% growth rate for 2013 to 2014. In contrast, three of the cities (Detroit, Toledo, Ohio, and Buffalo, N.Y.) registered population losses for nine years of the 2010s.
There was a general tendency for growth levels to decline for most of these cities. Only four (Henderson, Reno, and North Las Vegas in Nevada as well as Fort Wayne, Ind.) saw their decade growth peak in the last year. And of all the 89 cities studied here, just 10 reached their highest growth levels after 2016.
This trend was also evident in the number of cities that registered population losses over the decade (download Table B). In each of the first three years of the decade, no more than seven cities saw their populations decline. However, in the three most recent years, 20 or more cities sustained population declines. In each of these years, New York City led all others in numeric population losses.
The suburbs reemerge
After decades of suburbanization in America, the high levels of big-city growth in the early 2010s led to a unique phenomenon: a growth advantage for cities over their surrounding suburbs. A great deal of attention was given to the "return to the city" for young adults and seniors, along with the attraction of immigrants to urban centers. However, that advantage began to change as the decade wore on.
The shift from city- to suburban-dominant growth is evident in Figure 3, which shows the annual growth rates for primary cities and suburbs for the aggregated populations of the nation's 53 largest metropolitan areas. (Primary cities can comprise up to three of a metropolitan area's largest cities.) For each of the decade's first five years, city growth bested suburban growth. This pattern shifted to a suburban advantage thereafter.
It should be noted that suburban growth also tapered off—a pattern consistent with the broader slowdown in growth for large metropolitan areas. Yet because city stagnation was greater, an advantage in suburban growth reemerged.
City-suburb growth trends take different forms for individual metropolitan areas. In New York, city growth was more than double that of its suburbs from 2010 to 2015. But by the end of the decade, the city was losing population at a higher rate than the suburbs.
In the Dallas metro area, suburbs grew faster than primary cities throughout the decade. That advantage widened as city growth rates diminished in the last two years. In the Charlotte, N.C. metro area, the substantial city-suburb growth disparity narrowed due to both a city slowdown and suburban rise. And in the Washington, D.C. metro area, the primary cities' early-decade growth advantage diminished as both city and suburban growth fell sharply.
Not all major metropolitan areas witnessed these growth reversals. Nonetheless, from 2010 to 2011, 28 metro areas showed a city growth advantage, falling to just 11 in 2018 to 2019. In the latter year, both primary cities and suburbs registered population declines in four metro areas (download Table C).
The future of city growth
The recent and pervasive growth slowdowns and population losses in large cities occurred for a number of reasons. One of these was the recovering national economy, which prompted a broader dispersal of the population away from larger metropolitan areas as employment opportunities picked up in more modest-sized metro areas, and even outside metropolitan areas. Thus, in many large metro areas, both cities and their surrounding suburbs witnessed growth slowdowns.
A second reason was some recovery of the housing market and lending opportunities, which allowed more young adult millennials to relocate from cities to suburbs and other metropolitan areas after having been drawn to big cities earlier in the decade. In retrospect, some of the "return to the city" movement was spurred by the economic difficulties millennials faced as they came of age during and after the Great Recession and housing bust.
When looked at from a decade-long perspective, the 2020 census will likely show the 2010s to be a period of healthy city growth compared with the 2000s, a somewhat down decade for cities. The Census Bureau's new estimates show that 55 of the country's 89 largest cities have already added more people between 2010 and 2019 than was the case in the 2000 to 2010 decade (download Table D). This is the case for each of the 10 cities with populations over 1 million except New York City. Moreover, within the nation's major metropolitan areas, the city-suburb growth disparity from 2010 to 2019 was modest compared to the sharp disparity during the 2000s.
Of course, this healthy city growth was heavily front-loaded early in the decade, before the declines in recent years. What does this mean for city growth in the early 2020s, especially in the wake of the COVID-19 pandemic?
There are a lot of unknowns, making this difficult to predict. But it is worth noting that big cities registered their highest growth rates during the down economy and deflated housing market in the wake of the Great Recession. Thus, there is a possibility that young adults—both millennials and Gen Z—may again gravitate to big cities as the pandemic recedes and gives way to a recovering economy.
Clearly, there will be a pause in migration as the nation continues to grapple with the pandemic's near-term impacts. But there are still reasons to believe that cities can rebound in the years ahead.
COVID-19 continues spreading into counties with strong Trump support
Coronavirus (COVID-19) Economics
How COVID-19 will change the nation's long-term economic trends, according to Brookings Metro scholars
Mark Muro, Tracy Hadden Loh, Martha Ross, Jenny Schuetz, Annelies Goger, Nicole Bateman, William H. Frey, Joseph Parilla, Sifan Liu, and Adie Tomer
Demographics & Population
Even before coronavirus, census shows U.S. cities' growth was stagnating
Report Produced by Metropolitan Policy Program
U.S. Metro Areas
Dismantling white privilege starts with undoing racist housing policies
Andre M. Perry and Stuart Yasgur
Four reasons why more public housing isn't the solution to affordability concerns
Jenny Schuetz
What transformative placemaking taught us in 2020, and how it can help build a better future
Joanne Kim, Hanna Love, Jennifer S. Vey, and Tracy Hadden Loh

redpajama_set_name: RedPajamaCommonCrawl


Barclays Plc is set to compete with Goldman Sachs Group's Marcus in the digital banking space, following the launch of a retail account offering US consumers low cost, digital-only bank and improved security of dealing with major financial institution. On Sunday, Financial Times reported that Barclays is planning to leverage its UK knowledge and expertise, citing Barry Rodrigues, Barclays International's Head of Cards & Payments, to create a current or checking account for its U.S digital bank.
According to Rodrigues, the bank already provides loans, savings, and credit cards to about 13 million customers. The bank is going to launch checking while the process of building and testing is under the process, it is expected to appear in the market next year, he added. In the United States, Barclays has loan book worth $25 billion, which is divided into $20 billion and $5 billion to its co-branded card customers and online bank borrowers respectively.
Financial Times reported that a new customer-focused account would help the British bank to increase its $13.6 billion of U.S retail deposits, further expanding the funding of Barclays International Division. Mr. Rodrigues had joined Barclays a year ago after working for six years at Citi; he believes that using technology, Barclays can better effect than current US players. The bank ecosystem needs to grow before features that are standard in the UK enter in the United States, he added.
Although US retail banking is progressive in some areas including the use of quick response code for money withdrawals from ATM, it fails to keep a pace with Europe in other ways, said Mr. Rodrigues, such as the prevalence of cheques and contactless payments which uses point-of-sale technology. He hasn't provided any targets for how many account customers the bank plans to attract. Initially, Barclays' target market will be 3 million in its current digital bank and 10 million in co-branded credit cards.
Goldman Sach's Marcus, on the other hand, has attracted over 50,000 customers since its launch in the UK. It has won 1.5 million customers and loaned over $4 billion by the second quarter of the year. Similar to Marcus, Barclays provides saving rates as low as 2% which is 20 times more than average rates offered in the United States for comparable saving products.


text:
GM.Name = "Gmod Fraternal"
GM.Author = "GamingMad101"
GM.Email = "N/A"
GM.Website = "N/A"
DeriveGamemode( "sandbox" )

--include("sh_inventory_system.lua")

function GM:Initialize()
	if SERVER and game.GetMap() == "gmf_mainroom" then
			local Teleporter_Combine = ents.Create("GMF_Teleporter_Combine")
		if ( !IsValid( Teleporter_Combine ) ) then return end // Check whether we successfully made an entity, if not - bail
		Teleporter_Combine:SetPos(Vector(848,960,-25))
		Teleporter_Combine:SetAngles(Angle(90,0,0))
		Teleporter_Combine:Spawn()

	local Teleporter_Resistance = ents.Create("GMF_Teleporter_Resistance")
		if ( !IsValid( Teleporter_Resistance ) ) then return end // Check whether we successfully made an entity, if not - bail
		Teleporter_Resistance:SetPos(Vector(848,832,-25))
		Teleporter_Resistance:SetAngles(Angle(90,0,0))
		Teleporter_Resistance:Spawn()

	end
end

redpajama_set_name: RedPajamaGithub


text:
Uncategorized Audio
by William Ruben Helms March 11, 201405:00 July 20, 2015
Although this site will be turning 4 years old in June, over the last year or so I've started to receive an increasing amount of emails from bands, labels, band managers and publicists from all over the world. And not only is it deeply flattering, it makes my mission of covering and writing about music regardless of genre and country of origin, much more real – and it makes it pretty apparent that I've been on the right path all along.
A few weeks ago, I received an email from the Hamilton, ON-based electronic rock/electro pop quartet by the name of Illitry. "Follow Me," the quartet's latest single is comprised of guitars bathed in reverb, a groove that employs somewhat tribal beats with stuttering synths and swirling electronics. In some way it bears a resemblance to CHVRCHES and others but the overall sound is slicker and perhaps more pop orientated.
Tagged with: CHVRCHES electonic rock electro pop Follow Me Hamilton Hamilton ON Illitry Illitry Follow Me indie electro pop indie rock indie synth pop mp3s music singles synth pop


Pokémon: Colosseum is a Pokémon video game for the Nintendo Game Cube console. In the main storyline the player is tracking down the creators of "Shadow Pokémon", Pokémon that have had their hearts turned to evil. You catch them and battle with them to make them good again. It incorporates elements of both the main hand-held games in the series as well as the Pokémon Stadium games. It is also notable for having a considerably darker storyline than most other Pokémon games.
The gameplay is very similar to the handheld games, but instead of moving in squares, your player moved freely in the 3D space. Battles are done in the exact same way as the handheld series as well, but a few minor tweaks. Since there aren't any wild Pokemon in this game, the only way players can obtain Pokemon is by snagging Shadow Pokemon from opponents. Calling was a new combat option was added as well, which would return Hyper Pokemon from their agitated state back to normal, as well as awaken a party Pokemon who was asleep.
Wes starts at the Outskirt Stand, a dilapidated train in the middle of the desert that has been converted into a shop. With Espeon and Umbreon, Wes's first opponent is a Trainer named Willie. Wes then leaves the Stand and heads to the oasis-esque Phenac City in time to see two men dragging a sack. After defeating them in battle, Wes unties the sack to find Rui, a girl with the ability to discern Shadow Pokémon. They meet the mayor, Es Cade, who seems very bothered about the Cipher problem, but seems to do nothing about it. Later, upon leaving Phenac Colosseum, three Snagem grunts find Wes and Rui. The grunts then reveal to Rui that he was a member of Snagem, and an excellent Snagger. Wes then confronts one of the grunts, which results in the latter's defeat. Finding out that he is an expert at snagging Pokémon, Rui asks him to join forces with her in finding and snagging Shadow Pokémon.
As the game progresses, Wes becomes a target of a powerful organization known as Cipher. After leaving Phenac, he visits Pyrite Town, where Rui was kidnapped. In Pyrite, Shadow Pokémon are openly offered to winners of the town's Colosseum tournament - the local police force is powerless to stop the practice, so Duking (an influential man in Pyrite) asks Wes to enter the tournament and investigate. Wes enters the Colosseum challenge and defeats four trainers to win. Inside a nearby building, a Cipher Peon is about to present the Shadow Pokémon prize, but a friend recognizes Rui. The pair then battle their way through the building and a maze-like cave set in the rock behind. Eventually, they face and defeat Miror B. , one of four Cipher Admins. Afterwards, Wes returns Plusle, a Pokémon Miror B. stole from Duking. A team of kids working in Duking's house introduce themselves as members of an anti-Cipher network, known as Kids Grid, who pledge their help to Wes and Rui.
Their next stop is Agate Village, dominated by a giant dead tree. Just as Wes is introduced to Rui's grandfather Eagun (the village elder), another villager runs into the room, telling them that the Relic Stone is under attack. Wes, following the elder to the center of the tree, fights off four Cipher agents before the Relic Stone is safe. After resting, Wes is given access to the Relic Stone, the only place where he can purify Shadow Pokémon. On a suggestion from the Elder, Wes decides to train his skills at the nearby Mt. Battle.
Upon reaching Mt. Battle, Wes and Rui realize that Cipher has already taken over the lowest level. Wes battles through nine peons before reaching the second Cipher Admin,Dakim. Dakim is under the possession of a Shadow Entei, which follows suit with Venus (Suicune) and Ein (Raikou).
After defeating Dakim, the player character heads to the Under, which is an underground "city" under the control of Cipher. More members of the Kids Grid are found here, as they tell the player of Venus, who has influence over The Under. After confronting Venus, and snagging the Shadow Suicune in her possession, she flees.
Later on in the game, the player characters head to the Shadow Pokémon Lab, where Pokémon are transformed into Shadow Pokémon. They ultimately face Ein, the head scientist behind the Shadow Pokémon project, and the final Cipher Admin.
Wes and Rui arrive at Realgam Tower. After facing the four admins once again, Wes obtains the key cards to reach the top of the tower. There, he is greeted by a large crowd, and a man named Nascour who then tells Wes that he will have to repay all of the debt that he had inflicted on them by facing four trainers for show. After Wes defeats all of the trainers and then Nascour, Nascour attempts to save face, only to be interrupted by Es Cade. Es Cade reveals himself to be Evice, the secret head of the Cipher organization, and battles Wes. When Wes defeats him, Evice attempts to escape by helicopter, but the legendary Pokémon Ho-Oh swoops in and blasts it out of the sky. Evice and Nascour are arrested.
The 100 trainers in Mt.Battle to obtain Ho-oh must be defeated with Pokémon from Story Mode.
Purification is a new topic added to this game, and is also in its sequel. Your character is equipped with a snag machine, which allows you to steal shadow Pokémon. with the Pokémon, it will have a plus next to the level. These Pokémon cannot level up until purified. To do this, you must battle with them a lot, until the meter where the Exp. Share should be is down all the way. Then, take them to the shrine at Agate Village. This will purify them. Also, the Time Flute can instantly restore one shadow Pokémon at the same village. The Time Flute summons Celebi, who instantly removes all traces of the strange shadow substance.
Pokémon Colosseum is compatible with all five of the main series Pokémon games. Items and Pokémon can be traded between them in the same manner that they can be traded between each other, however, the player must have defeated Evice in the main story mode in order to unlock it, have a Game Cube-Game Boy Advance cable, and a Game Boy Advance or GBA SP. All are required to do so.
Pokémon Colosseum spawned a high-profile tournament in the United Kingdom entitled "Pokémon Colosseum Battlemaster 2004". The first round of battles was held at Toys "R" Us locations, with later battles taking place in movie theaters.
The starter Pokémon, Umbreon and Espeon, already have some experience points at the start of the game.
In Europe, the game was bundled with GameCube consoles shortly after its release.
Despite being on the cover, Groudon and Kyogre are not available in the game unless traded from Ruby or Sapphire Versions, or Emerald Version. This is the only time that a Pokémon that appears on the game's cover is not found in the game.
This is the first Pokémon game to have Shadow Pokémon introduced.
A manga adaptation of Colosseum's plot was printed in 2004 issues of the Japanese magazine CoroCoro Comic and titled Pokémon Colosseum Snatcher Leo (ポケモンコロシアムスナッチャーズレオ).
Contrary to rumor, Shadow Pokémon can be Shiny Pokémon when encountered. Shininess is retained through purification. A Shiny Pokémon in Colosseum will emit two orange 'orbs' when sent into battle, and alternate colors are visible as expected. The probability of a Pokémon being Shiny is the same as it is in the handheld games, 1/8192.
This page was last edited on 17 February 2014, at 14:59.


text:
Q: Asp.Net MVC How to log all actions being called I need to be able to log all actions that are called from my asp.net mvc application. How and what would be the best way to achieve this? Where I log it to whether it be the console or log file doesn't matter.

A: Credit HeyMega for their answer. Here's an example of an expanded implementation I arrived at in MVC5.
public class LogActionAttribute : ActionFilterAttribute
{

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var controller = filterContext.RequestContext.RouteData.Values.ContainsKey("Controller") ? filterContext.RequestContext.RouteData.Values["Controller"].ToString() : null;
        var action = filterContext.RequestContext.RouteData.Values.ContainsKey("Action") ? filterContext.RequestContext.RouteData.Values["Action"].ToString() : null;
        var area = filterContext.RequestContext.RouteData.DataTokens.ContainsKey("Area") ? filterContext.RequestContext.RouteData.DataTokens["Area"].ToString() : null;
        var user = filterContext.RequestContext.HttpContext.User.Identity.GetUserId();

        Task.Run(() => Generic().AreaActionLog(user, area, controller, action));

        base.OnActionExecuting(filterContext);
    }
}

I chose to separate the method doing the actual logging into a separate process, if anything goes wrong with the Database interaction, or the DB interaction takes several seconds, the UI is uninterrupted.
You can then decorate the entire controller with [LogAction] attribute like so.
[LogAction]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Contact()
    {
        return View();
    }
}

Or selectively apply the attribute by decorating individual methods:
public class HomeController : Controller
{
    [LogAction]
    public ActionResult Index_Logs_Things()
    {
        return View();
    }
}

Hope this helps someone.

A: You could try Audit.NET library with its Audit.MVC and the different data providers to store the logs on files, eventlog, sql, redis, mongo, and much more.
With the MVC extension you just need to decorate your controllers or actions with an attribute:
[Audit]
public class HomeController : Controller
{ ... }

Execute a static configuration to set the output of your logs:
Audit.Core.Configuration.Setup()
    .UseFileLogProvider(_ => _
        .Directory(@"C:\Logs"));

And it will provide the infrastructure to log the interactions with your MVC application.

A: You could create your own class which inherits from ActionFilterAttribute and then override the OnActionExecuting method.
Example
public class LogActionAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {

        var controller = filterContext.RequestContext.RouteData.Values["Controller"];
        var action = filterContext.RequestContext.RouteData.Values["Action"];

        //
        // Perform logging here
        //

        base.OnActionExecuting(filterContext);
    }
}

public class HomeController : Controller
{
    [LogAction]
    public ActionResult Index()
    {

        return View();
    }

}

Hope this helps!

redpajama_set_name: RedPajamaStackExchange


text:
Local advocates push for pre-K funding
Advocates for early childhood education came together Wednesday at York County's oldest early child care center and called on the state to prioritize expanding access to high-quality pre-K.
Local advocates push for pre-K funding Advocates for early childhood education came together Wednesday at York County's oldest early child care center and called on the state to prioritize expanding access to high-quality pre-K. Check out this story on yorkdispatch.com: https://www.yorkdispatch.com/story/news/education/2016/01/20/local-advocates-push-pre-k-funding/79075382/
Jessica Schladebeck, 505-5438/@JessDispatch Published 5:28 p.m. ET Jan. 20, 2016
Several posters were displayed during a press conference at York Day Nursery Wednesday, Jan. 20, 2016. Pre-k advocates pushed to increase the state's commitment to early learning in the wake of a report by the Pennsylvania Partnerships for Children. (Photo: Bill Kalina - The York Dispatch)Buy Photo
During the news conference at York Day Nursery, hosted by local United Way organizations and members of the Pre-K for PA campaign, pre-K supporters discussed "The Case for Pre-K in PA" — a report released on Wednesday by Pennsylvania Partnership for Children that details how increased state investments in early education sustained over several years can benefit students, schools and communities.
According to the report, in York County 16 percent of children have access to high-quality pre-K, 9 percent have access to high-quality, publicly funded pre-K and 19 percent of children below the poverty level have access.
Other states have steadily been investing in and increasing access to early childhood education, while Pennsylvania's attention to the initiative has stalled over the past few years, said Bob Woods, executive director of the United Way of York County. In the past five years, Pennsylvania has dropped from 11th to 15th in the nation in pre-K access for 3-year-olds. For 4-year-olds, the state has gone from 24th to 30th, according to the report.
Rob Woods, executive director of the United Way of York County, speaks during a press conference at York Day Nursery Wednesday, Jan. 20, 2016. Pre-k advocates pushed to increase the state's commitment to early learning in the wake of a report by the Pennsylvania Partnerships for Children. (Photo: Bill Kalina - The York Dispatch)
"The United Way and our community partners simply don't have adequate resources to reach all children," he said. "Government must be the largest investor if we are to ensure all of our children benefit."
Joan Benso, president and CEO of Pennsylvania Partnership for Children, said while the validity of early childhood education was once questioned, there is no longer any debate on the matter.
"Policy makers still haven't made it an urgent enough priority," she said.
Gov. Tom Wolf had wanted to invest an additional $120 million in early childcare education in his proposed budget for 2015-16. However, the partial budget he signed late last month expanded funding by $30 million, which would benefit an estimated 7 million children who had not previously had access to pre-K, Benso said.
York Day Nursery: "The children here will be far better when they walk out these doors and move onto kindergarten," Benso said of York Day Nursery.
The six-classroom — one of which is a state-funded Pre-K Counts classroom — childcare facility, built in 1934, facilitates more than 100 children with ages ranging from 6 weeks to 5 years old. It also has a wait-list in the hundreds, said Lisa Rumsey, the interim executive director of the center.
The accredited facility has a 4 STAR status, the highest performance level under the state's Keystone STARS Quality initiative. Approximately 8 percent of children statewide have access to a program with this high of a quality, Benso said.
"The difference you see in children from the when they start here to when they leave is astronomical," Rumsey said. "And it's not just about cognitive development, it's about socialization and emotional development as well."
— Reach Jessica Schladebeck at jschladebeck@yorkdispatch.com.
Read or Share this story: https://www.yorkdispatch.com/story/news/education/2016/01/20/local-advocates-push-pre-k-funding/79075382/
Wolf announces new manufacturing plant in York County
Wolf signs bill regulating armed school security over calls for veto
Police: Spring Grove thieves stole from parked cars; property recovered
Eagle Fire Co. hosts benefit for firefighter battling medical issues
Latest York County food inspections: Three out of compliance
Severe thunderstorm warning issued for York County