|
Plugins
|
Orchestrates the coupling between the main solver and a submodule. More...
#include <i_coupling_bridge.h>
Public Types | |
| typedef TGridFunction::domain_type | domain_type |
| typedef domain_type::position_type | position_type |
Public Member Functions | |
| bool | apply (SmartPtr< TGridFunction > u, int step, number time, number dt) |
| Core coupling step called by the main time integrator. Performs communication, executes the submodule, and finalizes the step. | |
| virtual void | communicate (number time)=0 |
| Synchronizes data from the primary domain to the submodule. | |
| virtual void | finalize (number time)=0 |
| Performs any final operations after the submodule has finished its step. | |
| virtual bool | finalize_timestep (SmartPtr< TGridFunction > u, int step, number time, number dt)=0 |
| virtual bool | init_timestep (SmartPtr< TGridFunction > u, int step, number time, number dt)=0 |
| ISubmoduleBridge ()=default | |
| void | set_interface (SmartPtr< ISurjectiveInterface< domain_type > > interface) |
| Attaches the surjective interface for vertex mapping. | |
| void | set_submodule (SmartPtr< ISubmodule< TGridFunction > > submodule) |
| Attaches the submodule to the bridge. | |
| virtual | ~ISubmoduleBridge ()=default |
Protected Attributes | |
| SmartPtr< ISurjectiveInterface< domain_type > > | m_interface |
| SmartPtr< ISubmodule< TGridFunction > > | m_submodule |
Friends | |
| class | ISubmodule< TGridFunction, dim > |
Orchestrates the coupling between the main solver and a submodule.
The bridge handles the synchronization points: communication (sending data to the submodule), execution of the submodule, and finalization (reading results back to the main domain).
| TGridFunction | The grid function type of the primary solver. |
| dim | The spatial dimension. |
| typedef TGridFunction::domain_type ug::d3f::ISubmoduleBridge< TGridFunction, dim >::domain_type |
| typedef domain_type::position_type ug::d3f::ISubmoduleBridge< TGridFunction, dim >::position_type |
|
default |
|
virtualdefault |
|
inline |
Core coupling step called by the main time integrator. Performs communication, executes the submodule, and finalizes the step.
References ug::d3f::ISubmoduleBridge< TGridFunction, dim >::communicate(), and ug::d3f::ISubmoduleBridge< TGridFunction, dim >::finalize().
|
pure virtual |
Synchronizes data from the primary domain to the submodule.
Referenced by ug::d3f::ISubmoduleBridge< TGridFunction, dim >::apply().
|
pure virtual |
Performs any final operations after the submodule has finished its step.
Referenced by ug::d3f::ISubmoduleBridge< TGridFunction, dim >::apply().
|
pure virtual |
|
pure virtual |
|
inline |
Attaches the surjective interface for vertex mapping.
References ug::d3f::ISubmoduleBridge< TGridFunction, dim >::m_interface.
|
inline |
Attaches the submodule to the bridge.
References ug::d3f::ISubmoduleBridge< TGridFunction, dim >::m_submodule.
|
friend |
|
protected |
|
protected |