zcbot/software-contracts/ansys.mechanical.static_str...

318 lines
10 KiB
JSON

{
"capability": "ansys.mechanical.static_structural@v2",
"display_name": "ANSYS Mechanical 线性静力分析",
"default_enrollment": false,
"output_namespace": "ansys",
"input_policy": {
"suffixes": [".step", ".stp", ".x_t", ".x_b", ".iges", ".igs"],
"max_count": 1,
"max_bytes": 536870912,
"max_total_bytes": 536870912
},
"outputs": {
"project": {
"filename": "project.mechdat",
"media_type": "application/octet-stream",
"relative_path": "project.mechdat",
"publish": true,
"required": false
},
"summary": {
"filename": "summary.json",
"media_type": "application/json",
"relative_path": "summary.json",
"publish": true,
"required": true
},
"result_table": {
"filename": "result-table.csv",
"media_type": "text/csv",
"relative_path": "result-table.csv",
"publish": true,
"required": true
},
"selection_preview": {
"filename": "selection-preview.png",
"media_type": "image/png",
"relative_path": "selection-preview.png",
"publish": true,
"required": true
},
"stress_image": {
"filename": "equivalent-stress.png",
"media_type": "image/png",
"relative_path": "equivalent-stress.png",
"publish": true,
"required": false
},
"deformation_image": {
"filename": "total-deformation.png",
"media_type": "image/png",
"relative_path": "total-deformation.png",
"publish": true,
"required": false
},
"solver_log": {
"filename": "solver-output.txt",
"media_type": "text/plain",
"relative_path": "solver-output.txt",
"publish": true,
"required": false
},
"analysis_spec": {
"filename": "analysis-spec.json",
"media_type": "application/json",
"relative_path": ".meta/analysis-spec.json",
"publish": false,
"required": true
},
"provenance": {
"filename": "provenance.json",
"media_type": "application/json",
"relative_path": ".meta/provenance.json",
"publish": false,
"required": true
}
},
"feature_path": ["operation", "analysis", "type"],
"features": {
"static_structural": "0.3.0"
},
"summary": {
"title_path": ["operation", "analysis", "title"]
},
"legacy_runtime": null,
"workspace": null,
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"x-maxBytes": 131072,
"required": ["schema_version", "inputs", "operation", "outputs"],
"additionalProperties": false,
"properties": {
"schema_version": {"const": 2},
"inputs": {
"type": "array",
"minItems": 1,
"maxItems": 1,
"items": {
"type": "object",
"required": ["key", "artifact_id"],
"additionalProperties": false,
"properties": {
"key": {"const": "geometry"},
"artifact_id": {"type": "string", "format": "uuid"}
}
}
},
"operation": {
"type": "object",
"required": ["analysis"],
"additionalProperties": false,
"properties": {
"analysis": {
"type": "object",
"required": [
"type", "title", "unit_system", "geometry", "material", "mesh",
"boundary_conditions", "loads", "results"
],
"additionalProperties": false,
"properties": {
"type": {"const": "static_structural"},
"title": {"type": "string", "minLength": 1, "maxLength": 160},
"unit_system": {"enum": ["m_kg_s", "mm_kg_s"]},
"geometry": {
"type": "object",
"required": ["input"],
"additionalProperties": false,
"properties": {"input": {"const": "geometry"}}
},
"material": {"const": "structural_steel"},
"mesh": {
"type": "object",
"required": ["global_size"],
"additionalProperties": false,
"properties": {
"global_size": {"type": "number", "exclusiveMinimum": 0, "maximum": 1000000}
}
},
"boundary_conditions": {
"type": "array",
"minItems": 1,
"maxItems": 32,
"items": {"$ref": "#/$defs/fixed_support"}
},
"loads": {
"type": "array",
"minItems": 1,
"maxItems": 32,
"items": {
"oneOf": [
{"$ref": "#/$defs/force"},
{"$ref": "#/$defs/pressure"}
]
}
},
"results": {
"type": "array",
"minItems": 1,
"maxItems": 3,
"uniqueItems": true,
"items": {
"enum": ["total_deformation", "equivalent_stress", "reaction_force"]
}
}
}
}
}
},
"outputs": {
"type": "array",
"minItems": 0,
"maxItems": 4,
"uniqueItems": true,
"items": {
"oneOf": [
{"$ref": "#/$defs/project_output"},
{"$ref": "#/$defs/stress_image_output"},
{"$ref": "#/$defs/deformation_image_output"},
{"$ref": "#/$defs/solver_log_output"}
]
}
}
},
"$defs": {
"condition_name": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z][A-Za-z0-9_-]*$",
"description": "Stable name used in the Mechanical tree and result provenance."
},
"expected_count": {
"type": "integer",
"minimum": 1,
"maximum": 128,
"description": "Optional assertion for the exact number of selected faces."
},
"named_selection_scope": {
"type": "object",
"required": ["type", "name"],
"additionalProperties": false,
"properties": {
"type": {"const": "named_selection"},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[^/\\\\:*?\"<>|]+$",
"description": "Name of an existing Named Selection imported from the geometry."
},
"expected_count": {"$ref": "#/$defs/expected_count"}
}
},
"extreme_face_scope": {
"type": "object",
"required": ["type", "axis", "side"],
"additionalProperties": false,
"properties": {
"type": {"const": "extreme_face"},
"axis": {"enum": ["x", "y", "z"]},
"side": {"enum": ["min", "max"]},
"tolerance": {"type": "number", "minimum": 0, "maximum": 1000000},
"angle_tolerance_degrees": {
"type": "number", "minimum": 0, "maximum": 15, "default": 5
},
"expected_count": {"$ref": "#/$defs/expected_count"}
},
"description": "Select planar faces at the minimum or maximum extent along a global axis."
},
"planar_faces_scope": {
"type": "object",
"required": ["type", "normal", "offset", "tolerance"],
"additionalProperties": false,
"properties": {
"type": {"const": "planar_faces"},
"normal": {"$ref": "#/$defs/vector3"},
"offset": {"type": "number", "minimum": -1000000, "maximum": 1000000},
"tolerance": {"type": "number", "exclusiveMinimum": 0, "maximum": 1000000},
"angle_tolerance_degrees": {
"type": "number", "minimum": 0, "maximum": 15, "default": 5
},
"expected_count": {"$ref": "#/$defs/expected_count"}
},
"description": "Select planar faces whose centroid lies on n dot x = offset. Length values use analysis.unit_system."
},
"scope": {
"oneOf": [
{"$ref": "#/$defs/named_selection_scope"},
{"$ref": "#/$defs/extreme_face_scope"},
{"$ref": "#/$defs/planar_faces_scope"}
]
},
"vector3": {
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {"type": "number", "minimum": -1000000000000, "maximum": 1000000000000}
},
"fixed_support": {
"type": "object",
"required": ["type", "name", "scope"],
"additionalProperties": false,
"properties": {
"type": {"const": "fixed_support"},
"name": {"$ref": "#/$defs/condition_name"},
"scope": {"$ref": "#/$defs/scope"}
}
},
"force": {
"type": "object",
"required": ["type", "name", "scope", "components"],
"additionalProperties": false,
"properties": {
"type": {"const": "force"},
"name": {"$ref": "#/$defs/condition_name"},
"scope": {"$ref": "#/$defs/scope"},
"components": {"$ref": "#/$defs/vector3"}
}
},
"pressure": {
"type": "object",
"required": ["type", "name", "scope", "magnitude"],
"additionalProperties": false,
"properties": {
"type": {"const": "pressure"},
"name": {"$ref": "#/$defs/condition_name"},
"scope": {"$ref": "#/$defs/scope"},
"magnitude": {"type": "number", "minimum": -1000000000000, "maximum": 1000000000000}
}
},
"project_output": {
"type": "object",
"required": ["key", "format"],
"additionalProperties": false,
"properties": {"key": {"const": "project"}, "format": {"const": "mechdat"}}
},
"stress_image_output": {
"type": "object",
"required": ["key", "format"],
"additionalProperties": false,
"properties": {"key": {"const": "stress_image"}, "format": {"const": "png"}}
},
"deformation_image_output": {
"type": "object",
"required": ["key", "format"],
"additionalProperties": false,
"properties": {"key": {"const": "deformation_image"}, "format": {"const": "png"}}
},
"solver_log_output": {
"type": "object",
"required": ["key", "format"],
"additionalProperties": false,
"properties": {"key": {"const": "solver_log"}, "format": {"const": "txt"}}
}
}
}
}