Skip to main content

System Coupling C++ library 2023 R2

Variable

Last update: 17.07.2025
1/*
2 * Copyright 2023 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
3 */
4
5#pragma once
6
7#include "SystemCouplingParticipant/LibraryType.hpp"
8
9#include "SystemCouplingParticipant/Attribute.hpp"
10#include "SystemCouplingParticipant/CommonTypes.hpp"
11
12#include "vector"
13
14namespace sysc {
15
21class SYSTEM_COUPLING_PARTICIPANT_DLL Variable {
22public:
40 explicit Variable(const VariableName& name);
41
58 enum TensorType tensorType,
59 bool isExtensive,
60 enum Location location);
61
77 enum TensorType tensorType,
78 bool isExtensive,
79 enum Location location,
80 enum DataType dataType);
81
95 const DisplayName& displayName,
96 enum TensorType tensorType,
97 bool isExtensive,
98 enum Location location,
99 enum QuantityType quantityType);
100
113 const DisplayName& displayName,
114 enum TensorType tensorType,
115 bool isExtensive,
116 enum Location location,
117 enum QuantityType quantityType,
118 enum DataType dataType);
119
155 enum QuantityType quantityType,
156 enum Location location = Node,
157 const DisplayName& displayName = DisplayName());
158
164 const VariableName& getName() const noexcept;
165
171 enum TensorType getTensorType() const noexcept;
172
178 bool getIsExtensive() const noexcept;
179
185 enum QuantityType getQuantityType() const noexcept;
186
192 enum Location getLocation() const noexcept;
193
199 const DisplayName& getDisplayName() const noexcept;
200
206 enum DataType getDataType() const noexcept;
207
209 void addRealAttribute(const RealAttribute& attribute);
210
212 void addIntegerAttribute(const IntegerAttribute& attribute);
213
215 std::size_t getNumRealAttributes() const noexcept;
216
218 std::size_t getNumIntegerAttributes() const noexcept;
219
221 const RealAttribute& getRealAttribute(std::size_t index) const;
222
224 const IntegerAttribute& getIntegerAttribute(std::size_t index) const;
225
226private:
227 VariableName m_name;
228 QuantityType m_quantityType;
229 Location m_location;
230 DisplayName m_displayName;
231 TensorType m_tensorType;
232 bool m_isExtensive;
233 DataType m_dataType;
235 std::vector<RealAttribute> m_realAttributes;
236 std::vector<IntegerAttribute> m_integerAttributes;
237};
238
239} // namespace sysc
Provide a class for an integer-valued attribute.
Definition: Attribute.hpp:61
Provide a class for a real-valued attribute.
Definition: Attribute.hpp:23
Provide a class for a System Coupling variable.
Definition: Variable.hpp:21
Variable(const VariableName &name, enum TensorType tensorType, bool isExtensive, enum Location location)
Provide a constructor for the Variable class.
const VariableName & getName() const noexcept
Get the variable's name.
Variable(const VariableName &name, enum TensorType tensorType, bool isExtensive, enum Location location, enum DataType dataType)
Provide a constructor for the Variable class.
Variable(const VariableName &name, const DisplayName &displayName, enum TensorType tensorType, bool isExtensive, enum Location location, enum QuantityType quantityType, enum DataType dataType)
Provide a constructor for the Variable class.
Variable(const VariableName &name, enum QuantityType quantityType, enum Location location=Node, const DisplayName &displayName=DisplayName())
Provide a constructor for the Variable class.
Variable(const VariableName &name, const DisplayName &displayName, enum TensorType tensorType, bool isExtensive, enum Location location, enum QuantityType quantityType)
Provide a constructor for the Variable class.
Variable(const VariableName &name)
Provide a constructor for the Variable class.
std::string VariableName
std::string DisplayName
DataType
Provide enum for variable data types.
Definition: CommonTypes.hpp:34
TensorType
Provide enum for variable tensor types.
QuantityType
Provide an enum for variable quantity types.
Location
Provide enum for variable mesh locations.

Connect with Ansys