HydroCouple  2.0.0-alpha.1
HydroCouple Interface Definitions
Loading...
Searching...
No Matches
HydroCouple Namespace Reference

HydroCouple namespace contains the core interface specifications for the HydroCouple component-based modeling framework interface specification. More...

Namespaces

namespace  Distributed
 HydroCouple's interfaces for distributed and cloud execution.
 
namespace  Helpers
 Non-normative convenience helpers for the HydroCouple interface standard.
 
namespace  Spatial
 HydroCouple's interfaces that have a spatial component.
 
namespace  SpatioTemporal
 HydroCouple's interfaces that have both spatial and temporal components.
 
namespace  Temporal
 HydroCouple's interfaces that have a time varying component.
 

Classes

struct  BufferDescriptor
 BufferDescriptor describes a typed, possibly strided, possibly device-resident multi-dimensional array. It is the sole currency of field data exchange. More...
 
struct  ErrorEntry
 ErrorEntry is one diagnostic record in a component's error queue. More...
 
class  IAdaptedOutput
 An IAdaptedOutput adds one or more data operations on top of an IOutput. More...
 
class  IAdaptedOutputFactory
 IAdaptedOutputFactory is used to create instances of IAdaptedOutput. More...
 
class  IAdaptedOutputFactoryComponent
 IAdaptedOutputFactoryComponent is an IAdaptedOutputFactory generated from an IAdaptedOutputFactoryComponentInfo. More...
 
class  IAdaptedOutputFactoryComponentInfo
 IAdaptedOutputFactoryComponentInfo interface class provides information about an IAdaptedOutputFactoryComponent. More...
 
class  IArgument
 IArgument interface class used to set the arguments for components. They can be complex or simple multi-dimensional datasets. More...
 
class  ICheckpointableModelComponent
 ICheckpointableModelComponent is an IModelComponent that can save and restore its complete simulation state. More...
 
class  ICloneableModelComponent
 The ICloneableModelComponent class is an IModelComponent that supports deep cloning of itself and its configuration. More...
 
class  IComponentDataItem
 IComponentDataItem is a fundamental unit of data for a component. More...
 
class  IComponentDataItemValueChanged
 IComponentDataItemValueChanged interface class used to notify when the values of a IComponentDataItem change. More...
 
class  IComponentInfo
 IComponentInfo interface class is a factory that provides detailed metadata about a component and creates new instances of a component. More...
 
class  IComponentStatusChangeEventArgs
 The IComponentStatusChangeEventArgs contains the information that will be passed when the IModelComponent fires a signal. More...
 
class  IDescription
 IDescription interface class provides descriptive information on a HydroCouple object. More...
 
class  IDimension
 IDimension provides the properties of the dimensions of a variable. More...
 
class  IExchangeItem
 IExchangeItem the base data item the can be exchanged between components at runtime. More...
 
class  IExchangeItemChangeEventArgs
 The IExchangeItemChangeEventArgs contains the information that will be passed when the IComponentItem fires the componentItemChanged signal. More...
 
class  IIdBasedComponentDataItem
 IIdBasedComponentDataItem is an IComponentDataItem whose data is indexed by string identifiers. More...
 
class  IIdentity
 IIdentity interface class defines a method to get the Id of an HydroCouple entity. More...
 
class  IInput
 An IInput item that can accept values for an IModelComponent. More...
 
class  ILicensedComponent
 ILicensedComponent is an optional side interface for components that require license validation. More...
 
class  IModelComponent
 IModelComponent interface is the core interface in the HydroCouple standard defining a model component. More...
 
class  IModelComponentInfo
 IModelComponentInfo interface inherits from the IComponentInfo interface which provides detailed metadata about an IModelComponent. Additionally, it creates new instances of a component. More...
 
class  IMultiInput
 The IMultiInput class is an IInput class that has multiple outputs supplying data to it. More...
 
class  IOutput
 An output exchange item that can deliver values from an IModelComponent. More...
 
class  IPropertyChanged
 IPropertyChanged interface is used to emit signal/event when a property of an object changes. More...
 
class  IQuality
 IQuality describes qualitative data, where a value is specified as one category within a number of predefined (possible) categories. These categories can be ordered or not. More...
 
class  IQuantity
 IQuantity specifies values as an amount of some unit, usually as a floating point number. More...
 
class  ISignal
 Forward declarations. More...
 
class  ISlot
 ISlot interface class must be implemented by classes that want to listen to signals. More...
 
class  IUIProvider
 IUIProvider is an optional side interface for entities that can present a graphical editor and/or viewer. More...
 
class  IUnit
 IUnit interface, describing the physical unit of a IQuantity. More...
 
class  IUnitDimensions
 Defines the order of dimension in each FundamentalDimension for a unit. More...
 
class  IValueDefinition
 IValueDefinition describes the type and properties of values returned by IComponentDataItem::getValue() and related methods. More...
 
class  IWorkflowComponent
 IWorkflowComponent manages the execution workflow for a set of coupled IModelComponent instances. More...
 
class  IWorkflowComponentInfo
 IWorkflowComponentInfo provides metadata about an IWorkflowComponent and creates new instances of it. More...
 
class  IWorkflowComponentStatusChangeEventArgs
 The IWorkflowComponentStatusChangeEventArgs contains the information that will be passed when the IWorkflowComponent fires a signal. More...
 

Enumerations

enum class  DataKind : uint8_t {
  Unknown = 0 ,
  Int8 ,
  UInt8 ,
  Int16 ,
  UInt16 ,
  Int32 ,
  UInt32 ,
  Int64 ,
  UInt64 ,
  Float32 ,
  Float64 ,
  Boolean ,
  String ,
  Opaque
}
 DataKind identifies the element type of a typed data buffer. More...
 
enum class  MemorySpace : uint8_t {
  Host = 0 ,
  HostPinned ,
  Device ,
  Unified
}
 MemorySpace identifies where a buffer's bytes physically live. More...
 
enum class  Capability : uint32_t {
  DeviceBuffers = 0 ,
  PartitionedData ,
  DistributedExecution ,
  Checkpointing ,
  Cloneable ,
  UserInterface ,
  Licensing
}
 Capability identifies an optional behavior a component may support. More...
 

Variables

constexpr int HYDROCOUPLE_ABI_VERSION = 2
 ABI version for the HydroCouple interface.
 

Detailed Description

HydroCouple namespace contains the core interface specifications for the HydroCouple component-based modeling framework interface specification.

Enumeration Type Documentation

◆ Capability

enum class HydroCouple::Capability : uint32_t
strong

Capability identifies an optional behavior a component may support.

Orchestrators query IModelComponent::capabilities() and branch on the result instead of chains of dynamic_cast probes.

Enumerator
DeviceBuffers 

Data items can produce/accept Device/Unified BufferDescriptors.

PartitionedData 

Component exposes partitioned data items (see hydrocoupledistributed.h).

DistributedExecution 

Component implements IDistributedModelComponent.

Checkpointing 

Component implements ICheckpointableModelComponent.

Cloneable 

Component implements ICloneableModelComponent.

UserInterface 

Component implements IUIProvider.

Licensing 

Component implements ILicensedComponent.

◆ DataKind

enum class HydroCouple::DataKind : uint8_t
strong

DataKind identifies the element type of a typed data buffer.

This is the type vocabulary of the data-exchange plane. String and Opaque are host-only kinds: String buffers point to arrays of std::string, Opaque buffers carry implementation-defined bytes whose meaning both endpoints must agree on.

Enumerator
Unknown 

No/unknown element type.

Int8 

int8_t

UInt8 

uint8_t

Int16 

int16_t

UInt16 

uint16_t

Int32 

int32_t

UInt32 

uint32_t

Int64 

int64_t

UInt64 

uint64_t

Float32 

float

Float64 

double

Boolean 

bool (stored one element per byte)

String 

std::string (host memory only)

Opaque 

Implementation-defined bytes (element size must be agreed out of band).

◆ MemorySpace

enum class HydroCouple::MemorySpace : uint8_t
strong

MemorySpace identifies where a buffer's bytes physically live.

Vendor-neutral by design: no CUDA/HIP/SYCL types appear in this standard. The pairing of MemorySpace and device id is resolved to a concrete runtime by the implementing SDK's execution backend.

Enumerator
Host 

Ordinary pageable host memory.

HostPinned 

Page-locked host memory (fast staging to/from devices).

Device 

Accelerator-resident memory addressed by (backend, deviceId).

Unified 

Unified/managed memory accessible from host and device.

Variable Documentation

◆ HYDROCOUPLE_ABI_VERSION

int HydroCouple::HYDROCOUPLE_ABI_VERSION = 2
constexpr

ABI version for the HydroCouple interface.