Commit acc00705 authored by Gianmarco Mengaldo's avatar Gianmarco Mengaldo
Browse files

Removed a SOLVERINFO TAG to iniatialise the new advection class. Cleaning up...

Removed a SOLVERINFO TAG to iniatialise the new advection class. Cleaning up of the class EquationSystem acoording to the previous mentioned modifications. Changed the regressionsTests according to the previous mentioned modifications. 


git-svn-id: https://gforge.sci.utah.edu/svn/nektar/trunk@4003 305cdda6-5ce1-45b3-a98d-dfc68c8b3305
parent f7ffce23
......@@ -103,7 +103,7 @@ namespace Nektar
/// Datatype of the NekFactory used to instantiate classes derived
/// from the Advection class.
typedef LibUtilities::NekFactory<std::string, Advection> AdvectionFactory;
typedef LibUtilities::NekFactory<std::string, Advection, std::string> AdvectionFactory;
SOLVER_UTILS_EXPORT AdvectionFactory& GetAdvectionFactory();
}
}
......
......@@ -38,11 +38,16 @@
namespace Nektar
{
namespace SolverUtils
{
std::string AdvectionFR::type = GetAdvectionFactory().
RegisterCreatorFunction("FR", AdvectionFR::create);
{
std::string AdvectionFR::type[] = {
GetAdvectionFactory().RegisterCreatorFunction(
"FRDG", AdvectionFR::create),
GetAdvectionFactory().RegisterCreatorFunction(
"FRSD", AdvectionFR::create),
GetAdvectionFactory().RegisterCreatorFunction(
"FRHU", AdvectionFR::create)};
AdvectionFR::AdvectionFR()
AdvectionFR::AdvectionFR(std::string advType):m_advType(advType)
{
}
......@@ -50,49 +55,27 @@ namespace Nektar
LibUtilities::SessionReaderSharedPtr pSession,
Array<OneD, MultiRegions::ExpListSharedPtr> pFields)
{
// Definition of the FR scheme recovered
if(pSession->DefinesSolverInfo("FRSchemeRecovered"))
{
// Check the FR scheme to be used
m_FRSchemeRecovered = pSession->GetSolverInfo("FRSchemeRecovered");
// Check if the FR scheme recovered is set up properly
if((m_FRSchemeRecovered!="DG") && (m_FRSchemeRecovered!="SD")
&& (m_FRSchemeRecovered!="HU"))
{
cerr << "\n ERROR: You must specify FRSchemeRecovered in\n";
cerr << "SOLVERINFO. 3 valid choices: 'DG', 'SD', 'HU'.\n";
exit(1);
}
}
else
{
m_FRSchemeRecovered = "DG";
}
LibUtilities::BasisSharedPtr Basis;
LibUtilities::BasisSharedPtr BasisFR_Left;
LibUtilities::BasisSharedPtr BasisFR_Right;
Basis = pFields[0]->GetExp(0)->GetBasis(0);
// Number of modes
int nModes = Basis->GetNumModes();
// Computation of the derivatives of the correction functions (DG)
if(m_FRSchemeRecovered == "DG")
// Total number of quadrature points
int nSolutionPts = Basis->GetNumPoints();
// Type of points
const LibUtilities::PointsKey FRpoints = Basis->GetPointsKey();
if (m_advType == "FRDG")
{
// Bases initialisation
LibUtilities::BasisSharedPtr Basis;
LibUtilities::BasisSharedPtr BasisFR_Left;
LibUtilities::BasisSharedPtr BasisFR_Right;
Basis = pFields[0]->GetExp(0)->GetBasis(0);
// Number of modes
int nModes = Basis->GetNumModes();
// Total number of quadrature points
int nSolutionPts = Basis->GetNumPoints();
// Type of points
const LibUtilities::PointsKey FRpoints = Basis->GetPointsKey();
// Construction of the derivatives
// Computation of the derivatives of the correction functions (DG)
const LibUtilities::BasisKey FRBase_Left (LibUtilities::eDG_DG_Left,
nSolutionPts,
FRpoints);
const LibUtilities::BasisKey FRBase_Right(LibUtilities::eDG_DG_Right,
nSolutionPts,
FRpoints);
......@@ -104,30 +87,15 @@ namespace Nektar
m_dGL = BasisFR_Left ->GetBdata();
m_dGR = BasisFR_Right->GetBdata();
}
// Computation of the derivatives of the correction functions (SD)
else if(m_FRSchemeRecovered == "SD")
else if(m_advType == "FRSD")
{
/// Bases initialisation
LibUtilities::BasisSharedPtr Basis;
LibUtilities::BasisSharedPtr BasisFR_Left;
LibUtilities::BasisSharedPtr BasisFR_Right;
Basis = pFields[0]->GetExp(0)->GetBasis(0);
/// Number of modes
int nModes = Basis->GetNumModes();
/// Total number of quadrature points
int nSolutionPts = Basis->GetNumPoints();
/// Type of points
const LibUtilities::PointsKey FRpoints = Basis->GetPointsKey();
/// Construction of the derivatives
// Computation of the derivatives of the correction functions (SD)
const LibUtilities::BasisKey FRBase_Left (LibUtilities::eDG_SD_Left,
nSolutionPts,
FRpoints);
const LibUtilities::BasisKey FRBase_Right(LibUtilities::eDG_SD_Right,
nSolutionPts,
FRpoints);
......@@ -135,34 +103,19 @@ namespace Nektar
BasisFR_Left = LibUtilities::BasisManager()[FRBase_Left];
BasisFR_Right = LibUtilities::BasisManager()[FRBase_Right];
/// Storing the derivatives into two global variables
// Storing the derivatives into two global variables
m_dGL = BasisFR_Left ->GetBdata();
m_dGR = BasisFR_Right->GetBdata();
}
// Computation of the derivatives of the correction functions (HU)
else if(m_FRSchemeRecovered == "HU")
else if (m_advType == "FRHU")
{
// Bases initialisation
LibUtilities::BasisSharedPtr Basis;
LibUtilities::BasisSharedPtr BasisFR_Left;
LibUtilities::BasisSharedPtr BasisFR_Right;
Basis = pFields[0]->GetExp(0)->GetBasis(0);
// Number of modes
int nModes = Basis->GetNumModes();
// Total number of quadrature points
int nSolutionPts = Basis->GetNumPoints();
// Type of points
const LibUtilities::PointsKey FRpoints = Basis->GetPointsKey();
// Construction of the derivatives
// Computation of the derivatives of the correction functions (HU)
const LibUtilities::BasisKey FRBase_Left (LibUtilities::eDG_HU_Left,
nSolutionPts,
FRpoints);
const LibUtilities::BasisKey FRBase_Right(LibUtilities::eDG_HU_Right,
nSolutionPts,
FRpoints);
......@@ -325,14 +278,12 @@ namespace Nektar
}
case 2:
{
// HOW TO GET CORRECT DIMENSION OF FLUXJUMPS ARRAY IN 2D
ASSERTL0(false,"2D FR case not implemented yet");
ASSERTL0(false,"2D FRDG case not implemented yet");
break;
}
case 3:
{
// HOW TO GET CORRECT DIMENSION OF FLUXJUMPS ARRAY IN 3D
ASSERTL0(false,"3D FR case not implemented yet");
ASSERTL0(false,"3D FRDG case not implemented yet");
break;
}
}
......
......@@ -51,22 +51,23 @@ namespace Nektar
class AdvectionFR : public Advection
{
public:
static AdvectionSharedPtr create()
static AdvectionSharedPtr create(std::string advType)
{
return AdvectionSharedPtr(new AdvectionFR());
return AdvectionSharedPtr(new AdvectionFR(advType));
}
static std::string type;
static std::string type[];
std::string m_FRSchemeRecovered;
Array<OneD, NekDouble> m_dGL;
Array<OneD, NekDouble> m_dGR;
protected:
AdvectionFR();
AdvectionFR(std::string advType);
Array<OneD, Array<OneD, NekDouble> > m_traceNormals;
std::string m_advType;
virtual void v_InitObject(
LibUtilities::SessionReaderSharedPtr pSession,
Array<OneD, MultiRegions::ExpListSharedPtr> pFields);
......
......@@ -45,7 +45,7 @@ namespace Nektar
class AdvectionNonConservative : public Advection
{
public:
static AdvectionSharedPtr create()
static AdvectionSharedPtr create(std::string advType)
{
return AdvectionSharedPtr(new AdvectionNonConservative());
}
......
......@@ -41,10 +41,9 @@ namespace Nektar
{
std::string AdvectionWeakDG::type = GetAdvectionFactory().
RegisterCreatorFunction("WeakDG", AdvectionWeakDG::create);
AdvectionWeakDG::AdvectionWeakDG()
{
}
void AdvectionWeakDG::v_Advect(
......
......@@ -45,7 +45,7 @@ namespace Nektar
class AdvectionWeakDG : public Advection
{
public:
static AdvectionSharedPtr create()
static AdvectionSharedPtr create(std::string advType)
{
return AdvectionSharedPtr(new AdvectionWeakDG());
}
......
This diff is collapsed.
......@@ -209,12 +209,6 @@ namespace Nektar
bool NumericalFluxIncludesNormal = true,
bool InFieldIsInPhysSpace = false,
int nvariables = 0);
/// Calculate the strong FR advection term.
SOLVER_UTILS_EXPORT void StrongFRAdvection(
const Array<OneD, Array<OneD, NekDouble> >& InField,
Array<OneD, Array<OneD, NekDouble> >& OutField,
bool InFieldIsInPhysSpace = false);
/// Calculate weak DG Diffusion in the LDG form.
SOLVER_UTILS_EXPORT void WeakDGDiffusion(
......@@ -412,9 +406,6 @@ namespace Nektar
bool m_SingleMode; ///< Flag to determine if use single mode or not
bool m_HalfMode; ///< Flag to determine if use half mode or not
bool m_MultipleModes; ///< Flag to determine if use multiple mode or not
std::string m_discontinuousApproach; ///< Type of discontinuous approach used (StandardDG or FR-DG, FR-SD, FR-HU)
Array<OneD, NekDouble> m_dGL; ///< Left derivatives of the correction functions
Array<OneD, NekDouble> m_dGR; ///< Right derivatives of the correction functions
enum MultiRegions::ProjectionType m_projectionType; ///< Type of projection, i.e. Continuous or Discontinuous
Array<OneD, Array<OneD, NekDouble> > m_traceNormals; ///< Array holding the forward normals
......
......@@ -79,7 +79,6 @@
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="FRSchemeRecovered" VALUE="DG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
......
......@@ -52,7 +52,6 @@
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="FRSchemeRecovered" VALUE="DG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<I PROPERTY="TimeIntegrationMethod" VALUE="AdamsBashforthOrder2"/>
</SOLVERINFO>
......
......@@ -53,7 +53,6 @@
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="FRSchemeRecovered" VALUE="DG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<I PROPERTY="TimeIntegrationMethod" VALUE="AdamsBashforthOrder2"/>
</SOLVERINFO>
......
......@@ -143,7 +143,6 @@
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="FRSchemeRecovered" VALUE="DG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
......
......@@ -68,7 +68,6 @@
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="FRSchemeRecovered" VALUE="DG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
......
......@@ -507,7 +507,6 @@
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="FRSchemeRecovered" VALUE="DG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
<I PROPERTY="GlobalSysSoln" VALUE="IterativeFull" />
......
......@@ -331,7 +331,6 @@
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="FRSchemeRecovered" VALUE="DG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
......
......@@ -75,7 +75,6 @@
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="FRSchemeRecovered" VALUE="DG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ForwardEuler" />
</SOLVERINFO>
......
......@@ -75,7 +75,6 @@
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="FRSchemeRecovered" VALUE="DG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<I PROPERTY="TimeIntegrationMethod" VALUE="AdamsBashforthOrder2"/>
</SOLVERINFO>
......
......@@ -114,7 +114,6 @@
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="FRSchemeRecovered" VALUE="DG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
......
......@@ -75,7 +75,6 @@
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="FRSchemeRecovered" VALUE="DG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
......
......@@ -61,18 +61,18 @@
<CONDITIONS>
<PARAMETERS>
<P> TimeStep = 0.0001 </P>
<P> NumSteps = 5000 </P>
<P> FinTime = TimeStep*NumSteps </P>
<P> IO_CheckSteps = 1000 </P>
<P> IO_InfoSteps = 1000 </P>
<P> TimeStep = 0.0001 </P>
<P> NumSteps = 5000 </P>
<P> FinTime = TimeStep*NumSteps </P>
<P> IO_CheckSteps = 1000 </P>
<P> IO_InfoSteps = 1000 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusionReaction" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="DiscontinuousApproach" VALUE="StandardDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Implicit" />
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusionReaction" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Implicit" />
</SOLVERINFO>
<VARIABLES>
......
......@@ -61,18 +61,18 @@
<CONDITIONS>
<PARAMETERS>
<P> TimeStep = 0.0001 </P>
<P> NumSteps = 5000 </P>
<P> FinTime = TimeStep*NumSteps </P>
<P> IO_CheckSteps = 1000 </P>
<P> IO_InfoSteps = 1000 </P>
<P> TimeStep = 0.0001 </P>
<P> NumSteps = 5000 </P>
<P> FinTime = TimeStep*NumSteps </P>
<P> IO_CheckSteps = 1000 </P>
<P> IO_InfoSteps = 1000 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusionReaction" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="DiscontinuousApproach" VALUE="StandardDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Implicit" />
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusionReaction"/>
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Implicit" />
</SOLVERINFO>
<VARIABLES>
......
......@@ -61,19 +61,19 @@
<CONDITIONS>
<PARAMETERS>
<P> TimeStep = 0.000001 </P>
<P> NumSteps = 500 </P>
<P> FinTime = TimeStep*NumSteps </P>
<P> IO_CheckSteps = 100 </P>
<P> IO_InfoSteps = 100 </P>
<P> TimeStep = 0.000001 </P>
<P> NumSteps = 500 </P>
<P> FinTime = TimeStep*NumSteps </P>
<P> IO_CheckSteps = 100 </P>
<P> IO_InfoSteps = 100 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusion" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="DiscontinuousApproach" VALUE="StandardDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Explicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4" />
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusion" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Explicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
<VARIABLES>
......
......@@ -61,19 +61,19 @@
<CONDITIONS>
<PARAMETERS>
<P> TimeStep = 0.000001 </P>
<P> NumSteps = 500 </P>
<P> FinTime = TimeStep*NumSteps </P>
<P> IO_CheckSteps = 100 </P>
<P> IO_InfoSteps = 100 </P>
<P> TimeStep = 0.000001 </P>
<P> NumSteps = 500 </P>
<P> FinTime = TimeStep*NumSteps </P>
<P> IO_CheckSteps = 100 </P>
<P> IO_InfoSteps = 100 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusion" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="DiscontinuousApproach" VALUE="StandardDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Explicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4" />
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusion" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Explicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
<VARIABLES>
......
......@@ -44,9 +44,9 @@
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="Helmholtz" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="DiscontinuousApproach" VALUE="StandardDG" />
<I PROPERTY="EQTYPE" VALUE="Helmholtz" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
</SOLVERINFO>
<VARIABLES>
......
......@@ -244,9 +244,9 @@
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="Helmholtz" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="DiscontinuousApproach" VALUE="StandardDG" />
<I PROPERTY="EQTYPE" VALUE="Helmholtz" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
</SOLVERINFO>
<VARIABLES>
......
......@@ -72,11 +72,11 @@
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusion" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="DiscontinuousApproach" VALUE="StandardDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Implicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="DIRKOrder3" />
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusion" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Implicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="DIRKOrder3" />
</SOLVERINFO>
<VARIABLES>
......
......@@ -72,11 +72,11 @@
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusion" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="DiscontinuousApproach" VALUE="StandardDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Implicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="DIRKOrder3" />
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusion" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="WeakDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Implicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="DIRKOrder3" />
</SOLVERINFO>
<VARIABLES>
......
......@@ -48,8 +48,7 @@
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyInviscidBurger" />