Skip to main content

System Coupling C++ library 2025 R1

OutputComplexScalarData

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 <complex>
12 #include <cstddef>
13 #include <vector>
14 
15 namespace sysc {
16 
24 class SYSTEM_COUPLING_PARTICIPANT_DLL OutputComplexScalarData {
25 public:
35  OutputComplexScalarData(const std::vector<std::complex<double>>& dataComplex);
36 
48  OutputComplexScalarData(const std::complex<double>* dataComplex, std::size_t size);
49 
61  OutputComplexScalarData(const double* dataComplex, std::size_t size);
62 
77  const std::vector<double>& dataReal,
78  const std::vector<double>& dataImaginary);
79 
95  const double* dataReal,
96  const double* dataImaginary,
97  std::size_t size);
98 
108  OutputComplexScalarData(const std::vector<std::complex<float>>& dataComplex);
109 
121  OutputComplexScalarData(const std::complex<float>* dataComplex, std::size_t size);
122 
134  OutputComplexScalarData(const float* dataComplex, std::size_t size);
135 
150  const std::vector<float>& dataReal,
151  const std::vector<float>& dataImaginary);
152 
168  const float* dataReal,
169  const float* dataImaginary,
170  std::size_t size);
171 
174 
177 
180 
183 
186 
188  std::size_t size() const noexcept;
189 
191  bool empty() const noexcept;
192 
197  sysc::PrimitiveType getDataType() const noexcept;
198 
204  bool isSplitComplex() const noexcept;
205 
210  const void* getData1() const noexcept;
211 
216  const void* getData2() const noexcept;
217 
218 private:
219  sysc::PrimitiveType m_dataType{sysc::Double};
220  bool m_isSplitComplex{false};
221 
222  const void* m_data1{nullptr};
223  const void* m_data2{nullptr};
224 
225  std::size_t m_size{0};
226 };
227 
228 } // namespace sysc
Provide a class for output complex scalar data.
OutputComplexScalarData(const std::vector< std::complex< float >> &dataComplex)
Provide a constructor for output complex scalar data with compact storage for complex components.
OutputComplexScalarData(const std::vector< float > &dataReal, const std::vector< float > &dataImaginary)
Create an output complex scalar data access object with split storage for compex components.
OutputComplexScalarData()=default
Provide a default constructor.
OutputComplexScalarData(const float *dataComplex, std::size_t size)
Provide a constructor for output complex scalar data with compact storage for complex components.
OutputComplexScalarData(const std::complex< float > *dataComplex, std::size_t size)
Provide a constructor for output complex scalar data with compact storage for complex components.
OutputComplexScalarData(const double *dataReal, const double *dataImaginary, std::size_t size)
Create an output complex scalar data access object with split storage for compex components.
OutputComplexScalarData(OutputComplexScalarData &&)=default
Provide a move-constructor.
OutputComplexScalarData(const std::vector< double > &dataReal, const std::vector< double > &dataImaginary)
Create an output complex scalar data access object with split storage for compex components.
std::size_t size() const noexcept
Get the size of data.
OutputComplexScalarData & operator=(OutputComplexScalarData &&)=default
Provide a move-assign operator.
OutputComplexScalarData(const float *dataReal, const float *dataImaginary, std::size_t size)
Create an output complex scalar data access object with split storage for compex components.
OutputComplexScalarData(const std::complex< double > *dataComplex, std::size_t size)
Provide a constructor for output complex scalar data with compact storage for complex components.
OutputComplexScalarData(const std::vector< std::complex< double >> &dataComplex)
Provide a constructor for output complex scalar data with compact storage for complex components.
OutputComplexScalarData & operator=(const OutputComplexScalarData &)=default
Provide a copy-assign operator.
OutputComplexScalarData(const double *dataComplex, std::size_t size)
Provide a constructor for output complex scalar data with compact storage for complex components.
OutputComplexScalarData(const OutputComplexScalarData &)=default
Provide a copy-constructor.
PrimitiveType
Provide enum for supported primitive types.

Connect with Ansys