v0.15.5
Loading...
Searching...
No Matches
PipelineGraph.hpp
Go to the documentation of this file.
1/**
2 * @file PipelineGraph.hpp
3 * @author your name (you@domain.com)
4 * @version 0.1
5 * @date 2025-12-26
6 *
7 * @copyright Copyright (c) 2025
8 *
9 */
10
11#ifndef MOFEM_PIPELINEGRAPH_HPP
12#define MOFEM_PIPELINEGRAPH_HPP
13
14namespace MoFEM {
15
17
18 /**
19 * @brief Query interface for type-safe casting
20 *
21 * @param type_index Type index of the requested interface
22 * @param iface Pointer to interface pointer to be set
23 * @return MoFEMErrorCode Error code (0 on success)
24 */
25 MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
26 UnknownInterface **iface) const;
27
28 PipelineGraph(const MoFEM::Core &core);
29
30 /**
31 * @brief Pipeline graph to Graphviz file
32 *
33 * @param filename
34 * @param pip_name
35 * @param pip
36 * @return MoFEMErrorCode
37 */
39 std::string filename, std::string pip_name,
40 const boost::ptr_deque<ForcesAndSourcesCore::UserDataOperator> &pip);
41
42 /**
43 * @brief KSP graph to Graphviz file
44 *
45 * @param ts
46 * @param filename
47 * @return MoFEMErrorCode
48 */
50 std::string filename);
51
52 /**
53 * @brief SNES graph to Graphviz file
54 *
55 * @param snes_ctx
56 * @param file_name
57 * @return MoFEMErrorCode
58 */
60 std::string file_name);
61
62 /**
63 * @brief TS graph to Graphviz file
64 *
65 * @param snes_ctx
66 * @param file_name
67 * @return MoFEMErrorCode
68 */
70 std::string file_name);
71
72 /**
73 * @brief Write pipeline manager graph to Graphviz file
74 * @param filename
75 * @return MoFEMErrorCode
76 */
77 static MoFEMErrorCode
78 writePiplineManagerGraphGraphviz(std::string filename,
79 PipelineManager *pip_mng);
80
81private:
82 MoFEM::Core &cOre; ///< Reference to MoFEM core instance
83};
84} // namespace MoFEM
85
86#endif // MOFEM_PIPELINEGRAPH_HPP
MoFEM::TsCtx * ts_ctx
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
implementation of Data Operators for Forces and Sources
Definition Common.hpp:10
Core (interface) class.
Definition Core.hpp:82
Interface for linear (KSP) solver.
Definition KspCtx.hpp:14
static MoFEMErrorCode writeTSGraphGraphviz(TsCtx *ts_ctx, std::string file_name)
TS graph to Graphviz file.
static MoFEMErrorCode writeKSPGraphGraphviz(KspCtx *ksp_ctx, std::string filename)
KSP graph to Graphviz file.
static MoFEMErrorCode writeGraphGraphviz(std::string filename, std::string pip_name, const boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pip)
Pipeline graph to Graphviz file.
static MoFEMErrorCode writePiplineManagerGraphGraphviz(std::string filename, PipelineManager *pip_mng)
Write pipeline manager graph to Graphviz file.
static MoFEMErrorCode writeSNESGraphGraphviz(SnesCtx *snes_ctx, std::string file_name)
SNES graph to Graphviz file.
MoFEM::Core & cOre
Reference to MoFEM core instance.
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
Query interface for type-safe casting.
PipelineManager interface.
Interface for nonlinear (SNES) solver.
Definition SnesCtx.hpp:15
Interface for Time Stepping (TS) solver.
Definition TsCtx.hpp:17
base class for all interface classes