35 #ifndef FIELDUTILS_PROCESSISOCONTOUR
36 #define FIELDUTILS_PROCESSISOCONTOUR
38 #include "../Module.h"
50 void GlobalCondense(std::vector<std::shared_ptr<Iso>> &iso,
bool verbose);
51 void SeparateRegions(std::vector<std::shared_ptr<Iso>> &iso,
int minsize,
80 m_x[
loc] = intfields[0][j];
81 m_y[
loc] = intfields[1][j];
82 m_z[
loc] = intfields[2][j];
84 for (
int i = 0; i < intfields.size() - 3; ++i)
142 if (size >
m_x.size())
144 m_x.resize(size + 100);
145 m_y.resize(size + 100);
146 m_z.resize(size + 100);
148 for (
int i = 0; i <
m_fields.size(); ++i)
165 for (
int i = 0; i <
m_fields.size(); ++i)
179 std::vector<NekDouble>
m_x;
180 std::vector<NekDouble>
m_y;
181 std::vector<NekDouble>
m_z;
240 virtual void v_Process(po::variables_map &vm)
override;
244 return "ProcessIsoContour";
249 return "Extracting contour";
void SetX(int loc, NekDouble val)
void ResizeVId(int nconn)
void SetVId(int i, int j)
void SetY(int loc, NekDouble val)
std::vector< NekDouble > m_z
std::vector< std::vector< NekDouble > > m_fields
NekDouble GetFields(const int i, const int j)
void SetFields(const int loc, const Array< OneD, Array< OneD, NekDouble >> &intfields, const int j)
void SeparateRegions(std::vector< std::shared_ptr< Iso >> &iso, int minsize, bool verbose)
void SetZ(int loc, NekDouble val)
std::vector< NekDouble > m_y
void ResizeFields(int size)
std::vector< NekDouble > m_x
void GlobalCondense(std::vector< std::shared_ptr< Iso >> &iso, bool verbose)
void Smooth(int n_iter, NekDouble lambda, NekDouble mu)
friend bool operator!=(const IsoVertex &x, const IsoVertex &y)
friend bool operator==(const IsoVertex &x, const IsoVertex &y)
std::vector< NekDouble > m_fields
This processing module extracts an isocontour.
std::vector< IsoSharedPtr > ExtractContour(const int fieldid, const NekDouble val)
virtual std::string v_GetModuleDescription() override
virtual ModulePriority v_GetModulePriority() override
void SetupIsoFromFieldPts(std::vector< IsoSharedPtr > &isovec)
static std::shared_ptr< Module > create(FieldSharedPtr f)
Creates an instance of this class.
static ModuleKey className
virtual std::string v_GetModuleName() override
void ResetFieldPts(std::vector< IsoSharedPtr > &iso)
virtual void v_Process(po::variables_map &vm) override
Write mesh to output file.
virtual ~ProcessIsoContour()
Abstract base class for processing modules.
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
std::shared_ptr< Field > FieldSharedPtr
std::pair< ModuleType, std::string > ModuleKey
std::shared_ptr< Iso > IsoSharedPtr
The above copyright notice and this permission notice shall be included.