Skip to main content

System Coupling C++ library 2025 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 
15 namespace sysc {
16 
29 class SYSTEM_COUPLING_PARTICIPANT_DLL InputComplexVectorData {
30 public:
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 
614 private:
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(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, Dimension dimension)
Provide a constructor for 2D input complex vector data with compact storage for both vector component...
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(std::vector< std::complex< float >> &dataComplex)
Provide a constructor for input complex vector data with compact storage for both vector components a...
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(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(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 & operator=(InputComplexVectorData &&)=default
Provide a move-assign operator.
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< std::complex< double >> &dataComplex)
Provide a constructor for input complex vector data with compact storage for both vector components a...
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(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::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< 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 & operator=(const InputComplexVectorData &)=default
Provide a copy-assign operator.
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< 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...
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...
Dimension
Provide an enum for participant dimension.
PrimitiveType
Provide enum for supported primitive types.

Connect with Ansys