(* Content-type: application/mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Mathematica 7.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       145,          7]
NotebookDataLength[     90933,       2944]
NotebookOptionsPosition[     83556,       2705]
NotebookOutlinePosition[     84334,       2732]
CellTagsIndexPosition[     84291,       2729]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[TextData[{
 StyleBox["In this example we use the package IntroToSymmetry.m to work out \
the point group of the boundary layer stream function equation, \n\n",
  FontSize->14,
  FontWeight->"Plain"],
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 StyleBox["y",
  FontSize->14,
  FontWeight->"Bold"],
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 StyleBox["xy-",
  FontSize->14,
  FontWeight->"Bold"],
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 StyleBox["x",
  FontSize->14,
  FontWeight->"Bold"],
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 StyleBox["yy-UeUex-nu*",
  FontSize->14,
  FontWeight->"Bold"],
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 StyleBox["yyy=0.",
  FontSize->14,
  FontWeight->"Bold"]
}], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["\<\
This next command turns off a bunch of spurious spelling error messages.\
\>", "Text"],

Cell[BoxData[
 RowBox[{"Off", "[", 
  RowBox[{"General", "::", "spell"}], "]"}]], "Input"],

Cell["Clear all symbols in the current context.", "Text",
 CellChangeTimes->{{3.4715644485587473`*^9, 3.47156448605101*^9}}],

Cell[BoxData[
 RowBox[{"ClearAll", "[", 
  RowBox[{"Evaluate", "[", 
   RowBox[{
    RowBox[{"Context", "[", "]"}], "<>", "\"\<*\>\""}], "]"}], "]"}]], "Input"],

Cell[TextData[{
 StyleBox["First read in the package which is located in User Home \
Folder/Library/",
  FontWeight->"Plain"],
 StyleBox["Mathematica",
  FontWeight->"Plain",
  FontSlant->"Italic"],
 StyleBox["/Applications/SymmetryAnalysis.",
  FontWeight->"Plain"]
}], "Text",
 CellChangeTimes->{{3.472046215957556*^9, 3.472046255573135*^9}, {
  3.472046289795615*^9, 3.472046308115048*^9}, {3.4720466725423717`*^9, 
  3.472046673357225*^9}},
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<SymmetryAnalysis`IntroToSymmetry`\>\"", 
  "]"}]], "Input"],

Cell["\<\
Enter the input equation as a string. Don't include the == 0 at the end. \
Notice we are treating Ue as a dependent variable, in effect making the \
system underdetermined.\
\>", "Text"],

Cell[TextData[{
 "inputequation=\n\"D[",
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 "[x,y],y,y,y]+(1/nu)*Ue[x,y]*D[Ue[x,y],x]+(1/nu)*D[",
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 "[x,y],x]*D[",
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 "[x,y],y,y]-\n(1/nu)*D[",
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 "[x,y],y]*D[",
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 "[x,y],x,y]\";"
}], "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[TextData[{
 StyleBox["The function ",
  FontVariations->{"CompatibilityType"->0}],
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontVariations->{"CompatibilityType"->0}],
 StyleBox["[x,y] is a solution of the equation and this constraint must be \
applied in the form of a rule to the invariance condition. Be careful to \
check signs. Note the additional rule that makes Ue independent of y.",
  FontVariations->{"CompatibilityType"->0}]
}], "Text"],

Cell[TextData[{
 "rulesarray=\n{\"D[",
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 "[x,y],y,y,y]->-(1/nu)*Ue[x,y]*D[Ue[x,y],x]-(1/nu)*D[",
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 "[x,y],x]*D[",
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 "[x,y],y,y]+\n(1/nu)*D[",
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 "[x,y],y]*D[",
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontSize->14,
  FontWeight->"Bold"],
 "[x,y],x,y]\",\n\"D[Ue[x,y],y]->0\"};"
}], "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[TextData[StyleBox["Enter the list of independent variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"independentvariables", "=", 
   RowBox[{"{", 
    RowBox[{"\"\<x\>\"", ",", "\"\<y\>\""}], "}"}]}], ";"}]], "Input"],

Cell[TextData[StyleBox["Enter the list of dependent variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"dependentvariables", "=", 
   RowBox[{"{", 
    RowBox[{
    "\"\<\!\(\*\n\
StyleBox[\\\"\[CapitalPsi]\\\",\\nFontFamily->\\\"Symbol\\\",\\nFontSize->14,\
\\nFontWeight->\\\"Bold\\\"]\)\>\"", ",", "\"\<Ue\>\""}], "}"}]}], 
  ";"}]], "Input"],

Cell[TextData[StyleBox["Enter the list of function and constant names that \
must be preserved when the equations are expressed in terms of generic \
variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"frozennames", "=", 
   RowBox[{"{", "\"\<nu\>\"", "}"}]}], ";"}]], "Input"],

Cell[TextData[StyleBox["Enter the maximum derivative order of the input \
equation(s).",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"p", "=", "3"}], ";"}]], "Input"],

Cell[TextData[StyleBox["The maximum derivative order that the infinitesimals \
are assumed to depend on is specified by the input parameter r. This \
parameter is only nonzero when the user is looking for Lie contact groups or \
Lie-Backlund groups. For the usual case where one is searching for point \
groups set r=0.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"r", "=", "0"}], ";"}]], "Input"],

Cell[TextData[StyleBox["When searching for Lie-Backlund groups (r=1 or \
greater) one can, without loss of generality, leave the independent variables \
untransformed. The corresponding infinitesimals (the xse's) are set to zero \
by setting xseon=0. If one is searching for point groups then set xseon=1. \
The choice xseon=1 is also an option when looking for Lie-Backlund groups and \
this can be useful when looking for contact symmetries.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"xseon", "=", "1"}], ";"}]], "Input"],

Cell[TextData[StyleBox["When searching for Lie-Backlund groups it is \
necessary to differentiate the input equation with respect to each of the \
independent variables producing derivatives of order p+r. These higher order \
differential consequences are appended to the set of rules applied to the \
invariance condition. This process is carried out automatically when \
internalrules=1. For point groups the equation or equation system is the only \
rule or set of rules needed and one sets internalrules=0.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"internalrules", "=", "0"}], ";"}]], "Input"],

Cell[TextData[{
 StyleBox["Now work out the determining equations of the Lie point group that \
leaves the equation invariant. The output is available as a table of strings \
called zdeterminingequations. The Mathematica function Timing outputs the \
time required for the ",
  FontWeight->"Plain",
  FontVariations->{"CompatibilityType"->0}],
 "FindDeterminingEquations",
 StyleBox[" function to execute.",
  FontWeight->"Plain",
  FontVariations->{"CompatibilityType"->0}]
}], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Timing", "[", 
  RowBox[{"FindDeterminingEquations", "[", "\[IndentingNewLine]", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "frozennames", ",",
     "p", ",", "r", ",", "xseon", ",", "\[IndentingNewLine]", "inputequation",
     ",", "rulesarray", ",", "internalrules"}], "]"}], "]"}]], "Input"],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(29681776\\), the time used = \
\\!\\(7.021892000000001`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 29681776, 7.021892000000001],
  Editable->False]], "Print",
 CellChangeTimes->{3.469477493356906*^9, 3.471568265548821*^9, 
  3.471568342636932*^9, 3.483749114336301*^9, 3.4837492147723503`*^9}],

Cell[BoxData["\<\"The function FindDeterminingEquations is nearly complete. \
The invariance condition has been created with all rules applied. The final \
step in the generation of the determining equations is to sum together terms \
in the table of invariance condition terms (called infinitesimaltable) that \
are multiplied by the same combination of products of free y derivatives. The \
result is the table infinitesimaltablesums corresponding to matching \
y-derivative expressions. If the invariance condition is long as it often is \
this process could take a long time since it requires sorting through the \
table infinitesimaltable once for each possible combination of y derivative \
products. This is the rate limiting step in the function \
FindDeterminingEquations.Virtually all other steps are quite fast including \
the generation of the extended derivatives of the infinitesimals.\"\>"], \
"Print",
 CellChangeTimes->{3.469477493356906*^9, 3.471568265548821*^9, 
  3.471568342636932*^9, 3.483749114336301*^9, 3.483749215180669*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(48\\), the \
byte count of zdeterminingequations = \\!\\(6384\\), the memory in use = \
\\!\\(29758088\\), the time used = \\!\\(7.4320509999999995`\\)\"\>",
  StringForm[
  "The determining equations have been expressed in terms of z-variables, the \
length of zdeterminingequations = ``, the byte count of zdeterminingequations \
= ``, the memory in use = ``, the time used = ``", 48, 6384, 29758088, 
   7.4320509999999995`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469477493356906*^9, 3.471568265548821*^9, 
  3.471568342636932*^9, 3.483749114336301*^9, 3.483749215233314*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(29759576\\), the time used = \\!\\(7.432379000000001`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 29759576, 7.432379000000001],
  Editable->False]], "Print",
 CellChangeTimes->{3.469477493356906*^9, 3.471568265548821*^9, 
  3.471568342636932*^9, 3.483749114336301*^9, 3.483749215235927*^9}],

Cell[BoxData["\<\"FindDeterminingEquations has finished executing. You can \
look at the output in the table zdeterminingequations. Each entry in this \
table is a determining equation in string format expressed in terms of \
z-variables. Rules for converting between z-variables and conventional \
variables are contained in the table ztableofrules. To view the determining \
equations in terms of conventional variables use the command \
ToExpression[zdeterminingequations]/.ztableofrules. There are two other items \
the user may wish to look at; the equation converted to generic \
(x1,x2,...,y1,y2,...) variables is designated equationgenericvariables and \
the various derivatives of the equation that appear in the invariance \
condition can be viewed in the table invarconditiontable. Rules for \
converting between z-variables and generic variables are contained in the \
table ztableofrulesxy.\"\>"], "Print",
 CellChangeTimes->{3.469477493356906*^9, 3.471568265548821*^9, 
  3.471568342636932*^9, 3.483749114336301*^9, 3.483749215238304*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.41129000000000016`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469477493832041*^9, 3.471568265991417*^9, 
  3.4715683431122913`*^9, 3.483749114796636*^9, 3.4837492152414303`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData["equationgenericvariables"], "Input"],

Cell[BoxData["\<\"D[y1[x1,x2],x2,x2,x2]+(1/nu)*y2[x1,x2]*D[y2[x1,x2],x1]+(1/\
nu)*D[y1[x1,x2],x1]*D[y1[x1,x2],x2,x2]-\\n(1/nu)*D[y1[x1,x2],x2]*D[y1[x1,x2],\
x1,x2]\"\>"], "Output",
 CellChangeTimes->{3.46947749387539*^9, 3.471568266042905*^9, 
  3.4715683431943817`*^9, 3.4837491148396807`*^9, 3.483749215283168*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["invarconditiontable", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0", ",", "0", ",", 
   FractionBox[
    RowBox[{
     SuperscriptBox["y2", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "nu"], ",", 
   FractionBox[
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "2"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "nu"], ",", 
   RowBox[{"-", 
    FractionBox[
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], "nu"]}], ",", "0", ",", 
   RowBox[{"-", 
    FractionBox[
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], "nu"]}], ",", 
   FractionBox[
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "nu"], ",", "0", ",", "0", ",", "0", 
   ",", "1", ",", 
   FractionBox[
    RowBox[{"y2", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "nu"], ",", "0", ",", "0", ",", "0", 
   ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]], "Output",
 CellChangeTimes->{3.469477494000392*^9, 3.47156826609013*^9, 
  3.471568343255251*^9, 3.483749114894582*^9, 3.483749215329544*^9}]
}, Open  ]],

Cell["zdeterminingequations;", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell["Length[zdeterminingequations]", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData["48"], "Output",
 CellChangeTimes->{3.469477494083993*^9, 3.471568266165098*^9, 
  3.471568343354903*^9, 3.4837491149664583`*^9, 3.4837492154234867`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["ztableofrules", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"z1", "\[Rule]", "x"}], ",", 
   RowBox[{"z2", "\[Rule]", "y"}], ",", 
   RowBox[{"z3", "\[Rule]", 
    RowBox[{"\[CapitalPsi]", "[", 
     RowBox[{"x", ",", "y"}], "]"}]}], ",", 
   RowBox[{"z4", "\[Rule]", 
    RowBox[{"Ue", "[", 
     RowBox[{"x", ",", "y"}], "]"}]}]}], "}"}]], "Output",
 CellChangeTimes->{3.469477494142417*^9, 3.471568266227298*^9, 
  3.4715683434887867`*^9, 3.4837491150281363`*^9, 3.483749215484314*^9}]
}, Open  ]],

Cell["\<\
Now solve the determining equations in terms of multivariable polynomials. \
The Mathematica function Solve uses Gaussian elimination to solve a large \
number of linear equations for the polynomial coefficients. The time roughly \
follows,

time/timeref=((number of equations)/(number of equationsref))^n

where the exponent is between 2.4 and 2.7. The Mathematica function Timing \
outputs the time required for the SolveDeterminingEquations function to \
execute.\
\>", "Text"],

Cell[CellGroupData[{

Cell["\<\
Timing[SolveDeterminingEquations[independentvariables,dependentvariables,r,\
xseon,
zdeterminingequations,order=4]]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 InterpretationBox["\<\"The variable powertablelength is the number of terms \
required for each multivariate polynomial used for the infinitesimals. This \
number is determined by the choice of polynomial order and the number of \
zvariables. The time needed to solve the determining equations increases as \
powertable increases. powertablelength = \\!\\(70\\)\"\>",
  StringForm[
  "The variable powertablelength is the number of terms required for each \
multivariate polynomial used for the infinitesimals. This number is \
determined by the choice of polynomial order and the number of zvariables. \
The time needed to solve the determining equations increases as powertable \
increases. powertablelength = ``", 70],
  Editable->False]], "Print",
 CellChangeTimes->{3.469477494390729*^9, 3.471568266350255*^9, 
  3.471568343555984*^9, 3.48374911515422*^9, 3.4837492156081333`*^9}],

Cell[BoxData["\<\"The polynomial expansions have been substituted into the \
determining equations. It is now time to collect the coefficients of various \
powers of zvariables into a table called table of coefficientsall. This step \
uses the function CoefficientList and is a fairly time consuming procedure.\"\
\>"], "Print",
 CellChangeTimes->{3.469477494390729*^9, 3.471568266350255*^9, 
  3.471568343555984*^9, 3.48374911515422*^9, 3.483749215762752*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(30353072\\), The time = \\!\
\\(7.608058`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 30353072, 7.608058],
  Editable->False]], "Print",
 CellChangeTimes->{3.469477494390729*^9, 3.471568266350255*^9, 
  3.471568343555984*^9, 3.48374911515422*^9, 3.4837492157681713`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of unknown polynomial coefficients = \
\\!\\(280\\)\"\>",
  StringForm["The number of unknown polynomial coefficients = ``", 280],
  Editable->False]], "Print",
 CellChangeTimes->{3.469477494390729*^9, 3.471568266350255*^9, 
  3.471568343555984*^9, 3.48374911515422*^9, 3.483749215817017*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of equations for the polynomial \
coefficients = \\!\\(1094\\)\"\>",
  StringForm[
  "The number of equations for the polynomial coefficients = ``", 1094],
  Editable->False]], "Print",
 CellChangeTimes->{3.469477494390729*^9, 3.471568266350255*^9, 
  3.471568343555984*^9, 3.48374911515422*^9, 3.483749215820806*^9}],

Cell[BoxData["\<\"Now it we are ready to use the function Solve to find the \
nonzero polynomial coefficients corresponding to the symmetries of the input \
equation(s). This can take a while.\"\>"], "Print",
 CellChangeTimes->{3.469477494390729*^9, 3.471568266350255*^9, 
  3.471568343555984*^9, 3.48374911515422*^9, 3.483749215823295*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(30635040\\), The time = \\!\
\\(7.647337`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 30635040, 7.647337],
  Editable->False]], "Print",
 CellChangeTimes->{3.469477494390729*^9, 3.471568266350255*^9, 
  3.471568343555984*^9, 3.48374911515422*^9, 3.483749215825697*^9}],

Cell[BoxData["\<\"Solve has finished.\"\>"], "Print",
 CellChangeTimes->{3.469477494390729*^9, 3.471568266350255*^9, 
  3.471568343555984*^9, 3.48374911515422*^9, 3.483749215938175*^9}],

Cell[BoxData["\<\"The function SolveDeterminingEquations is finished \
executing.\"\>"], "Print",
 CellChangeTimes->{3.469477494390729*^9, 3.471568266350255*^9, 
  3.471568343555984*^9, 3.48374911515422*^9, 3.4837492159853067`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(30763136\\), The time = \\!\
\\(7.783299`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 30763136, 7.783299],
  Editable->False]], "Print",
 CellChangeTimes->{3.469477494390729*^9, 3.471568266350255*^9, 
  3.471568343555984*^9, 3.48374911515422*^9, 3.483749215987618*^9}],

Cell[BoxData["\<\"You can look at the output in the tables xsefunctions and \
etafunctions. Each entry in these tables is an infinitesimal function in \
string format expressed in terms of z-variables and the group parameters. The \
output can also be viewed with the group parameters stripped away by looking \
at the table infinitesimalgroups. In either case you may wish to convert the \
z-variables to conventional variables using the table ztableofrules. \
\\n\\nKeep in mind that this function only finds solutions of the determining \
equations that are of polynomial form. The determining equations may admit \
solutions that involve transcendental functions and/or integrals. Note that \
arbitrary functions may appear in the infinitesimals and that these can be \
detected by running the package function SolveDeterminingEquations for \
several polynomial orders. If terms of ever increasing order appear, then an \
arbitrary function is indicated.\"\>"], "Print",
 CellChangeTimes->{3.469477494390729*^9, 3.471568266350255*^9, 
  3.471568343555984*^9, 3.48374911515422*^9, 3.483749215989867*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.34421199999999974`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.4694774945926867`*^9, 3.471568266748255*^9, 
  3.471568343899046*^9, 3.483749115531702*^9, 3.483749215993079*^9}]
}, Open  ]],

Cell["\<\
Here are the infinitesimal transformation functions for the independent \
variables.\
\>", "Text"],

Cell[CellGroupData[{

Cell["xsefunctions", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"xse1[z1_, z2_, z3_, z4_]=a10 + (a25 + b115)*z1\"\>", 
   ",", "\<\"xse2[z1_, z2_, z3_, z4_]=a20 + a21*z1 + a22*z1^2 + a23*z1^3 + \
a24*z1^4 + a25*z2\"\>"}], "}"}]], "Output",
 CellChangeTimes->{3.469477494669531*^9, 3.4715682667902*^9, 
  3.471568343942251*^9, 3.483749115574032*^9, 3.48374921603554*^9}]
}, Open  ]],

Cell["and for the dependent variables.", "Text"],

Cell[CellGroupData[{

Cell["etafunctions", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"eta1[z1_, z2_, z3_, z4_]=b10 + b115*z3\"\>", 
   ",", "\<\"eta2[z1_, z2_, z3_, z4_]=(-a25 + b115)*z4\"\>"}], 
  "}"}]], "Output",
 CellChangeTimes->{3.469477494740272*^9, 3.4715682668449183`*^9, 
  3.471568343996724*^9, 3.48374911562991*^9, 3.483749216084791*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"infinitesimalgroupsxy", "=", 
  RowBox[{"infinitesimalgroups", "/.", "\[IndentingNewLine]", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"z1", "\[Rule]", "x"}], ",", 
     RowBox[{"z2", "\[Rule]", "y"}], ",", 
     RowBox[{"z3", "\[Rule]", 
      StyleBox["\[CapitalPsi]",
       FontFamily->"Symbol",
       FontSize->14,
       FontWeight->"Bold"]}], ",", 
     RowBox[{"z4", "\[Rule]", "Ue"}]}], "}"}]}]}]], "Input",
 CellChangeTimes->{{3.4837491491191807`*^9, 3.483749149742827*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"1", ",", "0"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "1"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "x"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", 
       SuperscriptBox["x", "2"]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", 
       SuperscriptBox["x", "3"]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", 
       SuperscriptBox["x", "4"]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"x", ",", "y"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", 
       RowBox[{"-", "Ue"}]}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"1", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"x", ",", "0"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"\[CapitalPsi]", ",", "Ue"}], "}"}]}], "}"}]}], "}"}]], "Output",\

 CellChangeTimes->{3.4694774948069773`*^9, 3.471568266891294*^9, 
  3.471568344046863*^9, 3.483749115692033*^9, 3.4837491513643827`*^9, 
  3.4837492161355963`*^9}]
}, Open  ]],

Cell["\<\
Check the groups; xse's are on the left, eta's are on the right.\
\>", "Text"],

Cell[BoxData[
 RowBox[{"Column", "[", "infinitesimalgroupsxy", "]"}]], "Input"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"1", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "1"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "x"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", 
         SuperscriptBox["x", "2"]}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", 
         SuperscriptBox["x", "3"]}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", 
         SuperscriptBox["x", "4"]}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"x", ",", "y"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", 
         RowBox[{"-", "Ue"}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"1", ",", "0"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"x", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"\[CapitalPsi]", ",", "Ue"}], "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469477494873953*^9, 3.471568266941525*^9, 
  3.471568344097591*^9, 3.483749115741293*^9, 3.4837491594858637`*^9, 
  3.483749216186721*^9}],

Cell["Check the infinitesimals in the determining equations.", "Text",
 CellChangeTimes->{{3.471145395559845*^9, 3.471145429404257*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Simplify", "[", 
  RowBox[{"ToExpression", "[", "zdeterminingequations", "]"}], "]"}]], "Input",\

 CellChangeTimes->{{3.471145481019026*^9, 3.4711455173104143`*^9}, 
   3.471146122753789*^9, {3.47154140257237*^9, 3.471541418863482*^9}, {
   3.4715667761993*^9, 3.4715667786858253`*^9}, 3.471567789726531*^9, 
   3.471568099275279*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", 
   ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", 
   "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", 
   ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", 
   "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", 
   ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", 
   "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", 
   ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", 
   "True", ",", "True", ",", "True", ",", "True"}], "}"}]], "Output",
 CellChangeTimes->{3.471568344142333*^9, 3.483749115796358*^9, 
  3.483749167817473*^9, 3.48374921624844*^9}]
}, Open  ]],

Cell["\<\
Note the higher powers of x that appear in the transformation of the wall \
normal coordinate. This suggests the existence of an arbitrary function of x \
in the transformation of y.\
\>", "Text"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"infinitesimalgroupsxy1", "=", 
  RowBox[{"Drop", "[", 
   RowBox[{"infinitesimalgroupsxy", ",", 
    RowBox[{"{", 
     RowBox[{"2", ",", "6"}], "}"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"1", ",", "0"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"x", ",", "y"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", 
       RowBox[{"-", "Ue"}]}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"1", ",", "0"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"x", ",", "0"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"\[CapitalPsi]", ",", "Ue"}], "}"}]}], "}"}]}], "}"}]], "Output",\

 CellChangeTimes->{3.469477511630982*^9, 3.471568266990984*^9, 
  3.471568344194642*^9, 3.483749115842033*^9, 3.4837491700392723`*^9, 
  3.4837492163027573`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"MakeCommutatorTable", "[", 
  RowBox[{
  "independentvariables", ",", "dependentvariables", ",", 
   "infinitesimalgroupsxy1"}], "]"}]], "Input"],

Cell[BoxData["\<\"MakeCommutatorTable has finished executing. You can look at \
the output in the table commutatortable. To present the output in the most \
readable form you may want view it as a matrix using \
MatrixForm[commutatortable]. Occasionally the entries in the commutatortable \
will have terms that cancel. To get rid of these terms use the function \
Simplify before viewing the table.\"\>"], "Print",
 CellChangeTimes->{3.4694775117482347`*^9, 3.471568267045183*^9, 
  3.4715683442480917`*^9, 3.483749115891329*^9, 3.483749173014677*^9, 
  3.4837492163471622`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"MatrixForm", "[", "commutatortable", "]"}]], "Input"],

Cell[BoxData[
 TagBox[
  RowBox[{"(", "\[NoBreak]", GridBox[{
     {
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"1", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"1", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {
          RowBox[{"-", "1"}], "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {"1", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {
          RowBox[{"-", "1"}], "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {
          RowBox[{"-", "1"}], "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", GridBox[{
         {"0", "0"},
         {"0", "0"}
        },
        GridBoxAlignment->{
         "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
          "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
        GridBoxSpacings->{"Columns" -> {
            Offset[0.27999999999999997`], {
             Offset[0.7]}, 
            Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, 
          "Rows" -> {
            Offset[0.2], {
             Offset[0.4]}, 
            Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}
    },
    GridBoxAlignment->{
     "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, 
      "RowsIndexed" -> {}},
    GridBoxSpacings->{"Columns" -> {
        Offset[0.27999999999999997`], {
         Offset[0.7]}, 
        Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
        Offset[0.2], {
         Offset[0.4]}, 
        Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
  Function[BoxForm`e$, 
   MatrixForm[BoxForm`e$]]]], "Output",
 CellChangeTimes->{3.469477511788896*^9, 3.47156826709649*^9, 
  3.4715683442994137`*^9, 3.483749115968977*^9, 3.483749175505362*^9, 
  3.483749216404982*^9}]
}, Open  ]],

Cell["*********************************************************", "Text",
 Evaluatable->False,
 ImageRegion->{{0, 1}, {0, 1}},
 FontWeight->"Plain"],

Cell[CellGroupData[{

Cell[TextData[{
 StyleBox["First let's check to see if these infinitesimals satisfy the \
invariance condition by forming all the terms that appear in the invariance \
condition. Here we will make use of the function ",
  FontWeight->"Plain"],
 "PthInfinitesimal",
 StyleBox[" the generates the infinitesimal transformation of the pth \
derivative.",
  FontWeight->"Plain"]
}], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"ToExpression", "[", "xsefunctions", "]"}], "/.", 
  RowBox[{"{", 
   RowBox[{
    RowBox[{"z1", "\[Rule]", "x1"}], ",", 
    RowBox[{"z2", "\[Rule]", "x2"}], ",", 
    RowBox[{"z3", "\[Rule]", 
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], ",", 
    RowBox[{"z4", "\[Rule]", 
     RowBox[{"y2", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], "}"}]}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"a10", "+", 
    RowBox[{
     RowBox[{"(", 
      RowBox[{"a25", "+", "b115"}], ")"}], " ", "x1"}]}], ",", 
   RowBox[{"a20", "+", 
    RowBox[{"a21", " ", "x1"}], "+", 
    RowBox[{"a22", " ", 
     SuperscriptBox["x1", "2"]}], "+", 
    RowBox[{"a23", " ", 
     SuperscriptBox["x1", "3"]}], "+", 
    RowBox[{"a24", " ", 
     SuperscriptBox["x1", "4"]}], "+", 
    RowBox[{"a25", " ", "x2"}]}]}], "}"}]], "Output",
 CellChangeTimes->{3.4694775118364267`*^9, 3.4715682671417837`*^9, 
  3.4715683443427153`*^9, 3.483749116040937*^9, 3.483749216451676*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
ToExpression[etafunctions]/.
{z1\[Rule]x1,z2\[Rule]x2,z3\[Rule]y1[x1,x2],z4\[Rule]y2[x1,x2]}\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"b10", "+", 
    RowBox[{"b115", " ", 
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", 
   RowBox[{
    RowBox[{"(", 
     RowBox[{
      RowBox[{"-", "a25"}], "+", "b115"}], ")"}], " ", 
    RowBox[{"y2", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}]}], "}"}]], "Output",
 CellChangeTimes->{3.4694775118909187`*^9, 3.471568267195964*^9, 
  3.471568344397828*^9, 3.483749116170252*^9, 3.483749216502245*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"n", "=", 
  RowBox[{"Length", "[", "independentvariables", "]"}]}]], "Input"],

Cell[BoxData["2"], "Output",
 CellChangeTimes->{3.469477511937201*^9, 3.471568267240909*^9, 
  3.471568344447015*^9, 3.483749116203827*^9, 3.4837492166416817`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"m", "=", 
  RowBox[{"Length", "[", "dependentvariables", "]"}]}]], "Input"],

Cell[BoxData["2"], "Output",
 CellChangeTimes->{3.469477511990604*^9, 3.471568267384907*^9, 
  3.471568344558371*^9, 3.4837491162575817`*^9, 3.483749216703051*^9}]
}, Open  ]],

Cell[TextData[StyleBox["The parameter plocal is order of the desired \
derivative.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell["\<\
eta1x=PthInfinitesimal[
n,m,yindex=1,plocal=1,r,xseon,j1=1]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", "a21"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"2", " ", "a22", " ", "x1", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"3", " ", "a23", " ", 
   SuperscriptBox["x1", "2"], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"4", " ", "a24", " ", 
   SuperscriptBox["x1", "3"], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"a25", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.469477512037088*^9, 3.4715682674407063`*^9, 
  3.47156834461574*^9, 3.483749116309017*^9, 3.483749216766415*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
eta1y=PthInfinitesimal[
n,m,yindex=1,plocal=1,r,xseon,j1=2]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", "a25"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
  RowBox[{"b115", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.4694775120911617`*^9, 3.47156826749094*^9, 
  3.471568344664587*^9, 3.4837491163586807`*^9, 3.483749216820696*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
eta1xy=PthInfinitesimal[
n,m,yindex=1,plocal=2,r,xseon,j1=1,j2=2]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", "a21"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "2"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"2", " ", "a22", " ", "x1", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "2"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"3", " ", "a23", " ", 
   SuperscriptBox["x1", "2"], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "2"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"4", " ", "a24", " ", 
   SuperscriptBox["x1", "3"], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "2"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"2", " ", "a25", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.469477512137501*^9, 3.4715682675407743`*^9, 
  3.471568344716017*^9, 3.483749116404222*^9, 3.483749216883341*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
eta1yy=PthInfinitesimal[
n,m,yindex=1,plocal=2,r,xseon,j1=2,j2=2]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", "2"}], " ", "a25", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "2"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
  RowBox[{"b115", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "2"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.469477512192144*^9, 3.47156826759077*^9, 
  3.47156834476087*^9, 3.4837491164590273`*^9, 3.483749216937686*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
eta1yyy=PthInfinitesimal[
n,m,yindex=1,plocal=3,r,xseon,j1=2,j2=2,j3=2]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", "3"}], " ", "a25", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "3"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
  RowBox[{"b115", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "3"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.4694775122378817`*^9, 3.4715682676412153`*^9, 
  3.471568344814848*^9, 3.4837491165080957`*^9, 3.483749217049416*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"eta2noder", "=", 
  RowBox[{
   RowBox[{"(", 
    RowBox[{
     RowBox[{"-", "a25"}], " ", "+", " ", "b115"}], ")"}], "*", 
   RowBox[{"y2", "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"(", 
   RowBox[{
    RowBox[{"-", "a25"}], "+", "b115"}], ")"}], " ", 
  RowBox[{"y2", "[", 
   RowBox[{"x1", ",", "x2"}], "]"}]}]], "Output",
 CellChangeTimes->{3.469477512291732*^9, 3.47156826769141*^9, 
  3.471568344863577*^9, 3.483749116558526*^9, 3.483749217098373*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"eta2x", "=", 
  RowBox[{"PthInfinitesimal", "[", "\[IndentingNewLine]", 
   RowBox[{"n", ",", "m", ",", 
    RowBox[{"yindex", "=", "2"}], ",", 
    RowBox[{"plocal", "=", "1"}], ",", "r", ",", "xseon", ",", 
    RowBox[{"j1", "=", "1"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", "a21"}], " ", 
   RowBox[{
    SuperscriptBox["y2", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"2", " ", "a22", " ", "x1", " ", 
   RowBox[{
    SuperscriptBox["y2", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"3", " ", "a23", " ", 
   SuperscriptBox["x1", "2"], " ", 
   RowBox[{
    SuperscriptBox["y2", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"4", " ", "a24", " ", 
   SuperscriptBox["x1", "3"], " ", 
   RowBox[{
    SuperscriptBox["y2", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"2", " ", "a25", " ", 
   RowBox[{
    SuperscriptBox["y2", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.469477512336109*^9, 3.471568267737337*^9, 
  3.471568344917026*^9, 3.4837491166092*^9, 3.483749217147726*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
invariancecondcoefficients={
0,0,0,eta2noder,eta1x,eta1y,0,eta1xy,eta1yy,0,0,0,eta1yyy,
eta2x,0,0,0,0,0,0,0,0}\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0", ",", "0", ",", 
   RowBox[{
    RowBox[{"(", 
     RowBox[{
      RowBox[{"-", "a25"}], "+", "b115"}], ")"}], " ", 
    RowBox[{"y2", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "a21"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"2", " ", "a22", " ", "x1", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"3", " ", "a23", " ", 
     SuperscriptBox["x1", "2"], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"4", " ", "a24", " ", 
     SuperscriptBox["x1", "3"], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"a25", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "a25"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
    RowBox[{"b115", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", "0", ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "a21"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"2", " ", "a22", " ", "x1", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"3", " ", "a23", " ", 
     SuperscriptBox["x1", "2"], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"4", " ", "a24", " ", 
     SuperscriptBox["x1", "3"], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"2", " ", "a25", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "2"}], " ", "a25", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
    RowBox[{"b115", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", "0", ",", "0", ",", "0", ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "3"}], " ", "a25", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "3"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
    RowBox[{"b115", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "3"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "a21"}], " ", 
     RowBox[{
      SuperscriptBox["y2", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"2", " ", "a22", " ", "x1", " ", 
     RowBox[{
      SuperscriptBox["y2", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"3", " ", "a23", " ", 
     SuperscriptBox["x1", "2"], " ", 
     RowBox[{
      SuperscriptBox["y2", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"4", " ", "a24", " ", 
     SuperscriptBox["x1", "3"], " ", 
     RowBox[{
      SuperscriptBox["y2", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"2", " ", "a25", " ", 
     RowBox[{
      SuperscriptBox["y2", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", "0", ",", "0", ",", "0", ",",
    "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]], "Output",
 CellChangeTimes->{3.469477512393941*^9, 3.471568267794929*^9, 
  3.4715683449619627`*^9, 3.483749116644877*^9, 3.483749217201716*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
invarianceconditionsum=
Expand[
invarconditiontable.invariancecondcoefficients]/.
{D[y1[x1,x2],x2,x2,x2]->
-(1/nu)*y2[x1,x2]*D[y2[x1,x2],x1]-
(1/nu)*D[y1[x1,x2],x1]*D[y1[x1,x2],x2,x2]+
(1/nu)*D[y1[x1,x2],x2]*D[y1[x1,x2],x1,x2],
D[y2[x1,x2],x2]->0}\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"-", 
   FractionBox[
    RowBox[{"3", " ", "a25", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"]}], "+", 
  FractionBox[
   RowBox[{"b115", " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "2"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "-", 
  FractionBox[
   RowBox[{"3", " ", "a25", " ", 
    RowBox[{"y2", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["y2", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "+", 
  FractionBox[
   RowBox[{"b115", " ", 
    RowBox[{"y2", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["y2", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "+", 
  FractionBox[
   RowBox[{"3", " ", "a25", " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "-", 
  FractionBox[
   RowBox[{"b115", " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "-", 
  RowBox[{"3", " ", "a25", " ", 
   RowBox[{"(", 
    RowBox[{
     RowBox[{"-", 
      FractionBox[
       RowBox[{
        RowBox[{
         SuperscriptBox["y1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "2"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"x1", ",", "x2"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["y1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"]}], "-", 
     FractionBox[
      RowBox[{
       RowBox[{"y2", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], " ", 
       RowBox[{
        SuperscriptBox["y2", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"1", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "+", 
     FractionBox[
      RowBox[{
       RowBox[{
        SuperscriptBox["y1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], " ", 
       RowBox[{
        SuperscriptBox["y1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"1", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"]}], ")"}]}], "+", 
  RowBox[{"b115", " ", 
   RowBox[{"(", 
    RowBox[{
     RowBox[{"-", 
      FractionBox[
       RowBox[{
        RowBox[{
         SuperscriptBox["y1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "2"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"x1", ",", "x2"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["y1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"]}], "-", 
     FractionBox[
      RowBox[{
       RowBox[{"y2", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], " ", 
       RowBox[{
        SuperscriptBox["y2", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"1", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "+", 
     FractionBox[
      RowBox[{
       RowBox[{
        SuperscriptBox["y1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], " ", 
       RowBox[{
        SuperscriptBox["y1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"1", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"]}], ")"}]}]}]], "Output",
 CellChangeTimes->{3.469477512439842*^9, 3.471568267839869*^9, 
  3.471568345017384*^9, 3.483749116690901*^9, 3.483749217247046*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Simplify[%]", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData["0"], "Output",
 CellChangeTimes->{3.469477512488658*^9, 3.47156826789069*^9, 
  3.471568345061157*^9, 3.483749116742117*^9, 3.483749217297974*^9}]
}, Open  ]],

Cell["***********************************************", "Text",
 Evaluatable->False,
 ImageRegion->{{0, 1}, {0, 1}},
 FontWeight->"Plain"],

Cell[TextData[StyleBox["The presence of a truncated power series with order \
equal to the order of the trial series in the expression for xse2 suggests \
that this infinitesimal may depend on an arbitrary function of x1. Lets try \
this out and see if the invariance condition is still satisfied. The \
arbitrary function is g[x]",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["xse1[x1_,x2_,y1[x1_,x2_],y2[x1_,x2_]]:=a10 + (a25 + b115)*x1", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["xse2[x1_,x2_,y1[x1_,x2_],y2[x1_,x2_]]:=g[x1]+ a25*x2", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["eta1[x1_,x2_,y1[x1_,x2_],y2[x1_,x2_]]:=b10 + b115*y1[x1,x2]", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["\<\
eta2[x1_,x2_,y1[x1_,x2_],y2[x1_,x2_]]:=(-a25 + b115)*y2[x1,x2]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"eta2eval", "=", 
  RowBox[{
   RowBox[{"(", 
    RowBox[{
     RowBox[{"-", "a25"}], "+", "b115"}], ")"}], "*", 
   RowBox[{"y2", "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"(", 
   RowBox[{
    RowBox[{"-", "a25"}], "+", "b115"}], ")"}], " ", 
  RowBox[{"y2", "[", 
   RowBox[{"x1", ",", "x2"}], "]"}]}]], "Output",
 CellChangeTimes->{3.4694775126508408`*^9, 3.471568268052907*^9, 
  3.4715683452090683`*^9, 3.483749116903577*^9, 3.483749217460554*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
etaa1x=PthInfinitesimal[
n,m,yindex=1,plocal=1,r,xseon,j1=1]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", 
    RowBox[{
     SuperscriptBox["g", "\[Prime]",
      MultilineFunction->None], "[", "x1", "]"}]}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"a25", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.469477512768524*^9, 3.4715682680919733`*^9, 
  3.4715683452447968`*^9, 3.483749116942759*^9, 3.48374921752838*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
etaa1y=PthInfinitesimal[
n,m,yindex=1,plocal=1,r,xseon,j1=2]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", "a25"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
  RowBox[{"b115", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.469477512827067*^9, 3.471568268142085*^9, 
  3.471568345299346*^9, 3.48374911699257*^9, 3.483749217661368*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
etaa1xy=PthInfinitesimal[
n,m,yindex=1,plocal=2,r,xseon,j1=1,j2=2]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", 
    RowBox[{
     SuperscriptBox["g", "\[Prime]",
      MultilineFunction->None], "[", "x1", "]"}]}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "2"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"2", " ", "a25", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.469477512878118*^9, 3.4715682681920223`*^9, 
  3.471568345351193*^9, 3.483749117042696*^9, 3.4837492177279987`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
etaa1yy=PthInfinitesimal[
n,m,yindex=1,plocal=2,r,xseon,j1=2,j2=2]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", "2"}], " ", "a25", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "2"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
  RowBox[{"b115", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "2"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.469477512922976*^9, 3.4715682682427998`*^9, 
  3.471568345395836*^9, 3.4837491170930853`*^9, 3.483749217795542*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
etaa1yyy=PthInfinitesimal[
n,m,yindex=1,plocal=3,r,xseon,j1=2,j2=2,j3=2]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", "3"}], " ", "a25", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "3"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
  RowBox[{"b115", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "3"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.46947751297826*^9, 3.471568268292223*^9, 
  3.471568345450328*^9, 3.483749117204908*^9, 3.483749217861826*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
etaa2x=PthInfinitesimal[
n,m,yindex=2,plocal=1,r,xseon,j1=1]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", 
    RowBox[{
     SuperscriptBox["g", "\[Prime]",
      MultilineFunction->None], "[", "x1", "]"}]}], " ", 
   RowBox[{
    SuperscriptBox["y2", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"2", " ", "a25", " ", 
   RowBox[{
    SuperscriptBox["y2", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.469477513023855*^9, 3.471568268420808*^9, 
  3.4715683455773563`*^9, 3.483749117260995*^9, 3.483749217928576*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
invariancecondcoefficientsnew={
0,0,0,eta2eval,etaa1x,etaa1y,0,etaa1xy,etaa1yy,0,0,0,etaa1yyy,
etaa2x,0,0,0,0,0,0,0,0}\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0", ",", "0", ",", 
   RowBox[{
    RowBox[{"(", 
     RowBox[{
      RowBox[{"-", "a25"}], "+", "b115"}], ")"}], " ", 
    RowBox[{"y2", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", 
      RowBox[{
       SuperscriptBox["g", "\[Prime]",
        MultilineFunction->None], "[", "x1", "]"}]}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"a25", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "a25"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
    RowBox[{"b115", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", "0", ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", 
      RowBox[{
       SuperscriptBox["g", "\[Prime]",
        MultilineFunction->None], "[", "x1", "]"}]}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"2", " ", "a25", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "2"}], " ", "a25", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
    RowBox[{"b115", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", "0", ",", "0", ",", "0", ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "3"}], " ", "a25", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "3"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
    RowBox[{"b115", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "3"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", 
      RowBox[{
       SuperscriptBox["g", "\[Prime]",
        MultilineFunction->None], "[", "x1", "]"}]}], " ", 
     RowBox[{
      SuperscriptBox["y2", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"2", " ", "a25", " ", 
     RowBox[{
      SuperscriptBox["y2", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", "0", ",", "0", ",", "0", ",",
    "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]], "Output",
 CellChangeTimes->{3.469477513079887*^9, 3.4715682684781637`*^9, 
  3.4715683456348057`*^9, 3.4837491173087*^9, 3.483749217995929*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
invarianceconditionsumnew=
Expand[
invarconditiontable.invariancecondcoefficientsnew]/.
{D[y1[x1,x2],x2,x2,x2]->
-(1/nu)*y2[x1,x2]*D[y2[x1,x2],x1]-
(1/nu)*D[y1[x1,x2],x1]*D[y1[x1,x2],x2,x2]+
(1/nu)*D[y1[x1,x2],x2]*D[y1[x1,x2],x1,x2],
D[y2[x1,x2],x2]->0}\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"-", 
   FractionBox[
    RowBox[{"3", " ", "a25", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"]}], "+", 
  FractionBox[
   RowBox[{"b115", " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "2"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "-", 
  FractionBox[
   RowBox[{"3", " ", "a25", " ", 
    RowBox[{"y2", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["y2", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "+", 
  FractionBox[
   RowBox[{"b115", " ", 
    RowBox[{"y2", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["y2", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "+", 
  FractionBox[
   RowBox[{"3", " ", "a25", " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "-", 
  FractionBox[
   RowBox[{"b115", " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "-", 
  RowBox[{"3", " ", "a25", " ", 
   RowBox[{"(", 
    RowBox[{
     RowBox[{"-", 
      FractionBox[
       RowBox[{
        RowBox[{
         SuperscriptBox["y1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "2"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"x1", ",", "x2"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["y1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"]}], "-", 
     FractionBox[
      RowBox[{
       RowBox[{"y2", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], " ", 
       RowBox[{
        SuperscriptBox["y2", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"1", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "+", 
     FractionBox[
      RowBox[{
       RowBox[{
        SuperscriptBox["y1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], " ", 
       RowBox[{
        SuperscriptBox["y1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"1", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"]}], ")"}]}], "+", 
  RowBox[{"b115", " ", 
   RowBox[{"(", 
    RowBox[{
     RowBox[{"-", 
      FractionBox[
       RowBox[{
        RowBox[{
         SuperscriptBox["y1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "2"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"x1", ",", "x2"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["y1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"]}], "-", 
     FractionBox[
      RowBox[{
       RowBox[{"y2", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], " ", 
       RowBox[{
        SuperscriptBox["y2", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"1", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"], "+", 
     FractionBox[
      RowBox[{
       RowBox[{
        SuperscriptBox["y1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], " ", 
       RowBox[{
        SuperscriptBox["y1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"1", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x1", ",", "x2"}], "]"}]}], "nu"]}], ")"}]}]}]], "Output",
 CellChangeTimes->{3.469477513125396*^9, 3.47156826852571*^9, 
  3.471568345680534*^9, 3.483749117364356*^9, 3.483749218061969*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["Simplify[%]", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData["0"], "Output",
 CellChangeTimes->{3.46947751317874*^9, 3.471568268576083*^9, 
  3.471568345784178*^9, 3.48374911740592*^9, 3.483749218133057*^9}]
}, Open  ]],

Cell[TextData[{
 StyleBox["So the general boundary layer streamfunction equation admits four \
simple point groups,\n\na10:  (xse1,xse2,eta1,eta2)=(1,0,0,0)\nb10:  \
(xse1,xse2,eta1,eta2)=(0,0,1,0)\na25:  (xse1,xse2,eta1,eta2)=(x,y,0,-Ue)\n\
b115: (xse1,xse2,eta1,eta2)=(x,0,",
  FontWeight->"Plain"],
 StyleBox["\[CapitalPsi]",
  FontFamily->"Symbol",
  FontWeight->"Plain"],
 StyleBox[",Ue)\n\nIn addition the equations admit the infinite dimensional \
translation group (xse1,xse2,eta1,eta2)=(0,g[x],0,0).",
  FontWeight->"Plain"]
}], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"MaxMemoryUsed", "[", " ", "]"}]], "Input"],

Cell[BoxData["35861192"], "Output",
 CellChangeTimes->{3.469477513224646*^9, 3.47156826862613*^9, 
  3.4715683459849997`*^9, 3.483749117460772*^9, 3.483749218195812*^9}]
}, Open  ]]
},
WindowToolbars->{},
CellGrouping->Manual,
WindowSize->{1257, 995},
WindowMargins->{{146, Automatic}, {Automatic, 46}},
PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}},
ShowCellLabel->True,
ShowCellTags->False,
RenderingOptions->{"ObjectDithering"->True,
"RasterDithering"->False},
MacintoshSystemPageSetup -> \
"0080001804P000000_82@?okonh34`9B;@<5:0?l00;m009H0UP0000068dB`0B`\n\
02d5X5k/02H80@4101P00BL?00400@00000000000000P0010000020D00000000\n\
0000000000000000000004T400002004",
Magnification->1.25,
FrontEndVersion->"7.0 for Mac OS X x86 (32-bit) (February 18, 2009)",
StyleDefinitions->"Default.nb"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[545, 20, 985, 41, 81, "Text"],
Cell[1533, 63, 96, 2, 32, "Text"],
Cell[1632, 67, 90, 2, 33, "Input"],
Cell[1725, 71, 124, 1, 32, "Text"],
Cell[1852, 74, 160, 4, 33, "Input"],
Cell[2015, 80, 476, 13, 32, "Text"],
Cell[2494, 95, 101, 2, 33, "Input"],
Cell[2598, 99, 196, 4, 32, "Text"],
Cell[2797, 105, 666, 28, 80, "Input"],
Cell[3466, 135, 479, 11, 58, "Text"],
Cell[3948, 148, 689, 28, 96, "Input"],
Cell[4640, 178, 130, 2, 32, "Text"],
Cell[4773, 182, 151, 4, 33, "Input"],
Cell[4927, 188, 128, 2, 32, "Text"],
Cell[5058, 192, 276, 8, 53, "Input"],
Cell[5337, 202, 226, 4, 32, "Text"],
Cell[5566, 208, 110, 3, 33, "Input"],
Cell[5679, 213, 152, 3, 32, "Text"],
Cell[5834, 218, 67, 2, 33, "Input"],
Cell[5904, 222, 385, 6, 51, "Text"],
Cell[6292, 230, 67, 2, 33, "Input"],
Cell[6362, 234, 509, 7, 70, "Text"],
Cell[6874, 243, 71, 2, 33, "Input"],
Cell[6948, 247, 576, 8, 70, "Text"],
Cell[7527, 257, 79, 2, 33, "Input"],
Cell[7609, 261, 518, 12, 51, "Text"],
Cell[CellGroupData[{
Cell[8152, 277, 347, 6, 72, "Input"],
Cell[8502, 285, 489, 9, 25, "Print"],
Cell[8994, 296, 1050, 14, 159, "Print"],
Cell[10047, 312, 746, 12, 45, "Print"],
Cell[10796, 326, 453, 8, 25, "Print"],
Cell[11252, 336, 1052, 14, 159, "Print"],
Cell[12307, 352, 232, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[12576, 361, 50, 0, 33, "Input"],
Cell[12629, 363, 316, 4, 53, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[12982, 372, 68, 1, 33, "Input"],
Cell[13053, 375, 1706, 56, 106, "Output"]
}, Open  ]],
Cell[14774, 434, 71, 1, 33, "Input"],
Cell[CellGroupData[{
Cell[14870, 439, 78, 1, 33, "Input"],
Cell[14951, 442, 166, 2, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[15154, 449, 62, 1, 33, "Input"],
Cell[15219, 452, 479, 12, 33, "Output"]
}, Open  ]],
Cell[15713, 467, 490, 11, 126, "Text"],
Cell[CellGroupData[{
Cell[16228, 482, 172, 5, 50, "Input"],
Cell[16403, 489, 900, 14, 64, "Print"],
Cell[17306, 505, 460, 6, 64, "Print"],
Cell[17769, 513, 353, 6, 25, "Print"],
Cell[18125, 521, 341, 6, 25, "Print"],
Cell[18469, 529, 366, 7, 25, "Print"],
Cell[18838, 538, 340, 4, 45, "Print"],
Cell[19181, 544, 351, 6, 25, "Print"],
Cell[19535, 552, 185, 2, 25, "Print"],
Cell[19723, 556, 231, 3, 25, "Print"],
Cell[19957, 561, 351, 6, 25, "Print"],
Cell[20311, 569, 1106, 14, 197, "Print"],
Cell[21420, 585, 230, 4, 33, "Output"]
}, Open  ]],
Cell[21665, 592, 108, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[21798, 599, 61, 1, 33, "Input"],
Cell[21862, 602, 348, 6, 53, "Output"]
}, Open  ]],
Cell[22225, 611, 48, 0, 32, "Text"],
Cell[CellGroupData[{
Cell[22298, 615, 61, 1, 33, "Input"],
Cell[22362, 618, 307, 6, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[22706, 629, 510, 13, 59, "Input"],
Cell[23219, 644, 1828, 64, 69, "Output"]
}, Open  ]],
Cell[25062, 711, 88, 2, 32, "Text"],
Cell[25153, 715, 79, 1, 33, "Input"],
Cell[25235, 718, 2076, 75, 209, "Output"],
Cell[27314, 795, 136, 1, 32, "Text"],
Cell[CellGroupData[{
Cell[27475, 800, 359, 7, 33, "Input"],
Cell[27837, 809, 822, 13, 72, "Output"]
}, Open  ]],
Cell[28674, 825, 206, 4, 32, "Text"],
Cell[CellGroupData[{
Cell[28905, 833, 196, 5, 33, "Input"],
Cell[29104, 840, 914, 31, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[30055, 876, 169, 4, 33, "Input"],
Cell[30227, 882, 579, 8, 64, "Print"]
}, Open  ]],
Cell[CellGroupData[{
Cell[30843, 895, 77, 1, 33, "Input"],
Cell[30923, 898, 9888, 265, 185, "Output"]
}, Open  ]],
Cell[40826, 1166, 148, 3, 32, "Text",
 Evaluatable->False],
Cell[CellGroupData[{
Cell[40999, 1173, 417, 10, 51, "Text"],
Cell[41419, 1185, 419, 12, 33, "Input"],
Cell[41841, 1199, 609, 17, 42, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[42487, 1221, 149, 4, 50, "Input"],
Cell[42639, 1227, 484, 14, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[43160, 1246, 101, 2, 33, "Input"],
Cell[43264, 1250, 163, 2, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[43464, 1257, 99, 2, 33, "Input"],
Cell[43566, 1261, 163, 2, 33, "Output"]
}, Open  ]],
Cell[43744, 1266, 148, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[43917, 1273, 116, 4, 50, "Input"],
Cell[44036, 1279, 1471, 51, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[45544, 1335, 116, 4, 50, "Input"],
Cell[45663, 1341, 656, 22, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[46356, 1368, 122, 4, 50, "Input"],
Cell[46481, 1374, 1482, 51, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[48000, 1430, 122, 4, 50, "Input"],
Cell[48125, 1436, 663, 22, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[48825, 1463, 128, 4, 50, "Input"],
Cell[48956, 1469, 669, 22, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[49662, 1496, 222, 7, 33, "Input"],
Cell[49887, 1505, 309, 8, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[50233, 1518, 283, 6, 53, "Input"],
Cell[50519, 1526, 1478, 51, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[52034, 1582, 167, 5, 66, "Input"],
Cell[52204, 1589, 6430, 218, 164, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[58671, 1812, 304, 10, 147, "Input"],
Cell[58978, 1824, 5877, 204, 212, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[64892, 2033, 60, 1, 33, "Input"],
Cell[64955, 2036, 160, 2, 33, "Output"]
}, Open  ]],
Cell[65130, 2041, 138, 3, 32, "Text",
 Evaluatable->False],
Cell[65271, 2046, 396, 6, 51, "Text"],
Cell[65670, 2054, 109, 1, 33, "Input"],
Cell[65782, 2057, 101, 1, 33, "Input"],
Cell[65886, 2060, 108, 1, 33, "Input"],
Cell[65997, 2063, 119, 3, 33, "Input"],
Cell[CellGroupData[{
Cell[66141, 2070, 211, 7, 33, "Input"],
Cell[66355, 2079, 314, 8, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[66706, 2092, 117, 4, 50, "Input"],
Cell[66826, 2098, 749, 25, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[67612, 2128, 117, 4, 50, "Input"],
Cell[67732, 2134, 652, 22, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[68421, 2161, 123, 4, 50, "Input"],
Cell[68547, 2167, 760, 25, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[69344, 2197, 123, 4, 50, "Input"],
Cell[69470, 2203, 667, 22, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[70174, 2230, 129, 4, 50, "Input"],
Cell[70306, 2236, 662, 22, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[71005, 2263, 117, 4, 50, "Input"],
Cell[71125, 2269, 758, 25, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[71920, 2299, 175, 5, 66, "Input"],
Cell[72098, 2306, 4102, 140, 94, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[76237, 2451, 310, 10, 147, "Input"],
Cell[76550, 2463, 5876, 204, 212, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[82463, 2672, 60, 1, 33, "Input"],
Cell[82526, 2675, 159, 2, 33, "Output"]
}, Open  ]],
Cell[82700, 2680, 577, 13, 168, "Text"],
Cell[CellGroupData[{
Cell[83302, 2697, 66, 1, 33, "Input"],
Cell[83371, 2700, 169, 2, 33, "Output"]
}, Open  ]]
}
]
*)

(* End of internal cache information *)
