    

 ## On this page

  

 

 # Region

 Last update: 17.07.2025 

<a name="l00001"></a> 1 /\*

<a name="l00002"></a> 2 \* Copyright ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.

<a name="l00003"></a> 3 \*/

<a name="l00004"></a> 4 

<a name="l00005"></a> 5 \#pragma once

<a name="l00006"></a> 6 

<a name="l00007"></a> 7 \#include "SystemCouplingParticipant/LibraryType.hpp"

<a name="l00008"></a> 8 

<a name="l00009"></a> 9 \#include "SystemCouplingParticipant/CommonTypes.hpp"

<a name="l00010"></a> 10 \#include "SystemCouplingParticipant/Variable.hpp"

<a name="l00011"></a> 11 

<a name="l00012"></a> 12 \#include &lt;cstddef&gt;

<a name="l00013"></a> 13 \#include &lt;map&gt;

<a name="l00014"></a> 14 \#include &lt;string&gt;

<a name="l00015"></a> 15 \#include &lt;vector&gt;

<a name="l00016"></a> 16 

<a name="l00017"></a> 17 namespace sysc {

<a name="l00018"></a> 18 

<a name="l00030"></a>[ 30](classsysc_1_1Region.xhtml) class SYSTEM_COUPLING_PARTICIPANT_DLL [Region](classsysc_1_1Region.xhtml) {

<a name="l00031"></a> 31 public:

<a name="l00043"></a>[ 43](classsysc_1_1Region.xhtml#a9a3643efd6eb393f07a5e0db931dc71d) [Region](classsysc_1_1Region.xhtml#a9a3643efd6eb393f07a5e0db931dc71d)(const [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)&amp; name);

<a name="l00044"></a> 44 

<a name="l00055"></a>[ 55](classsysc_1_1Region.xhtml#a2252ae93ab73cff96e3ba621d9e29171) [Region](classsysc_1_1Region.xhtml#a2252ae93ab73cff96e3ba621d9e29171)(

<a name="l00056"></a> 56 const [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)&amp; name,

<a name="l00057"></a> 57 enum [Topology](group__SystemCouplingParticipantAPIs.xhtml#gadbbc75f28fce0c9b5b31fa64bb8b1e39) topology);

<a name="l00058"></a> 58 

<a name="l00068"></a>[ 68](classsysc_1_1Region.xhtml#ae497ce9374217eaf46630abc28cb8ccf) [Region](classsysc_1_1Region.xhtml#ae497ce9374217eaf46630abc28cb8ccf)(

<a name="l00069"></a> 69 const [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)&amp; name,

<a name="l00070"></a> 70 enum [Topology](group__SystemCouplingParticipantAPIs.xhtml#gadbbc75f28fce0c9b5b31fa64bb8b1e39) topology,

<a name="l00071"></a> 71 const [DisplayName](group__SystemCouplingParticipantAPIs.xhtml#ga708d69b0e949d6a42b6a0d7885eed90f)&amp; displayName);

<a name="l00072"></a> 72 

<a name="l00083"></a>[ 83](classsysc_1_1Region.xhtml#a1ef115d09f9dc1c7a1670727b41f9509) [Region](classsysc_1_1Region.xhtml#a1ef115d09f9dc1c7a1670727b41f9509)(

<a name="l00084"></a> 84 const [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)&amp; name,

<a name="l00085"></a> 85 enum [Topology](group__SystemCouplingParticipantAPIs.xhtml#gadbbc75f28fce0c9b5b31fa64bb8b1e39) topology,

<a name="l00086"></a> 86 enum [RegionDiscretizationType](group__SystemCouplingParticipantAPIs.xhtml#ga59080d26b5838a6c678ee5f0d6ff63a4) regionDiscretizationType);

<a name="l00087"></a> 87 

<a name="l00096"></a>[ 96](classsysc_1_1Region.xhtml#ac7b2a140a74fb4a6b857336316b4dd48) [Region](classsysc_1_1Region.xhtml#ac7b2a140a74fb4a6b857336316b4dd48)(

<a name="l00097"></a> 97 const [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)&amp; name,

<a name="l00098"></a> 98 enum [Topology](group__SystemCouplingParticipantAPIs.xhtml#gadbbc75f28fce0c9b5b31fa64bb8b1e39) topology,

<a name="l00099"></a> 99 const [DisplayName](group__SystemCouplingParticipantAPIs.xhtml#ga708d69b0e949d6a42b6a0d7885eed90f)&amp; displayName,

<a name="l00100"></a> 100 enum [RegionDiscretizationType](group__SystemCouplingParticipantAPIs.xhtml#ga59080d26b5838a6c678ee5f0d6ff63a4) regionDiscretizationType);

<a name="l00101"></a> 101 

<a name="l00123"></a>[ 123](classsysc_1_1Region.xhtml#a018cbfef9eee8c3d2cd3b20084783390) void [addInputVariable](classsysc_1_1Region.xhtml#a018cbfef9eee8c3d2cd3b20084783390)(const [Variable](classsysc_1_1Variable.xhtml)&amp; variable);

<a name="l00124"></a> 124 

<a name="l00147"></a>[ 147](classsysc_1_1Region.xhtml#a96143a5b4d943e47d335d74fa1f827be) void [addOutputVariable](classsysc_1_1Region.xhtml#a96143a5b4d943e47d335d74fa1f827be)(const [Variable](classsysc_1_1Variable.xhtml)&amp; variable);

<a name="l00148"></a> 148 

<a name="l00154"></a>[ 154](classsysc_1_1Region.xhtml#a027b247f71dca6060a9d4f8fe029b690) const [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)&amp; [getName](classsysc_1_1Region.xhtml#a027b247f71dca6060a9d4f8fe029b690)() const noexcept;

<a name="l00155"></a> 155 

<a name="l00161"></a>[ 161](classsysc_1_1Region.xhtml#a55d078aeaec8518bbe4468e41a053c1c) [Topology](group__SystemCouplingParticipantAPIs.xhtml#gadbbc75f28fce0c9b5b31fa64bb8b1e39) getTopology() const noexcept;

<a name="l00162"></a> 162 

<a name="l00168"></a>[ 168](classsysc_1_1Region.xhtml#a11125400c1f87ced8251759d2ff84c1b) const [DisplayName](group__SystemCouplingParticipantAPIs.xhtml#ga708d69b0e949d6a42b6a0d7885eed90f)&amp; getDisplayName() const noexcept;

<a name="l00169"></a> 169 

<a name="l00175"></a>[ 175](classsysc_1_1Region.xhtml#a25fc09a4236bf1cefbac4e5ff4b9736b) [RegionDiscretizationType](group__SystemCouplingParticipantAPIs.xhtml#ga59080d26b5838a6c678ee5f0d6ff63a4) getRegionDiscretizationType() const noexcept;

<a name="l00176"></a> 176 

<a name="l00183"></a>[ 183](classsysc_1_1Region.xhtml#a724b202ad1c95f18e0c01e9b962c8eed) const [Variable](classsysc_1_1Variable.xhtml)&amp; getInputVariable(const [VariableName](group__SystemCouplingParticipantAPIs.xhtml#ga500337cdc8405b3e819ca3623bb44266)&amp; name) const;

<a name="l00184"></a> 184 

<a name="l00191"></a>[ 191](classsysc_1_1Region.xhtml#a7ebc9675c1f8e56560409233469e4932) const [Variable](classsysc_1_1Variable.xhtml)&amp; getOutputVariable(const [VariableName](group__SystemCouplingParticipantAPIs.xhtml#ga500337cdc8405b3e819ca3623bb44266)&amp; name) const;

<a name="l00192"></a> 192 

<a name="l00194"></a>[ 194](classsysc_1_1Region.xhtml#ada5d320ba7226a798ac5683fd878035a) std::size\_t getNumOutputVariables() const noexcept;

<a name="l00195"></a> 195 

<a name="l00197"></a>[ 197](classsysc_1_1Region.xhtml#ac7632c3c0b045c7baf3aef7aaa7a4c86) std::size\_t getNumInputVariables() const noexcept;

<a name="l00198"></a> 198 

<a name="l00200"></a>[ 200](classsysc_1_1Region.xhtml#aabcde4869fae1d5f3bed4a4ee7277ef9) const [Variable](classsysc_1_1Variable.xhtml)&amp; getOutputVariable(std::size\_t index) const;

<a name="l00201"></a> 201 

<a name="l00203"></a>[ 203](classsysc_1_1Region.xhtml#a15d47e3c4989a29033ba306b186e0c50) const [Variable](classsysc_1_1Variable.xhtml)&amp; getInputVariable(std::size\_t index) const;

<a name="l00204"></a> 204 

<a name="l00205"></a> 205 private:

<a name="l00206"></a> 206 [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d) m_name;

<a name="l00207"></a> 207 [Topology](group__SystemCouplingParticipantAPIs.xhtml#gadbbc75f28fce0c9b5b31fa64bb8b1e39) m_topology;

<a name="l00208"></a> 208 [RegionDiscretizationType](group__SystemCouplingParticipantAPIs.xhtml#ga59080d26b5838a6c678ee5f0d6ff63a4) m_regionDiscretizationType;

<a name="l00209"></a> 209 [DisplayName](group__SystemCouplingParticipantAPIs.xhtml#ga708d69b0e949d6a42b6a0d7885eed90f) m_displayName;

<a name="l00210"></a> 210 

<a name="l00211"></a> 211 std::vector&lt;[Region](classsysc_1_1Region.xhtml)&gt; m_side0Regions;

<a name="l00212"></a> 212 std::vector&lt;[Region](classsysc_1_1Region.xhtml)&gt; m_side1Regions;

<a name="l00213"></a> 213 

<a name="l00214"></a> 214 std::vector&lt;[Variable](classsysc_1_1Variable.xhtml)&gt; m_inputVariables;

<a name="l00215"></a> 215 std::map&lt;[VariableName](group__SystemCouplingParticipantAPIs.xhtml#ga500337cdc8405b3e819ca3623bb44266), std::size\_t&gt; m_inputVarNameToIndex;

<a name="l00216"></a> 216 

<a name="l00217"></a> 217 std::vector&lt;[Variable](classsysc_1_1Variable.xhtml)&gt; m_outputVariables;

<a name="l00218"></a> 218 std::map&lt;[VariableName](group__SystemCouplingParticipantAPIs.xhtml#ga500337cdc8405b3e819ca3623bb44266), std::size\_t&gt; m_outputVarNameToIndex;

<a name="l00219"></a> 219 };

<a name="l00220"></a> 220 

<a name="l00221"></a> 221 } // namespace sysc

[sysc::Region](classsysc_1_1Region.xhtml)

Provide a class for a System Coupling region.

**Definition:** [Region.hpp:30](Region_8hpp_source.xhtml#l00030)



[sysc::Region::addInputVariable](classsysc_1_1Region.xhtml#a018cbfef9eee8c3d2cd3b20084783390)

void addInputVariable(const Variable &amp;variable)

Provide a method to add an input variable to the region.



[sysc::Region::getName](classsysc_1_1Region.xhtml#a027b247f71dca6060a9d4f8fe029b690)

const RegionName &amp; getName() const noexcept

Get the region's name.



[sysc::Region::Region](classsysc_1_1Region.xhtml#a1ef115d09f9dc1c7a1670727b41f9509)

Region(const RegionName &amp;name, enum Topology topology, enum RegionDiscretizationType regionDiscretizationType)

Create region to be used in a coupled analysis.



[sysc::Region::Region](classsysc_1_1Region.xhtml#a2252ae93ab73cff96e3ba621d9e29171)

Region(const RegionName &amp;name, enum Topology topology)

Create region to be used in a coupled analysis.



[sysc::Region::addOutputVariable](classsysc_1_1Region.xhtml#a96143a5b4d943e47d335d74fa1f827be)

void addOutputVariable(const Variable &amp;variable)

Provide a method to add an output variable to the region.



[sysc::Region::Region](classsysc_1_1Region.xhtml#a9a3643efd6eb393f07a5e0db931dc71d)

Region(const RegionName &amp;name)

Create region to be used in a coupled analysis.



[sysc::Region::Region](classsysc_1_1Region.xhtml#ac7b2a140a74fb4a6b857336316b4dd48)

Region(const RegionName &amp;name, enum Topology topology, const DisplayName &amp;displayName, enum RegionDiscretizationType regionDiscretizationType)

Create region to be used in a coupled analysis.



[sysc::Region::Region](classsysc_1_1Region.xhtml#ae497ce9374217eaf46630abc28cb8ccf)

Region(const RegionName &amp;name, enum Topology topology, const DisplayName &amp;displayName)

Create region to be used in a coupled analysis.



[sysc::Variable](classsysc_1_1Variable.xhtml)

Provide a class for a System Coupling variable.

**Definition:** [Variable.hpp:21](Variable_8hpp_source.xhtml#l00021)



[sysc::VariableName](group__SystemCouplingParticipantAPIs.xhtml#ga500337cdc8405b3e819ca3623bb44266)

std::string VariableName

**Definition:** [CommonTypes.hpp:232](CommonTypes_8hpp_source.xhtml#l00232)



[sysc::RegionDiscretizationType](group__SystemCouplingParticipantAPIs.xhtml#ga59080d26b5838a6c678ee5f0d6ff63a4)

RegionDiscretizationType

Provide enum for region discretization types.

**Definition:** [CommonSettings.hpp:38](CommonSettings_8hpp_source.xhtml#l00038)



[sysc::DisplayName](group__SystemCouplingParticipantAPIs.xhtml#ga708d69b0e949d6a42b6a0d7885eed90f)

std::string DisplayName

**Definition:** [CommonTypes.hpp:236](CommonTypes_8hpp_source.xhtml#l00236)



[sysc::RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)

std::string RegionName

**Definition:** [CommonTypes.hpp:231](CommonTypes_8hpp_source.xhtml#l00231)



[sysc::Topology](group__SystemCouplingParticipantAPIs.xhtml#gadbbc75f28fce0c9b5b31fa64bb8b1e39)

Topology

Provide enum for region topologies.

**Definition:** [CommonTypes.hpp:174](CommonTypes_8hpp_source.xhtml#l00174)