    

 ## On this page

  

 

 # sysc::CouplingInterface Class Reference

 Last update: 17.07.2025 

Provide a class for a coupling interface. [More...](classsysc_1_1CouplingInterface.xhtml#details)

`#include <<a class="el" href="CouplingInterface_8hpp_source.xhtml">CouplingInterface.hpp</a>>`

## <a id="pub-methods" name="pub-methods"></a>Public Member Functions

 [CouplingInterface](classsysc_1_1CouplingInterface.xhtml#a606ddfa3113e3e0bf1ee7eee2b58793d) ([CouplingInterfaceName](group__SystemCouplingParticipantAPIs.xhtml#ga8a62847c55d192b835faff927dbf41a3) interfaceName) Provide a constructor for the [CouplingInterface](classsysc_1_1CouplingInterface.xhtml "Provide a class for a coupling interface.") class.   
 void [addSideOneRegion](classsysc_1_1CouplingInterface.xhtml#ab7a385065f0fde034baa88a88f274946) (const [Region](classsysc_1_1Region.xhtml) &amp;region) Add region to side one of the interface.   
 void [addSideTwoRegion](classsysc_1_1CouplingInterface.xhtml#a5afdb8ffa5c06d66fe30e6f150230b67) (const [Region](classsysc_1_1Region.xhtml) &amp;region) Add region to side two of the interface.   
 <a id="ac9975e59d9c18d893af5b153211e2635" name="ac9975e59d9c18d893af5b153211e2635"></a>const [CouplingInterfaceName](group__SystemCouplingParticipantAPIs.xhtml#ga8a62847c55d192b835faff927dbf41a3) &amp; **getName** () const Get coupling interface name.   
 <a id="a84873c1535d70a88096d44242c97a1b7" name="a84873c1535d70a88096d44242c97a1b7"></a>std::size\_t **getNumSideOneRegions** () const Get the number of regions on side one of the interface.   
 <a id="a03a32678f212092a83149ea2b0c54f20" name="a03a32678f212092a83149ea2b0c54f20"></a>std::size\_t **getNumSideTwoRegions** () const Get the number of regions on side two of the interface.   
 <a id="a540b82fcd3f5aa6c5e3726e429960d35" name="a540b82fcd3f5aa6c5e3726e429960d35"></a>const [Region](classsysc_1_1Region.xhtml) &amp; **getSideOneRegion** (std::size\_t index) const Get the region on side one, given an index.   
 <a id="a824ed032106d36fd0202a8b6f92a8a20" name="a824ed032106d36fd0202a8b6f92a8a20"></a>const [Region](classsysc_1_1Region.xhtml) &amp; **getSideTwoRegion** (std::size\_t index) const Get the region on side two, given an index.   
 <a id="ab1230f4b0c7dc52fff73d1ddcd67f03e" name="ab1230f4b0c7dc52fff73d1ddcd67f03e"></a>void **addDataTransfer** (const [DataTransfer](classsysc_1_1DataTransfer.xhtml) &amp;dataTransfer) Add a data transfer.   
 <a id="a9ac1bf66c466b9567e26fdf5c2108c05" name="a9ac1bf66c466b9567e26fdf5c2108c05"></a>std::size\_t **getNumDataTransfers** () const noexcept Get the number of data transfers.   
 <a id="aeff28058491eb4a52d5833f38b4214c7" name="aeff28058491eb4a52d5833f38b4214c7"></a>const [DataTransfer](classsysc_1_1DataTransfer.xhtml) &amp; **getDataTransfer** (std::size\_t index) const Get the data transfer, given an index.   
 <a id="details" name="details"></a>## Detailed Description

Provide a class for a coupling interface.

Coupling interface can be used to set up the transfers of data between different regions within the same participant solver. Interface contains two sides and each side can contain one or more regions.

All regions on one side of the interface must have the same topology.

Definition at line [28](CouplingInterface_8hpp_source.xhtml#l00028) of file [CouplingInterface.hpp](CouplingInterface_8hpp_source.xhtml).



## Constructor &amp; Destructor Documentation

<a id="a606ddfa3113e3e0bf1ee7eee2b58793d" name="a606ddfa3113e3e0bf1ee7eee2b58793d"></a>## [◆ ](#a606ddfa3113e3e0bf1ee7eee2b58793d)CouplingInterface()

 sysc::CouplingInterface::CouplingInterface  ( [CouplingInterfaceName](group__SystemCouplingParticipantAPIs.xhtml#ga8a62847c55d192b835faff927dbf41a3)  *interfaceName*) 

Provide a constructor for the [CouplingInterface](classsysc_1_1CouplingInterface.xhtml "Provide a class for a coupling interface.") class.

Parameters \[in\]interfaceNameA unique name for the coupling interface. 



## Member Function Documentation

<a id="ab7a385065f0fde034baa88a88f274946" name="ab7a385065f0fde034baa88a88f274946"></a>## [◆ ](#ab7a385065f0fde034baa88a88f274946)addSideOneRegion()

 void sysc::CouplingInterface::addSideOneRegion  ( const [Region](classsysc_1_1Region.xhtml) &amp;  *region*) 

Add region to side one of the interface.

If this region has already been added to the interface on side one, then this call will have no effect.

If a different region with the same name has already been added to the interface on side one, then a runtime error will be thrown.

If a region with the same name has already been added to the interface on side two, then a runtime error will be thrown.

If the region name contains invalid characters, a runtime error will be thrown.

Parameters \[in\]region[Region](classsysc_1_1Region.xhtml "Provide a class for a System Coupling region.") to be added to side one of the interface. 



<a id="a5afdb8ffa5c06d66fe30e6f150230b67" name="a5afdb8ffa5c06d66fe30e6f150230b67"></a>## [◆ ](#a5afdb8ffa5c06d66fe30e6f150230b67)addSideTwoRegion()

 void sysc::CouplingInterface::addSideTwoRegion  ( const [Region](classsysc_1_1Region.xhtml) &amp;  *region*) 

Add region to side two of the interface.

If this region has already been added to the interface on side two, then this call will have no effect.

If a different region with the same name has already been added to the interface on side two, then a runtime error will be thrown.

If a region with the same name has already been added to the interface on side one, then a runtime error will be thrown.

If the region name contains invalid characters, a runtime error will be thrown.

Parameters \[in\]region[Region](classsysc_1_1Region.xhtml "Provide a class for a System Coupling region.") to be added to side one of the interface.