NuTo
Numerics Tool
PostProcess.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <map>
5 
6 namespace NuTo
7 {
8 namespace Visualize
9 {
10 
14 {
15 public:
17  PostProcess() = default;
18 
21  PostProcess(std::string resultDir);
22 
25  void ResultDirectory(std::string resultDir);
26 
29  std::string ResultDirectory() const;
30 
34  void DefineVisualizer(std::string name, Visualizer&& visualizer);
35 
40  void DefineVisualizer(std::string name, Group<CellInterface> cells, const HandlerInterface& handler);
41 
45  void Add(std::string name, DofType dof);
46 
51  void Add(std::string name, std::function<Eigen::VectorXd(const CellIpData&)> cellFunction,
52  std::string cellFunctionName);
53 
58  void Add(std::string name, std::function<double(const CellIpData&)> cellFunction, std::string cellFunctionName);
59 
64  void Add(std::string name, std::function<Eigen::VectorXd(Eigen::VectorXd)> pointFunction,
65  std::string pointFunctionName);
66 
70  void Plot(double t, bool asBinary = true);
71 
72 private:
73  struct VisualizationInfo
74  {
75  VisualizationInfo(Visualizer&& visu)
76  : mVisualizer(std::move(visu))
77  {
78  }
79 
80  Visualizer mVisualizer;
81  std::vector<DofType> mDofs;
82  std::vector<std::pair<std::function<Eigen::VectorXd(const CellIpData&)>, std::string>> mCellFunctions;
83  std::vector<std::pair<std::function<Eigen::VectorXd(Eigen::VectorXd)>, std::string>> mPointFunctions;
84  };
85 
86  std::map<std::string, VisualizationInfo> mVisualize;
87 
88  std::string mResultDir = "";
89 
90  int mStep = 0;
91 
92  void ThrowOnUnknownName(std::string name);
93 };
94 } /* Visualize */
95 } /* NuTo */
resultDir
Definition: GradingCurveFileIO.py:67
Interface for a handler class that visualizes a single cell.
Definition: HandlerInterface.h:19
Similar to NuTo::CellData.
Definition: CellIpData.h:14
Definition: DofType.h:8
PostProcess()=default
default ctor
Class to write visualization files of DOF values and cell data.
Definition: Visualizer.h:14
void Plot(double t, bool asBinary=true)
Writes one result file per defined visualizer and adds this result file to [visualizerName].pvd.
Definition: PostProcess.cpp:131
Definition: Exception.h:6
std::string ResultDirectory() const
Getter for the result directory.
Definition: PostProcess.cpp:33
void DefineVisualizer(std::string name, Visualizer &&visualizer)
Moves a visualizer into the PostProcess.
Definition: PostProcess.cpp:49
void Add(std::string name, DofType dof)
Adds a dof visualization.
Definition: PostProcess.cpp:56
def Visualize(structure, file)
Definition: Truss1D2N.py:63
Allows you do define multiple visualizers with various visualization objects and writes them at once ...
Definition: PostProcess.h:13