Skip to main content

System Coupling C++ library 2023 R2

OutputComplexVectorData

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

Connect with Ansys