Skip to main content

Common Fluids Format 2023 R2

Run

Last update: 16.07.2025
1#ifndef CFFSDK_PROJECT_RUN_H
2#define CFFSDK_PROJECT_RUN_H
3
4#include "Project/LibraryType.hpp"
5#include "Project/Iterator.hpp"
6#include "Project/SimBase.hpp"
7#include "Project/Result.hpp"
8#include "Project/Output.hpp"
9#include "Project/RunOutputAttr.hpp"
10#include "Project/Types.hpp"
11
12namespace ansys {
13namespace Project {
14
15class Metadata;
16
17class ANSYS_PROJECT_DLL Run : public SimBase, public RunOutputAttr
18{
19public:
20 Run(Iterator pIter);
21 virtual ~Run() {};
22
23 // SimBase provides: ok, getName, Meta and Input
24
25 virtual Error isValid() const;
26
27 bool addVariable(const std::string& pVar);
28 bool setVariables(const std::vector<std::string>& pVars);
29 bool removeVariable(const std::string& pVar);
30 std::vector<std::string> getVariables() const;
31 std::vector<std::vector<std::string> > getValues(const std::vector<std::string>& pVars) const;
32
33 bool addOutputVariable(const std::string& pVar);
34 bool setOutputVariables(const std::vector<std::string>& pVars);
35 bool removeOutputVariable(const std::string& pVar);
36 std::vector<std::string> getOutputVariables() const;
37 std::vector<std::string> getAllVariables() const;
38
39 // Standard variables
40 void addVarIndex();
41 void addVarTime();
42 void addVarSolverIteration();
43 void addVarCrankAngle();
44 void addVarMeshId();
45 void addVarDomainTransformationId();
46 void addVarPhysicsId();
47 void addVarTopologyId();
48 void addVarCoordinatesId();
49 void addVarLocationId();
50 void addVarConnectivityId();
51 void addVarCaseId();
52 void addVarInputSettingsId();
53 void addVarOutputSettingsId();
54
55 Error computeIds();
56
57 // Metadata with inheritance (RunGroup)
58 virtual bool hasValue(const std::string& pVar,bool pFlagInherited) const;
59 Iterator getValueIter(const std::string& pVar) const;
60
61 virtual std::string getValue(const std::string& pVar,bool pFlagInherited) const;
62 virtual int getValueInt(const std::string& pVar,bool pFlagInherited) const;
63 virtual double getValueDouble(const std::string& pVar,bool pFlagInherited) const;
64 virtual MetaVariableType getValueType(const std::string& pVar,bool pFlagInherited) const;
65 virtual void setValue(const std::string& pVar,const std::string& pValue);
66 virtual void setValueInt(const std::string& pVar,int pValue);
67 virtual void setValueDouble(const std::string& pVar,double pValue);
68
69 // backward compatibility api
70 void setValue(const std::string& pVar,int pValue) { setValueInt(pVar,pValue); };
71 void setValue(const std::string& pVar,double pValue) { setValueDouble(pVar,pValue); };
72
73 // Simple, Sequence, Parametric, Transient
74 enum RunOutputType { Simple, Sequence, Parametric, Transient, Steady, RO_Other };
75
76 bool setRunOutputType(RunOutputType pType);
77 RunOutputType getRunOutputType() const;
78 std::string getRunOutputTypeAsString() const;
79
80 Iterator getCase() const;
81
82 Iterator newOutput(std::string pName = "");
83 std::vector<Iterator> getResultIterators(const std::string& pType,
84 const std::string& pSubtype) const;
85 std::vector<Result> getResults(const std::string& pType,
86 const std::string& pSubtype) const;
87 std::vector<Iterator> getOutputIterators() const;
88 std::vector<Output> getOutputs() const;
89
90 // Shorthand operators for currentOutput
91 Iterator getData();
92 Iterator getResult(const std::string& pDataType);
93
94 void setCurrentOutput(Iterator pOutput);
95 Iterator getCurrentOutput() const;
96
97 std::vector<std::string> getResultTypes() const;
98
100 Error getTransientOutputs(const std::string& pResultType,
101 std::vector<Iterator>& pOutIterators,
102 std::vector<double>& pOutTimeval) const;
103
104 // Sequence query
105 enum OutputSequenceOrder {
106 CreationID,
107 MonotonicIncreasing,
108 Increasing,
109 IncreasingUnique,
110 Decreasing,
111 DecreasingUnique
112 };
113 Error getOutputSequence( OutputSequenceOrder pOrder,
114 std::string pVariable,
115 std::vector<Output>& pOutputs) const;
116
117 enum OutputMatchOperator {
118 Equal,
119 Greater,
120 GreaterEqual,
121 Smaller,
122 SmallerEqual
123 };
124 std::vector<Output> getOutputsMatching ( std::string pVariable,
125 OutputMatchOperator pOperator,
126 double pValue ) const;
127 Error removeOutputs(const std::vector<Output>& pOut,bool pEraseFiles);
128
129 // RunStatus
130 void setRunStatus(RunStatus pStatus);
131 RunStatus getRunStatus() const;
132
133 static std::string runStatusToString(RunStatus pStatus);
134 static RunStatus stringToRunStatus(const std::string& pStr);
135
136 Iterator getIterator() const { return SimBase::getIterator(); }
137protected:
138 Run(Iterator pIter,const std::string& pSubclass);
139
140};
141
142}
143}
144
145#endif // CFFSDK_PROJECT_RUN_H
The return state / error value of a Project function call.
Definition: Error.hpp:11
Pointer to a project location.
Definition: Iterator.hpp:20
Base class for Run, Output, Result - provide built-in variable set/get functions.
Definition: RunOutputAttr.hpp:13
Subfolder of a Simulation, regrouping Output/Result for a step.
Definition: Run.hpp:18
Base class for Run and Simulation - shared functions.
Definition: SimBase.hpp:13
virtual Iterator getIterator() const
Access the Iterator for this item.
Definition: SimBase.cpp:340
Definition: API.dox:1

Connect with Ansys