第4章 域、单位与默认(校验口径)


I. 目的与范围(Purpose & Scope)


II. 前置条件与输入(Prerequisites & Inputs)


III. 域的类型与声明(Domain Types & Declarations)

域声明最小字段
domain{ type, unit, range[min,max] | values[], default, precision, shape? }


IV. 单位与量纲(Units & Dimensions)

  1. 单位规范:采用 SI 与国际符号(如 m, s, rad, 1, Pa, N, J, Hz)。
  2. 量纲闭合:所有派生/约束式必须通过 I70-dim_check,并在卡片附 check_dim_report.json;发布时 p_dim = 1.0。
  3. 典型校核
    • 到达时:T_arr = ( ∫ ( n_eff / c_ref ) d ell ) ⇒ [1]/[m·s^-1]·[m] = [s]。
    • 相位:Phi = ( 2π / λ_ref ) ( ∫ n_eff d ell ) ⇒ [1/m]·[m] = [rad]。
  4. 无量纲量:1 统一表示无量纲;避免使用 % 作为单位,可在注释中说明“百分比”。

V. 默认值、范围与精度(Defaults, Ranges & Precision)


VI. 校验口径与规则(Validation Rules)


VII. 规范示例(Normative Examples)

# A) 实数域:参考传播上限

domain:

type: "real"

unit: "m/s"

range: [2.9e8, 3.1e8]

default: 2.99792458e8

precision: "float64"

# B) 数组域(路径函数):有效折射率剖面

domain:

type: "array"

unit: "1"

shape: ["N"]

range: [0.8, 2.5]

precision: "float64"

path:

gamma: "gamma(ell)"

measure: "d ell"

delta_form: "general" # or "factored"

# C) 枚举域:时钟状态

domain:

type: "enum"

unit: "1"

values: ["locked","holdover","free"]

default: "locked"


VIII. 模式与校验(Schema & Validation Snippet)

{

"type": "object",

"required": ["domain"],

"properties": {

"domain": {

"type": "object",

"required": ["type","unit"],

"properties": {

"type": {"enum": ["real","integer","enum","array","tensor","boolean"]},

"unit": {"type": "string"},

"range": {"type": "array","items":{"type":"number"},"minItems":2,"maxItems":2},

"values": {"type":"array","items":{"type":["string","number","boolean"]}},

"default": {},

"precision": {"type":"string"},

"shape": {"type":"array","items":{"type":["integer","string"]}}

},

"oneOf": [

{"properties":{"type":{"const":"enum"}}, "required":["values","default"]},

{"properties":{"type":{"enum":["real","integer","array","tensor"]}}, "required":["range","precision"]}

]

}

}

}


IX. 交叉引用(Cross-References)


X. 执行勾选清单(Checklist)