connection-point-domain-namespace#
Code |
CP.012 |
|---|---|
Validator |
|
Compatibility |
other |
Tags |
❓ |
Summary#
A connection point’s domain-specific properties must sit in the namespace named by its simready:connectionPoint:domain value, and a production-complete connection point carries every property that namespace defines.
Description#
Each domain namespace carries two kinds of property: the physical geometry of that class of connection, and the operating parameters a simulation tool needs to set up an analysis. A connection declaring domain = "thermal" carries simready:connectionPoint:thermal: properties; authoring electrical: properties on it is an error.
Physical geometry lives in the domain namespaces rather than the base namespace because port dimensions differ in shape across domains. Thermal ports are circular and take a diameter; network ports are rectangular and take width and height; hardwired electrical connections have no port dimension at all.
Thermal domain (simready:connectionPoint:thermal:)#
For piped fluid connections: cooling loops, condensate, chilled water. In datacenter usage “thermal” means liquid cooling. Air is the separate airflow domain.
Property |
Type |
Description |
|---|---|---|
|
float (meters) |
Internal pipe diameter |
|
float (meters) |
Flange engagement or coupling insertion depth |
|
float (L/s) |
Nominal operating flow rate |
|
float (L/s) |
Rated maximum flow rate |
|
float (Celsius) |
Nominal operating temperature at this connection |
|
float (Celsius) |
Rated temperature limit |
|
float (Pa, gauge) |
Nominal operating pressure |
|
float (Pa, gauge) |
Rated pressure limit |
|
token |
Working fluid, encoding concentration where relevant: |
|
token |
Flange standard designation (e.g. |
|
token |
Nominal pipe size designation (e.g. |
fluidType is a single descriptive token rather than a fluid name plus a separate concentration. Emerging refrigerant blends make concentration a poor standalone property, and the fluid name is what a simulation tool looks up. New tokens follow the pattern {fluid_category}_{specifier}.
Electrical domain (simready:connectionPoint:electrical:)#
For power connections: mains feeds, PDU outputs, UPS bypass.
Property |
Type |
Description |
|---|---|---|
|
float (meters) |
Plug insertion depth; |
|
float (V) |
Site-specific nominal voltage |
|
float (A) |
Rated maximum current draw |
|
int |
Number of phases, typically 3 for datacenter equipment |
|
float (Hz) |
Line frequency, 50 or 60 Hz, site-specific |
|
token |
Physical connection method (e.g. |
|
float (W) |
Rated power capacity of this connection |
|
float (A) |
Upstream breaker protection rating |
|
float (0-1) |
Manufacturer-specified power factor |
Dry contacts are the documented exception to completeness. A dry contact is a relay output with no voltage of its own that opens or closes a circuit to signal a condition. It uses connectorType = "dry_contact", populates nominalVoltage and maxCurrent as switching limits, and omits phases, frequency and powerFactor, which describe power distribution and have no meaning here.
Network domain (simready:connectionPoint:network:)#
For data and control connections: high-speed compute fabric, management, building management.
Property |
Type |
Description |
|---|---|---|
|
float (meters) |
Connector opening width |
|
float (meters) |
Connector opening height |
|
float (meters) |
Plug insertion depth |
|
token |
Physical connector type (e.g. |
|
token |
Communication protocol (e.g. |
|
token |
Maximum data rate (e.g. |
|
token |
Physical medium (e.g. |
|
token |
Role in the network fabric (e.g. |
|
token[] |
Supported line rate configurations |
|
token[] |
Breakout configurations (e.g. |
|
token[] |
Compatible transceiver types (e.g. |
|
bool |
Whether the port supports hot-plug |
Airflow domain (simready:connectionPoint:airflow:)#
For air intake and exhaust: equipment ventilation, hot and cold aisle faces, CRAH and CRAC supply and return. Most datacenter equipment rejects some heat to the surrounding air even when liquid-cooled, so a CFD tool modelling the data hall needs to know where air enters and leaves each unit, at what volume and temperature.
Property |
Type |
Description |
|---|---|---|
|
float (meters) |
Width of the contiguous airflow interface region |
|
float (meters) |
Height of the contiguous airflow interface region |
|
float (0-1) |
Fraction of the interface area open to airflow, e.g. |
|
float (m^3/s) |
Nominal airflow volume rate through this interface |
|
float (m^3/s) |
Rated maximum airflow volume rate |
|
float (Celsius) |
Expected air temperature at this interface under nominal conditions |
|
float (Celsius) |
Rated air temperature limit |
|
float (Pa, differential) |
Pressure differential across the interface or filter |
|
token |
Filter specification if present (e.g. |
Property completeness#
Every property defined in a domain namespace should be present on every connection of that domain, including where the value is zero. A hardwired electrical connection has no plug to insert, so it authors matingDepth = 0.0 rather than omitting the property.
Zero is a measured value like any other: it says the quantity is zero. Omitting the property says nothing at all, and leaves a consumer unable to tell a property that does not apply to this connection from one nobody has authored yet.
Validation profiles#
Completeness is the target state, and assets reach it incrementally as engineering data arrives from datasheets, PLM systems and SME input. Validators report which of three profiles an asset satisfies:
Profile |
Content |
Validator behaviour |
|---|---|---|
Stub |
All five base properties, no domain properties |
Reported as incomplete, with the number of properties outstanding |
Draft |
All five base properties and at least one domain property |
Each missing domain property is named in a warning |
Production |
All base properties and every domain property defined for the declared domain |
No issue reported |
Stub and draft let assets enter the pipeline before the engineering data exists. A connection point must reach production completeness before it is simulation-ready and before it enters the SimReady catalog. Validation reports which profile a connection point reaches; it does not fail on an incomplete one.
Why is it required?#
A simulation tool reads its boundary conditions straight from the connection point, so a partially populated namespace means a manual data-entry step per asset
Namespacing by domain lets a consumer filter to the connections it cares about without knowing anything about the equipment class
Per-connection values replace the v0.1.0 pattern of one unit-level number, so a CDU with four ports at different diameters can be described accurately
The three profiles keep progressive authoring honest by naming what is missing, instead of an asset appearing complete because absent properties look like inapplicable ones
Examples#
One production-complete connection per domain, each as a complete stage. The
values are the ones the tier’s own Synthetic_CP2_* fixtures carry, so the
examples and the fixtures cannot drift apart. The five base-namespace
properties come first in each block; everything after them is the domain
namespace.
Valid: thermal, a facility-water supply flange on a CDU#
def Xform "Generic_CDU"
{
def Scope "ConnectionPoints"
{
def Xform "acme_thermal_main"
{
uniform token purpose = "guide"
token simready:connectionPoint:domain = "thermal"
token simready:connectionPoint:direction = "supply"
token simready:connectionPoint:system = "FWS"
token simready:connectionPoint:disconnectType = "flanged"
float simready:connectionPoint:serviceClearance = 0.6
float simready:connectionPoint:thermal:portDiameter = 0.05
float simready:connectionPoint:thermal:matingDepth = 0.02
float simready:connectionPoint:thermal:designFlowRate = 12.5
float simready:connectionPoint:thermal:maxFlowRate = 15.0
float simready:connectionPoint:thermal:designTemperature = 18.0
float simready:connectionPoint:thermal:maxTemperature = 25.0
float simready:connectionPoint:thermal:operatingPressure = 400000
float simready:connectionPoint:thermal:maxPressure = 1000000
token simready:connectionPoint:thermal:fluidType = "water"
token simready:connectionPoint:thermal:flangeRating = "ANSI_150"
token simready:connectionPoint:thermal:flangeSize = "NPS4"
}
}
}
Valid: electrical, a hardwired three-phase feed on a UPS#
matingDepth is an explicit zero: a hardwired feed has no connector to mate.
Omitting it instead would leave the connection at draft completeness.
def Xform "Generic_UPS"
{
def Scope "ConnectionPoints"
{
def Xform "acme_electrical_main"
{
uniform token purpose = "guide"
token simready:connectionPoint:domain = "electrical"
token simready:connectionPoint:direction = "input"
token simready:connectionPoint:system = "power"
token simready:connectionPoint:disconnectType = "hardwired"
float simready:connectionPoint:serviceClearance = 0.6
float simready:connectionPoint:electrical:matingDepth = 0.0
float simready:connectionPoint:electrical:nominalVoltage = 480.0
float simready:connectionPoint:electrical:maxCurrent = 1458.0
int simready:connectionPoint:electrical:phases = 3
float simready:connectionPoint:electrical:frequency = 60.0
token simready:connectionPoint:electrical:connectorType = "hardwired"
float simready:connectionPoint:electrical:ratedPower = 1200000.0
float simready:connectionPoint:electrical:breakerRating = 2000.0
float simready:connectionPoint:electrical:powerFactor = 0.99
}
}
}
Valid: network, an OSFP port on a compute rack#
def Xform "Generic_ComputeRack"
{
def Scope "ConnectionPoints"
{
def Xform "acme_network_main"
{
uniform token purpose = "guide"
token simready:connectionPoint:domain = "network"
token simready:connectionPoint:direction = "bidirectional"
token simready:connectionPoint:system = "high_speed_data"
token simready:connectionPoint:disconnectType = "OSFP"
float simready:connectionPoint:serviceClearance = 0.6
float simready:connectionPoint:network:portWidth = 0.022
float simready:connectionPoint:network:portHeight = 0.009
float simready:connectionPoint:network:matingDepth = 0.015
token simready:connectionPoint:network:portType = "OSFP"
token simready:connectionPoint:network:protocol = "Ethernet"
token simready:connectionPoint:network:dataRate = "800GbE"
token simready:connectionPoint:network:medium = "fiber"
token simready:connectionPoint:network:fabricRole = "compute"
token[] simready:connectionPoint:network:supportedLineRates = ["800GbE", "400GbE"]
token[] simready:connectionPoint:network:supportedConfigurations = ["1x800G", "2x400G"]
token[] simready:connectionPoint:network:allowedTransceivers = ["DR4", "FR4"]
bool simready:connectionPoint:network:hotPlugCapable = 1
}
}
}
Valid: airflow, the intake face of a CRAH#
def Xform "Generic_CRAH"
{
def Scope "ConnectionPoints"
{
def Xform "acme_airflow_main"
{
uniform token purpose = "guide"
token simready:connectionPoint:domain = "airflow"
token simready:connectionPoint:direction = "input"
token simready:connectionPoint:system = "equipment_cooling"
token simready:connectionPoint:disconnectType = "open_vent"
float simready:connectionPoint:serviceClearance = 0.6
float simready:connectionPoint:airflow:interfaceWidth = 0.6
float simready:connectionPoint:airflow:interfaceHeight = 2.0
float simready:connectionPoint:airflow:freeAreaRatio = 0.7
float simready:connectionPoint:airflow:designAirflowRate = 1.07
float simready:connectionPoint:airflow:maxAirflowRate = 1.28
float simready:connectionPoint:airflow:designTemperature = 24.0
float simready:connectionPoint:airflow:maxTemperature = 45.0
float simready:connectionPoint:airflow:staticPressure = 50.0
token simready:connectionPoint:airflow:filterType = "none"
}
}
}
Invalid: a property from another domain’s namespace#
A thermal connection carrying an electrical: property. The namespace does not
match the declared domain, and that is a failure regardless of completeness.
def Xform "Generic_CDU"
{
def Scope "ConnectionPoints"
{
def Xform "acme_thermal_main"
{
uniform token purpose = "guide"
token simready:connectionPoint:domain = "thermal"
token simready:connectionPoint:direction = "supply"
token simready:connectionPoint:system = "FWS"
token simready:connectionPoint:disconnectType = "flanged"
float simready:connectionPoint:serviceClearance = 0.15
float simready:connectionPoint:electrical:nominalVoltage = 480.0
}
}
}
How to comply#
Read the
simready:connectionPoint:domainvalue on the connection pointAuthor properties from that domain’s namespace only
Author every property the namespace defines, using an explicit zero where the value is not physically meaningful
Convert datasheet values to SI at authoring time: meters, Celsius, Pascals, L/s, m^3/s, volts, amperes, watts, hertz
Where engineering data is not yet available, expect the validator to report stub or draft and treat it as work outstanding