BulkCalculation.h
1 //##################################################################################################
2 //
3 // Ceetron Desktop Components
4 // Component: UnstructGrid
5 //
6 // --------------------------------------------------------------------------------------------
7 // Copyright (C) 2017, 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 "CeeUnstructGrid/Base.h"
16 #include "CeeUnstructGrid/UnstructGridModel.h"
17 
18 namespace cee {
19 namespace ug {
20 
21 //==================================================================================================
22 //
23 //
24 //
25 //==================================================================================================
26 class CEE_UG_EXPORT BulkValues
27 {
28 public:
30  int partId;
31 
32  double minimumValue;
33  double maximumValue;
34  double averageValue;
35  double resultant;
36 
40  double volumeResultant;
41 
45 
49 
50  double area;
51  double volume;
52  size_t surfaceCount;
53  size_t nodeCount;
54  size_t elementCount;
55 
59 
60  BulkValues();
61 };
62 
63 
64 //==================================================================================================
65 //
66 //
67 //
68 //==================================================================================================
69 class CEE_UG_EXPORT BulkCalculation
70 {
71 public:
72  BulkCalculation(UnstructGridModel* model, size_t frameIndex);
73  ~BulkCalculation();
74 
75  bool getCutplaneValues(size_t cuttingPlaneIndex, ResultType resultType, int resultId, std::vector<BulkValues>* cutplaneRegionArr);
76  bool getPartValues(size_t globalGeometryIndex, int partId, ResultType resultType, int resultId, BulkValues* bulkValues);
77 
78 private:
79  CEE_PRIVATE_IMPL(BulkCalculation);
80  CEE_DISALLOW_COPY_AND_ASSIGN(BulkCalculation);
81 };
82 
83 } // namespace ug
84 } // namespace cee
double nodeMinimumValue
Minimum per surface node nodal scalar value in the region (only applicable for PER_NODE or PER_ELEMEN...
Definition: BulkCalculation.h:42
double volumeAverageValue
The Average result for volume elements in the part (only applicable for parts with volume elements) ...
Definition: BulkCalculation.h:39
double minimumValue
Minimum element scalar value in the region.
Definition: BulkCalculation.h:32
Namespace cee contains all functionality and structures under the Core component. ...
Definition: AppComponent.cpp:26
size_t surfaceCount
Number of surfaces in the region.
Definition: BulkCalculation.h:52
double resultant
Sum of SURFACE_AREA*SURFACE_RESULT_VALUE for all element surfaces in the region.
Definition: BulkCalculation.h:35
double area
The surface area of the region.
Definition: BulkCalculation.h:50
double volumeNodeMinimumValue
Minimum per volume element node value (applicable for PER_NODE and PER_ELEMENT_NODE results) ...
Definition: BulkCalculation.h:46
double volumeNodeAverageValue
Average per volume element node value (applicable for PER_NODE and PER_ELEMENT_NODE results) ...
Definition: BulkCalculation.h:48
double maximumValue
Maxinum element scalar value in the region.
Definition: BulkCalculation.h:33
double volumeMaximumValue
The Maximum result for volume elements in the part (only applicable for parts with volume elements) ...
Definition: BulkCalculation.h:38
size_t globalGeometryIndex
Geometry index of the part associated with the bulk values.
Definition: BulkCalculation.h:29
size_t elementCount
Number of elements. For cutting planes: The number of elements intersected.
Definition: BulkCalculation.h:54
Vec3d centroid
The centroid of the region.
Definition: BulkCalculation.h:56
double volume
The volume of the part (only applicable for parts with volume elements). For cutting planes: the volu...
Definition: BulkCalculation.h:51
double nodeAverageValue
Average per surface node nodal scalar value in the region (only applicable for PER_NODE or PER_ELEMEN...
Definition: BulkCalculation.h:44
double volumeMinimumValue
The minimum result for volume elements in the part (only applicable for parts with volume elements) ...
Definition: BulkCalculation.h:37
size_t nodeCount
Number of nodes in the region.
Definition: BulkCalculation.h:53
double volumeResultant
Sum of VOLUME*ELEMENT_RESULT_VALUE for all volume elements (only applicable for parts with volume ele...
Definition: BulkCalculation.h:40
Class for storing results of bulk calculations.
Definition: BulkCalculation.h:26
int partId
Part id of the part associated with the bulk values.
Definition: BulkCalculation.h:30
double volumeNodeMaximumValue
Maximum per volume element node value (applicable for PER_NODE and PER_ELEMENT_NODE results) ...
Definition: BulkCalculation.h:47
Vector class for a 3D double vector.
Definition: Vec3d.h:26
UnstructGridModel is a subclass of Model which adds specific model structure and functionality for re...
Definition: UnstructGridModel.h:72
Definition: BulkCalculation.h:69
Vec3d boundingBoxMaximum
The centroid of the region.
Definition: BulkCalculation.h:58
Vec3d boundingBoxMinimum
The centroid of the region.
Definition: BulkCalculation.h:57
ResultType
Different types of results.
Definition: Base.h:90
double nodeMaximumValue
Maxinum per surface node nodal scalar value in the region (only applicable for PER_NODE or PER_ELEMEN...
Definition: BulkCalculation.h:43
double averageValue
Average element scalar value in the region.
Definition: BulkCalculation.h:34