Skip to main content

System Coupling C++ library 2024 R1

InputComplexVectorData

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 InputComplexVectorData {
30public:
37 InputComplexVectorData(std::vector<std::complex<double>>& dataComplex);
38
47 InputComplexVectorData(std::vector<std::complex<double>>& dataComplex, Dimension dimension);
48
57 InputComplexVectorData(double* dataComplex, std::size_t size);
58
69 InputComplexVectorData(double* dataComplex, std::size_t size, Dimension dimension);
70
79 InputComplexVectorData(std::complex<double>* dataComplex, std::size_t size);
80
91 InputComplexVectorData(std::complex<double>* dataComplex, std::size_t size, Dimension dimension);
92
109 std::vector<double>& dataReal,
110 std::vector<double>& dataImaginary);
111
129 double* dataReal,
130 double* dataImaginary,
131 std::size_t size);
132
153 std::vector<std::complex<double>>& dataComplex1,
154 std::vector<std::complex<double>>& dataComplex2,
155 std::vector<std::complex<double>>& dataComplex3);
156
176 std::complex<double>* dataComplex1,
177 std::complex<double>* dataComplex2,
178 std::complex<double>* dataComplex3,
179 std::size_t size);
180
200 double* dataComplex1,
201 double* dataComplex2,
202 double* dataComplex3,
203 std::size_t size);
204
234 std::vector<double>& dataReal1,
235 std::vector<double>& dataImaginary1,
236 std::vector<double>& dataReal2,
237 std::vector<double>& dataImaginary2,
238 std::vector<double>& dataReal3,
239 std::vector<double>& dataImaginary3);
240
269 double* dataReal1,
270 double* dataImaginary1,
271 double* dataReal2,
272 double* dataImaginary2,
273 double* dataReal3,
274 double* dataImaginary3,
275 std::size_t size);
276
283 InputComplexVectorData(std::vector<std::complex<float>>& dataComplex);
284
294 InputComplexVectorData(std::vector<std::complex<float>>& dataComplex, Dimension dimension);
295
304 InputComplexVectorData(float* dataComplex, std::size_t size);
305
316 InputComplexVectorData(float* dataComplex, std::size_t size, Dimension dimension);
317
326 InputComplexVectorData(std::complex<float>* dataComplex, std::size_t size);
327
338 InputComplexVectorData(std::complex<float>* dataComplex, std::size_t size, Dimension dimension);
339
356 std::vector<float>& dataReal,
357 std::vector<float>& dataImaginary);
358
376 float* dataReal,
377 float* dataImaginary,
378 std::size_t size);
379
400 std::vector<std::complex<float>>& dataComplex1,
401 std::vector<std::complex<float>>& dataComplex2,
402 std::vector<std::complex<float>>& dataComplex3);
403
423 std::complex<float>* dataComplex1,
424 std::complex<float>* dataComplex2,
425 std::complex<float>* dataComplex3,
426 std::size_t size);
427
447 float* dataComplex1,
448 float* dataComplex2,
449 float* dataComplex3,
450 std::size_t size);
451
481 std::vector<float>& dataReal1,
482 std::vector<float>& dataImaginary1,
483 std::vector<float>& dataReal2,
484 std::vector<float>& dataImaginary2,
485 std::vector<float>& dataReal3,
486 std::vector<float>& dataImaginary3);
487
516 float* dataReal1,
517 float* dataImaginary1,
518 float* dataReal2,
519 float* dataImaginary2,
520 float* dataReal3,
521 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 void* getData1() const noexcept;
571
577 void* getData2() const noexcept;
578
584 void* getData3() const noexcept;
585
591 void* getData4() const noexcept;
592
598 void* getData5() const noexcept;
599
605 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 void* m_data1{nullptr};
620 void* m_data2{nullptr};
621 void* m_data3{nullptr};
622 void* m_data4{nullptr};
623 void* m_data5{nullptr};
624 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 input complex vector data.
InputComplexVectorData(const InputComplexVectorData &)=default
Provide a copy-constructor.
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(double *dataReal1, double *dataImaginary1, double *dataReal2, double *dataImaginary2, double *dataReal3, double *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< 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(float *dataComplex, std::size_t size, Dimension dimension)
Provide a constructor for 2D input complex vector data with compact storage for both vector component...
InputComplexVectorData()=default
Provide a default constructor.
InputComplexVectorData(double *dataComplex, std::size_t size)
Provide a constructor for input complex vector data with compact storage for both vector components a...
InputComplexVectorData & operator=(const InputComplexVectorData &)=default
Provide a copy-assign operator.
InputComplexVectorData(double *dataComplex1, double *dataComplex2, double *dataComplex3, std::size_t size)
Create an input complex vector data access object with split storage for vector components and compac...
InputComplexVectorData(std::complex< float > *dataComplex1, std::complex< float > *dataComplex2, std::complex< float > *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 *dataComplex1, float *dataComplex2, float *dataComplex3, std::size_t size)
Create an input complex vector data access object with split storage for vector components and compac...
std::size_t size() const noexcept
Get the size of data.
InputComplexVectorData(std::complex< double > *dataComplex, std::size_t size, Dimension dimension)
Provide a constructor for 2D input complex vector data with compact storage for both vector component...
InputComplexVectorData(std::complex< double > *dataComplex1, std::complex< double > *dataComplex2, std::complex< double > *dataComplex3, std::size_t size)
Create an input complex vector data access object with split storage for vector components and compac...
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(float *dataComplex, std::size_t size)
Provide a constructor for input complex vector data with compact storage for both vector components a...
InputComplexVectorData(InputComplexVectorData &&)=default
Provide a move-constructor.
InputComplexVectorData(std::vector< std::complex< float > > &dataComplex, Dimension dimension)
Provide a constructor for 2D input complex vector data with compact storage for both vector component...
InputComplexVectorData(std::complex< float > *dataComplex, std::size_t size, Dimension dimension)
Provide a constructor for 2D input complex vector data with compact storage for both vector component...
InputComplexVectorData(std::vector< std::complex< double > > &dataComplex, Dimension dimension)
Provide a constructor for 2D input complex vector data with compact storage for both vector component...
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 > *dataComplex, std::size_t size)
Provide a constructor for input complex vector data with compact storage for both vector components a...
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 > *dataComplex, std::size_t size)
Provide a constructor for input complex vector data with compact storage for both vector components a...
InputComplexVectorData(float *dataReal1, float *dataImaginary1, float *dataReal2, float *dataImaginary2, float *dataReal3, float *dataImaginary3, std::size_t size)
Create an input complex vector data access object with split storage for vector components and split ...
InputComplexVectorData(double *dataComplex, std::size_t size, Dimension dimension)
Provide a constructor for 2D input complex vector data with compact storage for both vector component...
InputComplexVectorData(double *dataReal, double *dataImaginary, std::size_t size)
Create an input complex vector data access object with compact storage for vector components and spli...
InputComplexVectorData(float *dataReal, float *dataImaginary, std::size_t size)
Create an input complex vector data access object with compact storage for vector components and spli...
Dimension
Provide an enum for participant dimension.
PrimitiveType
Provide enum for supported primitive types.

Connect with Ansys