Commit 92bd6034 authored by Dave Moxey's avatar Dave Moxey

Merge branch 'master' into 'feature/mc-extrude'

# Conflicts:
#   CHANGELOG.md
parents 2f1b999a f31de7ee
......@@ -48,6 +48,7 @@ v4.4.0
**FieldConvert:**
- Allow equi-spaced output for 1D and 2DH1D fields (!613)
- Update quality metric to include scaled Jacobian output (!695)
- Allow multiple XML files to be specified in InterpField module (!705)
**NekMesh:**
- Modify curve module to allow for spline input (!628)
......@@ -69,6 +70,8 @@ v4.4.0
- Bug fix to get two meshgen regression tests working (!700)
- Remove libANN in deference to boost::geometry (!703)
- 2D to 3D mesh extrusion module (!715)
- Add a mesh extract option to the linearise module to visualise the result
(!712)
**FieldConvert:**
- Move all modules to a new library, FieldUtils, to support post-processing
......@@ -83,6 +86,7 @@ v4.3.5
- Fix bug in DG with hybrid meshes (!694)
- Fix issue with parallel output (!699)
- Fix performance issue with iterative full solver (!693)
- Enforced precision on history point output (!706)
**Documentation**
- Update build instructions in user guide for Windows (!692)
......
......@@ -90,7 +90,7 @@ void ProcessInterpField::Process(po::variables_map &vm)
std::vector<std::string> files;
// set up session file for from field
files.push_back(m_config["fromxml"].as<string>());
ParseUtils::GenerateOrderedStringVector(m_config["fromxml"].as<string>().c_str(), files);
m_fromField->m_session =
LibUtilities::SessionReader::CreateInstance(0, 0, files);
......
......@@ -445,8 +445,8 @@ void ProcessInterpPoints::Process(po::variables_map &vm)
FieldSharedPtr fromField = boost::shared_ptr<Field>(new Field());
std::vector<std::string> files;
ParseUtils::GenerateOrderedStringVector(m_config["fromxml"].as<string>().c_str(), files);
// set up session file for from field
files.push_back(m_config["fromxml"].as<string>());
fromField->m_session =
LibUtilities::SessionReader::CreateInstance(0, 0, files);
......
......@@ -402,9 +402,9 @@ void FilterHistoryPoints::v_Initialise(
gloCoord[2]);
m_outputStream << "# " << boost::format("%6.0f") % i;
m_outputStream << " " << boost::format("%25e") % gloCoord[0];
m_outputStream << " " << boost::format("%25e") % gloCoord[1];
m_outputStream << " " << boost::format("%25e") % gloCoord[2];
m_outputStream << " " << boost::format("%25.19e") % gloCoord[0];
m_outputStream << " " << boost::format("%25.19e") % gloCoord[1];
m_outputStream << " " << boost::format("%25.19e") % gloCoord[2];
m_outputStream << endl;
}
......@@ -575,10 +575,10 @@ void FilterHistoryPoints::v_Update(const Array<OneD, const MultiRegions::ExpList
// Write data values point by point
for (k = 0; k < m_historyPoints.size(); ++k)
{
m_outputStream << boost::format("%25e") % time;
m_outputStream << boost::format("%25.19e") % time;
for (int j = 0; j < numFields; ++j)
{
m_outputStream << " " << boost::format("%25e") % data[k*numFields+j];
m_outputStream << " " << boost::format("%25.19e") % data[k*numFields+j];
}
m_outputStream << endl;
}
......
......@@ -55,6 +55,8 @@ ProcessLinear::ProcessLinear(MeshSharedPtr m) : ProcessModule(m)
ConfigOption(false, "0", "remove curve nodes if element is invalid.");
m_config["prismonly"] =
ConfigOption(false, "", "only acts on prims");
m_config["extract"] =
ConfigOption(false, "", "dump a mesh of the extracted elements");
}
ProcessLinear::~ProcessLinear()
......@@ -138,6 +140,8 @@ void ProcessLinear::Process()
vector<NodeSharedPtr> zeroNodes;
boost::unordered_set<int> clearedEdges, clearedFaces, clearedElmts;
vector<ElementSharedPtr> dumpEls;
// Iterate over list of elements of expansion dimension.
while(el.size() > 0)
{
......@@ -153,6 +157,7 @@ void ProcessLinear::Process()
if (Invalid(el[i],thr))//(!gfac->IsValid())
{
dumpEls.push_back(el[i]);
clearedElmts.insert(el[i]->GetId());;
el[i]->SetVolumeNodes(zeroNodes);
......@@ -216,6 +221,26 @@ void ProcessLinear::Process()
<< " elements (" << clearedEdges.size() << " edges, "
<< clearedFaces.size() << " faces)" << endl;
}
if(m_config["extract"].beenSet)
{
MeshSharedPtr dmp = boost::shared_ptr<Mesh>(new Mesh());
dmp->m_expDim = 3;
dmp->m_spaceDim = 3;
dmp->m_nummode = 2;
dmp->m_element[3] = dumpEls;
ModuleSharedPtr mod = GetModuleFactory().CreateInstance(
ModuleKey(eOutputModule, "xml"), dmp);
mod->RegisterConfig("outfile", m_config["extract"].as<string>().c_str());
mod->ProcessVertices();
mod->ProcessEdges();
mod->ProcessFaces();
mod->ProcessElements();
mod->ProcessComposites();
mod->Process();
}
}
}
......
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