Skip to main content

System Coupling C++ library 2025 R1

InputVectorData

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 InputVectorData {
28 public:
36  InputVectorData(double* data, std::size_t size);
37 
45  InputVectorData(double* data, std::size_t size, Dimension dimension);
46 
54  InputVectorData(float* data, std::size_t size);
55 
63  InputVectorData(float* data, std::size_t size, Dimension dimension);
64 
71  InputVectorData(std::vector<double>& data);
72 
79  InputVectorData(std::vector<double>& data, Dimension dimension);
80 
87  InputVectorData(std::vector<float>& data);
88 
95  InputVectorData(std::vector<float>& data, Dimension dimension);
96 
108  double* data0,
109  double* data1,
110  double* data2,
111  std::size_t size);
112 
122  double* data0,
123  double* data1,
124  std::size_t size);
125 
137  float* data0,
138  float* data1,
139  float* data2,
140  std::size_t size);
141 
151  float* data0,
152  float* data1,
153  std::size_t size);
154 
165  std::vector<double>& data0,
166  std::vector<double>& data1,
167  std::vector<double>& data2);
168 
177  std::vector<double>& data0,
178  std::vector<double>& data1);
179 
190  std::vector<float>& data0,
191  std::vector<float>& data1,
192  std::vector<float>& data2);
193 
202  std::vector<float>& data0,
203  std::vector<float>& data1);
204 
206  InputVectorData() = default;
207 
209  InputVectorData(const InputVectorData&) = default;
210 
213 
216 
219 
221  std::size_t size() const noexcept;
222 
224  bool empty() const noexcept;
225 
230  sysc::PrimitiveType getDataType() const noexcept;
231 
237  bool isSplitVector() const noexcept;
238 
244  void* getData0() const noexcept;
245 
251  void* getData1() const noexcept;
252 
258  void* getData2() const noexcept;
259 
265  Dimension getDimension() const noexcept;
266 
267 private:
268  sysc::PrimitiveType m_dataType{sysc::Double};
269  bool m_isSplitVector{false};
270  void* m_data0{nullptr};
271  void* m_data1{nullptr};
272  void* m_data2{nullptr};
273  std::size_t m_size{0};
274  Dimension m_dimension{Dimension::D3};
275 };
276 
277 } // namespace sysc
Provide a class for input vector data.
InputVectorData(std::vector< double > &data, Dimension dimension)
Provide a constructor for 2D output vector data with compact storage.
InputVectorData & operator=(const InputVectorData &)=default
Provide a copy-assign operator.
InputVectorData(float *data, std::size_t size, Dimension dimension)
Provide a constructor for 2D output vector data with compact storage.
InputVectorData(double *data, std::size_t size, Dimension dimension)
Provide a constructor for 2D output vector data with compact storage.
InputVectorData(double *data0, double *data1, std::size_t size)
Create an 2D output vector data access object with split storage.
InputVectorData(float *data, std::size_t size)
Provide a constructor for input vector data with compact storage.
std::size_t size() const noexcept
Get the size of data.
InputVectorData(std::vector< double > &data0, std::vector< double > &data1)
Create an 2D output vector data access object with split storage.
InputVectorData & operator=(InputVectorData &&)=default
Provide a move-assign operator.
InputVectorData(float *data0, float *data1, std::size_t size)
Create an 2D output vector data access object with split storage.
InputVectorData(float *data0, float *data1, float *data2, std::size_t size)
Create an input vector data access object with split storage.
InputVectorData(std::vector< float > &data0, std::vector< float > &data1, std::vector< float > &data2)
Create an input vector data access object with split storage.
InputVectorData(std::vector< float > &data)
Provide a constructor for input vector data with compact storage.
InputVectorData(double *data, std::size_t size)
Provide a constructor for input vector data with compact storage.
InputVectorData(const InputVectorData &)=default
Provide a copy-constructor.
InputVectorData(std::vector< float > &data, Dimension dimension)
Provide a constructor for 2D output vector data with compact storage.
InputVectorData(std::vector< double > &data)
Provide a constructor for input vector data with compact storage.
InputVectorData(std::vector< double > &data0, std::vector< double > &data1, std::vector< double > &data2)
Create an input vector data access object with split storage.
InputVectorData(std::vector< float > &data0, std::vector< float > &data1)
Create an 2D output vector data access object with split storage.
InputVectorData(InputVectorData &&)=default
Provide a move-constructor.
InputVectorData(double *data0, double *data1, double *data2, std::size_t size)
Create an input vector data access object with split storage.
InputVectorData()=default
Provide a default constructor.
Dimension
Provide an enum for participant dimension.
PrimitiveType
Provide enum for supported primitive types.

Connect with Ansys