Commit 6c61d6d8 authored by Gianmarco Mengaldo's avatar Gianmarco Mengaldo
Browse files

Couple of bugs fixed in FR 1D. Added a first implementation for FR 2D. Some...

Couple of bugs fixed in FR 1D. Added a first implementation for FR 2D. Some regression tests modified.


git-svn-id: https://gforge.sci.utah.edu/svn/nektar/trunk@4085 305cdda6-5ce1-45b3-a98d-dfc68c8b3305
parent 90050802
......@@ -42,34 +42,36 @@ namespace Nektar
AdvectionFactory& GetAdvectionFactory()
{
typedef Loki::SingletonHolder<AdvectionFactory,
Loki::CreateUsingNew,
Loki::NoDestroy > Type;
Loki::CreateUsingNew,
Loki::NoDestroy > Type;
return Type::Instance();
}
void Advection::InitObject(
const LibUtilities::SessionReaderSharedPtr pSession,
Array<OneD, MultiRegions::ExpListSharedPtr> pFields)
const LibUtilities::SessionReaderSharedPtr pSession,
Array<OneD, MultiRegions::ExpListSharedPtr> pFields)
{
v_InitObject(pSession, pFields);
}
void Advection::Advect(
const int nConvectiveFields,
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, Array<OneD, NekDouble> > &advVel,
const Array<OneD, Array<OneD, NekDouble> > &inarray,
Array<OneD, Array<OneD, NekDouble> > &outarray)
const int nConvectiveFields,
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, Array<OneD, NekDouble> > &advVel,
const Array<OneD, Array<OneD, NekDouble> > &inarray,
Array<OneD, Array<OneD, NekDouble> > &outarray)
{
v_Advect(nConvectiveFields, fields, advVel, inarray, outarray);
}
void Advection::InterpToInterface(
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
Array<OneD, NekDouble> &total,
Array<OneD, NekDouble> &InterfaceValue)
void Advection::divCorrFlux(
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, const NekDouble> &fluxX,
const Array<OneD, const NekDouble> &fluxY,
const Array<OneD, const NekDouble> &numericalFlux,
Array<OneD, NekDouble> &divCFlux)
{
v_InterpToInterface(fields, total, InterfaceValue);
v_divCorrFlux(fields, fluxX, fluxY, numericalFlux, divCFlux);
}
}
}
......@@ -50,28 +50,30 @@ namespace Nektar
namespace SolverUtils
{
typedef boost::function<void (
const int,
const Array<OneD, Array<OneD, NekDouble> >&,
Array<OneD, Array<OneD, NekDouble> >&)> AdvectionFluxVecCB;
const int,
const Array<OneD, Array<OneD, NekDouble> >&,
Array<OneD, Array<OneD, NekDouble> >&)> AdvectionFluxVecCB;
class Advection
{
public:
SOLVER_UTILS_EXPORT void InitObject(
LibUtilities::SessionReaderSharedPtr pSession,
Array<OneD, MultiRegions::ExpListSharedPtr> pFields);
LibUtilities::SessionReaderSharedPtr pSession,
Array<OneD, MultiRegions::ExpListSharedPtr> pFields);
SOLVER_UTILS_EXPORT void Advect(
const int nConvectiveFields,
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, Array<OneD, NekDouble> > &advVel,
const Array<OneD, Array<OneD, NekDouble> > &inarray,
Array<OneD, Array<OneD, NekDouble> > &outarray);
const int nConvectiveFields,
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, Array<OneD, NekDouble> > &advVel,
const Array<OneD, Array<OneD, NekDouble> > &inarray,
Array<OneD, Array<OneD, NekDouble> > &outarray);
SOLVER_UTILS_EXPORT void InterpToInterface(
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
Array<OneD, NekDouble> &total,
Array<OneD, NekDouble> &InterfaceValue);
SOLVER_UTILS_EXPORT void divCorrFlux(
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, const NekDouble> &fluxX,
const Array<OneD, const NekDouble> &fluxY,
const Array<OneD, const NekDouble> &numericalFlux,
Array<OneD, NekDouble> &fluxJumps);
template<typename FuncPointerT, typename ObjectPointerT>
void SetFluxVector(FuncPointerT func, ObjectPointerT obj)
......@@ -83,26 +85,28 @@ namespace Nektar
{
m_riemann = riemann;
}
protected:
virtual void v_InitObject(
LibUtilities::SessionReaderSharedPtr pSession,
Array<OneD, MultiRegions::ExpListSharedPtr> pFields)
LibUtilities::SessionReaderSharedPtr pSession,
Array<OneD, MultiRegions::ExpListSharedPtr> pFields)
{
};
virtual void v_Advect(
const int nConvectiveFields,
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, Array<OneD, NekDouble> > &advVel,
const Array<OneD, Array<OneD, NekDouble> > &inarray,
Array<OneD, Array<OneD, NekDouble> > &outarray) = 0;
const int nConvectiveFields,
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, Array<OneD, NekDouble> > &advVel,
const Array<OneD, Array<OneD, NekDouble> > &inarray,
Array<OneD, Array<OneD, NekDouble> > &outarray) = 0;
virtual void v_InterpToInterface(
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
Array<OneD, NekDouble> &total,
Array<OneD, NekDouble> &InterfaceValue)
virtual void v_divCorrFlux(
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, const NekDouble> &fluxX,
const Array<OneD, const NekDouble> &fluxY,
const Array<OneD, const NekDouble> &numericalFlux,
Array<OneD, NekDouble> &divCFlux)
{
};
......
This diff is collapsed.
......@@ -42,6 +42,8 @@
#include <LibUtilities/BasicUtils/SharedArray.hpp>
#include <LibUtilities/Communication/Comm.h>
#include <SpatialDomains/SpatialData.h>
#include <MultiRegions/AssemblyMap/AssemblyMapDG.h>
namespace Nektar
......@@ -58,8 +60,15 @@ namespace Nektar
static std::string type[];
Array<OneD, NekDouble> m_dGL;
Array<OneD, NekDouble> m_dGR;
Array<OneD, Array<OneD, NekDouble> > m_dGL_xi1;
Array<OneD, Array<OneD, NekDouble> > m_dGR_xi1;
Array<OneD, Array<OneD, NekDouble> > m_dGL_xi2;
Array<OneD, Array<OneD, NekDouble> > m_dGR_xi2;
Array<OneD, Array<OneD, NekDouble> > m_dGL_xi3;
Array<OneD, Array<OneD, NekDouble> > m_dGR_xi3;
DNekMatSharedPtr m_Ixm;
DNekMatSharedPtr m_Ixp;
protected:
AdvectionFR(std::string advType);
......@@ -69,22 +78,24 @@ namespace Nektar
std::string m_advType;
virtual void v_InitObject(
LibUtilities::SessionReaderSharedPtr pSession,
Array<OneD, MultiRegions::ExpListSharedPtr> pFields);
LibUtilities::SessionReaderSharedPtr pSession,
Array<OneD, MultiRegions::ExpListSharedPtr> pFields);
virtual void v_Advect(
const int nConvectiveFields,
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, Array<OneD, NekDouble> > &advVel,
const Array<OneD, Array<OneD, NekDouble> > &inarray,
Array<OneD, Array<OneD, NekDouble> > &outarray);
const int nConvectiveFields,
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, Array<OneD, NekDouble> > &advVel,
const Array<OneD, Array<OneD, NekDouble> > &inarray,
Array<OneD, Array<OneD, NekDouble> > &outarray);
virtual void v_InterpToInterface(
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
Array<OneD, NekDouble> &total,
Array<OneD, NekDouble> &InterfaceValue);
virtual void v_divCorrFlux(
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const Array<OneD, const NekDouble> &fluxX,
const Array<OneD, const NekDouble> &fluxY,
const Array<OneD, const NekDouble> &numericalFlux,
Array<OneD, NekDouble> &divCFlux);
};
}
}
#endif
......@@ -159,38 +159,51 @@ int main(int argc, char* argv[])
Execute("ADRSolver","Test_UnsteadyAdvectionDiffusion_3DHomo2D_MVM.xml","3D-Homogeneous-2D unsteady advection-diffusion (MVM)");
// Test inviscid Burger equation in 1D for DG and FR
Execute("ADRSolver","Test_InviscidBurger1D_m11_WeakDG_GLL_LAGRANGE.xml","1D unsteady WeakDG inviscidBurger GLL_LAGRANGE, P=11");
Execute("ADRSolver","Test_InviscidBurger1D_m11_WeakDG_MODIFIED.xml","1D unsteady WeakDG inviscidBurger MODIFIED, P=11");
Execute("ADRSolver","Test_InviscidBurger1D_WeakDG_GLL_LAGRANGE.xml","1D unsteady WeakDG inviscidBurger GLL_LAGRANGE, P=10");
Execute("ADRSolver","Test_InviscidBurger1D_WeakDG_MODIFIED.xml","1D unsteady WeakDG inviscidBurger MODIFIED, P=10");
Execute("ADRSolver","Test_InviscidBurger1D_FRDG_GLL_LAGRANGE.xml","1D unsteady FRDG inviscidBurger GLL_LAGRANGE, P=10");
Execute("ADRSolver","Test_InviscidBurger1D_FRDG_MODIFIED.xml","1D unsteady FRDG inviscidBurger MODIFIED, P=10");
Execute("ADRSolver","Test_InviscidBurger1D_FRSD_GLL_LAGRANGE.xml","1D unsteady FRSD inviscidBurger GLL_LAGRANGE, P=10");
Execute("ADRSolver","Test_InviscidBurger1D_m11_FRDG_GLL_LAGRANGE.xml","1D unsteady FRDG inviscidBurger GLL_LAGRANGE, P=11");
Execute("ADRSolver","Test_InviscidBurger1D_FRSD_MODIFIED.xml","1D unsteady FRSD inviscidBurger MODIFIED, P=10");
Execute("ADRSolver","Test_InviscidBurger1D_m11_FRDG_MODIFIED.xml","1D unsteady FRDG inviscidBurger MODIFIED, P=11");
Execute("ADRSolver","Test_InviscidBurger1D_FRHU_GLL_LAGRANGE.xml","1D unsteady FRHU inviscidBurger GLL_LAGRANGE, P=10");
Execute("ADRSolver","Test_InviscidBurger1D_m11_FRSD_GLL_LAGRANGE.xml","1D unsteady FRSD inviscidBurger GLL_LAGRANGE, P=11");
Execute("ADRSolver","Test_InviscidBurger1D_FRHU_MODIFIED.xml","1D unsteady FRHU inviscidBurger MODIFIED, P=10");
Execute("ADRSolver","Test_InviscidBurger1D_m11_FRSD_MODIFIED.xml","1D unsteady FRSD inviscidBurger MODIFIED, P=11");
Execute("ADRSolver","Test_InviscidBurger1D_FRDG_GLL_LAGRANGE_SEM.xml","1D unsteady FRDG inviscidBurger GLL_LAGRANGE_SEM, P=10");
Execute("ADRSolver","Test_InviscidBurger1D_m11_FRHU_GLL_LAGRANGE.xml","1D unsteady FRHU inviscidBurger GLL_LAGRANGE, P=11");
Execute("ADRSolver","Test_InviscidBurger1D_FRSD_GLL_LAGRANGE_SEM.xml","1D unsteady FRSD inviscidBurger GLL_LAGRANGE_SEM, P=10");
Execute("ADRSolver","Test_InviscidBurger1D_FRHU_GLL_LAGRANGE_SEM.xml","1D unsteady FRHU inviscidBurger GLL_LAGRANGE_SEM, P=10");
Execute("ADRSolver","Test_InviscidBurger1D_m11_FRHU_MODIFIED.xml","1D unsteady FRHU inviscidBurger MODIFIED, P=11");
// Test linear advection equation in 1D for DG and FR
Execute("ADRSolver","Test_Advection1D_m3_WeakDG_GLL_LAGRANGE.xml","1D unsteady WeakDG advection GLL_LAGRANGE, P=3");
Execute("ADRSolver","Test_Advection1D_WeakDG_GLL_LAGRANGE.xml","1D unsteady WeakDG advection GLL_LAGRANGE, P=3");
Execute("ADRSolver","Test_Advection1D_WeakDG_MODIFIED.xml","1D unsteady WeakDG advection MODIFIED, P=3");
Execute("ADRSolver","Test_Advection1D_FRDG_GLL_LAGRANGE.xml","1D unsteady FRDG advection GLL_LAGRANGE, P=3");
Execute("ADRSolver","Test_Advection1D_FRDG_MODIFIED.xml","1D unsteady FRDG advection MODIFIED, P=3");
Execute("ADRSolver","Test_Advection1D_m3_WeakDG_MODIFIED.xml","1D unsteady WeakDG advection MODIFIED, P=3");
Execute("ADRSolver","Test_Advection1D_FRSD_GLL_LAGRANGE.xml","1D unsteady FRSD advection GLL_LAGRANGE, P=3");
Execute("ADRSolver","Test_Advection1D_m3_FRDG_GLL_LAGRANGE.xml","1D unsteady FRDG advection GLL_LAGRANGE, P=3");
Execute("ADRSolver","Test_Advection1D_FRSD_MODIFIED.xml","1D unsteady FRSD advection MODIFIED, P=3");
Execute("ADRSolver","Test_Advection1D_m3_FRDG_MODIFIED.xml","1D unsteady FRDG advection MODIFIED, P=3");
Execute("ADRSolver","Test_Advection1D_FRHU_GLL_LAGRANGE.xml","1D unsteady FRHU advection GLL_LAGRANGE, P=3");
Execute("ADRSolver","Test_Advection1D_m3_FRSD_GLL_LAGRANGE.xml","1D unsteady FRSD advection GLL_LAGRANGE, P=3");
Execute("ADRSolver","Test_Advection1D_FRHU_MODIFIED.xml","1D unsteady FRHU advection MODIFIED, P=3");
Execute("ADRSolver","Test_Advection1D_m3_FRSD_MODIFIED.xml","1D unsteady FRSD advection MODIFIED, P=3");
Execute("ADRSolver","Test_Advection1D_FRDG_GLL_LAGRANGE_SEM.xml","1D unsteady FRDG advection GLL_LAGRANGE_SEM, P=3");
Execute("ADRSolver","Test_Advection1D_m3_FRHU_GLL_LAGRANGE.xml","1D unsteady FRHU advection GLL_LAGRANGE, P=3");
Execute("ADRSolver","Test_Advection1D_FRSD_GLL_LAGRANGE_SEM.xml","1D unsteady FRSD advection GLL_LAGRANGE_SEM, P=3");
Execute("ADRSolver","Test_Advection1D_m3_FRHU_MODIFIED.xml","1D unsteady FRHU advection MODIFIED, P=3");
Execute("ADRSolver","Test_Advection1D_FRHU_GLL_LAGRANGE_SEM.xml","1D unsteady FRHU advection GLL_LAGRANGE_SEM, P=3");
#ifdef NEKTAR_USING_FFTW
Execute("ADRSolver","Test_UnsteadyAdvectionDiffusion_3DHomo1D_FFT.xml","3D-Homogeneous-1D unsteady advection-diffusion (FFT)");
......
......@@ -38,7 +38,7 @@
</GEOMETRY>
<EXPANSIONS>
<E COMPOSITE="C[0]" FIELDS="u" TYPE="GLL_LAGRANGE" NUMMODES="3"/>
<E COMPOSITE="C[0]" FIELDS="u" TYPE="GLL_LAGRANGE" NUMMODES="4"/>
</EXPANSIONS>
<CONDITIONS>
......
<?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="GLL_LAGRANGE_SEM" NUMMODES="4"/>
</EXPANSIONS>
<CONDITIONS>
<PARAMETERS>
<P> FinTime = 20 </P>
<P> TimeStep = 0.01 </P>
<P> NumSteps = FinTime/TimeStep </P>
<P> IO_CheckSteps = 100000 </P>
<P> IO_InfoSteps = 100000 </P>
<P> advx = 1 </P>
<P> advy = 0 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="FRDG" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<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">
<P VAR="u" VALUE="[1]" />
</REGION>
<REGION REF="1">
<P VAR="u" VALUE="[0]" />
</REGION>
</BOUNDARYCONDITIONS>
<FUNCTION NAME="AdvectionVelocity">
<E VAR="Vx" VALUE="advx" />
</FUNCTION>
<FUNCTION NAME="InitialConditions">
<E VAR="u" VALUE="exp(-20.0*x*x)" />
</FUNCTION>
<FUNCTION NAME="ExactSolution">
<E VAR="u" VALUE="exp(-20.0*x*x)" />
</FUNCTION>
</CONDITIONS>
</NEKTAR>
......@@ -38,7 +38,7 @@
</GEOMETRY>
<EXPANSIONS>
<E COMPOSITE="C[0]" FIELDS="u" TYPE="MODIFIED" NUMMODES="3"/>
<E COMPOSITE="C[0]" FIELDS="u" TYPE="MODIFIED" NUMMODES="4"/>
</EXPANSIONS>
<CONDITIONS>
......
......@@ -38,7 +38,7 @@
</GEOMETRY>
<EXPANSIONS>
<E COMPOSITE="C[0]" FIELDS="u" TYPE="GLL_LAGRANGE" NUMMODES="3"/>
<E COMPOSITE="C[0]" FIELDS="u" TYPE="GLL_LAGRANGE" NUMMODES="4"/>
</EXPANSIONS>
<CONDITIONS>
......
<?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="GLL_LAGRANGE_SEM" NUMMODES="4"/>
</EXPANSIONS>
<CONDITIONS>
<PARAMETERS>
<P> FinTime = 20 </P>
<P> TimeStep = 0.01 </P>
<P> NumSteps = FinTime/TimeStep </P>
<P> IO_CheckSteps = 100000 </P>
<P> IO_InfoSteps = 100000 </P>
<P> advx = 1 </P>
<P> advy = 0 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
<I PROPERTY="AdvectionType" VALUE="FRHU" />
<I PROPERTY="UpwindType" VALUE="Upwind" />
<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">
<P VAR="u" VALUE="[1]" />
</REGION>
<REGION REF="1">
<P VAR="u" VALUE="[0]" />
</REGION>
</BOUNDARYCONDITIONS>
<FUNCTION NAME="AdvectionVelocity">
<E VAR="Vx" VALUE="advx" />
</FUNCTION>
<FUNCTION NAME="InitialConditions">
<E VAR="u" VALUE="exp(-20.0*x*x)" />
</FUNCTION>
<FUNCTION NAME="ExactSolution">
<E VAR="u" VALUE="exp(-20.0*x*x)" />
</FUNCTION>
</CONDITIONS>
</NEKTAR>
......@@ -38,7 +38,7 @@
</GEOMETRY>
<EXPANSIONS>
<E COMPOSITE="C[0]" FIELDS="u" TYPE="MODIFIED" NUMMODES="3"/>
<E COMPOSITE="C[0]" FIELDS="u" TYPE="MODIFIED" NUMMODES="4"/>
</EXPANSIONS>
<CONDITIONS>
......
......@@ -38,7 +38,7 @@
</GEOMETRY>
<EXPANSIONS>
<E COMPOSITE="C[0]" FIELDS="u" TYPE="GLL_LAGRANGE" NUMMODES="3"/>
<E COMPOSITE="C[0]" FIELDS="u" TYPE="GLL_LAGRANGE" NUMMODES="4"/>
</EXPANSIONS>
<CONDITIONS>
......
<?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="GLL_LAGRANGE_SEM" NUMMODES="4"/>
</EXPANSIONS>
<CONDITIONS>
<PARAMETERS>
<P> FinTime = 20 </P>
<P> TimeStep = 0.01 </P>