Skip to main content

System Coupling C++ library 2025 R1

CouplingInterface

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/DataTransfer.hpp"
10 #include "SystemCouplingParticipant/Region.hpp"
11 
12 #include <string>
13 #include <vector>
14 
15 namespace sysc {
16 
28 class SYSTEM_COUPLING_PARTICIPANT_DLL CouplingInterface {
29 public:
36 
54  void addSideOneRegion(const Region& region);
55 
74  void addSideTwoRegion(const Region& region);
75 
78 
80  std::size_t getNumSideOneRegions() const;
81 
83  std::size_t getNumSideTwoRegions() const;
84 
86  const Region& getSideOneRegion(std::size_t index) const;
87 
89  const Region& getSideTwoRegion(std::size_t index) const;
90 
92  void addDataTransfer(const DataTransfer& dataTransfer);
93 
95  std::size_t getNumDataTransfers() const noexcept;
96 
98  const DataTransfer& getDataTransfer(std::size_t index) const;
99 
100 private:
101  CouplingInterfaceName m_name;
102 
103  std::vector<Region> m_sideOneRegions;
104  std::map<RegionName, std::size_t> m_sideOneRegionsNameToIndex;
105 
106  std::vector<Region> m_sideTwoRegions;
107  std::map<RegionName, std::size_t> m_sideTwoRegionsNameToIndex;
108 
109  std::vector<DataTransfer> m_dataTransfers;
110 };
111 
112 } // namespace sysc
Provide a class for a coupling interface.
std::size_t getNumSideTwoRegions() const
Get the number of regions on side two of the interface.
const Region & getSideOneRegion(std::size_t index) const
Get the region on side one, given an index.
const CouplingInterfaceName & getName() const
Get coupling interface name.
const Region & getSideTwoRegion(std::size_t index) const
Get the region on side two, given an index.
void addSideTwoRegion(const Region &region)
Add region to side two of the interface.
CouplingInterface(CouplingInterfaceName interfaceName)
Provide a constructor for the CouplingInterface class.
std::size_t getNumSideOneRegions() const
Get the number of regions on side one of the interface.
std::size_t getNumDataTransfers() const noexcept
Get the number of data transfers.
void addDataTransfer(const DataTransfer &dataTransfer)
Add a data transfer.
void addSideOneRegion(const Region &region)
Add region to side one of the interface.
Provide a class for a data transfer.
Provide a class for a System Coupling region.
Definition: Region.hpp:30
std::string CouplingInterfaceName
std::string RegionName

Connect with Ansys