Symbolic Computation of Conservation Laws of Nonlinear Partial Differential Equations Willy Hereman Department of Applied Mathematics and Statistics Colorado School of Mines Golden, Colorado whereman@mines.edu http://inside.mines.edu/∼whereman/ Group30: XXXth International Colloquium on Group Theoretical Methods in Physics Ghent University, Belgium Friday, July 18, 2014, 16:00 Acknowledgements Douglas Poole (Chadron State College, Nebraska) Ünal Göktaş (Turgut Özal University, Turkey) Mark Hickman (Univ. of Canterbury, New Zealand) Bernard Deconinck (Univ. of Washington, Seattle) Several undergraduate and graduate students Research supported in part by NSF under Grant No. CCF-0830783 This presentation was made in TeXpower Outline • Why compute conservation laws? • The Korteweg-de Vries and Zakharov-Kuznetsov equations • Demonstration of ConservationLawsMD.m • Algorithm for computing conservation laws • Tools from the calculus of variations • Application to the Zakharov-Kuznetsov equation • Conclusions and future work • Additional examples I Manakov-Santini system I Camassa-Holm equation in (2+1) dimensions I Khoklov-Zabolotskaya equation I Shallow water wave model for atmosphere I Kadomtsev-Petviashvili equation I Potential Kadomtsev-Petviashvili equation I Generalized Zakharov-Kuznetsov equation Notation – Computations on the Jet Space • Independent variables: t (time), x = (x, y, z) • Dependent variables u = (u(1) , u(2) , . . . , u(j) , . . . , u(N ) ) In examples: u = (u, v, θ, h, . . .) • ∂k u Partial derivatives ukx = ∂xk , ∂5u Examples: uxxxxx = u5x = ∂x5 uxx yyyy = u2x 4y = • ukx ly = ∂6u ∂x2 y 4 Differential functions Example: f = uvvx + x2 u3x vx + ux vxx ∂ k+l u , ∂xk y l etc. • Total derivatives: Dt , Dx , Dy , . . . Example: Let f = uvvx + x2 u3x vx + ux vxx Then ∂f ∂f ∂f Dx f = + ux + uxx ∂x ∂u ∂ux ∂f ∂f ∂f +vx + vxx + vxxx ∂v ∂vx ∂vxx = 2xu3x vx + ux (vvx ) + uxx (3x2 u2x vx + vxx ) +vx (uvx ) + vxx (uv + x2 u3x ) + vxxx (ux ) = 2xu3x vx + vux vx + 3x2 u2x vx uxx + uxx vxx +uvx2 + uvvxx + x2 u3x vxx + ux vxxx • Conservation Laws for Nonlinear PDEs System of evolution equations of order M ut = F(u(M ) (x)) • with u = (u, v, w, . . .) and x = (x, y, z). Conservation law in (1+1)-dimensions Dt ρ + D x J = ˙ 0 where the dot means evaluated on the PDE. Conserved density ρ and flux J. Z ∞ P = ρ dx = constant in time −∞ if J vanishes at ±∞. • Conservation law in (2+1)-dimensions D t ρ + ∇ · J = D t ρ + D x J1 + D y J2 = ˙ 0 Conserved density ρ and flux J = (J1 , J2 ). • Conservation law in (3+1)-dimensions Dt ρ + ∇ · J = Dt ρ + Dx J1 + Dy J2 + Dz J3 = ˙ 0 Conserved density ρ and flux J = (J1 , J2 , J3 ). Reasons for Computing Conservation Laws • Conservation of physical quantities (linear momentum, mass, energy, electric charge, ... ). • Testing of complete integrability and application of Inverse Scattering Transform. • Testing of numerical integrators. • Study of quantitative and qualitative properties of PDEs (Hamiltonian structure, recursion operators, . . . ). • Verify the closure of a model. Examples of PDEs with Conservation Laws Example 1: KdV Equation ∂u ∂3u ∂u + 6u + = 0 or ut + 6uux + uxxx = 0 3 ∂t ∂x ∂x shallow water waves, ion-acoustic waves in plasmas Diederik Korteweg Gustav de Vries • First six (of infinitely many) conservation laws: Dt u + Dx 3u2 + uxx = ˙ 0 Dt u2 + Dx 4u3 − ux 2 + 2uuxx = ˙ 0 1 Dt u3 − u2x 2 1 + Dx 29 u4 − 6uu2x + 3u2 uxx + u2xx − ux uxxx = ˙ 0 2 Dt u4 − 2uu2x + 15 u2xx + Dx 24 5 u 5 − 18uu2x + 4u3 uxx 2 1 2 2 +2u2x uxx + 16 uu −4uu u − u + u u = ˙ 0 x xxx xx 5 5 xxx 5 xx 4x 1 2 Dt u5 − 5 u2 u2x + uu2xx − 14 uxxx + Dx 5u6 − 40u3 u2x − . . . − 71 uxxx u5x = ˙ 0 5 4 6 3 2 Dt u − 10 u ux − ux + 3 u2 u2xx 6 10 3 1 + 21 uxx − 37 uu2xxx + 42 u24x 7 4 2 1 + Dx 36 u − 75u u − . . . + u u = ˙ 0 x 7 21 4x 6x • Third conservation law: Gerald Whitham, 1965 • Fourth and fifth: Norman Zabusky, 1965-66 Seventh (sixth thru tenth): Robert Miura, 1966 • Robert Miura Dilation Symmetry ut + 6uux + uxxx = 0 has dilation (scaling) symmetry (x, t, u) → ( λx , λt3 , λ2 u) λ is an arbitrary parameter. Notion of weight: W (x) = −1, thus, W (Dx ) = 1. W (t) = −3, hence, W (Dt ) = 3. W (u) = 2. Notion of rank (total weight of a monomial). Examples: Rank(u3 ) = Rank(3u2x ) = 6. Rank(u3 uxx ) = 10. Key Observation: Scaling Invariance Every term in a density has the same fixed rank. Every term in a flux has some other fixed rank. The conservation law Dt ρ + Dx J = ˙ 0 is uniform in rank. Hence, Rank(ρ) + Rank(Dt ) = Rank(J) + Rank(Dx ) • Conservation law explicitly dependent on t and x: 1 Dt tu2 − xu 3 1 1 +Dx 4tu3 − xu2 + ux − tu2x + 2tuuxx − xuxx = ˙ 0 3 3 • First five: IBM 7094 computer with FORMAC (1966) −→ storage space problem! IBM 7094 Computer • First eleven densities: Control Data Computer CDC-6600 computer (2.2 seconds) −→ large integers problem! Control Data CDC-6600 Example 2: The Zakharov-Kuznetsov Equation ut + αuux + β(uxx + uyy )x = 0 models ion-sound solitons in a low pressure uniform magnetized plasma. • Conservation laws: Dt u + Dx α2 u2 + βuxx + Dy βuxy = ˙ 0 3 2 2 Dt u2 + Dx 2α u − β(u − u x y ) + 2βu(uxx + uyy ) 3 + Dy − 2βux uy = ˙ 0 • More conservation laws (ZK equation): 3 3β 2 (u x α + u2y ) + Dx 3u2 ( α4 u2 + βuxx ) − 6βu(u2x + u2y ) 2 2 + 3βα (u2xx − u2yy ) − 6βα (ux (uxxx + uxyy ) + uy (uxxy + uyyy )) 2 + Dy 3βu2 uxy + 6βα uxy (uxx + uyy ) = 0 Dt u − 3 2 2 Dt tu2 − α2 xu + Dx t( 2α u − β(u − u x y ) + 2βu(uxx + uyy )) 3 2β 1 u ) + u + D − 2β(tu u + xuxy ) = ˙ 0 − x(u2 + 2β y x y α xx α x α Methods for Computing Conservation Laws • Use the Lax pair L and A, satisfying [L, A] = 0. If L = Dx + U, A = Dt + V then Vx − Ut + [U, V ] = 0. L̂ = T LT −1 gives the densities, Â = T AT −1 gives the fluxes. • Use Noether’s theorem (Lagrangian formulation) to obtain conservation laws from symmetries (Ovsiannikov, Olver, etc.). • Multiplier methods (Anderson, Bluman, Anco, Cheviakov, Wolf, etc.) require solving ODEs (or PDEs). Proposed Algorithmic Method • Density is linear combination of scaling invariant terms (in the jet space) with undetermined coefficients. • Compute Dt ρ with total derivative operator. • Use variational derivative (Euler operator) to express exactness. • Solve a (parametrized) linear system to find the undetermined coefficients. • Use the homotopy operator to compute the flux (invert Dx or Div). • Work with linearly independent pieces in finite dimensional spaces. • Use linear algebra, calculus, and variational calculus (algorithmic). • Implement the algorithm in Mathematica. Software Demonstration: ConservationLawsMD.m Software packages in Mathematica Codes are available via the Internet: http://inside.mines.edu/∼whereman/ Tools from the Calculus of Variations • Definition: A differential function f is a exact iff f = Div F. Special case (1D): f = Dx F. • Question: How can one test that f = Div F ? • Theorem (exactness test): f = Div F iff Lu(j) (x) f ≡ 0, j = 1, 2, . . . , N. N is the number of dependent variables. The Euler operator annihilates divergences • Euler operator in 1D (variable u(x)): M X k ∂ Lu(x) = (−Dx ) ∂ukx k=0 ∂ ∂ ∂ 2 ∂ 3 = − Dx + Dx − Dx + ··· ∂u ∂ux ∂uxx ∂uxxx • Euler operator in 2D (variable u(x, y)): Lu(x,y) = My Mx X X k=0 ∂ (−Dx ) (−Dy ) ∂u kx `y `=0 k ` ∂ ∂ ∂ = − Dx − Dy ∂u ∂ux ∂uy ∂ ∂ 2 ∂ 2 ∂ 3 + Dx +Dx Dy +Dy −Dx ··· ∂uxx ∂uxy ∂uyy ∂uxxx • Question: How can one compute F = Div−1 f ? • Theorem (integration by parts): • In 1D: If f is exact then F = D−1 x f = Z f dx = Hu(x) f • In 2D: If f is a divergence then (x) (y) F = Div−1 f = (Hu(x,y) f, Hu(x,y) f ) The homotopy operator inverts total derivatives and divergences! • Homotopy Operator in 1D (variable x): Z Hu(x) f = 0 N 1X dλ (Iu(j) f )[λu] λ j=1 with integrand (j) Mx Iu(j) f = X k−1 X k=1 (j) uix k−(i+1) (−Dx ) i=0 ∂f (j) ∂ukx (Iu(j) f )[λu] means that in Iu(j) f one replaces u → λu, ux → λux , etc. General: u → λ(u − u0 ) + u0 = λu + (1 − λ)u0 ux → λ(ux − ux 0 ) + ux 0 etc. • Homotopy Operator in 2D (variables x and y): (x) Hu(x,y) f (y) Hu(x,y) f Z = N 1X 0 j=1 Z = (x) (Iu(j) f )[λu] N 1X 0 j=1 (y) (Iu(j) f )[λu] dλ λ dλ λ where for dependent variable u(x, y) My i+j k+`−i−j−1 M k−1 ` x XX XX k−i−1 (x) Iu f = uix jy i k+` k=1 `=0 (−Dx ) i=0 j=0 k−i−1 −Dy k `−j ∂f ∂ukx `y Application: Zakharov-Kuznetsov Equation ut + αuux + β(uxx + uyy )x = 0 • Step 1: Compute the dilation invariance ZK equation is invariant under scaling symmetry t x y 2 (t, x, y, u) → ( 3 , , , λ u)= (t̃, x̃, ỹ, ũ) λ λ λ λ is an arbitrary parameter. • Hence, the weights of the variables are W (u) = 2, W (Dt ) = 3, W (Dx ) = 1, W (Dy ) = 1. • A conservation law is invariant under the scaling symmetry of the PDE. W (u) = 2, W (Dt ) = 3, W (Dx ) = 1, W (Dy ) = 1. For example, 3β 3 Dt u − α (u2x +u2y ) + Dx 3u2 ( α4 u2 +βuxx ) −6βu(u2x + u2y ) 2 2 + 3βα (u2xx −u2xy ) − 6βα (ux (uxxx +uxyy ) + uy (uxxy +uyyy )) 2 + Dy 3βu2 uxy + 6βα uxy (uxx + uyy ) = ˙ 0 Rank (ρ) = 6, Rank (J) = 8. Rank (conservation law) = 9. Compute the density of selected rank, say, 6. • Step 2: Construct the candidate density For example, construct a density of rank 6. Make a list of all terms with rank 6: {u3 , u2x , uuxx , u2y , uuyy , ux uy , uuxy , u4x , u3xy , u2x2y , ux3y , u4y } Remove divergences and divergence-equivalent terms. Candidate density of rank 6: ρ = c1 u3 + c2 u2x + c3 u2y + c4 ux uy • Step 3: Compute the undetermined coefficients Compute ∂ρ Dt ρ = + ρ0 (u)[ut ] ∂t My Mx X X ∂ρ ∂ρ = + Dkx D`y ut ∂t ∂ukx `y k=0 `=0 = 3c1 u2 I + 2c2 ux Dx + 2c3 uy Dy + c4 (uy Dx + ux Dy ) ut Substitute ut = − αuux + β(uxx + uyy )x . E = −Dt ρ = 3c1 u2 (αuux + β(uxx + uxy )x ) + 2c2 ux (αuux + β(uxx + uyy )x )x + 2c3 uy (αuux + β(uxx + uyy )x )y + c4 (uy (αuux + β(uxx + uyy )x )x + ux (αuux + β(uxx + uyy )x )y ) Apply the Euler operator (variational derivative) My Mx X X k ` ∂E (−Dx ) (−Dy ) Lu(x,y) E = ∂ukx `y k=0 `=0 = −2 (3c1 β + c3 α)ux uyy + 2(3c1 β + c3 α)uy uxy +2c4 αux uxy +c4 αuy uxx +3(3c1 β +c2 α)ux uxx ≡0 Solve a parameterized linear system for the ci : 3c1 β + c3 α = 0, c4 α = 0, 3c1 β + c2 α = 0 Solution: 3β , c = − , c4 = 0 c1 = 1, c2 = − 3β 3 α α Substitute the solution into the candidate density ρ = c1 u3 + c2 u2x + c3 u2y + c4 ux uy Final density of rank 6: 3β 2 ρ=u − (ux + u2y ) α 3 • Step 4: Compute the flux Use the homotopy operator to invert Div: (x) (y) −1 J = Div E = Hu(x,y) E, Hu(x,y) E Z 1 where dλ (x) (x) Hu(x,y) E = (Iu E)[λu] λ 0 with Iu(x) E = My k−1 ` Mx X XX X k=1 `=0 i+j k+`−i−j−1 k−i−1 uix jy i k+` i=0 j=0 k (−Dx )k−i−1 Similar formulas for `−j ∂E −Dy ∂ukx `y (y) Hu(x,y) E and (y) Iu E. Let A = αuux + β(uxxx + uxyy ) so that E = 3u2 A − 6β u A α x x − 6β u A α y y Then, (x) (y) J = Hu(x,y) E, Hu(x,y) E 2 4 2 2 + u u + βu (3u + 2u ) − 2βu(3u = 3α xx yy x y) 4 + − + − 3β 2 β2 7 u(u + u ) − u ( u + 6uxxx ) 2x2y 4y 4α α x 2 xyy β2 β2 2 3 5 2 3 2 u (4u + u ) + (3u + u + u ) y xxy yyy xx α 2 α 2 xy 4 yy 5β 2 2 u u , βu uxy − 4βuux uy xx yy 4α 3β 2 β2 u(ux3y + u3xy ) − 4α ux (13uxxy + 3uyyy ) 4α − 4α uy (uxxx + 3uxyy ) + 4α uxy (uxx + uyy ) 5β 2 9β 2 However, Div−1 E is not unique. Indeed, J = J̃ + K, where K = (Dy θ, −Dx θ) is a curl term. For example, 2 β 3u(uxxy +uyyy )+10ux uxy +5uy (3uyy +uxx ) θ = 2βu2 uy + 4α Shorter flux: J̃ = J − K = 3u2 ( α4 u2 + βuxx ) − 6βu(u2x + u2y ) + − 6β 2 (ux (uxxx α 3βu2 uxy 3β 2 α u2xx − u2yy + uxyy ) + uy (uxxy + uyyy )), 2 + 6βα uxy (uxx + uyy ) Additional Examples • Manakov-Santini system utx + uyy + (uux )x + vx uxy − uxx vy = 0 vtx + vyy + uvxx + vx vxy − vy vxx = 0 • Conservation laws for Manakov-Santini system: Dt f ux vx + Dx f (uux vx − ux vx vy − uy vy ) − f 0 y(ut + uux − ux vy ) + Dy f (ux vy + uy vx + ux vx2 ) + f 0 (u − yuy − yux vx ) = 0 where f = f (t) is arbitrary. Conservation laws – continued: Dt f (2u + vx2 − yux vx ) + Dx f (u2 + uvx2 + uy v − vy2 − vx2 vy − y(uux vx − ux vx vy − uy vy )) − f 0 y(vt + uvx − vx vy ) + (f 0 − 2f x)y 2 (ut + uux − ux vy ) + Dy f (vx3 + 2vx vy − ux v − y(ux vx2 + ux vy + uy vx )) +f 0 (v − y(2u + vy + vx2 )) + (f 0 y 2 − 2f x)(ux vx + uy ) = 0 where f = f (t) is arbitrary. There are three additional conservation laws. • (2+1)-dimensional Camassa-Holm equation (αut + κux − utxx + 3βuux − 2ux uxx − uuxxx )x + uyy = 0 Interchange t with y (αuy + κux − uxxy + 3βuux − 2ux uxx − uuxxx )x + utt = 0 Set v = ut to get ut = v vt = −αuxy − κuxx + u3xy − 3βu2x − 3βuuxx + 2u2xx + 3ux uxxx + uu4x • Conservation laws for the Camassa-Holm equation Dt f u + Dx 3β 2 1 f ( u α 2 + κu − 21 u2x − uuxx − utx ) + ( 21 f 0 y 2 − α1 f x)(αut + κux + 3βuux − 2ux uxx − uuxxx − utxx ) + Dy ( 12 f 0 y 2 − α1 f x)uy − f 0 yu = 0 2 1 2 u + κu − u − uuxx − utx ) Dt f yu + Dx α1 f y( 3β 2 2 x + y( 61 f 0 y 2 − α1 f x)(αut + κux + 3βuux − 2ux uxx − uuxxx − utxx ) + Dy y( 61 f 0 y 2 − α1 f x)uy + ( α1 f x − 12 f 0 y 2 )u = 0 where f = f (t) is an arbitrary function. • Khoklov-Zabolotskaya equation describes e.g., sound waves in nonlinear media (ut − uux )x − uyy − uzz = 0 Conservation law: Dt f u − Dx 12 f u2 + (f x + g)(ut − uux ) + Dy (f x + g)uy − (fy x + gy )u + Dz (f x + g)uz − (fz x + gz )u = 0 under the constraints ∆f = 0 and ∆g = ft where f = f (t, y, z) and g = g(t, y, z). • Shallow water wave model (atmosphere) ut + (u·∇)u + 2 Ω × u + ∇(θh) − 12 h∇θ = 0 θt + u·(∇θ) = 0 ht + ∇·(uh) = 0 where u(x, y, t), θ(x, y, t) and h(x, y, t). • In components: ut + uux + vuy − 2 Ωv + 12 hθx + θhx = 0 vt + uvx + vvy + 2 Ωu + 21 hθy + θhy = 0 θt + uθx + vθy = 0 ht + hux + uhx + hvy + vhy = 0 • First few conservation laws of SWW model: u (1) ρ(1) = h J =h v u (2) ρ(2) = h θ J = hθ v u 2 (3) 2 ρ(3) = h θ J = hθ v 2 + v 2 + 2hθ) u (u ρ(4) = h (u2 + v 2 + hθ) J(4) = h v (v 2 + u2 + 2hθ) ρ(5) = θ (2Ω + vx − uy ) 4Ωu − 2uuy + 2uvx − hθy 1 (5) J =2θ 4Ωv + 2vvx − 2vuy + hθx • More general conservation laws for SWW model: Dt f (θ)h + Dx f (θ)hu + Dy f (θ)hv = 0 Dt g(θ)(2Ω + vx − ux ) + Dx 21 g(θ)(4Ωu − 2uuy + 2uvx − hθy ) + Dy 12 g(θ)(4Ωv − 2uy v + 2vvx + hθx ) = 0 for any functions f (θ) and g(θ). • Kadomtsev-Petviashvili (KP) equation (ut + αuux + uxxx )x + σ 2 uyy = 0 parameter α ∈ IR and σ 2 = ±1. Equation be written as a conservation law Dt (ux ) + Dx (αuux + uxxx ) + Dy (σ 2 uy ) = 0. Exchange y and t and set ut = v ut = v vt 1 = − 2 (uxy + αu2x + αuuxx + uxxxx ) σ • Examples of conservation laws for KP equation (explicitly dependent on t, x, and y) Dt xux +Dx 3u2 −uxx −6xuux +xuxxx +Dy αxuy = 0 Dt yux +Dx y(αuux + uxxx ) +Dy σ 2 (yuy − u) = 0 √ √ 2y2 2y2 √ σ σ Dt tu + Dx α2 tu2 + tuxx + √ ut + √ uxxx 4 t 4 t √ √ √ ασ 2 y 2 + √ uux − x tut − αx tuux − x tuxxx 4 t √ y 2 uy yu +Dy x tuy + √ − √ = 0 4 t 2 t • More general conservation laws for KP equation: Dt f u + Dx f ( α2 u2 + uxx ) 2 +( σ2 f 0 y 2 − f x)(ut + αuux + u3x ) +Dy ( 21 f 0 y 2 − σ 2 f x)uy − f 0 yu = 0 Dt f yu + Dx f y( α2 u2 + uxx ) +y( σ2 +Dy 6 f 0 y 2 − f x)(ut + αuux + u3x ) y( 61 f 0 y 2 − σ 2 f x)uy +(σ 2 f x − 12 f 0 y 2 )u = 0 where f (t) is arbitrary function. • Potential KP equation Replace u by ux and integrate with respect to x. uxt + αux uxx + uxxxx + σ 2 uyy = 0 • Examples of conservation laws (not explicitly dependent on x, y, t): Dt ux + Dx α2 u2x + uxxx + Dy σ 2 uy = 0 3 2 2 Dt u2x + Dx 2α u − u + 2u u − σ uyy x xxx xx 3 x +Dy 2σ 2 ux uy = 0 Conservation laws for pKP equation – continued: Dt ux uy + Dx αu2x uy + ut uy + 2uxxx uy − 2uxx uxy +Dy σ 2 u2y − 31 u3x − ut ux + u2xx = 0 Dt 2αuux uxx + 3uu4x − 3σ 2 u2y + Dx 2αut u2x + 3u2t − 2αuux utx − 3utx uxx + 3ut uxxx + 3ux ut xx − 3uut xxx +Dy 6σ 2 ut uy = 0 Various generalizations exist. • Generalized Zakharov-Kuznetsov equation ut + αun ux + β(uxx + uyy )x = 0 where n is rational, n 6= 0. Conservation laws: α Dt u + Dx n+1 un+1 + βuxx + Dy βuxy = 0 2α n+2 Dt u2 + Dx n+2 u − β(u2x − u2y ) + 2βu(uxx + uyy ) + Dy − 2βux uy = 0 • Third conservation law for gZK equation: (n+1)(n+2)β n+2 2 2 − Dt u (u + u x y) 2α (n+2)α 2(n+1) + (n + 2)βun+1 uxx + Dx 2(n+1) u (u2x + u2y ) (n+1)(n+2)β 2 2 (u xx 2α − u2yy ) 2 − (n+1)(n+2)β (ux (uxxx + uxyy ) + uy (uxxy + uyyy )) α 2 + Dy (n + 2)βun+1 uxy + (n+1)(n+2)β uxy (uxx + uyy ) = 0. α − (n + 1)(n + 2)βu n + Conclusions and Future Work • • The power of Euler and homotopy operators: I Testing exactness I −1 Integration by parts: D−1 and Div x Integration of non-exact expressions Example: f = ux v + uvx + u2 uxx R R 2 f dx = uv + u uxx dx • Use other homotopy formulas (moving terms amongst the components of the flux; prevent curl terms) • Broader class of PDEs (beyond evolution type) Example: short pulse equation (nonlinear optics) uxt = u + (u3 )xx = u + 6uu2x + 3u2 uxx with non-polynomial conservation law p p Dt 1 + 6u2x − Dx 3u2 1 + 6u2x = 0 • Continue the implementation in Mathematica • Software: http://inside.mines.edu/∼whereman Thank You Publications 1. D. Poole and W. Hereman, Symbolic computation of conservation laws for nonlinear partial differential equations in multiple space dimensions, Journal of Symbolic Computation (2011), 26 pages, in press. 2. W. Hereman, P. J. Adams, H. L. Eklund, M. S. Hickman, and B. M. Herbst, Direct Methods and Symbolic Software for Conservation Laws of Nonlinear Equations, In: Advances of Nonlinear Waves and Symbolic Computation, Ed.: Z. Yan, Nova Science Publishers, New York (2009), Chapter 2, pp. 19-79. 3. W. Hereman, M. Colagrosso, R. Sayers, A. Ringler, B. Deconinck, M. Nivala, and M. S. Hickman, Continuous and Discrete Homotopy Operators and the Computation of Conservation Laws. In: Differential Equations with Symbolic Computation, Eds.: D. Wang and Z. Zheng, Birkhäuser Verlag, Basel (2005), Chapter 15, pp. 249-285. 4. W. Hereman, B. Deconinck, and L. D. Poole, Continuous and discrete homotopy operators: A theoretical approach made concrete, Math. Comput. Simul. 74(4-5), 352-360 (2007). 5. W. Hereman, Symbolic computation of conservation laws of nonlinear partial differential equations in multi-dimensions, Int. J. Quan. Chem. 106(1), 278-299 (2006).