Skip to main content

System Coupling C++ library 2025 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 
14 namespace sysc {
15 
27 class SYSTEM_COUPLING_PARTICIPANT_DLL OutputVectorData {
28 public:
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 
259 private:
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=(OutputVectorData &&)=default
Provide a move-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(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 & operator=(const OutputVectorData &)=default
Provide a copy-assign operator.
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