Commit 42217f55 by Chris Cantwell

Merge branch 'master' into fix/cwipi-compile

parents 41812fac 797af628
......@@ -49,9 +49,10 @@ v5.0.0
- Removed instance count from beginning of Array storage to improve memory
alignment (!921)
- Fix naming issue of duplicate Unit tests (!924)
- Fix warnings about missing virtual destructors in abstract classes (!932)
- Added a coupling interface to exchange data between solvers at run time
and a DummySolver to test the implementations (!853 !931)
**NekMesh**:
- Add feature to read basic 2D geo files as CAD (!731)
- Add periodic boundary condition meshing in 2D (!733)
......@@ -80,6 +81,7 @@ v5.0.0
- Support CFI combined lines (!917)
- Order nodes in Gmsh output (!912)
- Fix manifold face curvature nodes (!913)
- Fix writing 1D surfaces (!930)
**FieldConvert**:
- Add input module for Semtex field files (!777)
......@@ -101,6 +103,7 @@ v5.0.0
norm of the difference, to be consistent with the compressible solver (!832)
- Updated SVV to allow for the DGKernel extension (!851)
- Pre-calculate Time invariant portion of Womersley Solution (!814)
- Fix for independent setting of SVV in Homogeneous direction (!936)
**CompressibleFlowSolver**
- Add 3D regression tests (!567)
......@@ -133,6 +136,9 @@ v4.4.2
- Updated PETSc to 3.7.7 (!916)
- Fix typcase to an integer which set Lz < 1 to zero when postprocess hdf5 output (!9922)
**IncNavierStokesSolver**
- Add a test for imaginary shift to be only used with Homogenous and SingleMode on. (!928)
**NekMesh**
- Fix missing periodic boundary meshing and boundary layer mesh adjustment
configurations in 2D (!859)
......@@ -142,6 +148,7 @@ v4.4.2
- Fix sign of the viscous term in the velocity correction scheme equations in
the user guide (!856)
- Fixed anonymous clone URL (!909)
- Add information on the limitations of Imaginary Shift for stability. (!928)
**FieldConvert**
- Allow passing input name with trailing separator (!879)
......
......@@ -12,24 +12,19 @@ IF(NEKTAR_USE_MESHGEN)
IF (NEKTAR_USE_CFI)
SET(TEST_ENV $ENV{CFI_DIR})
SET(TEST_ENV $ENV{FEGS_TOP})
IF(NOT DEFINED TEST_ENV)
MESSAGE(FATAL_ERROR "Cannot build with CFI without environment variable CFI_DIR set which points to cadfix1100fcs folder in the CFI installation")
MESSAGE(FATAL_ERROR "Cannot build with CFI without environment variable FEGS_TOP set which points to the top folder in the CFI installation")
ENDIF()
FIND_LIBRARY(CFI_LIBRARY_API NAMES cadfixapi PATHS $ENV{CFI_DIR}/lib64)
FIND_LIBRARY(CFI_LIBRARY_API NAMES cadfixapi PATHS $ENV{FEGS_LIB})
FIND_LIBRARY(CFI_LIBRARY_CXX NAMES oocfi_cxx.a PATHS $ENV{FEGS_TOP}/cadfixdev/oocfi/cxx)
IF(CFI_LIBRARY_API)
FIND_PATH (CFI_INCLUDE_DIR_HXX cadfixapi.hxx PATHS $ENV{CFI_DIR}/oocfi/cxx/cadfixapi)
FIND_PATH (CFI_INCLUDE_DIR cfiStandardFun.h PATHS $ENV{CFI_DIR}/include)
FIND_PATH (CFI_INCLUDE_DIR_HXX cadfixapi.hxx PATHS $ENV{FEGS_TOP}/cadfixdev/oocfi/cxx/cadfixapi)
FIND_PATH (CFI_INCLUDE_DIR cfiStandardFun.h PATHS $ENV{FEGS_TOP}/cadfixdev/include)
IF(CFI_INCLUDE_DIR)
SET(CFI_LIBRARIES_TMP cadfixapi extra)
FOREACH(CFI_LIBRARIES_TMP ${CFI_LIBRARIES_TMP})
LIST(APPEND CFI_LIBRARIES $ENV{CFI_DIR}/lib64/lib${CFI_LIBRARIES_TMP}.so)
ENDFOREACH()
MESSAGE(STATUS "cfi libraries: ${CFI_LIBRARIES}")
MESSAGE(STATUS "cfi libraries: ${CFI_LIBRARY_API}")
INCLUDE_DIRECTORIES(NekMeshUtils ${CFI_INCLUDE_DIR_HXX})
INCLUDE_DIRECTORIES(NekMeshUtils ${CFI_INCLUDE_DIR})
......
......@@ -1165,8 +1165,9 @@ The following parameters can be specified in the \texttt{PARAMETERS} section of
\item \inltt{Re}: sets the Reynolds number
\item \inltt{Kinvis}: sets the kinematic viscosity $\nu$.
\item \inltt{kdim}: sets the dimension of the Krylov subspace $\kappa$. Can be used in: \inltt{ModifiedArnoldi} and \inltt{Arpack}. Default value: 16.
\item \inltt{evtol}: sets the tolerance of the eigenvalues. Can be used in: \item \inltt{imagShift}: provide an imaginary shift to the direct sovler eigenvalue problem by the specified value.
ltt{ModifiedArnoldi} and \inltt{Arpack}. Default value: $10^{-6}$.
\item \inltt{evtol}: sets the tolerance of the eigenvalues. Can be used in: \item \inltt{imagShift}:
provide an imaginary shift to the direct solver eigenvalue problem by the specified value.
\inltt{ModifiedArnoldi} and \inltt{Arpack}. Default value: $0.0$. Works only with \inltt{Homogeneous} set to \inltt{1D} and inltt{ModeType} set to \inltt{SingleMode}.
\item \inltt{nits}: sets the maximum number of iterations. Can be used in: \inltt{ModifiedArnoldi} and \inltt{Arpack}. Default value: 500.
\item \inltt{LZ}: sets the length in the spanswise direction $L_z$. Can be used in \inltt{Homogeneous} set to \inltt{1D}. Default value: 1.
\item \inltt{HomModesZ}: sets the number of planes in the homogeneous directions. Can be used in \inltt{Homogeneous} set to \inltt{1D} and \inltt{ModeType} set to \inltt{MultipleModes}.
......
......@@ -132,11 +132,12 @@ IF(NEKTAR_USE_MESHGEN)
ADD_DEPENDENCIES(NekMeshUtils oce-0.17 tetgen-1.5 triangle-1.6)
IF(NEKTAR_USE_CFI)
TARGET_LINK_LIBRARIES(NekMeshUtils LINK_PRIVATE ${CFI_LIBRARIES})
TARGET_LINK_LIBRARIES(NekMeshUtils LINK_PRIVATE ${CFI_LIBRARY_API})
TARGET_LINK_LIBRARIES(NekMeshUtils LINK_PRIVATE ${CFI_LIBRARY_CXX})
ENDIF()
ENDIF()
INSTALL(DIRECTORY ./
DESTINATION ${NEKTAR_INCLUDE_DIR}/NekMeshUtils
COMPONENT dev
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")
\ No newline at end of file
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")
......@@ -69,6 +69,10 @@ typedef std::function<void (
class Advection
{
public:
SOLVER_UTILS_EXPORT virtual ~Advection()
{};
/// Interface function to initialise the advection object.
SOLVER_UTILS_EXPORT void InitObject(
LibUtilities::SessionReaderSharedPtr pSession,
......
......@@ -71,6 +71,10 @@ namespace Nektar
class Diffusion
{
public:
SOLVER_UTILS_EXPORT virtual ~Diffusion()
{};
SOLVER_UTILS_EXPORT void InitObject(
LibUtilities::SessionReaderSharedPtr pSession,
Array<OneD, MultiRegions::ExpListSharedPtr> pFields);
......
......@@ -109,7 +109,21 @@ void DriverArnoldi::v_InitObject(ostream &out)
m_session->LoadParameter("realShift", m_realShift, 0.0);
m_equ[0]->SetLambda(m_realShift);
m_session->LoadParameter("imagShift", m_imagShift, 0.0);
m_session->LoadParameter("imagShift",m_imagShift,0.0);
// The imaginary shift is applied at system assembly
// Only if using HOMOGENEOUS expansion and ModeType set to SingleMode
if(m_imagShift != 0.0)
{
if(!m_session->DefinesSolverInfo("HOMOGENEOUS")&&!m_session->DefinesSolverInfo("ModeType"))
{
NEKERROR(ErrorUtil::efatal, "Imaginary shift only supported with HOMOGENEOUS expansion and ModeType set to SingleMode");
}
else if(!boost::iequals(m_session->GetSolverInfo("ModeType"),"SingleMode"))
{
NEKERROR(ErrorUtil::efatal, "Imaginary shift only supported with HOMOGENEOUS expansion and ModeType set to SingleMode");
}
}
}
......
......@@ -160,6 +160,9 @@ namespace Nektar
SOLVER_UTILS_EXPORT RiemannSolver(
const LibUtilities::SessionReaderSharedPtr& pSession);
SOLVER_UTILS_EXPORT virtual ~RiemannSolver()
{};
virtual void v_Solve(
const int nDim,
const Array<OneD, const Array<OneD, NekDouble> > &Fwd,
......
......@@ -1032,8 +1032,7 @@ void MeshGraphXmlCompressed::WriteEdges(TiXmlElement *geomTag,
}
TiXmlElement *edgeTag =
new TiXmlElement(m_meshDimension == 1 ? "ELEMENT" : "EDGE");
string tag = m_meshDimension == 1 ? "S" : "E";
new TiXmlElement(m_meshDimension == 1 ? "S" : "EDGE");
vector<MeshEdge> edgeInfo;
......@@ -1056,7 +1055,16 @@ void MeshGraphXmlCompressed::WriteEdges(TiXmlElement *geomTag,
edgeTag->LinkEndChild(new TiXmlText(edgeStr));
geomTag->LinkEndChild(edgeTag);
if (m_meshDimension == 1)
{
TiXmlElement *tmp = new TiXmlElement("ELEMENT");
tmp->LinkEndChild(edgeTag);
geomTag->LinkEndChild(tmp);
}
else
{
geomTag->LinkEndChild(edgeTag);
}
}
void MeshGraphXmlCompressed::WriteTris(TiXmlElement *faceTag, TriGeomMap &tris)
......
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