47 #ifndef MUELU_VISUALIZATIONHELPERS_DECL_HPP_ 48 #define MUELU_VISUALIZATIONHELPERS_DECL_HPP_ 50 #include <Xpetra_Matrix_fwd.hpp> 51 #include <Xpetra_CrsMatrixWrap_fwd.hpp> 83 myVec3(
double xin,
double yin,
double zin) : x(xin), y(yin), z(zin) {}
94 myVec2(
double xin,
double yin) : x(xin), y(yin) {}
109 template <
class Scalar =
double,
class LocalOrdinal =
int,
class GlobalOrdinal = LocalOrdinal,
class Node = KokkosClassic::DefaultNode::DefaultNodeType>
111 #undef MUELU_VISUALIZATIONHELPERS_SHORT 125 RCP<ParameterList> GetValidParameterList()
const;
129 void writeFileVTKOpening(std::ofstream & fout, std::vector<int> & uniqueFine, std::vector<int> & geomSizesFine)
const;
130 void writeFileVTKNodes(std::ofstream & fout, std::vector<int> & uniqueFine, Teuchos::RCP<const Map> & nodeMap)
const;
131 void writeFileVTKData(std::ofstream & fout, std::vector<int> & uniqueFine, LocalOrdinal myAggOffset, ArrayRCP<LocalOrdinal> & vertex2AggId,
int myRank)
const;
132 void writeFileVTKCoordinates(std::ofstream & fout, std::vector<int> & uniqueFine, Teuchos::ArrayRCP<const double> & fx, Teuchos::ArrayRCP<const double> & fy, Teuchos::ArrayRCP<const double> & fz,
int dim)
const;
133 void writeFileVTKCells(std::ofstream & fout, std::vector<int> & uniqueFine, std::vector<LocalOrdinal> & vertices, std::vector<LocalOrdinal> & geomSize)
const;
134 void writeFileVTKClosing(std::ofstream & fout)
const;
135 void writePVTU(std::ofstream& pvtu, std::string baseFname,
int numProcs,
bool bFineEdges =
false,
bool bCoarseEdges =
false)
const;
136 void buildColormap()
const;
138 std::string getFileName(
int numProcs,
int myRank,
int level,
const Teuchos::ParameterList& pL)
const;
139 std::string getBaseFileName(
int numProcs,
int level,
const Teuchos::ParameterList& pL)
const;
140 std::string getPVTUFileName(
int numProcs,
int myRank,
int level,
const Teuchos::ParameterList& pL)
const;
143 static void doPointCloud(std::vector<int>& vertices, std::vector<int>& geomSizes, LO numLocalAggs, LO numFineNodes);
144 static void doJacks(std::vector<int>& vertices, std::vector<int>& geomSizes, LO numLocalAggs, LO numFineNodes,
const std::vector<bool>& isRoot,
const ArrayRCP<LO>& vertex2AggId);
145 static void doConvexHulls2D(std::vector<int>& vertices, std::vector<int>& geomSizes, LO numLocalAggs, LO numFineNodes,
const std::vector<bool>& isRoot,
const ArrayRCP<LO>& vertex2AggId,
const Teuchos::ArrayRCP<const double>& xCoords,
const Teuchos::ArrayRCP<const double>& yCoords,
const Teuchos::ArrayRCP<const double>& zCoords);
146 static void doConvexHulls3D(std::vector<int>& vertices, std::vector<int>& geomSizes, LO numLocalAggs, LO numFineNodes,
const std::vector<bool>& isRoot,
const ArrayRCP<LO>& vertex2AggId,
const Teuchos::ArrayRCP<const double>& xCoords,
const Teuchos::ArrayRCP<const double>& yCoords,
const Teuchos::ArrayRCP<const double>& zCoords);
148 static void doGraphEdges(std::vector<int>& vertices, std::vector<int>& geomSizes, Teuchos::RCP<GraphBase>& G, Teuchos::ArrayRCP<const double> & fx, Teuchos::ArrayRCP<const double> & fy, Teuchos::ArrayRCP<const double> & fz);
154 static double mymagnitude(
myVec2 vec);
155 static double mymagnitude(
myVec3 vec);
163 static std::vector<myTriangle> processTriangle(std::list<myTriangle>& tris,
myTriangle tri, std::list<int>& pointsInFront,
myVec3& barycenter,
const Teuchos::ArrayRCP<const double>& xCoords,
const Teuchos::ArrayRCP<const double>& yCoords,
const Teuchos::ArrayRCP<const double>& zCoords);
164 static std::vector<int> giftWrap(std::vector<myVec2>& points, std::vector<int>& nodes,
const Teuchos::ArrayRCP<const double> & xCoords,
const Teuchos::ArrayRCP<const double> & yCoords);
166 std::string
replaceAll(std::string result,
const std::string& replaceWhat,
const std::string& replaceWithWhat)
const;
167 std::vector<int> makeUnique(std::vector<int>& vertices)
const;
171 #define MUELU_VISUALIZATIONHELPERS_SHORT myVec2(double xin, double yin)
virtual ~VisualizationHelpers()
Destructor.
myTriangle(int v1in, int v2in, int v3in)
Namespace for MueLu classes and methods.
VisualizationHelpers()
Constructor.
Base class providing routines to visualize aggregates and coarsening information. ...
bool operator==(const myTriangle &l)
myVec3(double xin, double yin, double zin)
void replaceAll(std::string &str, const std::string &from, const std::string &to)