Skip to main content

System Coupling C++ library 2024 R1

OutputVectorData

Last update: 17.07.2025
1/*
2* Copyright ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
3*/
4
5#pragma once
6
7#include "SystemCouplingParticipant/LibraryType.hpp"
8
9#include "SystemCouplingParticipant/CommonTypes.hpp"
10
11#include <cstddef>
12#include <vector>
13
14namespace sysc {
15
27class SYSTEM_COUPLING_PARTICIPANT_DLL OutputVectorData {
28public:
35 OutputVectorData(const double* data, std::size_t size);
36
44 OutputVectorData(const double* data, std::size_t size, Dimension dimension);
45
52 OutputVectorData(const float* data, std::size_t size);
53
61 OutputVectorData(const float* data, std::size_t size, Dimension dimension);
62
68 OutputVectorData(const std::vector<double>& data);
69
76 OutputVectorData(const std::vector<double>& data, Dimension dimension);
77
83 OutputVectorData(const std::vector<float>& data);
84
91 OutputVectorData(const std::vector<float>& data, Dimension dimension);
92
103 const double* data0,
104 const double* data1,
105 const double* data2,
106 std::size_t size);
107
117 const double* data0,
118 const double* data1,
119 std::size_t size);
120
131 const float* data0,
132 const float* data1,
133 const float* data2,
134 std::size_t size);
135
145 const float* data0,
146 const float* data1,
147 std::size_t size);
148
158 const std::vector<double>& data0,
159 const std::vector<double>& data1,
160 const std::vector<double>& data2);
161
170 const std::vector<double>& data0,
171 const std::vector<double>& data1);
172
182 const std::vector<float>& data0,
183 const std::vector<float>& data1,
184 const std::vector<float>& data2);
185
194 const std::vector<float>& data0,
195 const std::vector<float>& data1);
196
198 OutputVectorData() = default;
199
202
205
208
211
213 std::size_t size() const noexcept;
214
216 bool empty() const noexcept;
217
222 sysc::PrimitiveType getDataType() const noexcept;
223
229 bool isSplitVector() const noexcept;
230
236 const void* getData0() const noexcept;
237
243 const void* getData1() const noexcept;
244
250 const void* getData2() const noexcept;
251
257 Dimension getDimension() const noexcept;
258
259private:
260 sysc::PrimitiveType m_dataType{sysc::Double};
261 bool m_isSplitVector{false};
262 const void* m_data0{nullptr};
263 const void* m_data1{nullptr};
264 const void* m_data2{nullptr};
265 std::size_t m_size{0};
266 Dimension m_dimension{Dimension::D3};
267};
268
269} // namespace sysc
Provide a class for output vector data.
OutputVectorData(const std::vector< float > &data)
Provide a constructor for output vector data with compact storage.
OutputVectorData(const std::vector< double > &data0, const std::vector< double > &data1)
Create an 2D output vector data access object with split storage.
OutputVectorData(const OutputVectorData &)=default
Provide a copy-constructor.
OutputVectorData(const float *data0, const float *data1, std::size_t size)
Create an 2D output vector data access object with split storage.
OutputVectorData(const std::vector< double > &data)
Provide a constructor for output vector data with compact storage.
OutputVectorData(const std::vector< float > &data, Dimension dimension)
Provide a constructor for 2D output vector data with compact storage.
OutputVectorData(const std::vector< float > &data0, const std::vector< float > &data1)
Create an 2D output vector data access object with split storage.
OutputVectorData(const double *data, std::size_t size)
Provide a constructor for output vector data with compact storage.
OutputVectorData(const float *data0, const float *data1, const float *data2, std::size_t size)
Create an output vector data access object with split storage.
OutputVectorData(const std::vector< double > &data, Dimension dimension)
Provide a constructor for 2D output vector data with compact storage.
OutputVectorData & operator=(const OutputVectorData &)=default
Provide a copy-assign operator.
std::size_t size() const noexcept
Get the size of data.
OutputVectorData(const double *data0, const double *data1, std::size_t size)
Create an 2D output vector data access object with split storage.
OutputVectorData()=default
Provide a default constructor.
OutputVectorData & operator=(OutputVectorData &&)=default
Provide a move-assign operator.
OutputVectorData(const float *data, std::size_t size, Dimension dimension)
Provide a constructor for 2D output vector data with compact storage.
OutputVectorData(const double *data, std::size_t size, Dimension dimension)
Provide a constructor for 2D output vector data with compact storage.
OutputVectorData(const std::vector< float > &data0, const std::vector< float > &data1, const std::vector< float > &data2)
Create an output vector data access object with split storage.
OutputVectorData(OutputVectorData &&)=default
Provide a move-constructor.
OutputVectorData(const std::vector< double > &data0, const std::vector< double > &data1, const std::vector< double > &data2)
Create an output vector data access object with split storage.
OutputVectorData(const double *data0, const double *data1, const double *data2, std::size_t size)
Create an output vector data access object with split storage.
OutputVectorData(const float *data, std::size_t size)
Provide a constructor for output vector data with compact storage.
Dimension
Provide an enum for participant dimension.
PrimitiveType
Provide enum for supported primitive types.

Connect with Ansys