opm-simulators
Opm::ReservoirCoupling::Proxy< Scalar > Class Template Reference

Thin proxy for reservoir coupling master/slave pointers. More...

#include <RescoupProxy.hpp>

Public Member Functions

 Proxy (const Proxy &)=default
 
Proxyoperator= (const Proxy &)=default
 
 Proxy (Proxy &&) noexcept=default
 
Proxyoperator= (Proxy &&) noexcept=default
 
bool isEnabled () const noexcept
 
bool isMaster () const noexcept
 
bool isSlave () const noexcept
 
void setMaster (ReservoirCouplingMaster< Scalar > *)
 
void setSlave (ReservoirCouplingSlave< Scalar > *)
 
ReservoirCouplingMaster< Scalar > * masterPtr () noexcept
 
const ReservoirCouplingMaster< Scalar > * masterPtr () const noexcept
 
ReservoirCouplingSlave< Scalar > * slavePtr () noexcept
 
const ReservoirCouplingSlave< Scalar > * slavePtr () const noexcept
 
ReservoirCouplingMaster< Scalar > & master ()
 
const ReservoirCouplingMaster< Scalar > & master () const
 
ReservoirCouplingSlave< Scalar > & slave ()
 
const ReservoirCouplingSlave< Scalar > & slave () const
 
bool isMasterGroup (const std::string &) const noexcept
 
bool isSlaveGroup (const std::string &) const noexcept
 

Detailed Description

template<class Scalar>
class Opm::ReservoirCoupling::Proxy< Scalar >

Thin proxy for reservoir coupling master/slave pointers.

This class encapsulates pointers to ReservoirCouplingMaster and ReservoirCouplingSlave, providing mode queries that work regardless of MPI availability. This eliminates the need for #ifdef RESERVOIR_COUPLING_ENABLED guards in consumer code.

The proxy does not own the master/slave objects - they are owned by SimulatorFullyImplicitBlackoil. Pointers are set after construction via setMaster()/setSlave().

Master and slave modes are mutually exclusive - setting one clears the other.


The documentation for this class was generated from the following file: