Commit 81c0fff3 authored by Dave Moxey's avatar Dave Moxey
Browse files

Merge remote-tracking branch 'upstream/master' into feature/cad_factory

parents 9921c909 dc770c73
......@@ -49,6 +49,7 @@ v4.4.0
- Improvements to mesh linearisation module (!659)
- Add support for Gmsh high-order output (!679)
- Move CAD classes to factory format (!676)
- Add option to `linearise` module to linearise only prisms (!688)
- Move all modules to a new library, FieldUtils, to support post-processing
......@@ -542,17 +542,32 @@ The module parameters are:
The ability to remove all the high-order information in a mesh can be useful
at times.
The ability to remove all the high-order information in a mesh can be useful at
times when mesh generation is tricky or impossible in the presence of curvature
To do this in NekMesh use the command:
NekMesh -m linearise high-order-mesh.xml linear-mesh.xml
NekMesh -m linearise:all high-order-mesh.xml linear-mesh.xml
The output will contain only the linear mesh information, all curved information
is removed.
is removed. Alternatively
NekMesh -m linearise:invalid high-order-mesh.xml linear-mesh.xml
attempts to remove curvature from elements only where necessary. This is a
simple algorithm that removes curvature from invalid elements and repeats until
all elements are valid. Either \inlsh{all} or \inlsh{invalid} must be specified.
\item \inlsh{all}: remove curvature from all elements.
\item \inlsh{invalid}: remove curvature from invalid elements.
\item \inlsh{prismonly}: consider only prisms when removing curvature. This is
useful in the presence of a prismatic boundary layer.
\subsection{Extracting interface between tetrahedra and prismatic elements}
......@@ -53,6 +53,8 @@ ProcessLinear::ProcessLinear(MeshSharedPtr m) : ProcessModule(m)
ConfigOption(true, "0", "remove curve nodes for all elements.");
m_config["invalid"] =
ConfigOption(true, "0", "remove curve nodes if element is invalid.");
m_config["prismonly"] =
ConfigOption(false, "", "only acts on prims");
......@@ -139,6 +141,14 @@ void ProcessLinear::Process()
for (int i = 0; i < el.size(); ++i)
if(el[i]->GetConf().m_e != LibUtilities::ePrism)
// Create elemental geometry.
SpatialDomains::GeometrySharedPtr geom =
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