Commit 2f746df8 authored by Mike's avatar Mike

Resolved merge issut in MeshGraph

Merge branch 'feature/ShearIntoFieldconvert' of gitlab.nektar.info:nektar/nektar into feature/ShearIntoFieldconvert

Conflicts:
	library/SpatialDomains/MeshGraph.cpp
parents d3bfd923 21e89c8b
......@@ -854,6 +854,10 @@ namespace Nektar
}
}
/** \brief Get the normals along specficied face
* Get the face normals interplated to a points0 x points 0
* type distribution
**/
void PrismExp::v_ComputeFaceNormal(const int face)
{
const SpatialDomains::GeomFactorsSharedPtr &geomFactors =
......
......@@ -1833,14 +1833,14 @@ namespace Nektar
for (j=0; j< basis.size(); ++j)
{
if ( (strcmp(LibUtilities::BasisTypeMap[basis[j]], "Modified_A") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "Modified_B") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "Modified_C") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "GLL_Lagrange") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "Gauss_Lagrange") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "Fourier") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "FourierSingleMode") == 0)||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "FourierHalfModeRe") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "FourierHalfModeIm") == 0))
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "Modified_B") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "Modified_C") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "GLL_Lagrange") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "Gauss_Lagrange") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "Fourier") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "FourierSingleMode") == 0)||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "FourierHalfModeRe") == 0) ||
(strcmp(LibUtilities::BasisTypeMap[basis[j]], "FourierHalfModeIm") == 0))
{
check++;
}
......@@ -1999,35 +1999,10 @@ namespace Nektar
}
geom = m_tetGeoms[k];
#if 0 //all gll
for(int b = 0; b < 3; ++b)
{
LibUtilities::PointsKey pkey(nmodes[cnt+b], LibUtilities::eGaussLobattoLegendre);
if(numPointDef&&pointDef)
{
const LibUtilities::PointsKey pkey2(npoints[cnt+b],points[b]);
pkey = pkey2;
}
else if(!numPointDef&&pointDef)
{
const LibUtilities::PointsKey pkey2(nmodes[cnt+b]+1,points[b]);
pkey = pkey2;
}
else if(numPointDef&&!pointDef)
{
const LibUtilities::PointsKey pkey2(npoints[cnt+b],LibUtilities::eGaussLobattoLegendre);
pkey = pkey2;
}
LibUtilities::BasisKey bkey(basis[b],nmodes[cnt+b],pkey);
bkeyvec.push_back(bkey);
}
#else
{
LibUtilities::PointsKey pkey(nmodes[cnt], LibUtilities::eGaussLobattoLegendre);
if(numPointDef&&pointDef)
{
const LibUtilities::PointsKey pkey2(npoints[cnt],points[0]);
......@@ -2095,7 +2070,6 @@ namespace Nektar
bkeyvec.push_back(bkey);
}
#endif
if(!UniOrder)
{
......@@ -2112,34 +2086,9 @@ namespace Nektar
}
geom = m_prismGeoms[k];
#if 0 // all GLL
for(int b = 0; b < 3; ++b)
{
LibUtilities::PointsKey pkey(nmodes[cnt+b],LibUtilities::eGaussLobattoLegendre);
if(numPointDef&&pointDef)
{
const LibUtilities::PointsKey pkey2(npoints[cnt+b],points[b]);
pkey = pkey2;
}
else if(!numPointDef&&pointDef)
{
const LibUtilities::PointsKey pkey2(nmodes[cnt+b]+1,points[b]);
pkey = pkey2;
}
else if(numPointDef&&!pointDef)
{
const LibUtilities::PointsKey pkey2(npoints[cnt+b],LibUtilities::eGaussLobattoLegendre);
pkey = pkey2;
}
LibUtilities::BasisKey bkey(basis[b],nmodes[cnt+b],pkey);
bkeyvec.push_back(bkey);
}
#else
for(int b = 0; b < 2; ++b)
{
LibUtilities::PointsKey pkey(nmodes[cnt+b],LibUtilities::eGaussLobattoLegendre);
LibUtilities::PointsKey pkey(nmodes[cnt+b]+1,LibUtilities::eGaussLobattoLegendre);
if(numPointDef&&pointDef)
{
......@@ -2183,7 +2132,7 @@ namespace Nektar
LibUtilities::BasisKey bkey(basis[2],nmodes[cnt+2],pkey);
bkeyvec.push_back(bkey);
}
#endif
if(!UniOrder)
{
cnt += 3;
......@@ -2197,9 +2146,10 @@ namespace Nektar
"Failed to find geometry with same global id");
geom = m_pyrGeoms[k];
for(int b = 0; b < 3; ++b)
for(int b = 0; b < 2; ++b)
{
LibUtilities::PointsKey pkey(nmodes[cnt+b],points[b]);
LibUtilities::PointsKey pkey(nmodes[cnt+b]+1,LibUtilities::eGaussLobattoLegendre);
if(numPointDef&&pointDef)
{
......@@ -2221,6 +2171,29 @@ namespace Nektar
bkeyvec.push_back(bkey);
}
{
LibUtilities::PointsKey pkey(nmodes[cnt+2],LibUtilities::eGaussRadauMAlpha2Beta0);
if(numPointDef&&pointDef)
{
const LibUtilities::PointsKey pkey2(npoints[cnt+2],points[2]);
pkey = pkey2;
}
else if(!numPointDef&&pointDef)
{
const LibUtilities::PointsKey pkey2(nmodes[cnt+2]+1,points[2]);
pkey = pkey2;
}
else if(numPointDef&&!pointDef)
{
const LibUtilities::PointsKey pkey2(npoints[cnt+2],LibUtilities::eGaussLobattoLegendre);
pkey = pkey2;
}
LibUtilities::BasisKey bkey(basis[2],nmodes[cnt+2],pkey);
bkeyvec.push_back(bkey);
}
if(!UniOrder)
{
cnt += 3;
......
......@@ -20,6 +20,8 @@ SET(FieldConvertHeaders
ProcessJacobianEnergy.h
ProcessScaleInFld.h
ProcessVorticity.h
ProcessWSS.h
ProcessMultiShear.h
ProcessC0Projection.h
ProcessQCriterion.h
)
......@@ -46,6 +48,8 @@ SET(FieldConvertSources
ProcessJacobianEnergy.cpp
ProcessScaleInFld.cpp
ProcessVorticity.cpp
ProcessWSS.cpp
ProcessMultiShear.cpp
ProcessC0Projection.cpp
ProcessQCriterion.cpp
)
......
This diff is collapsed.
////////////////////////////////////////////////////////////////////////////////
//
// File: ProcessMultiShear.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: Computes shear stress metrics.
//
////////////////////////////////////////////////////////////////////////////////
#ifndef UTILITIES_PREPROCESSING_FIELDCONVERT_PROCESSMULTISHEAR
#define UTILITIES_PREPROCESSING_FIELDCONVERT_PROCESSMULTISHEAR
#include "Module.h"
namespace Nektar
{
namespace Utilities
{
/**
* @brief This processing module calculates the shear stress metrics and
* writes it to a surface output file.
*/
class ProcessMultiShear : public ProcessModule
{
public:
/// Creates an instance of this class
static boost::shared_ptr<Module> create(FieldSharedPtr f) {
return MemoryManager<ProcessMultiShear>::AllocateSharedPtr(f);
}
static ModuleKey className;
ProcessMultiShear(FieldSharedPtr f);
virtual ~ProcessMultiShear();
/// Write mesh to output file.
virtual void Process(po::variables_map &vm);
};
}
}
#endif
This diff is collapsed.
////////////////////////////////////////////////////////////////////////////////
//
// File: ProcessWSS.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: Computes wall shear stress field.
//
////////////////////////////////////////////////////////////////////////////////
#ifndef UTILITIES_PREPROCESSING_FIELDCONVERT_PROCESSWSS
#define UTILITIES_PREPROCESSING_FIELDCONVERT_PROCESSWSS
#include "Module.h"
namespace Nektar
{
namespace Utilities
{
/**
* @brief This processing module calculates the wall shear stress and adds it
* as an extra-field to the output file, and writes it to a surface output file.
*/
class ProcessWSS : public ProcessModule
{
public:
/// Creates an instance of this class
static boost::shared_ptr<Module> create(FieldSharedPtr f) {
return MemoryManager<ProcessWSS>::AllocateSharedPtr(f);
}
static ModuleKey className;
ProcessWSS(FieldSharedPtr f);
virtual ~ProcessWSS();
/// Write mesh to output file.
virtual void Process(po::variables_map &vm);
};
}
}
#endif
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