Skip to main content

System Coupling C++ library 2024 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
14namespace sysc {
15
27class SYSTEM_COUPLING_PARTICIPANT_DLL InputVectorData {
28public:
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
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
267private:
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 & operator=(const InputVectorData &)=default
Provide a copy-assign operator.
InputVectorData(std::vector< double > &data, Dimension dimension)
Provide a constructor for 2D output vector data with compact storage.
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