Nektar++
|
#include <ProcessCurve.h>
Static Public Member Functions | |
static boost::shared_ptr< Module > | create (NekMeshUtils::MeshSharedPtr m) |
Creates an instance of this class. More... | |
Static Public Attributes | |
static NekMeshUtils::ModuleKey | className |
Protected Member Functions | |
void | v_GenerateEdgeNodes (NekMeshUtils::EdgeSharedPtr edge) |
Protected Member Functions inherited from Nektar::NekMeshUtils::Module | |
NEKMESHUTILS_EXPORT void | ReorderPrisms (PerMap &perFaces) |
Reorder node IDs so that prisms and tetrahedra are aligned correctly. More... | |
NEKMESHUTILS_EXPORT void | PrismLines (int prism, PerMap &perFaces, std::set< int > &prismsDone, std::vector< ElementSharedPtr > &line) |
Private Member Functions | |
NekDouble | EvaluateCoordinate (NekDouble xCoord) |
Private Attributes | |
bool | m_fromFile |
LibUtilities::AnalyticExpressionEvaluator | m_fEval |
int | m_fExprId |
LibUtilities::PtsFieldSharedPtr | m_fieldPts |
Additional Inherited Members | |
Protected Attributes inherited from Nektar::NekMeshUtils::Module | |
MeshSharedPtr | m_mesh |
Mesh object. More... | |
std::map< std::string, ConfigOption > | m_config |
List of configuration values. More... | |
Definition at line 48 of file ProcessCurve.h.
Nektar::Utilities::ProcessCurve::ProcessCurve | ( | NekMeshUtils::MeshSharedPtr | m | ) |
Default constructor.
Definition at line 66 of file ProcessCurve.cpp.
References Nektar::NekMeshUtils::Module::m_config.
|
virtual |
|
inlinestatic |
Creates an instance of this class.
Definition at line 52 of file ProcessCurve.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr().
Definition at line 210 of file ProcessCurve.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::LibUtilities::AnalyticExpressionEvaluator::Evaluate(), Nektar::FieldUtils::Interpolator::Interpolate(), m_fEval, m_fExprId, m_fieldPts, and m_fromFile.
Referenced by v_GenerateEdgeNodes().
|
protectedvirtual |
This function generates curved edge information in 2D, by including equispaced nodes to an edge following the prescribed function .
An approximately equispaced node distribution is obtained by initially considering a uniform distribution in the direction, and then adjusting the interior nodes using the iteration
where is the coordinate of the node, is the iteration counter, is the Cartesian distance between nodes and and is the average of these distances. The relaxation factor and the fixed number of iterations are parameters of the module.
In case the correction to leads to an invalid distribution (i.e. reversing directions), the relaxation parameter is successively halved until it leads to a valid distribution.
edge | Edge which will be modified |
Implements Nektar::Utilities::ProcessCurvedEdges.
Definition at line 108 of file ProcessCurve.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, Nektar::LibUtilities::NekFactory< tKey, tBase, >::CreateInstance(), Nektar::LibUtilities::AnalyticExpressionEvaluator::DefineFunction(), Nektar::LibUtilities::ePolyEvenlySpaced, EvaluateCoordinate(), Nektar::LibUtilities::GetCommFactory(), Nektar::NekMeshUtils::Module::m_config, m_fEval, m_fExprId, m_fieldPts, m_fromFile, class_topology::Node, and Vmath::Sadd().
|
static |
Definition at line 56 of file ProcessCurve.h.
|
private |
Definition at line 68 of file ProcessCurve.h.
Referenced by EvaluateCoordinate(), and v_GenerateEdgeNodes().
|
private |
Definition at line 69 of file ProcessCurve.h.
Referenced by EvaluateCoordinate(), and v_GenerateEdgeNodes().
|
private |
Definition at line 70 of file ProcessCurve.h.
Referenced by EvaluateCoordinate(), and v_GenerateEdgeNodes().
|
private |
Definition at line 67 of file ProcessCurve.h.
Referenced by EvaluateCoordinate(), and v_GenerateEdgeNodes().