Skip to main content

System Coupling C++ library 2025 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 
15 namespace sysc {
16 
29 class SYSTEM_COUPLING_PARTICIPANT_DLL OutputComplexVectorData {
30 public:
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 
614 private:
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 & operator=(OutputComplexVectorData &&)=default
Provide a move-assign operator.
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 & operator=(const OutputComplexVectorData &)=default
Provide a copy-assign operator.
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 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(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::vector< std::complex< float >> &dataComplex)
Provide a constructor for output complex vector data with compact storage for both vector components ...
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 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::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 *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::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(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 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< std::complex< double >> &dataComplex)
Provide a constructor for output complex vector data with compact storage for both vector components ...
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< 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