Skip to main content

System Coupling C++ library 2023 R2

InputComplexVectorData

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 <complex>
13#include <vector>
14
15namespace sysc {
16
29class SYSTEM_COUPLING_PARTICIPANT_DLL InputComplexVectorData {
30public:
37 InputComplexVectorData(std::vector<std::complex<double>>& dataComplex);
38
47 InputComplexVectorData(double* const dataComplex, std::size_t size);
48
57 InputComplexVectorData(std::complex<double>* const dataComplex, std::size_t size);
58
75 std::vector<double>& dataReal,
76 std::vector<double>& dataImaginary);
77
95 double* const dataReal,
96 double* const dataImaginary,
97 std::size_t size);
98
119 std::vector<std::complex<double>>& dataComplex1,
120 std::vector<std::complex<double>>& dataComplex2,
121 std::vector<std::complex<double>>& dataComplex3);
122
142 std::complex<double>* const dataComplex1,
143 std::complex<double>* const dataComplex2,
144 std::complex<double>* const dataComplex3,
145 std::size_t size);
146
166 double* const dataComplex1,
167 double* const dataComplex2,
168 double* const dataComplex3,
169 std::size_t size);
170
200 std::vector<double>& dataReal1,
201 std::vector<double>& dataImaginary1,
202 std::vector<double>& dataReal2,
203 std::vector<double>& dataImaginary2,
204 std::vector<double>& dataReal3,
205 std::vector<double>& dataImaginary3);
206
235 double* const dataReal1,
236 double* const dataImaginary1,
237 double* const dataReal2,
238 double* const dataImaginary2,
239 double* const dataReal3,
240 double* const dataImaginary3,
241 std::size_t size);
242
249 InputComplexVectorData(std::vector<std::complex<float>>& dataComplex);
250
259 InputComplexVectorData(float* const dataComplex, std::size_t size);
260
269 InputComplexVectorData(std::complex<float>* const dataComplex, std::size_t size);
270
287 std::vector<float>& dataReal,
288 std::vector<float>& dataImaginary);
289
307 float* const dataReal,
308 float* const dataImaginary,
309 std::size_t size);
310
331 std::vector<std::complex<float>>& dataComplex1,
332 std::vector<std::complex<float>>& dataComplex2,
333 std::vector<std::complex<float>>& dataComplex3);
334
354 std::complex<float>* const dataComplex1,
355 std::complex<float>* const dataComplex2,
356 std::complex<float>* const dataComplex3,
357 std::size_t size);
358
378 float* const dataComplex1,
379 float* const dataComplex2,
380 float* const dataComplex3,
381 std::size_t size);
382
412 std::vector<float>& dataReal1,
413 std::vector<float>& dataImaginary1,
414 std::vector<float>& dataReal2,
415 std::vector<float>& dataImaginary2,
416 std::vector<float>& dataReal3,
417 std::vector<float>& dataImaginary3);
418
447 float* const dataReal1,
448 float* const dataImaginary1,
449 float* const dataReal2,
450 float* const dataImaginary2,
451 float* const dataReal3,
452 float* const dataImaginary3,
453 std::size_t size);
454
457
460
463
466
469
471 std::size_t size() const noexcept;
472
477 sysc::PrimitiveType getDataType() const noexcept;
478
484 bool isSplitVector() const noexcept;
485
491 bool isSplitComplex() const noexcept;
492
498 void* getData1() const noexcept;
499
505 void* getData2() const noexcept;
506
512 void* getData3() const noexcept;
513
519 void* getData4() const noexcept;
520
526 void* getData5() const noexcept;
527
533 void* getData6() const noexcept;
534
535private:
536 const sysc::PrimitiveType m_dataType{sysc::Double};
537 const bool m_isSplitVector{false};
538 const bool m_isSplitComplex{false};
539
540 void* const m_data1{nullptr};
541 void* const m_data2{nullptr};
542 void* const m_data3{nullptr};
543 void* const m_data4{nullptr};
544 void* const m_data5{nullptr};
545 void* const m_data6{nullptr};
546
547 const std::size_t m_size{0};
548};
549
550} // namespace sysc
Provide a class for input complex vector data.
InputComplexVectorData(const InputComplexVectorData &)=default
Provide a copy-constructor.
InputComplexVectorData(double *const dataReal1, double *const dataImaginary1, double *const dataReal2, double *const dataImaginary2, double *const dataReal3, double *const dataImaginary3, std::size_t size)
Create an input complex vector data access object with split storage for vector components and split ...
InputComplexVectorData(std::vector< std::complex< float > > &dataComplex)
Provide a constructor for input complex vector data with compact storage for both vector components a...
InputComplexVectorData & operator=(InputComplexVectorData &&)=default
Provide a move-assign operator.
InputComplexVectorData(std::vector< std::complex< double > > &dataComplex)
Provide a constructor for input complex vector data with compact storage for both vector components a...
InputComplexVectorData(std::vector< float > &dataReal, std::vector< float > &dataImaginary)
Create an input complex vector data access object with compact storage for vector components and spli...
InputComplexVectorData()=default
Provide a default constructor.
InputComplexVectorData(double *const dataComplex, std::size_t size)
Provide a constructor for input complex vector data with compact storage for both vector components a...
InputComplexVectorData(std::complex< double > *const dataComplex1, std::complex< double > *const dataComplex2, std::complex< double > *const dataComplex3, std::size_t size)
Create an input complex vector data access object with split storage for vector components and compac...
InputComplexVectorData & operator=(const InputComplexVectorData &)=default
Provide a copy-assign operator.
InputComplexVectorData(double *const dataComplex1, double *const dataComplex2, double *const dataComplex3, std::size_t size)
Create an input complex vector data access object with split storage for vector components and compac...
InputComplexVectorData(std::vector< std::complex< double > > &dataComplex1, std::vector< std::complex< double > > &dataComplex2, std::vector< std::complex< double > > &dataComplex3)
Create an input complex vector data access object with split storage for vector components and compac...
InputComplexVectorData(float *const dataReal, float *const dataImaginary, std::size_t size)
Create an input complex vector data access object with compact storage for vector components and spli...
std::size_t size() const noexcept
Get the size of data.
InputComplexVectorData(std::vector< double > &dataReal, std::vector< double > &dataImaginary)
Create an input complex vector data access object with compact storage for vector components and spli...
InputComplexVectorData(std::vector< std::complex< float > > &dataComplex1, std::vector< std::complex< float > > &dataComplex2, std::vector< std::complex< float > > &dataComplex3)
Create an input complex vector data access object with split storage for vector components and compac...
InputComplexVectorData(std::complex< float > *const dataComplex1, std::complex< float > *const dataComplex2, std::complex< float > *const dataComplex3, std::size_t size)
Create an input complex vector data access object with split storage for vector components and compac...
InputComplexVectorData(InputComplexVectorData &&)=default
Provide a move-constructor.
InputComplexVectorData(float *const dataComplex1, float *const dataComplex2, float *const dataComplex3, std::size_t size)
Create an input complex vector data access object with split storage for vector components and compac...
InputComplexVectorData(std::vector< float > &dataReal1, std::vector< float > &dataImaginary1, std::vector< float > &dataReal2, std::vector< float > &dataImaginary2, std::vector< float > &dataReal3, std::vector< float > &dataImaginary3)
Create an input complex vector data access object with split storage for vector components and split ...
InputComplexVectorData(std::complex< double > *const dataComplex, std::size_t size)
Provide a constructor for input complex vector data with compact storage for both vector components a...
InputComplexVectorData(float *const dataReal1, float *const dataImaginary1, float *const dataReal2, float *const dataImaginary2, float *const dataReal3, float *const dataImaginary3, std::size_t size)
Create an input complex vector data access object with split storage for vector components and split ...
InputComplexVectorData(std::vector< double > &dataReal1, std::vector< double > &dataImaginary1, std::vector< double > &dataReal2, std::vector< double > &dataImaginary2, std::vector< double > &dataReal3, std::vector< double > &dataImaginary3)
Create an input complex vector data access object with split storage for vector components and split ...
InputComplexVectorData(std::complex< float > *const dataComplex, std::size_t size)
Provide a constructor for input complex vector data with compact storage for both vector components a...
InputComplexVectorData(float *const dataComplex, std::size_t size)
Provide a constructor for input complex vector data with compact storage for both vector components a...
InputComplexVectorData(double *const dataReal, double *const dataImaginary, std::size_t size)
Create an input complex vector data access object with compact storage for vector components and spli...
PrimitiveType
Provide enum for supported primitive types.

Connect with Ansys