Skip to main content

System Coupling C++ library 2023 R2

InputVectorData

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/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(float* data, std::size_t size);
46
53 InputVectorData(std::vector<double>& data);
54
61 InputVectorData(std::vector<float>& data);
62
74 double* data0,
75 double* data1,
76 double* data2,
77 std::size_t size);
78
90 float* data0,
91 float* data1,
92 float* data2,
93 const std::size_t size);
94
105 std::vector<double>& data0,
106 std::vector<double>& data1,
107 std::vector<double>& data2);
108
119 std::vector<float>& data0,
120 std::vector<float>& data1,
121 std::vector<float>& data2);
122
124 InputVectorData() = default;
125
128
131
134
137
139 std::size_t size() const noexcept;
140
145 sysc::PrimitiveType getDataType() const noexcept;
146
152 bool isSplitVector() const noexcept;
153
159 void* getData0() const noexcept;
160
166 void* getData1() const noexcept;
167
173 void* getData2() const noexcept;
174
175private:
176 sysc::PrimitiveType m_dataType{sysc::Double};
177 bool m_isSplitVector{false};
178 void* m_data0{nullptr};
179 void* m_data1{nullptr};
180 void* m_data2{nullptr};
181 std::size_t m_size{0};
182};
183
184} // namespace sysc
Provide a class for input vector data.
InputVectorData & operator=(const InputVectorData &)=default
Provide a copy-assign operator.
InputVectorData(float *data0, float *data1, float *data2, const std::size_t size)
Create an input 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 & operator=(InputVectorData &&)=default
Provide a move-assign operator.
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< 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(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.
PrimitiveType
Provide enum for supported primitive types.

Connect with Ansys