Commit 8f1f3842 authored by David Moxey's avatar David Moxey

Merge remote-tracking branch 'upstream/master' into feature/parseutils-simplify

parents 75cb1ef8 aac80c9a
...@@ -14,7 +14,7 @@ v5.0.0 ...@@ -14,7 +14,7 @@ v5.0.0
functionality in FUNCTIONs defined for forcings (!759) functionality in FUNCTIONs defined for forcings (!759)
- Add patch to tinyxml to fix size_t vs int bug (!820) - Add patch to tinyxml to fix size_t vs int bug (!820)
- Add ARPACK thirdparty build capabilities (!828) - Add ARPACK thirdparty build capabilities (!828)
- Added native support for csv files in addititon to pts (!760 !835) - Added native support for csv files in addititon to pts (!760, !835, !906)
- Utilize LAPACK_DIR env variable to find the native blas/lapack install (!827) - Utilize LAPACK_DIR env variable to find the native blas/lapack install (!827)
- Remove StdExpansion use from MultiRegion (use Expansions instead). (!831) - Remove StdExpansion use from MultiRegion (use Expansions instead). (!831)
- Move steady state check and CFL output from solvers to SolverUtils (!832) - Move steady state check and CFL output from solvers to SolverUtils (!832)
...@@ -34,9 +34,11 @@ v5.0.0 ...@@ -34,9 +34,11 @@ v5.0.0
- Fix mac OSX on buildbots (!876) - Fix mac OSX on buildbots (!876)
- Fix error from (!826) (!876) - Fix error from (!826) (!876)
- Fix minor bug in ARPACK thirdparty build cmake (!874) - Fix minor bug in ARPACK thirdparty build cmake (!874)
- Switch MeshGraph to use factory pattern and add HDF5 geometry support (!900, - Switch MeshGraph to use factory pattern and add HDF5 geometry support
!904) (!900, !904)
- Fix bug in MeshPartition.cpp which caused incorrect array access when
WeightPartitions was used in parallel (!923)
**NekMesh**: **NekMesh**:
- Add feature to read basic 2D geo files as CAD (!731) - Add feature to read basic 2D geo files as CAD (!731)
- Add periodic boundary condition meshing in 2D (!733) - Add periodic boundary condition meshing in 2D (!733)
...@@ -61,6 +63,10 @@ v5.0.0 ...@@ -61,6 +63,10 @@ v5.0.0
- Skip CFI groups of bodies and non-numbered nodes (!891) - Skip CFI groups of bodies and non-numbered nodes (!891)
- Add ability to space out 2D BL nodes to better fit local target Delta (!890) - Add ability to space out 2D BL nodes to better fit local target Delta (!890)
- Fix automatic peralign call in 2D periodic meshing (!888) - Fix automatic peralign call in 2D periodic meshing (!888)
- Fix BL splitting call from MCF (!910)
- Support CFI combined lines (!917)
- Order nodes in Gmsh output (!912)
- Fix manifold face curvature nodes (!913)
**FieldConvert**: **FieldConvert**:
- Add input module for Semtex field files (!777) - Add input module for Semtex field files (!777)
...@@ -86,6 +92,7 @@ v5.0.0 ...@@ -86,6 +92,7 @@ v5.0.0
- Allow performing axi-symmetric Euler simulations (!771) - Allow performing axi-symmetric Euler simulations (!771)
- Add ability to use an exponential filtering for stabilization with - Add ability to use an exponential filtering for stabilization with
seg, quad and hex elements (!771, !862) seg, quad and hex elements (!771, !862)
- Introduce equations of state to account for real gas effects (!880)
**APESolver:** **APESolver:**
- Added two new boundary conditions to the APE system: RiemannInvariantBC - Added two new boundary conditions to the APE system: RiemannInvariantBC
...@@ -106,6 +113,8 @@ v4.4.2 ...@@ -106,6 +113,8 @@ v4.4.2
- Fix calculation of BLPoints (!892) - Fix calculation of BLPoints (!892)
- Fix deadlock in DiffusionLDG (!885) - Fix deadlock in DiffusionLDG (!885)
- Fix uninitialised coefficients in DirectFull solver (!898) - Fix uninitialised coefficients in DirectFull solver (!898)
- Updated PETSc to 3.7.7 (!916)
- Fix typcase to an integer which set Lz < 1 to zero when postprocess hdf5 output (!9922)
**NekMesh** **NekMesh**
- Fix missing periodic boundary meshing and boundary layer mesh adjustment - Fix missing periodic boundary meshing and boundary layer mesh adjustment
...@@ -115,6 +124,7 @@ v4.4.2 ...@@ -115,6 +124,7 @@ v4.4.2
**Documentation**: **Documentation**:
- Fix sign of the viscous term in the velocity correction scheme equations in - Fix sign of the viscous term in the velocity correction scheme equations in
the user guide (!856) the user guide (!856)
- Fixed anonymous clone URL (!909)
**FieldConvert** **FieldConvert**
- Allow passing input name with trailing separator (!879) - Allow passing input name with trailing separator (!879)
......
...@@ -76,23 +76,22 @@ IF (NEKTAR_USE_PETSC) ...@@ -76,23 +76,22 @@ IF (NEKTAR_USE_PETSC)
ENDIF() ENDIF()
EXTERNALPROJECT_ADD( EXTERNALPROJECT_ADD(
petsc-3.7.2 petsc-3.7.7
DEPENDS ${PETSC_DEPS} DEPENDS ${PETSC_DEPS}
PREFIX ${TPSRC} PREFIX ${TPSRC}
STAMP_DIR ${TPBUILD}/stamp STAMP_DIR ${TPBUILD}/stamp
DOWNLOAD_DIR ${TPSRC} DOWNLOAD_DIR ${TPSRC}
SOURCE_DIR ${TPBUILD}/petsc-3.7.2 SOURCE_DIR ${TPBUILD}/petsc-3.7.7
TMP_DIR ${TPBUILD}/petsc-3.7.2-tmp TMP_DIR ${TPBUILD}/petsc-3.7.7-tmp
INSTALL_DIR ${TPDIST} INSTALL_DIR ${TPDIST}
BINARY_DIR ${TPBUILD}/petsc-3.7.2 BINARY_DIR ${TPBUILD}/petsc-3.7.7
URL http://www.nektar.info/thirdparty/petsc-lite-3.7.2.tar.gz URL ${TPURL}/petsc-lite-3.7.7.tar.gz
URL_MD5 "26c2ff8eaaa9e49aea063f839f5daa7e" URL_MD5 "7b476e38cfab4cddb26f73e5ef23538e"
CONFIGURE_COMMAND CONFIGURE_COMMAND
OMPI_FC=${CMAKE_Fortran_COMPILER} OMPI_FC=${CMAKE_Fortran_COMPILER}
OMPI_CC=${CMAKE_C_COMPILER} OMPI_CC=${CMAKE_C_COMPILER}
OMPI_CXX=${CMAKE_CXX_COMPILER} OMPI_CXX=${CMAKE_CXX_COMPILER}
${PYTHON_EXECUTABLE} ./configure ${PYTHON_EXECUTABLE} ./configure
./configure
--with-fc=${PETSC_Fortran_COMPILER} --with-fc=${PETSC_Fortran_COMPILER}
--with-cc=${PETSC_C_COMPILER} --with-cc=${PETSC_C_COMPILER}
--with-cxx=${PETSC_CXX_COMPILER} --with-cxx=${PETSC_CXX_COMPILER}
...@@ -121,7 +120,7 @@ IF (NEKTAR_USE_PETSC) ...@@ -121,7 +120,7 @@ IF (NEKTAR_USE_PETSC)
ENDIF (NOT PETSC_FOUND) ENDIF (NOT PETSC_FOUND)
SET(PETSC_CONFIG_INCLUDE_DIR ${PETSC_INCLUDES}) SET(PETSC_CONFIG_INCLUDE_DIR ${PETSC_INCLUDES})
INCLUDE_DIRECTORIES(${PETSC_INCLUDES}) INCLUDE_DIRECTORIES(${PETSC_INCLUDES})
ADD_CUSTOM_TARGET(petsc-3.7.2 ALL) ADD_CUSTOM_TARGET(petsc-3.7.7 ALL)
ENDIF (THIRDPARTY_BUILD_PETSC) ENDIF (THIRDPARTY_BUILD_PETSC)
ADD_DEFINITIONS(-DNEKTAR_USING_PETSC) ADD_DEFINITIONS(-DNEKTAR_USING_PETSC)
......
Subproject commit e128cfaffbbd37c734a667cdc2a07b6f06291615 Subproject commit b1461b45abb08c48397fe6d046249703c4f8f160
...@@ -24,7 +24,7 @@ There are two ways to obtain the source code for \nekpp: ...@@ -24,7 +24,7 @@ There are two ways to obtain the source code for \nekpp:
public repository. Use this initially if you would like to try using public repository. Use this initially if you would like to try using
Nektar++ or make local changes to the code. Nektar++ or make local changes to the code.
\begin{lstlisting}[style=BashInputStyle] \begin{lstlisting}[style=BashInputStyle]
git clone http://gitlab.nektar.info/clone/nektar/nektar.git nektar++ git clone https://gitlab.nektar.info/nektar/nektar.git nektar++
\end{lstlisting} \end{lstlisting}
\item Using authenticated access. This will allow you to directly contribute \item Using authenticated access. This will allow you to directly contribute
back into the code. back into the code.
......
...@@ -243,6 +243,7 @@ Under this section it is possible to set the solver information. ...@@ -243,6 +243,7 @@ Under this section it is possible to set the solver information.
<I PROPERTY="UpwindType" VALUE="ExactToro" /> <I PROPERTY="UpwindType" VALUE="ExactToro" />
<I PROPERTY="ProblemType" VALUE="General" /> <I PROPERTY="ProblemType" VALUE="General" />
<I PROPERTY="ViscosityType" VALUE="Constant" /> <I PROPERTY="ViscosityType" VALUE="Constant" />
<I PROPERTY="EquationOfState" VALUE="IdealGas" />
</SOLVERINFO> </SOLVERINFO>
\end{lstlisting} \end{lstlisting}
\begin{itemize} \begin{itemize}
...@@ -303,6 +304,15 @@ we want to use for the advection operator: ...@@ -303,6 +304,15 @@ we want to use for the advection operator:
\item \inltt{Constant} (Constant viscosity); \item \inltt{Constant} (Constant viscosity);
\item \inltt{Variable} (Variable viscosity through the Sutherland's law.); \item \inltt{Variable} (Variable viscosity through the Sutherland's law.);
\end{itemize} \end{itemize}
\item \inltt{EquationOfState} allows selecting an equation of state for
accounting for non-ideal gas behaviour:
\begin{itemize}
\item \inltt{IdealGas} (default option);
\item \inltt{VanDerWaals} (requires additional parameters \inltt{Tcrit} and \inltt{Pcrit});
\item \inltt{RedlichKwong} (requires additional parameters \inltt{Tcrit} and \inltt{Pcrit});
\item \inltt{PengRobinson} (requires additional parameters \inltt{Tcrit}, \inltt{Pcrit} and
\inltt{AcentricFactor});
\end{itemize}
\end{itemize} \end{itemize}
\subsection*{Boundary conditions} \subsection*{Boundary conditions}
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<test> <test>
<description>Helmholtz 3D CG, prisms, Neumann BCs, iterative ML, Par(3)</description> <description>Helmholtz 3D CG, prisms, Neumann BCs, iterative ML, Par(3)</description>
<executable>Helmholtz3D</executable> <executable>Helmholtz3D</executable>
<parameters>--use-metis Helmholtz3D_Prism.xml</parameters> <parameters>--use-metis -I WeightPartitions=Boundary Helmholtz3D_Prism.xml</parameters>
<processes>3</processes> <processes>3</processes>
<files> <files>
<file description="Session File">Helmholtz3D_Prism.xml</file> <file description="Session File">Helmholtz3D_Prism.xml</file>
......
...@@ -86,13 +86,13 @@ void InputPts::Process(po::variables_map &vm) ...@@ -86,13 +86,13 @@ void InputPts::Process(po::variables_map &vm)
string inFile = m_config["infile"].as<string>(); string inFile = m_config["infile"].as<string>();
// Determine appropriate field input // Determine appropriate field input
if (m_f->m_inputfiles.count("pts") != 0) if (m_f->m_inputfiles.count("csv") != 0)
{ {
LibUtilities::CsvIOSharedPtr csvIO = LibUtilities::CsvIOSharedPtr csvIO =
MemoryManager<LibUtilities::CsvIO>::AllocateSharedPtr(m_f->m_comm); MemoryManager<LibUtilities::CsvIO>::AllocateSharedPtr(m_f->m_comm);
csvIO->Import(inFile, m_f->m_fieldPts); csvIO->Import(inFile, m_f->m_fieldPts);
} }
else if (m_f->m_inputfiles.count("csv") != 0) else if (m_f->m_inputfiles.count("pts") != 0)
{ {
LibUtilities::PtsIOSharedPtr ptsIO = LibUtilities::PtsIOSharedPtr ptsIO =
MemoryManager<LibUtilities::PtsIO>::AllocateSharedPtr(m_f->m_comm); MemoryManager<LibUtilities::PtsIO>::AllocateSharedPtr(m_f->m_comm);
......
...@@ -151,6 +151,7 @@ void ProcessHomogeneousPlane::Process(po::variables_map &vm) ...@@ -151,6 +151,7 @@ void ProcessHomogeneousPlane::Process(po::variables_map &vm)
} }
m_f->m_session = LibUtilities::SessionReader::CreateInstance( m_f->m_session = LibUtilities::SessionReader::CreateInstance(
argc, (char **)argv, files, m_f->m_comm->GetRowComm()); argc, (char **)argv, files, m_f->m_comm->GetRowComm());
m_f->m_session->InitSession();
} }
else else
{ {
......
...@@ -328,7 +328,7 @@ void FieldIOHdf5::v_Write(const std::string &outFile, ...@@ -328,7 +328,7 @@ void FieldIOHdf5::v_Write(const std::string &outFile,
homoLengths[f].resize(nSubFields); homoLengths[f].resize(nSubFields);
for (int sf = 0; sf < nSubFields; ++sf) for (int sf = 0; sf < nSubFields; ++sf)
{ {
uint64_t len = fielddefs[f]->m_homogeneousLengths[sf]; NekDouble len = fielddefs[f]->m_homogeneousLengths[sf];
hashStream << len; hashStream << len;
homoLengths[f][sf] = len; homoLengths[f][sf] = len;
} }
......
...@@ -428,7 +428,7 @@ ENDIF() ...@@ -428,7 +428,7 @@ ENDIF()
IF( NEKTAR_USE_PETSC ) IF( NEKTAR_USE_PETSC )
TARGET_LINK_LIBRARIES(LibUtilities LINK_PRIVATE ${PETSC_LIBRARIES}) TARGET_LINK_LIBRARIES(LibUtilities LINK_PRIVATE ${PETSC_LIBRARIES})
TARGET_LINK_LIBRARIES(LibUtilities LINK_PUBLIC ${CMAKE_DL_LIBS}) TARGET_LINK_LIBRARIES(LibUtilities LINK_PUBLIC ${CMAKE_DL_LIBS})
ADD_DEPENDENCIES(LibUtilities petsc-3.7.2) ADD_DEPENDENCIES(LibUtilities petsc-3.7.7)
ENDIF( NEKTAR_USE_PETSC ) ENDIF( NEKTAR_USE_PETSC )
# HDF5 # HDF5
......
...@@ -147,7 +147,7 @@ ENDIF( NEKTAR_USE_MPI ) ...@@ -147,7 +147,7 @@ ENDIF( NEKTAR_USE_MPI )
IF( NEKTAR_USE_PETSC ) IF( NEKTAR_USE_PETSC )
TARGET_LINK_LIBRARIES(MultiRegions LINK_PRIVATE ${PETSC_LIBRARIES}) TARGET_LINK_LIBRARIES(MultiRegions LINK_PRIVATE ${PETSC_LIBRARIES})
ADD_DEPENDENCIES(MultiRegions petsc-3.7.2) ADD_DEPENDENCIES(MultiRegions petsc-3.7.7)
ENDIF( NEKTAR_USE_PETSC ) ENDIF( NEKTAR_USE_PETSC )
INSTALL(DIRECTORY ./ DESTINATION ${NEKTAR_INCLUDE_DIR}/MultiRegions COMPONENT dev FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp") INSTALL(DIRECTORY ./ DESTINATION ${NEKTAR_INCLUDE_DIR}/MultiRegions COMPONENT dev FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")
......
...@@ -187,7 +187,31 @@ bool CADSystemCFI::LoadCAD() ...@@ -187,7 +187,31 @@ bool CADSystemCFI::LoadCAD()
{ {
vector<cfi::Oriented<cfi::TopoEntity *>> *edgeList = vector<cfi::Oriented<cfi::TopoEntity *>> *edgeList =
face->getChildList(); face->getChildList();
// unrolling combined edges
vector<cfi::Oriented<cfi::TopoEntity *>> fullEdgeList;
for (it2 = edgeList->begin(); it2 != edgeList->end(); it2++) for (it2 = edgeList->begin(); it2 != edgeList->end(); it2++)
{
cfi::Line *edge = static_cast<cfi::Line *>(it2->entity);
if (edge->getTopoSubtype() == cfi::SUBTYPE_COMBINED)
{
vector<cfi::Oriented<cfi::TopoEntity *>> *subEdgeList =
edge->getChildList();
for (it3 = subEdgeList->begin();
it3 != subEdgeList->end(); it3++)
{
fullEdgeList.push_back(*it3);
}
}
else
{
fullEdgeList.push_back(*it2);
}
}
for (it2 = fullEdgeList.begin(); it2 != fullEdgeList.end(); it2++)
{ {
cfi::Oriented<cfi::TopoEntity *> orientatedEdge = *it2; cfi::Oriented<cfi::TopoEntity *> orientatedEdge = *it2;
cfi::Line *edge = cfi::Line *edge =
...@@ -311,15 +335,45 @@ void CADSystemCFI::AddSurf(int i, cfi::Face *in) ...@@ -311,15 +335,45 @@ void CADSystemCFI::AddSurf(int i, cfi::Face *in)
vector<cfi::Oriented<cfi::TopoEntity *>> *edgeList = in->getChildList(); vector<cfi::Oriented<cfi::TopoEntity *>> *edgeList = in->getChildList();
// unrolling combined edges
vector<cfi::Oriented<cfi::TopoEntity *>> fullEdgeList;
vector<cfi::Oriented<cfi::TopoEntity *>>::iterator it2, it3;
for (it2 = edgeList->begin(); it2 != edgeList->end(); it2++)
{
cfi::Line *edge = static_cast<cfi::Line *>(it2->entity);
if (edge->getTopoSubtype() == cfi::SUBTYPE_COMBINED)
{
vector<cfi::Oriented<cfi::TopoEntity *>> *subEdgeList =
edge->getChildList();
for (it3 = subEdgeList->begin(); it3 != subEdgeList->end(); it3++)
{
fullEdgeList.push_back(*it3);
}
if (it2->orientation == cfi::ORIENT_NEGATIVE)
{
reverse(fullEdgeList.begin() + fullEdgeList.size() -
subEdgeList->size(),
fullEdgeList.end());
}
}
else
{
fullEdgeList.push_back(*it2);
}
}
vector<EdgeLoopSharedPtr> edgeloops; vector<EdgeLoopSharedPtr> edgeloops;
int done = 0; int done = 0;
while (done != edgeList->size()) while (done != fullEdgeList.size())
{ {
EdgeLoopSharedPtr edgeloop = EdgeLoopSharedPtr(new EdgeLoop); EdgeLoopSharedPtr edgeloop = EdgeLoopSharedPtr(new EdgeLoop);
string firstVert; string firstVert;
vector<cfi::Oriented<cfi::TopoEntity *>> *vertList = vector<cfi::Oriented<cfi::TopoEntity *>> *vertList =
edgeList->at(done).entity->getChildList(); fullEdgeList.at(done).entity->getChildList();
if (edgeList->at(done).orientation == cfi::ORIENT_POSITIVE) if (fullEdgeList.at(done).orientation == cfi::ORIENT_POSITIVE)
{ {
firstVert = vertList->at(0).entity->getName(); firstVert = vertList->at(0).entity->getName();
edgeloop->edgeo.push_back(CADOrientation::eForwards); edgeloop->edgeo.push_back(CADOrientation::eForwards);
...@@ -331,13 +385,13 @@ void CADSystemCFI::AddSurf(int i, cfi::Face *in) ...@@ -331,13 +385,13 @@ void CADSystemCFI::AddSurf(int i, cfi::Face *in)
} }
edgeloop->edges.push_back( edgeloop->edges.push_back(
m_curves[nameToCurveId[edgeList->at(done).entity->getName()]]); m_curves[nameToCurveId[fullEdgeList.at(done).entity->getName()]]);
for (done++; done < edgeList->size(); done++) for (done++; done < fullEdgeList.size(); done++)
{ {
bool end = false; bool end = false;
vertList = edgeList->at(done).entity->getChildList(); vertList = fullEdgeList.at(done).entity->getChildList();
if (edgeList->at(done).orientation == cfi::ORIENT_POSITIVE) if (fullEdgeList.at(done).orientation == cfi::ORIENT_POSITIVE)
{ {
if (vertList->at(1).entity->getName() == firstVert) if (vertList->at(1).entity->getName() == firstVert)
{ {
...@@ -355,7 +409,7 @@ void CADSystemCFI::AddSurf(int i, cfi::Face *in) ...@@ -355,7 +409,7 @@ void CADSystemCFI::AddSurf(int i, cfi::Face *in)
} }
edgeloop->edges.push_back( edgeloop->edges.push_back(
m_curves[nameToCurveId[edgeList->at(done).entity->getName()]]); m_curves[nameToCurveId[fullEdgeList.at(done).entity->getName()]]);
if (end) if (end)
{ {
......
...@@ -859,7 +859,7 @@ void Module::RegisterConfig(string key, string val) ...@@ -859,7 +859,7 @@ void Module::RegisterConfig(string key, string val)
{ {
it->second.value = it->second.defValue; it->second.value = it->second.defValue;
} }
else else
{ {
it->second.value = val; it->second.value = val;
} }
......
...@@ -129,12 +129,21 @@ void HOSurfaceMesh::Process() ...@@ -129,12 +129,21 @@ void HOSurfaceMesh::Process()
FaceSharedPtr f = m_mesh->m_element[2][i]->GetFaceLink(); FaceSharedPtr f = m_mesh->m_element[2][i]->GetFaceLink();
bool dumFace = false;
if (!f) if (!f)
{ {
//This uses a fake face to build the high-order info
//in the case of 2D and manifold geometries without having to
//rewrite the 3D code
//important to note that face nodes need to be inserted into the
//volume nodes of the surface element or they will be forgotton
f = std::shared_ptr<Face>(new Face( f = std::shared_ptr<Face>(new Face(
m_mesh->m_element[2][i]->GetVertexList(), m_mesh->m_element[2][i]->GetVertexList(),
vector<NodeSharedPtr>(), m_mesh->m_element[2][i]->GetEdgeList(), vector<NodeSharedPtr>(), m_mesh->m_element[2][i]->GetEdgeList(),
LibUtilities::ePolyEvenlySpaced)); LibUtilities::ePolyEvenlySpaced));
dumFace = true;
} }
f->m_parentCAD = s; f->m_parentCAD = s;
...@@ -506,6 +515,12 @@ void HOSurfaceMesh::Process() ...@@ -506,6 +515,12 @@ void HOSurfaceMesh::Process()
f->m_faceNodes = honodes; f->m_faceNodes = honodes;
f->m_curveType = LibUtilities::eGaussLobattoLegendre; f->m_curveType = LibUtilities::eGaussLobattoLegendre;
} }
if(dumFace)
{
m_mesh->m_element[2][i]->SetVolumeNodes(f->m_faceNodes);
m_mesh->m_element[2][i]->SetCurveType(f->m_curveType);
}
} }
if (m_mesh->m_verbose) if (m_mesh->m_verbose)
......
...@@ -10,7 +10,6 @@ SET(SOLVER_UTILS_SOURCES ...@@ -10,7 +10,6 @@ SET(SOLVER_UTILS_SOURCES
Diffusion/Diffusion.cpp Diffusion/Diffusion.cpp
Diffusion/Diffusion3DHomogeneous1D.cpp Diffusion/Diffusion3DHomogeneous1D.cpp
Diffusion/DiffusionLDG.cpp Diffusion/DiffusionLDG.cpp
Diffusion/DiffusionLDGNS.cpp
Diffusion/DiffusionLFR.cpp Diffusion/DiffusionLFR.cpp
Diffusion/DiffusionLFRNS.cpp Diffusion/DiffusionLFRNS.cpp
Driver.cpp Driver.cpp
...@@ -55,7 +54,6 @@ SET(SOLVER_UTILS_HEADERS ...@@ -55,7 +54,6 @@ SET(SOLVER_UTILS_HEADERS
Diffusion/Diffusion.h Diffusion/Diffusion.h
Diffusion/Diffusion3DHomogeneous1D.h Diffusion/Diffusion3DHomogeneous1D.h
Diffusion/DiffusionLDG.h Diffusion/DiffusionLDG.h
Diffusion/DiffusionLDGNS.h
Diffusion/DiffusionLFR.h Diffusion/DiffusionLFR.h
Diffusion/DiffusionLFRNS.h Diffusion/DiffusionLFRNS.h
Driver.h Driver.h
......
...@@ -188,6 +188,10 @@ void SessionFunction::Evaluate(std::string pFieldName, ...@@ -188,6 +188,10 @@ void SessionFunction::Evaluate(std::string pFieldName,
EvaluateFld(pFieldName, pArray, pTime, domain); EvaluateFld(pFieldName, pArray, pTime, domain);
} }
} }
else
{
ASSERTL0(false, "unknown eFunctionType");
}
if (m_toCache) if (m_toCache)
{ {
...@@ -217,12 +221,16 @@ std::string SessionFunction::Describe(std::string pFieldName, const int domain) ...@@ -217,12 +221,16 @@ std::string SessionFunction::Describe(std::string pFieldName, const int domain)
retVal = ffunc->GetExpression(); retVal = ffunc->GetExpression();
} }
else if (vType == LibUtilities::eFunctionTypeFile || else if (vType == LibUtilities::eFunctionTypeFile ||
LibUtilities::eFunctionTypeTransientFile) vType == LibUtilities::eFunctionTypeTransientFile)
{ {
std::string filename = std::string filename =
m_session->GetFunctionFilename(m_name, pFieldName, domain); m_session->GetFunctionFilename(m_name, pFieldName, domain);
retVal = "from file " + filename; retVal = "from file " + filename;
} }
else
{
ASSERTL0(false, "unknown eFunctionType");