ResultOperators.h
1 //##################################################################################################
2 //
3 // Ceetron Desktop Components
4 // Component: App
5 //
6 // --------------------------------------------------------------------------------------------
7 // Copyright (C) 2011, Ceetron AS
8 // This is UNPUBLISHED PROPRIETARY SOURCE CODE of Ceetron AS. The contents of this file may
9 // not be disclosed to third parties, copied or duplicated in any form, in whole or in part,
10 // without the prior written permission of Ceetron AS.
11 //##################################################################################################
12 
13 #pragma once
14 
15 #include "CeeCore/Base.h"
16 #include "CeeCore/Str.h"
17 #include "CeeUnstructGrid/ResultInfo.h"
18 #include "CeeUnstructGrid/CustomResultGenerator.h"
19 
20 namespace cee {
21 namespace app {
22 
23 //==================================================================================================
27 //==================================================================================================
28 class CEE_APP_EXPORT MathFunctionCallBack
29 {
30 public:
31  MathFunctionCallBack(const cee::Str& functionName) : m_functionName(functionName){};
32 
33  virtual double operator()(double x)
34  {
35  CEE_UNUSED(x);
36  return cee::UNDEFINED_DOUBLE;
37  }
38 
39  const cee::Str& functionName() const { return m_functionName; }
40 
41  virtual ~MathFunctionCallBack() {};
42 
43 private:
44  cee::Str m_functionName;
45 };
46 
47 
48 } // namespace cee
49 } // namespace app
50 
51 const cee::ug::ResultInfo CEE_APP_EXPORT operator+(const cee::ug::ResultInfo& first, const cee::ug::ResultInfo& second); // R = U + V
52 const cee::ug::ResultInfo CEE_APP_EXPORT operator-(const cee::ug::ResultInfo& first, const cee::ug::ResultInfo& second); // R = U - V
53 const cee::ug::ResultInfo CEE_APP_EXPORT operator-(const cee::ug::ResultInfo& first); // R = -U
54 const cee::ug::ResultInfo CEE_APP_EXPORT operator*(const cee::ug::ResultInfo& first, const cee::ug::ResultInfo& second); // R = U.V
55 const cee::ug::ResultInfo CEE_APP_EXPORT operator^(const cee::ug::ResultInfo& first, const cee::ug::ResultInfo& second); // R = UxV
56 const cee::ug::ResultInfo CEE_APP_EXPORT operator/(const cee::ug::ResultInfo& first, const cee::ug::ResultInfo& second); // R = U/V
57 
58 const cee::ug::ResultInfo CEE_APP_EXPORT operator+(const cee::ug::ResultInfo& first, double constant); // R=U+k
59 const cee::ug::ResultInfo CEE_APP_EXPORT operator-(const cee::ug::ResultInfo& first, double constant); // R=U-k
60 const cee::ug::ResultInfo CEE_APP_EXPORT operator*(const cee::ug::ResultInfo& first, double constant); // R=k.U
61 const cee::ug::ResultInfo CEE_APP_EXPORT operator/(const cee::ug::ResultInfo& first, double constant); // R=U/k
62 
63 const cee::ug::ResultInfo CEE_APP_EXPORT extractComponent(const cee::ug::ResultInfo& first, size_t componentIndex); // R = U[i]
64 const cee::ug::ResultInfo CEE_APP_EXPORT l1Norm(const cee::ug::ResultInfo& first); // R = |Ux| + |Uy| + |Uz|
65 const cee::ug::ResultInfo CEE_APP_EXPORT l2Norm(const cee::ug::ResultInfo& first); // R = sqrt(Ux*Ux + Uy*Uy + Uz*Uz)
66 
67 const cee::ug::ResultInfo CEE_APP_EXPORT average(const std::vector<cee::ug::ResultInfo>& arguments); // Arithmetic average
68 const cee::ug::ResultInfo CEE_APP_EXPORT min(const std::vector<cee::ug::ResultInfo>& arguments); // Min
69 const cee::ug::ResultInfo CEE_APP_EXPORT max(const std::vector<cee::ug::ResultInfo>& arguments); // Max
70 
71 const cee::ug::ResultInfo CEE_APP_EXPORT minValue(const cee::ug::ResultInfo& first, bool perPart = false); // Min value of argument, returned as a constant scalar
72 const cee::ug::ResultInfo CEE_APP_EXPORT maxValue(const cee::ug::ResultInfo& first, bool perPart = false); // Max value of argument, returned as a constant scalar
73 const cee::ug::ResultInfo CEE_APP_EXPORT averageValue(const cee::ug::ResultInfo& first, bool perPart = false); // Avg value of argument, returned as a constant scalar
74 
75 const cee::ug::ResultInfo CEE_APP_EXPORT toElementsArithmetic(const cee::ug::ResultInfo& first); // Node to element, simple arithmetic averaging
76 const cee::ug::ResultInfo CEE_APP_EXPORT toNodesArithmetic(const cee::ug::ResultInfo& first); // Element to node, simple arithmetic averaging
77 const cee::ug::ResultInfo CEE_APP_EXPORT createMathFunctionResult(const cee::ug::ResultInfo& first, cee::app::MathFunctionCallBack* function);
78 
79 const cee::ug::ResultInfo CEE_APP_EXPORT vonMises(const cee::ug::ResultInfo& first);
80 const std::vector<cee::ug::ResultInfo> CEE_APP_EXPORT principals(const cee::ug::ResultInfo& first);
81 
82 /*const cee::ug::ResultInfo CEE_APP_EXPORT firstPrincipalVector(const cee::ug::ResultInfo& first);
83 const cee::ug::ResultInfo CEE_APP_EXPORT secondPrincipalVector(const cee::ug::ResultInfo& first);
84 const cee::ug::ResultInfo CEE_APP_EXPORT thirdPrincipalVector(const cee::ug::ResultInfo& first);
85 const cee::ug::ResultInfo CEE_APP_EXPORT firstPrincipalValue(const cee::ug::ResultInfo& first);
86 const cee::ug::ResultInfo CEE_APP_EXPORT secondPrincipalValue(const cee::ug::ResultInfo& first);
87 const cee::ug::ResultInfo CEE_APP_EXPORT thirdPrincipalValue(const cee::ug::ResultInfo& first);
88 
89 */
cee::Str operator+(const char *str1, const cee::Str &str2)
Global operator to allow a const char + a cee::Str.
Definition: Str.cpp:817
Namespace cee contains all functionality and structures under the Core component. ...
Definition: AppComponent.cpp:26
Simple class containing metadata info for a result.
Definition: ResultInfo.h:34
A general unicode based string class.
Definition: Str.h:28
Math function callback class.
Definition: ResultOperators.h:28
const double UNDEFINED_DOUBLE
Undefined value for double.
Definition: Base.h:94