Commit 5965f7b0 authored by Daniele de Grazia's avatar Daniele de Grazia

Adding some regression tests and improving efficiency of WeakDG with Gauss points

parent 0544babc
This diff is collapsed.
......@@ -742,7 +742,7 @@ namespace Nektar
// Implementation for all the basis except Gauss points
if (m_base[0]->GetPointsType() != LibUtilities::eGaussGaussLegendre
&& m_base[1]->GetPointsType() != LibUtilities::eGaussGaussLegendre )
&& m_base[1]->GetPointsType() != LibUtilities::eGaussGaussLegendre)
{
// get points in Cartesian orientation
switch(edge)
......@@ -751,14 +751,16 @@ namespace Nektar
Vmath::Vcopy(nquad0,&(inarray[0]),1,&(outarray[0]),1);
break;
case 1:
Vmath::Vcopy(nquad1,&(inarray[0])+(nquad0-1),nquad0,&(outarray[0]),1);
Vmath::Vcopy(nquad1,&(inarray[0])+(nquad0-1),
nquad0,&(outarray[0]),1);
break;
case 2:
Vmath::Vcopy(nquad0,&(inarray[0])+nquad0*(nquad1-1),1,
&(outarray[0]),1);
break;
case 3:
Vmath::Vcopy(nquad1,&(inarray[0]),nquad0,&(outarray[0]),1);
Vmath::Vcopy(nquad1,&(inarray[0]),nquad0,
&(outarray[0]),1);
break;
default:
ASSERTL0(false,"edge value (< 3) is out of range");
......@@ -1980,7 +1982,8 @@ namespace Nektar
DNekMatSharedPtr mat = GenMatrix(hkey);
mat->Invert();
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(one,mat);
returnval =
MemoryManager<DNekScalMat>::AllocateSharedPtr(one,mat);
}
break;
case StdRegions::eInterpGaussEdge0:
......@@ -1992,7 +1995,8 @@ namespace Nektar
// edge 0
coords[1] = -1.0;
m_Ixb = m_base[1]->GetI(coords+1);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(one,m_Ixb);
returnval =
MemoryManager<DNekScalMat>::AllocateSharedPtr(one,m_Ixb);
}
break;
case StdRegions::eInterpGaussEdge1:
......@@ -2004,7 +2008,8 @@ namespace Nektar
// edge 1
coords[0] = 1.0;
m_Ixr = m_base[0]->GetI(coords);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(one,m_Ixr);
returnval =
MemoryManager<DNekScalMat>::AllocateSharedPtr(one,m_Ixr);
}
break;
case StdRegions::eInterpGaussEdge2:
......@@ -2016,7 +2021,8 @@ namespace Nektar
// edge 2
coords[1] = 1.0;
m_Ixt = m_base[1]->GetI(coords+1);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(one,m_Ixt);
returnval =
MemoryManager<DNekScalMat>::AllocateSharedPtr(one,m_Ixt);
}
break;
case StdRegions::eInterpGaussEdge3:
......@@ -2028,7 +2034,8 @@ namespace Nektar
// edge 3
coords[0] = -1.0;
m_Ixl = m_base[0]->GetI(coords);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(one,m_Ixl);
returnval =
MemoryManager<DNekScalMat>::AllocateSharedPtr(one,m_Ixl);
}
break;
default:
......@@ -2036,7 +2043,8 @@ namespace Nektar
NekDouble one = 1.0;
DNekMatSharedPtr mat = GenMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(one,mat);
returnval =
MemoryManager<DNekScalMat>::AllocateSharedPtr(one,mat);
}
break;
}
......
......@@ -509,6 +509,110 @@ namespace Nektar
}
}
break;
case StdRegions::eGaussDG0:
{
NekDouble one = 1.0;
LibUtilities::BasisSharedPtr BASE0;
int nCoeffs1 = m_base[1]->GetNumModes();
const LibUtilities::PointsKey
BS_p1(nCoeffs1,LibUtilities::eGaussGaussLegendre);
const LibUtilities::BasisKey
BS_k1(LibUtilities::eGauss_Lagrange,nCoeffs1,BS_p1);
DNekMatSharedPtr m_Ix0;
Array<OneD, NekDouble> coords(3, 0.0);
BASE0 = LibUtilities::BasisManager()[BS_k1];
coords[1] = -1;
m_Ix0 = BASE0->GetI(coords+1);
returnval =
MemoryManager<DNekMat>::AllocateSharedPtr(one,nCoeffs1);
DNekMat &Qmat = *returnval;
Vmath::Vcopy(nCoeffs1,&(m_Ix0->GetPtr())[0],1,
&(Qmat.GetPtr())[0],1);
}
break;
case StdRegions::eGaussDG1:
{
NekDouble one = 1.0;
LibUtilities::BasisSharedPtr BASE1;
int nCoeffs0 = m_base[0]->GetNumModes();
const LibUtilities::PointsKey
BS_p0(nCoeffs0,LibUtilities::eGaussGaussLegendre);
const LibUtilities::BasisKey
BS_k0(LibUtilities::eGauss_Lagrange,nCoeffs0,BS_p0);
DNekMatSharedPtr m_Ix1;
Array<OneD, NekDouble> coords(3, 0.0);
BASE1 = LibUtilities::BasisManager()[BS_k0];
coords[0] = 1;
m_Ix1 = BASE1->GetI(coords);
returnval =
MemoryManager<DNekMat>::AllocateSharedPtr(one,nCoeffs0);
DNekMat &Qmat = *returnval;
Vmath::Vcopy(nCoeffs0,&(m_Ix1->GetPtr())[0],1,
&(Qmat.GetPtr())[0],1);
}
break;
case StdRegions::eGaussDG2:
{
NekDouble one = 1.0;
LibUtilities::BasisSharedPtr BASE2;
int nCoeffs1 = m_base[1]->GetNumModes();
const LibUtilities::PointsKey
BS_p1(nCoeffs1,LibUtilities::eGaussGaussLegendre);
const LibUtilities::BasisKey
BS_k1(LibUtilities::eGauss_Lagrange,nCoeffs1,BS_p1);
DNekMatSharedPtr m_Ix2;
Array<OneD, NekDouble> coords(3, 0.0);
BASE2 = LibUtilities::BasisManager()[BS_k1];
coords[1] = 1;
m_Ix2 = BASE2->GetI(coords+1);
returnval =
MemoryManager<DNekMat>::AllocateSharedPtr(one,nCoeffs1);
DNekMat &Qmat = *returnval;
Vmath::Vcopy(nCoeffs1,&(m_Ix2->GetPtr())[0],1,
&(Qmat.GetPtr())[0],1);
}
break;
case StdRegions::eGaussDG3:
{
NekDouble one = 1.0;
LibUtilities::BasisSharedPtr BASE3;
int nCoeffs0 = m_base[0]->GetNumModes();
const LibUtilities::PointsKey
BS_p0(nCoeffs0,LibUtilities::eGaussGaussLegendre);
const LibUtilities::BasisKey
BS_k0(LibUtilities::eGauss_Lagrange,nCoeffs0,BS_p0);
DNekMatSharedPtr m_Ix3;
Array<OneD, NekDouble> coords(3, 0.0);
BASE3 = LibUtilities::BasisManager()[BS_k0];
coords[0] = -1;
m_Ix3 = BASE3->GetI(coords);
returnval =
MemoryManager<DNekMat>::AllocateSharedPtr(one,nCoeffs0);
DNekMat &Qmat = *returnval;
Vmath::Vcopy(nCoeffs0,&(m_Ix3->GetPtr())[0],1,
&(Qmat.GetPtr())[0],1);
}
break;
default:
{
NEKERROR(ErrorUtil::efatal, "This type of matrix can not be created using a general approach");
......
......@@ -87,16 +87,19 @@ IF( NEKTAR_SOLVER_ADR )
ADD_NEKTAR_TEST(Advection_m14_DG_Order4)
ADD_NEKTAR_TEST(Advection_m14_Order4)
ADD_NEKTAR_TEST(ExDiffusion_1D_LDG)
ADD_NEKTAR_TEST(ExDiffusion_1D_LDG_GAUSS)
ADD_NEKTAR_TEST(ExDiffusion_1D_LFRDG)
ADD_NEKTAR_TEST(ExDiffusion_1D_LFRHU)
ADD_NEKTAR_TEST(ExDiffusion_1D_LFRSD)
ADD_NEKTAR_TEST(ExDiffusion_2D_LDG_hybrid_m3)
ADD_NEKTAR_TEST(ExDiffusion_2D_LDG_hybrid_m8)
ADD_NEKTAR_TEST(ExDiffusion_2D_LDG_regular_Neumann)
ADD_NEKTAR_TEST(ExDiffusion_2D_LDG_regular_Neumann_GAUSS)
ADD_NEKTAR_TEST(ExDiffusion_2D_LFRDG_regular_Neumann)
ADD_NEKTAR_TEST(ExDiffusion_2D_LFRHU_regular_Neumann)
ADD_NEKTAR_TEST(ExDiffusion_2D_LFRSD_regular_Neumann)
ADD_NEKTAR_TEST(ExDiffusion_2D_LDG_deformed)
ADD_NEKTAR_TEST(ExDiffusion_2D_LDG_deformed_GAUSS)
ADD_NEKTAR_TEST(ExDiffusion_2D_LFRDG_deformed)
ADD_NEKTAR_TEST(ExDiffusion_2D_LFRHU_deformed)
ADD_NEKTAR_TEST(ExDiffusion_2D_LFRSD_deformed)
......
<?xml version="1.0" encoding="utf-8"?>
<test>
<description>1D unsteady LDG explicit diffusion, order 3, P=2 GAUSS</description>
<executable>ADRSolver</executable>
<parameters>ExDiffusion_1D_LDG_GAUSS.xml</parameters>
<files>
<file description="Session File">ExDiffusion_1D_LDG_GAUSS.xml</file>
</files>
<metrics>
<metric type="L2" id="1">
<value variable="u" tolerance="1e-12">0.00228817</value>
</metric>
<metric type="Linf" id="2">
<value variable="u" tolerance="1e-12">0.00827645</value>
</metric>
</metrics>
</test>
<?xml version="1.0" encoding="utf-8" ?>
<NEKTAR>
<GEOMETRY DIM="1" SPACE="1">
<VERTEX>
<V ID="0"> -1.0 0.0 0.0</V>
<V ID="1"> -0.8 0.0 0.0</V>
<V ID="2"> -0.6 0.0 0.0</V>
<V ID="3"> -0.4 0.0 0.0</V>
<V ID="4"> -0.2 0.0 0.0</V>
<V ID="5"> 0.0 0.0 0.0</V>
<V ID="6"> 0.2 0.0 0.0</V>
<V ID="7"> 0.4 0.0 0.0</V>
<V ID="8"> 0.6 0.0 0.0</V>
<V ID="9"> 0.8 0.0 0.0</V>
<V ID="10"> 1.0 0.0 0.0</V>
</VERTEX>
<ELEMENT>
<S ID="0"> 0 1 </S>
<S ID="1"> 1 2 </S>
<S ID="2"> 2 3 </S>
<S ID="3"> 3 4 </S>
<S ID="4"> 4 5 </S>
<S ID="5"> 5 6 </S>
<S ID="6"> 6 7 </S>
<S ID="7"> 7 8 </S>
<S ID="8"> 8 9 </S>
<S ID="9"> 9 10 </S>
</ELEMENT>
<COMPOSITE>
<C ID="0"> S[0-9] </C>
<C ID="1"> V[0] </C>
<C ID="2"> V[10] </C>
</COMPOSITE>
<DOMAIN> C[0] </DOMAIN>
</GEOMETRY>
<EXPANSIONS>
<E COMPOSITE="C[0]" FIELDS="u" TYPE="GAUSS_LAGRANGE" NUMMODES="3"/>
</EXPANSIONS>
<CONDITIONS>
<PARAMETERS>
<P> TimeStep = 0.000001 </P>
<P> NumSteps = 100 </P>
<P> FinTime = TimeStep * NumSteps </P>
<P> IO_CheckSteps = 100000 </P>
<P> IO_InfoSteps = 100000 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusion" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="DiffusionType" VALUE="LDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Explicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
<VARIABLES>
<V ID="0"> u </V>
</VARIABLES>
<BOUNDARYREGIONS>
<B ID="0"> C[1] </B>
<B ID="1"> C[2] </B>
</BOUNDARYREGIONS>
<BOUNDARYCONDITIONS>
<REGION REF="0">
<D VAR="u" USERDEFINEDTYPE="TimeDependent"
VALUE="exp(-2.0*PI*PI*t)*sin(PI*x)" />
</REGION>
<REGION REF="1">
<D VAR="u" USERDEFINEDTYPE="TimeDependent"
VALUE="exp(-2.0*PI*PI*t)*sin(PI*x)" />
</REGION>
</BOUNDARYCONDITIONS>
<FUNCTION NAME="InitialConditions">
<E VAR="u" VALUE="sin(PI*x)" />
</FUNCTION>
<FUNCTION NAME="ExactSolution">
<E VAR="u" VALUE="exp(-2.0*PI*PI*FinTime)*sin(PI*x)" />
</FUNCTION>
</CONDITIONS>
</NEKTAR>
<?xml version="1.0" encoding="utf-8"?>
<test>
<description>2D unsteady LDG explicit diffusion, deformed quads, P=3 GAUSS</description>
<executable>ADRSolver</executable>
<parameters>ExDiffusion_2D_LDG_deformed_GAUSS.xml</parameters>
<files>
<file description="Session File">ExDiffusion_2D_LDG_deformed_GAUSS.xml</file>
</files>
<metrics>
<metric type="L2" id="1">
<value variable="u" tolerance="1e-12">0.00117493</value>
</metric>
<metric type="Linf" id="2">
<value variable="u" tolerance="1e-12">0.00183782</value>
</metric>
</metrics>
</test>
<?xml version="1.0" encoding="utf-8"?>
<NEKTAR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.nektar.info/schema/nektar.xsd">
<GEOMETRY DIM="2" SPACE="2">
<VERTEX>
<V ID="0"> -1.3 -1.2 0.0 </V>
<V ID="1"> 0.1 -1.2 0.0 </V>
<V ID="2"> 1.0 -1.0 0.0 </V>
<V ID="3"> -1.0 0.0 0.0 </V>
<V ID="4"> -0.4 -0.3 0.0 </V>
<V ID="5"> 1.0 0.0 0.0 </V>
<V ID="6"> -1.0 1.0 0.0 </V>
<V ID="7"> 0.3 1.2 0.0 </V>
<V ID="8"> 1.0 1.0 0.0 </V>
</VERTEX>
<EDGE>
<E ID="0"> 0 1 </E>
<E ID="1"> 1 2 </E>
<E ID="2"> 0 3 </E>
<E ID="3"> 1 4 </E>
<E ID="4"> 2 5 </E>
<E ID="5"> 3 4 </E>
<E ID="6"> 4 5 </E>
<E ID="7"> 3 6 </E>
<E ID="8"> 4 7 </E>
<E ID="9"> 5 8 </E>
<E ID="10"> 6 7 </E>
<E ID="11"> 7 8 </E>
</EDGE>
<ELEMENT>
<Q ID="0"> 2 0 3 5 </Q>
<Q ID="1"> 4 6 3 1 </Q>
<Q ID="2"> 10 7 5 8 </Q>
<Q ID="3"> 11 8 6 9 </Q>
</ELEMENT>
<COMPOSITE>
<C ID="0"> Q[0-3] </C>
<C ID="1"> E[0,1,2,4,7,9,10,11] </C>
</COMPOSITE>
<DOMAIN> C[0] </DOMAIN>
</GEOMETRY>
<EXPANSIONS>
<E COMPOSITE="C[0]" NUMMODES="4" FIELDS="u" TYPE="GAUSS_LAGRANGE" />
</EXPANSIONS>
<CONDITIONS>
<PARAMETERS>
<P> TimeStep = 0.000001 </P>
<P> NumSteps = 100 </P>
<P> FinTime = TimeStep*NumSteps </P>
<P> IO_CheckSteps = 100000 </P>
<P> IO_InfoSteps = 100000 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusion" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="DiffusionType" VALUE="LDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Explicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
<VARIABLES>
<V ID="0"> u </V>
</VARIABLES>
<BOUNDARYREGIONS>
<B ID="0"> C[1] </B>
</BOUNDARYREGIONS>
<BOUNDARYCONDITIONS>
<REGION REF="0">
<D VAR="u" USERDEFINEDTYPE="TimeDependent"
VALUE="exp(-2.0*PI*PI*t)*sin(PI*x)*sin(PI*y)" />
</REGION>
</BOUNDARYCONDITIONS>
<FUNCTION NAME="ExactSolution">
<E VAR="u" VALUE="exp(-2.0*PI*PI*FinTime)*sin(PI*x)*sin(PI*y)" />
</FUNCTION>
<FUNCTION NAME="InitialConditions">
<E VAR="u" VALUE="sin(PI*x)*sin(PI*y)" />
</FUNCTION>
</CONDITIONS>
</NEKTAR>
<?xml version="1.0" encoding="utf-8"?>
<test>
<description>2D unsteady LDG explicit diffusion, regular quads, P=10, GAUSS Neumann bcs </description>
<executable>ADRSolver</executable>
<parameters>ExDiffusion_2D_LDG_regular_Neumann_GAUSS.xml</parameters>
<files>
<file description="Session File"> ExDiffusion_2D_LDG_regular_Neumann_GAUSS.xml </file>
</files>
<metrics>
<metric type="L2" id="1">
<value variable="u" tolerance="1e-12">7.67388e-08</value>
</metric>
<metric type="Linf" id="2">
<value variable="u" tolerance="1e-12">1.18863e-07</value>
</metric>
</metrics>
</test>
<?xml version="1.0" encoding="utf-8"?>
<NEKTAR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.nektar.info/schema/nektar.xsd">
<GEOMETRY DIM="2" SPACE="2">
<VERTEX>
<V ID="0"> -1.5 -1.5 0.0 </V>
<V ID="1"> 0.0 -1.5 0.0 </V>
<V ID="2"> 1.5 -1.5 0.0 </V>
<V ID="3"> -1.5 0.0 0.0 </V>
<V ID="4"> 0.0 0.0 0.0 </V>
<V ID="5"> 1.5 0.0 0.0 </V>
<V ID="6"> -1.5 1.5 0.0 </V>
<V ID="7"> 0.0 1.5 0.0 </V>
<V ID="8"> 1.5 1.5 0.0 </V>
</VERTEX>
<EDGE>
<E ID="0"> 0 1 </E>
<E ID="1"> 1 2 </E>
<E ID="2"> 0 3 </E>
<E ID="3"> 1 4 </E>
<E ID="4"> 2 5 </E>
<E ID="5"> 3 4 </E>
<E ID="6"> 4 5 </E>
<E ID="7"> 3 6 </E>
<E ID="8"> 4 7 </E>
<E ID="9"> 5 8 </E>
<E ID="10"> 6 7 </E>
<E ID="11"> 7 8 </E>
</EDGE>
<ELEMENT>
<Q ID="0"> 2 0 3 5 </Q>
<Q ID="1"> 1 4 6 3 </Q>
<Q ID="2"> 10 7 5 8 </Q>
<Q ID="3"> 11 8 6 9 </Q>
</ELEMENT>
<COMPOSITE>
<C ID="0"> Q[0-3] </C>
<C ID="1"> E[0,1,2,4,7,9,10,11] </C>
</COMPOSITE>
<DOMAIN> C[0] </DOMAIN>
</GEOMETRY>
<EXPANSIONS>
<E COMPOSITE="C[0]" NUMMODES="11" FIELDS="u" TYPE="GAUSS_LAGRANGE" />
</EXPANSIONS>
<CONDITIONS>
<PARAMETERS>
<P> TimeStep = 0.000001 </P>
<P> NumSteps = 100 </P>
<P> FinTime = TimeStep*NumSteps </P>
<P> IO_CheckSteps = 100000 </P>
<P> IO_InfoSteps = 100000 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyDiffusion" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="DiffusionType" VALUE="LDG" />
<I PROPERTY="DiffusionAdvancement" VALUE="Explicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
<VARIABLES>
<V ID="0"> u </V>
</VARIABLES>
<BOUNDARYREGIONS>
<B ID="0"> C[1] </B>
</BOUNDARYREGIONS>
<BOUNDARYCONDITIONS>
<REGION REF="0">
<N VAR="u" VALUE="0" />
</REGION>
</BOUNDARYCONDITIONS>
<FUNCTION NAME="ExactSolution">
<E VAR="u" VALUE="exp(-2.0*PI*PI*FinTime)*sin(PI*x)*sin(PI*y)" />
</FUNCTION>
<FUNCTION NAME="InitialConditions">
<E VAR="u" VALUE="sin(PI*x)*sin(PI*y)" />
</FUNCTION>
</CONDITIONS>
</NEKTAR>
......@@ -41,7 +41,9 @@ IF( NEKTAR_SOLVER_COMPRESSIBLE_FLOW )
ADD_NEKTAR_TEST(RinglebFlow_P3)
ADD_NEKTAR_TEST(RinglebFlow_P8)
ADD_NEKTAR_TEST(Couette_WeakDG_LDG_SEM)
ADD_NEKTAR_TEST(Couette_WeakDG_LDG_GAUSS)
ADD_NEKTAR_TEST(Couette_FRHU_LDG_SEM)
ADD_NEKTAR_TEST(Couette_FRDG_LDG_GAUSS)
ADD_NEKTAR_TEST(Couette_WeakDG_LFRHU_SEM)
ADD_NEKTAR_TEST(Couette_FRHU_LFRHU_SEM)
ADD_NEKTAR_TEST(Couette_WeakDG_LDG_MODIFIED)
......
<?xml version="1.0" encoding="utf-8"?>
<test>
<description>NS, Couette flow, mixed bcs, FRDG advection and LDG diffusion, GAUSS</description>
<executable>CompressibleFlowSolver</executable>
<parameters>Couette_FRDG_LDG_GAUSS.xml</parameters>
<files>
<file description="Session File">Couette_FRDG_LDG_GAUSS.xml</file>
</files>
<metrics>
<metric type="L2" id="1">
<value variable="rho" tolerance="1e-12">0.087961</value>
<value variable="rhou" tolerance="1e-12">60.336</value>
<value variable="rhov" tolerance="1e-8">0.227323</value>
<value variable="E" tolerance="1e-12">4924.14</value>
</metric>
<metric type="Linf" id="2">
<value variable="rho" tolerance="1e-12">0.0736791</value>
<value variable="rhou" tolerance="1e-12">61.0599</value>
<value variable="rhov" tolerance="2e-6">0.262734</value>
<value variable="E" tolerance="1e-12">4423.8</value>
</metric>
</metrics>
</test>
<?xml version="1.0" encoding="utf-8" ?>
<NEKTAR>
<GEOMETRY DIM="2" SPACE="2">
<VERTEX>
<V ID="0">-1.00000000e+00 0.00000000e+00 0.00000000e+00</V>
<V ID="1">-5.00000000e-01 0.00000000e+00 0.00000000e+00</V>
<V ID="2">-5.00000000e-01 5.00000000e-01 0.00000000e+00</V>
<V ID="3">-1.00000000e+00 5.00000000e-01 0.00000000e+00</V>
<V ID="4">-5.00000000e-01 1.00000000e+00 0.00000000e+00</V>
<V ID="5">-1.00000000e+00 1.00000000e+00 0.00000000e+00</V>
<V ID="6">-2.08166817e-12 0.00000000e+00 0.00000000e+00</V>
<V ID="7">-2.77555797e-17 5.00000000e-01 0.00000000e+00</V>
<V ID="8">2.08166817e-12 1.00000000e+00 0.00000000e+00</V>
<V ID="9">5.00000000e-01 0.00000000e+00 0.00000000e+00</V>
<V ID="10">5.00000000e-01 5.00000000e-01 0.00000000e+00</V>
<V ID="11">5.00000000e-01 1.00000000e+00 0.00000000e+00</V>
<V ID="12">1.00000000e+00 0.00000000e+00 0.00000000e+00</V>
<V ID="13">1.00000000e+00 5.00000000e-01 0.00000000e+00</V>
<V ID="14">1.00000000e+00 1.00000000e+00 0.00000000e+00</V>
</VERTEX>
<EDGE>
<E ID="0"> 0 1 </E>
<E ID="1"> 1 2 </E>
<E ID="2"> 2 3 </E>
<E ID="3"> 3 0 </E>
<E ID="4"> 2 4 </E>
<E ID="5"> 4 5 </E>
<E ID="6"> 5 3 </E>
<E ID="7"> 1 6 </E>
<E ID="8"> 6 7 </E>
<E ID="9"> 7 2 </E>
<E ID="10"> 7 8 </E>
<E ID="11"> 8 4 </E>
<E ID="12"> 6 9 </E>
<E ID="13"> 9 10 </E>
<E ID="14"> 10 7 </E>
<E ID="15"> 10 11 </E>
<E ID="16"> 11 8 </E>
<E ID="17"> 9 12 </E>
<E ID="18"> 12 13 </E>
<E ID="19"> 13 10 </E>
<E ID="20"> 13 14 </E>
<E ID="21"> 14 11 </E>
</EDGE>
<ELEMENT>
<Q ID="0"> 0 1 2 3 </Q>
<Q ID="1"> 2 4 5 6 </Q>
<Q ID="2"> 7 8 9 1 </Q>
<Q ID="3"> 9 10 11 4 </Q>
<Q ID="4"> 12 13 14 8 </Q>
<Q ID="5"> 14 15 16 10 </Q>
<Q ID="6"> 17 18 19 13 </Q>
<Q ID="7"> 19 20 21 15 </Q>
</ELEMENT>
<COMPOSITE>
<C ID="0"> Q[0-7] </C>
<C ID="100"> E[0,7,12,17] </C>
<C ID="200"> E[18,20] </C>
<C ID="300"> E[5,11,16,21] </C>
<C ID="400"> E[3,6] </C>
</COMPOSITE>
<DOMAIN> C[0] </DOMAIN>
</GEOMETRY>
<EXPANSIONS>
<E COMPOSITE="C[0]" NUMMODES="3" FIELDS="rho,rhou,rhov,E" TYPE="GAUSS_LAGRANGE" />
</EXPANSIONS>
<CONDITIONS>
<!-- Castonguay Test-Case -->
<!-- M = 0.2, Re = 200, Pr = 0.72 -->