Skip to main content

System Coupling C++ library 2024 R1

OutputComplexVectorData

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 <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 std::vector<std::complex<double>>& dataComplex, Dimension dimension);
48
57 OutputComplexVectorData(const double* dataComplex, std::size_t size);
58
69 OutputComplexVectorData(const double* dataComplex, std::size_t size, Dimension dimension);
70
79 OutputComplexVectorData(const std::complex<double>* dataComplex, std::size_t size);
80
91 OutputComplexVectorData(const std::complex<double>* dataComplex, std::size_t size, Dimension dimension);
92
109 const std::vector<double>& dataReal,
110 const std::vector<double>& dataImaginary);
111
129 const double* dataReal,
130 const double* dataImaginary,
131 std::size_t size);
132
153 const std::vector<std::complex<double>>& dataComplex1,
154 const std::vector<std::complex<double>>& dataComplex2,
155 const std::vector<std::complex<double>>& dataComplex3);
156
176 const std::complex<double>* dataComplex1,
177 const std::complex<double>* dataComplex2,
178 const std::complex<double>* dataComplex3,
179 std::size_t size);
180
200 const double* dataComplex1,
201 const double* dataComplex2,
202 const double* dataComplex3,
203 std::size_t size);
204
234 const std::vector<double>& dataReal1,
235 const std::vector<double>& dataImaginary1,
236 const std::vector<double>& dataReal2,
237 const std::vector<double>& dataImaginary2,
238 const std::vector<double>& dataReal3,
239 const std::vector<double>& dataImaginary3);
240
269 const double* dataReal1,
270 const double* dataImaginary1,
271 const double* dataReal2,
272 const double* dataImaginary2,
273 const double* dataReal3,
274 const double* dataImaginary3,
275 std::size_t size);
276
283 OutputComplexVectorData(const std::vector<std::complex<float>>& dataComplex);
284
294 OutputComplexVectorData(const std::vector<std::complex<float>>& dataComplex, Dimension dimension);
295
304 OutputComplexVectorData(const float* dataComplex, std::size_t size);
305
316 OutputComplexVectorData(const float* dataComplex, std::size_t size, Dimension dimension);
317
326 OutputComplexVectorData(const std::complex<float>* dataComplex, std::size_t size);
327
338 OutputComplexVectorData(const std::complex<float>* dataComplex, std::size_t size, Dimension dimension);
339
356 const std::vector<float>& dataReal,
357 const std::vector<float>& dataImaginary);
358
376 const float* dataReal,
377 const float* dataImaginary,
378 std::size_t size);
379
400 const std::vector<std::complex<float>>& dataComplex1,
401 const std::vector<std::complex<float>>& dataComplex2,
402 const std::vector<std::complex<float>>& dataComplex3);
403
423 const std::complex<float>* dataComplex1,
424 const std::complex<float>* dataComplex2,
425 const std::complex<float>* dataComplex3,
426 std::size_t size);
427
447 const float* dataComplex1,
448 const float* dataComplex2,
449 const float* dataComplex3,
450 std::size_t size);
451
481 const std::vector<float>& dataReal1,
482 const std::vector<float>& dataImaginary1,
483 const std::vector<float>& dataReal2,
484 const std::vector<float>& dataImaginary2,
485 const std::vector<float>& dataReal3,
486 const std::vector<float>& dataImaginary3);
487
516 const float* dataReal1,
517 const float* dataImaginary1,
518 const float* dataReal2,
519 const float* dataImaginary2,
520 const float* dataReal3,
521 const float* dataImaginary3,
522 std::size_t size);
523
526
529
532
535
538
540 std::size_t size() const noexcept;
541
543 bool empty() const noexcept;
544
549 sysc::PrimitiveType getDataType() const noexcept;
550
556 bool isSplitVector() const noexcept;
557
563 bool isSplitComplex() const noexcept;
564
570 const void* getData1() const noexcept;
571
577 const void* getData2() const noexcept;
578
584 const void* getData3() const noexcept;
585
591 const void* getData4() const noexcept;
592
598 const void* getData5() const noexcept;
599
605 const void* getData6() const noexcept;
606
612 Dimension getDimension() const noexcept;
613
614private:
615 sysc::PrimitiveType m_dataType{sysc::Double};
616 bool m_isSplitVector{false};
617 bool m_isSplitComplex{false};
618
619 const void* m_data1{nullptr};
620 const void* m_data2{nullptr};
621 const void* m_data3{nullptr};
622 const void* m_data4{nullptr};
623 const void* m_data5{nullptr};
624 const void* m_data6{nullptr};
625
626 std::size_t m_size{0};
627 Dimension m_dimension{Dimension::D3};
628};
629} // 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< std::complex< float > > &dataComplex, Dimension dimension)
Provide a constructor for 2D output complex vector data with compact storage for both vector componen...
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(const std::vector< std::complex< double > > &dataComplex, Dimension dimension)
Provide a constructor for 2D output complex vector data with compact storage for both vector componen...
OutputComplexVectorData(const float *dataComplex, std::size_t size, Dimension dimension)
Provide a constructor for 2D output complex vector data with compact storage for both vector componen...
OutputComplexVectorData(const double *dataComplex, std::size_t size, Dimension dimension)
Provide a constructor for 2D output complex vector data with compact storage for both vector componen...
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, Dimension dimension)
Provide a constructor for 2D output complex vector data with compact storage for both vector componen...
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::complex< double > *dataComplex, std::size_t size, Dimension dimension)
Provide a constructor for 2D output complex vector data with compact storage for both vector componen...
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...
Dimension
Provide an enum for participant dimension.
PrimitiveType
Provide enum for supported primitive types.

Connect with Ansys