Commit 5a6669a1 authored by Douglas Serson's avatar Douglas Serson

Merge branch 'feature/CFS-PressureOutlet' into 'master'

Feature/cfs pressure outlet

See merge request !981
parents 4eac42a9 8c96214c
Pipeline #503 failed with stage
in 0 seconds
......@@ -126,6 +126,8 @@ v5.0.0
seg, quad and hex elements (!771, !862)
- Fix compressible solver with NUMMODES=1 (!868)
- Introduce equations of state to account for real gas effects (!880)
- Modified pressure outlet BCs to allow for the reference static pressure to be
set from the VALUE fields (!981)
**AcousticSolver:**
- Added two new boundary conditions to the APE system: RiemannInvariantBC
......
......@@ -54,6 +54,14 @@ PressureOutflowBC::PressureOutflowBC(
const int cnt)
: CFSBndCond(pSession, pFields, pTraceNormals, pSpaceDim, bcRegion, cnt)
{
int numBCPts = m_fields[0]->
GetBndCondExpansions()[m_bcRegion]->GetNpoints();
m_pressureStorage = Array<OneD, NekDouble>(numBCPts, 0.0);
// Get Pressure
Vmath::Vcopy(numBCPts,
m_fields[m_spacedim+1]->GetBndCondExpansions()[m_bcRegion]->GetPhys(), 1,
m_pressureStorage, 1);
}
void PressureOutflowBC::v_Apply(
......@@ -66,8 +74,7 @@ void PressureOutflowBC::v_Apply(
int nVariables = physarray.num_elements();
int nDimensions = m_spacedim;
const Array<OneD, const int> &traceBndMap
= m_fields[0]->GetTraceBndMap();
const Array<OneD, const int> &traceBndMap = m_fields[0]->GetTraceBndMap();
// Computing the normal velocity for characteristics coming
// from inside the computational domain
......@@ -99,19 +106,19 @@ void PressureOutflowBC::v_Apply(
// Loop on the m_bcRegions
for (e = 0; e < m_fields[0]->GetBndCondExpansions()[m_bcRegion]->
GetExpSize(); ++e)
GetExpSize(); ++e)
{
npts = m_fields[0]->GetBndCondExpansions()[m_bcRegion]->
GetExp(e)->GetTotPoints();
GetExp(e)->GetTotPoints();
id1 = m_fields[0]->GetBndCondExpansions()[m_bcRegion]->
GetPhys_Offset(e) ;
GetPhys_Offset(e);
id2 = m_fields[0]->GetTrace()->GetPhys_Offset(traceBndMap[m_offset+e]);
// Get internal energy
Array<OneD, NekDouble> pressure (npts, m_pInf);
Array<OneD, NekDouble> pressure (npts, m_pressureStorage+id1);
Array<OneD, NekDouble> rho (npts, Fwd[0]+id2);
Array<OneD, NekDouble> e(npts);
m_varConv->GetEFromRhoP(rho, pressure, e);
Array<OneD, NekDouble> Ei(npts);
m_varConv->GetEFromRhoP(rho, pressure, Ei);
// Loop on points of m_bcRegion 'e'
for (i = 0; i < npts; i++)
......@@ -128,17 +135,17 @@ void PressureOutflowBC::v_Apply(
Ek += 0.5 * (Fwd[j][pnt] * Fwd[j][pnt]) / Fwd[0][pnt];
}
rhoeb = Fwd[0][pnt] * e[i] + Ek;
rhoeb = Fwd[0][pnt] * Ei[i] + Ek;
// Partial extrapolation for subsonic cases
for (j = 0; j < nVariables-1; ++j)
{
(m_fields[j]->GetBndCondExpansions()[m_bcRegion]->
UpdatePhys())[id1+i] = Fwd[j][pnt];
UpdatePhys())[id1+i] = Fwd[j][pnt];
}
(m_fields[nVariables-1]->GetBndCondExpansions()[m_bcRegion]->
UpdatePhys())[id1+i] = rhoeb;
UpdatePhys())[id1+i] = rhoeb;
}
// Supersonic flows
else
......
......@@ -82,8 +82,11 @@ class PressureOutflowBC : public CFSBndCond
const int pSpaceDim,
const int bcRegion,
const int cnt);
virtual ~PressureOutflowBC(void){};
// Field storage for PressureOutflow
Array<OneD, NekDouble> m_pressureStorage;
};
}
......
///////////////////////////////////////////////////////////////////////////////
//
// File: PressureOutflowFileBC.cpp
//
// For more information, please see: http://www.nektar.info
//
// The MIT License
//
// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
// Department of Aeronautics, Imperial College London (UK), and Scientific
// Computing and Imaging Institute, University of Utah (USA).
//
// License for the specific language governing rights and limitations under
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
// Description: Pressure outflow boundary condition
//
///////////////////////////////////////////////////////////////////////////////
#include "PressureOutflowFileBC.h"
using namespace std;
namespace Nektar
{
std::string PressureOutflowFileBC::className = GetCFSBndCondFactory().
RegisterCreatorFunction("PressureOutflowFile",
PressureOutflowFileBC::create,
"Pressure outflow (file) boundary condition.");
PressureOutflowFileBC::PressureOutflowFileBC(
const LibUtilities::SessionReaderSharedPtr& pSession,
const Array<OneD, MultiRegions::ExpListSharedPtr>& pFields,
const Array<OneD, Array<OneD, NekDouble> >& pTraceNormals,
const int pSpaceDim,
const int bcRegion,
const int cnt)
: CFSBndCond(pSession, pFields, pTraceNormals, pSpaceDim, bcRegion, cnt)
{
int nvariables = m_fields.num_elements();
// Loop over Boundary Regions for PressureOutflowFileBC
Array<OneD, Array<OneD, NekDouble> > tmpStorage(nvariables);
int numBCPts = m_fields[0]->
GetBndCondExpansions()[m_bcRegion]->GetNpoints();
m_pressureStorage = Array<OneD, NekDouble>(numBCPts, 0.0);
for (int i = 0; i < nvariables; ++i)
{
tmpStorage[i] = Array<OneD, NekDouble>(numBCPts, 0.0);
Vmath::Vcopy(
numBCPts,
m_fields[i]->GetBndCondExpansions()[m_bcRegion]->GetPhys(), 1,
tmpStorage[i], 1);
}
// Get Pressure
m_pressureStorage = Array<OneD, NekDouble> (numBCPts, 0.0);
m_varConv->GetPressure(tmpStorage, m_pressureStorage);
}
void PressureOutflowFileBC::v_Apply(
Array<OneD, Array<OneD, NekDouble> > &Fwd,
Array<OneD, Array<OneD, NekDouble> > &physarray,
const NekDouble &time)
{
int i, j;
int nTracePts = m_fields[0]->GetTrace()->GetNpoints();
int nVariables = physarray.num_elements();
int nDimensions = m_spacedim;
const Array<OneD, const int> &traceBndMap
= m_fields[0]->GetTraceBndMap();
// Computing the normal velocity for characteristics coming
// from inside the computational domain
Array<OneD, NekDouble > Vn (nTracePts, 0.0);
Array<OneD, NekDouble > Vel(nTracePts, 0.0);
for (i = 0; i < nDimensions; ++i)
{
Vmath::Vdiv(nTracePts, Fwd[i+1], 1, Fwd[0], 1, Vel, 1);
Vmath::Vvtvp(nTracePts, m_traceNormals[i], 1, Vel, 1, Vn, 1, Vn, 1);
}
// Get speed of sound
Array<OneD, NekDouble > soundSpeed(nTracePts);
m_varConv->GetSoundSpeed(Fwd, soundSpeed);
// Get Mach
Array<OneD, NekDouble > Mach(nTracePts, 0.0);
Vmath::Vdiv(nTracePts, Vn, 1, soundSpeed, 1, Mach, 1);
Vmath::Vabs(nTracePts, Mach, 1, Mach, 1);
// Auxiliary variables
int e, id1, id2, npts, pnt;
NekDouble rhoeb;
// Loop on the m_bcRegions
for (e = 0; e < m_fields[0]->GetBndCondExpansions()[m_bcRegion]->
GetExpSize(); ++e)
{
npts = m_fields[0]->GetBndCondExpansions()[m_bcRegion]->
GetExp(e)->GetTotPoints();
id1 = m_fields[0]->GetBndCondExpansions()[m_bcRegion]->
GetPhys_Offset(e);
id2 = m_fields[0]->GetTrace()->GetPhys_Offset(traceBndMap[m_offset+e]);
// Get internal energy
Array<OneD, NekDouble> pressure (npts, m_pressureStorage+id1);
Array<OneD, NekDouble> rho (npts, Fwd[0]+id2);
Array<OneD, NekDouble> e(npts);
m_varConv->GetEFromRhoP(rho, pressure, e);
// Loop on points of m_bcRegion 'e'
for (i = 0; i < npts; i++)
{
pnt = id2+i;
// Subsonic flows
if (Mach[pnt] < 0.99)
{
// Kinetic energy calculation
NekDouble Ek = 0.0;
for (j = 1; j < nVariables-1; ++j)
{
Ek += 0.5 * (Fwd[j][pnt] * Fwd[j][pnt]) / Fwd[0][pnt];
}
rhoeb = Fwd[0][pnt] * e[i] + Ek;
// Partial extrapolation for subsonic cases
for (j = 0; j < nVariables-1; ++j)
{
(m_fields[j]->GetBndCondExpansions()[m_bcRegion]->
UpdatePhys())[id1+i] = Fwd[j][pnt];
}
(m_fields[nVariables-1]->GetBndCondExpansions()[m_bcRegion]->
UpdatePhys())[id1+i] = rhoeb;
}
// Supersonic flows
else
{
for (j = 0; j < nVariables; ++j)
{
// Extrapolation for supersonic cases
(m_fields[j]->GetBndCondExpansions()[m_bcRegion]->
UpdatePhys())[id1+i] = Fwd[j][pnt];
}
}
}
}
}
}
///////////////////////////////////////////////////////////////////////////////
//
// File: PressureOutflowFileBC.h
//
// For more information, please see: http://www.nektar.info
//
// The MIT License
//
// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
// Department of Aeronautics, Imperial College London (UK), and Scientific
// Computing and Imaging Institute, University of Utah (USA).
//
// License for the specific language governing rights and limitations under
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
// Description: Pressure outflow boundary condition
//
///////////////////////////////////////////////////////////////////////////////
#ifndef NEKTAR_SOLVERS_COMPRESSIBLEFLOWSOLVER_BNDCOND_PRESOUTFLOWFILEBC
#define NEKTAR_SOLVERS_COMPRESSIBLEFLOWSOLVER_BNDCOND_PRESOUTFLOWFILEBC
#include "CFSBndCond.h"
namespace Nektar
{
/**
* @brief Pressure outflow boundary conditions for compressible flow
* problems.
*/
class PressureOutflowFileBC : public CFSBndCond
{
public:
friend class MemoryManager<PressureOutflowFileBC>;
/// Creates an instance of this class
static CFSBndCondSharedPtr create(
const LibUtilities::SessionReaderSharedPtr& pSession,
const Array<OneD, MultiRegions::ExpListSharedPtr>& pFields,
const Array<OneD, Array<OneD, NekDouble> >& pTraceNormals,
const int pSpaceDim, const int bcRegion, const int cnt)
{
CFSBndCondSharedPtr p = MemoryManager<PressureOutflowFileBC>::
AllocateSharedPtr(pSession, pFields,
pTraceNormals, pSpaceDim, bcRegion, cnt);
return p;
}
///Name of the class
static std::string className;
protected:
virtual void v_Apply(
Array<OneD, Array<OneD, NekDouble> > &Fwd,
Array<OneD, Array<OneD, NekDouble> > &physarray,
const NekDouble &time);
private:
PressureOutflowFileBC(const LibUtilities::SessionReaderSharedPtr& pSession,
const Array<OneD, MultiRegions::ExpListSharedPtr>& pFields,
const Array<OneD, Array<OneD, NekDouble> >& pTraceNormals,
const int pSpaceDim,
const int bcRegion,
const int cnt);
virtual ~PressureOutflowFileBC(void){};
// Pressure storage for PressureOutflowFileBC
Array<OneD, NekDouble> m_pressureStorage;
};
}
#endif
......@@ -54,6 +54,14 @@ PressureOutflowNonReflectiveBC::PressureOutflowNonReflectiveBC(
const int cnt)
: CFSBndCond(pSession, pFields, pTraceNormals, pSpaceDim, bcRegion, cnt)
{
int numBCPts = m_fields[0]->
GetBndCondExpansions()[m_bcRegion]->GetNpoints();
m_pressureStorage = Array<OneD, NekDouble>(numBCPts, 0.0);
// Get Pressure
Vmath::Vcopy(numBCPts,
m_fields[m_spacedim+1]->GetBndCondExpansions()[m_bcRegion]->GetPhys(), 1,
m_pressureStorage, 1);
}
void PressureOutflowNonReflectiveBC::v_Apply(
......@@ -66,8 +74,7 @@ void PressureOutflowNonReflectiveBC::v_Apply(
int nVariables = physarray.num_elements();
int nDimensions = m_spacedim;
const Array<OneD, const int> &traceBndMap
= m_fields[0]->GetTraceBndMap();
const Array<OneD, const int> &traceBndMap = m_fields[0]->GetTraceBndMap();
// Computing the normal velocity for characteristics coming
// from inside the computational domain
......@@ -99,19 +106,19 @@ void PressureOutflowNonReflectiveBC::v_Apply(
// Loop on the m_bcRegions
for (e = 0; e < m_fields[0]->GetBndCondExpansions()[m_bcRegion]->
GetExpSize(); ++e)
GetExpSize(); ++e)
{
npts = m_fields[0]->GetBndCondExpansions()[m_bcRegion]->
GetExp(e)->GetTotPoints();
GetExp(e)->GetTotPoints();
id1 = m_fields[0]->GetBndCondExpansions()[m_bcRegion]->
GetPhys_Offset(e) ;
GetPhys_Offset(e);
id2 = m_fields[0]->GetTrace()->GetPhys_Offset(traceBndMap[m_offset+e]);
// Get internal energy
Array<OneD, NekDouble> pressure (npts, m_pInf);
Array<OneD, NekDouble> pressure (npts, m_pressureStorage+id1);
Array<OneD, NekDouble> rho (npts, Fwd[0]+id2);
Array<OneD, NekDouble> e(npts);
m_varConv->GetEFromRhoP(rho, pressure, e);
Array<OneD, NekDouble> Ei(npts);
m_varConv->GetEFromRhoP(rho, pressure, Ei);
// Loop on points of m_bcRegion 'e'
for (i = 0; i < npts; i++)
......@@ -128,17 +135,17 @@ void PressureOutflowNonReflectiveBC::v_Apply(
Ek += 0.5 * (Fwd[j][pnt] * Fwd[j][pnt]) / Fwd[0][pnt];
}
rhoeb = Fwd[0][pnt] * e[i] + Ek;
rhoeb = Fwd[0][pnt] * Ei[i] + Ek;
// Partial extrapolation for subsonic cases
for (j = 0; j < nVariables-1; ++j)
{
(m_fields[j]->GetBndCondExpansions()[m_bcRegion]->
UpdatePhys())[id1+i] = Fwd[j][pnt];
UpdatePhys())[id1+i] = Fwd[j][pnt];
}
(m_fields[nVariables-1]->GetBndCondExpansions()[m_bcRegion]->
UpdatePhys())[id1+i] = 2.0 * rhoeb - Fwd[nVariables-1][pnt];
UpdatePhys())[id1+i] = 2.0 * rhoeb - Fwd[nVariables-1][pnt];
}
// Supersonic flows
else
......@@ -147,7 +154,7 @@ void PressureOutflowNonReflectiveBC::v_Apply(
{
// Extrapolation for supersonic cases
(m_fields[j]->GetBndCondExpansions()[m_bcRegion]->
UpdatePhys())[id1+i] = Fwd[j][pnt];
UpdatePhys())[id1+i] = Fwd[j][pnt];
}
}
}
......
......@@ -84,8 +84,11 @@ class PressureOutflowNonReflectiveBC : public CFSBndCond
const int pSpaceDim,
const int bcRegion,
const int cnt);
virtual ~PressureOutflowNonReflectiveBC(void){};
// Field storage for PressureOutflow
Array<OneD, NekDouble> m_pressureStorage;
};
}
......
......@@ -7,7 +7,7 @@ IF (NOT NEKTAR_BUILD_SOLVERS)
ENDIF()
IF( NEKTAR_SOLVER_COMPRESSIBLE_FLOW )
SET(CompressibleFlowSolverSource
SET(CompressibleFlowSolverSource
./ArtificialDiffusion/ArtificialDiffusion.cpp
./ArtificialDiffusion/NonSmoothShockCapture.cpp
./ArtificialDiffusion/SmoothShockCapture.cpp
......@@ -17,7 +17,6 @@ IF( NEKTAR_SOLVER_COMPRESSIBLE_FLOW )
./BoundaryConditions/PressureInflowFileBC.cpp
./BoundaryConditions/PressureMachTemperatureBC.cpp
./BoundaryConditions/PressureOutflowBC.cpp
./BoundaryConditions/PressureOutflowFileBC.cpp
./BoundaryConditions/PressureOutflowNonReflectiveBC.cpp
./BoundaryConditions/RiemannInvariantBC.cpp
./BoundaryConditions/RinglebFlowBC.cpp
......@@ -58,7 +57,7 @@ IF( NEKTAR_SOLVER_COMPRESSIBLE_FLOW )
ADD_SOLVER_EXECUTABLE(CompressibleFlowSolver SOURCES ${CompressibleFlowSolverSource})
SUBDIRS(Utilities)
ADD_NEKTAR_TEST(CylinderSubsonic_FRDG_SEM)
ADD_NEKTAR_TEST(CylinderSubsonic_FRDG_GAUSS)
ADD_NEKTAR_TEST(CylinderSubsonic_FRHU_SEM LENGTHY)
......
......@@ -71,7 +71,7 @@
<P> FilterCutoff = 0.0 </P>
<P> FilterExponent = 16 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="EulerCFE" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
......@@ -116,10 +116,10 @@
<D VAR="E" USERDEFINEDTYPE="StagnationInflow" VALUE="pStagIn/(Gamma-1)" />
</REGION>
<REGION REF="3">
<D VAR="rho" USERDEFINEDTYPE="PressureOutflowFile" VALUE="rhoInf" />
<D VAR="rhou" USERDEFINEDTYPE="PressureOutflowFile" VALUE="0" />
<D VAR="rhov" USERDEFINEDTYPE="PressureOutflowFile" VALUE="0" />
<D VAR="E" USERDEFINEDTYPE="PressureOutflowFile" VALUE="pOut/(Gamma-1)" />
<D VAR="rho" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="rhou" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="rhov" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="E" USERDEFINEDTYPE="PressureOutflow" VALUE="pOut" />
</REGION>
</BOUNDARYCONDITIONS>
......
......@@ -72,7 +72,7 @@
<P> FilterCutoff = 0.0 </P>
<P> FilterExponent = 16 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="EulerCFE" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
......@@ -121,11 +121,11 @@
<D VAR="E" USERDEFINEDTYPE="StagnationInflow" VALUE="pStagIn/(Gamma-1)" />
</REGION>
<REGION REF="3">
<D VAR="rho" USERDEFINEDTYPE="PressureOutflowFile" VALUE="rhoInf" />
<D VAR="rhou" USERDEFINEDTYPE="PressureOutflowFile" VALUE="0" />
<D VAR="rhov" USERDEFINEDTYPE="PressureOutflowFile" VALUE="0" />
<D VAR="rhow" USERDEFINEDTYPE="PressureOutflowFile" VALUE="0" />
<D VAR="E" USERDEFINEDTYPE="PressureOutflowFile" VALUE="pOut/(Gamma-1)" />
<D VAR="rho" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="rhou" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="rhov" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="rhow" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="E" USERDEFINEDTYPE="PressureOutflow" VALUE="pOut" />
</REGION>
</BOUNDARYCONDITIONS>
......
......@@ -90,7 +90,7 @@
<CONDITIONS>
<PARAMETERS>
<!-- Simulation parameters -->
<P> TimeStep = 1e-5 </P>
<P> TimeStep = 1e-5 </P>
<P> NumSteps = 100 </P>
<P> IO_InfoSteps = 100 </P>
<P> IO_CheckSteps = 0 </P>
......@@ -127,7 +127,7 @@
<P> FilterCutoff = 0.0 </P>
<P> FilterExponent = 16 </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="EulerCFE" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
......@@ -156,9 +156,9 @@
<D VAR="E" USERDEFINEDTYPE="StagnationInflow" VALUE="pStagIn/(Gamma-1)" />
</REGION>
<REGION REF="1">
<D VAR="rho" USERDEFINEDTYPE="PressureOutflowFile" VALUE="rhoInf" />
<D VAR="rhou" USERDEFINEDTYPE="PressureOutflowFile" VALUE="0" />
<D VAR="E" USERDEFINEDTYPE="PressureOutflowFile" VALUE="pOut/(Gamma-1)" />
<D VAR="rho" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="rhou" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="E" USERDEFINEDTYPE="PressureOutflow" VALUE="pOut" />
</REGION>
</BOUNDARYCONDITIONS>
......
......@@ -27,7 +27,7 @@
</COMPOSITE>
<DOMAIN> C[0] </DOMAIN>
</GEOMETRY>
<EXPANSIONS>
<EXPANSIONS>
<E COMPOSITE="C[0]" NUMMODES="3" TYPE="GLL_LAGRANGE" FIELDS="rho,rhou,rhov,rhow, E" />
</EXPANSIONS>
<CONDITIONS>
......@@ -58,7 +58,7 @@
<P> Pr = 0.72 </P>
<P> Cp = (Gamma / (Gamma - 1))*GasConstant </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQType" VALUE="NavierStokesCFE" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
......@@ -78,7 +78,7 @@
<V ID="3"> rhow </V>
<V ID="4"> E </V>
</VARIABLES>
<BOUNDARYREGIONS>
<B ID="0"> C[1] </B>
<B ID="1"> C[2] </B>
......@@ -114,7 +114,7 @@
<D VAR="rhou" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="rhov" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="rhow" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="E" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="E" USERDEFINEDTYPE="PressureOutflow" VALUE="pInf" />
</REGION>
<REGION REF="4">
<P VAR="rho" VALUE="[5]" />
......@@ -131,14 +131,14 @@
<P VAR="E" VALUE="[4]" />
</REGION>
</BOUNDARYCONDITIONS>
<FUNCTION NAME="InitialConditions">
<F VAR="rho" FILE="hump3D.rst" />
<F VAR="rhou" FILE="hump3D.rst" />
<F VAR="rhov" FILE="hump3D.rst" />
<F VAR="rhow" FILE="hump3D.rst" />
<F VAR="E" FILE="hump3D.rst" />
</FUNCTION>
</FUNCTION>
<FUNCTION NAME="ExactSolution">
<E VAR="rho" VALUE="rhoInf" />
<E VAR="rhou" VALUE="rhoInf * uInf" />
......
......@@ -27,7 +27,7 @@
</COMPOSITE>
<DOMAIN> C[0] </DOMAIN>
</GEOMETRY>
<EXPANSIONS>
<EXPANSIONS>
<E COMPOSITE="C[0]" NUMMODES="3" TYPE="GLL_LAGRANGE_SEM" FIELDS="rho,rhou,rhov,rhow, E" />
</EXPANSIONS>
<CONDITIONS>
......@@ -58,7 +58,7 @@
<P> Pr = 0.72 </P>
<P> Cp = (Gamma / (Gamma - 1))*GasConstant </P>
</PARAMETERS>
<SOLVERINFO>
<I PROPERTY="EQType" VALUE="NavierStokesCFE" />
<I PROPERTY="Projection" VALUE="DisContinuous" />
......@@ -78,7 +78,7 @@
<V ID="3"> rhow </V>
<V ID="4"> E </V>
</VARIABLES>
<BOUNDARYREGIONS>
<B ID="0"> C[1] </B>
<B ID="1"> C[2] </B>
......@@ -115,7 +115,7 @@
<D VAR="rhou" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="rhov" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="rhow" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="E" USERDEFINEDTYPE="PressureOutflow" VALUE="0" />
<D VAR="E" USERDEFINEDTYPE="PressureOutflow" VALUE="pInf" />
</REGION>
<REGION REF="4">
<P VAR="rho" VALUE="[5]" />
......@@ -132,14 +132,14 @@
<P VAR="E" VALUE="[4]" />
</REGION>
</BOUNDARYCONDITIONS>
<FUNCTION NAME="InitialConditions">
<F VAR="rho" FILE="hump3D.rst" />
<F VAR="rhou" FILE="hump3D.rst" />
<F VAR="rhov" FILE="hump3D.rst" />
<F VAR="rhow" FILE="hump3D.rst" />
<F VAR="E" FILE="hump3D.rst" />
</FUNCTION>
</FUNCTION>
<FUNCTION NAME="ExactSolution">
<E VAR="rho" VALUE="rhoInf" />
<E VAR="rhou" VALUE="rhoInf * uInf" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment