Input URI
|
{base url} + db/NLCT-M1 |
|---|
Active Methods
|
GET, PUT, DELETE |
|---|
JSON Schema
Details
{
"type": "object",
"additionalProperties": false,
"required": [
"Assign"
],
"properties": {
"Assign": {
"type": "object",
"description": "인덱스 문자열 키별 Nonlinear Analysis Control Data 입력 값",
"minProperties": 1,
"additionalProperties": {
"type": "object",
"additionalProperties": false,
"properties": {
"LC_SCOPE": {
"type": "string",
"enum": [
"ALL",
"SELECT"
],
"description": "Nonlinear Analysis for All Static Load Cases / Select Load Case to be Analyzed as Nonlinear Analysis (ALL 범위에서는 key=1만 사용. SELECT 범위에서는 key가 aLCaseData 인덱스+1)",
"default": "ALL"
},
"LOAD_CASE": {
"type": "string",
"description": "Load Case (Static Load Case의 이름(문자열). 내부적으로 GetStldKey로 StldK 조회. 값을 보냈는데 해당 이름의 STLD가 없으면 LV_WRONG_DATA 예외)"
},
"NONLINEAR_TYPE": {
"type": "string",
"enum": [
"GEOM",
"MATL",
"GEOM_MATL"
],
"description": "Geometry Nonlinear (UI 체크박스 2개가 DTO 단일 enum으로 병합됨. DTO에는 '둘 다 해제' 표현 없음 (UI에서 이미 1개 체크 강제))"
},
"ITER_METHOD": {
"type": "string",
"enum": [
"FORCE",
"ARC",
"DISP"
],
"description": "Force-Control / Arc-Length / Displacement-Control (후속 LOAD_STEPS 하위 필드의 조건부 required/optional을 결정)"
},
"LOAD_STEPS": {
"type": "object",
"additionalProperties": false,
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"AUTO",
"MANUAL"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)"
},
"NUMBER_STEPS": {
"type": "integer",
"description": "Number of Increments (STEP_MODE != AUTO 일 때 미지정 허용)",
"default": 1,
"minimum": 1
},
"OUTPUT": {
"type": "string",
"enum": [
"EVERY",
"LAST"
],
"description": "Intermediate Output Request (UI 콤보 항목의 표시 문자열은 리소스 상에서 확인 필요)",
"default": "EVERY"
},
"MANUAL_STEPS": {
"type": "array",
"items": {
"type": "number"
},
"description": "Load Step... (서브 대화상자에서 수집하는 스텝 목록이 DTO 배열로 직렬화 (aLoadSteps[i].dLoadIncFactor))",
"minItems": 1
},
"MIN_ARC_RATIO": {
"type": "number",
"description": "Min Arc-Length Adjustment Ratio (기본값 0.25)",
"exclusiveMinimum": 0
},
"MAX_ARC_RATIO": {
"type": "number",
"description": "Max Arc-Length Adjustment Ratio (기본값 4.0)",
"exclusiveMinimum": 0
},
"MAX_ARC_INCREMENTS": {
"type": "integer",
"description": "Max Arc-Length Increments (기본값 100)",
"minimum": 1
},
"MASTER_NODE": {
"type": "integer",
"description": "Master Node (노드 ID. 조건 미충족 시 0 기본값)"
},
"MAX_DISP": {
"type": "number",
"description": "Maximum Disp. (값 0 금지 — CheckNlctData가 dMaxDisplacementDispct != 0.0 강제. DTO 미지정 시 서버가 0.0을 채우고 검증 실패 → 명시적 값 필수)",
"not": {
"const": 0
}
},
"DIRECTION": {
"type": "string",
"enum": [
"DX",
"DY",
"DZ"
],
"description": "Direction",
"default": "DX"
},
"REF_NODE": {
"type": "object",
"additionalProperties": false,
"properties": {
"OPT_USE": {
"type": "boolean",
"description": "Reference Node (REF_NODE 서브 객체의 required 필드. LOAD_STEPS.REF_NODE 자체는 DISP일 때 condition)"
},
"NODE": {
"type": "integer",
"description": "Reference Node (노드 ID. OPT_USE=false 시 기본 0)"
}
},
"required": [
"OPT_USE"
],
"description": "Reference (Relative) Node (nested)"
}
},
"required": [
"STEP_MODE"
],
"description": "Load step configuration (nested)"
},
"CONV_CRITERIA": {
"type": "object",
"additionalProperties": false,
"properties": {
"DISP": {
"type": "object",
"additionalProperties": false,
"properties": {
"OPT_USE": {
"type": "boolean",
"description": "Displacement (U) : (CONV_CRITERIA.DISP 서브 객체의 required 필드. DISP/LOAD/WORK 중 최소 1개 true 강제는 UI 레이어 규칙)"
},
"VALUE": {
"type": "number",
"description": "Displacement (U) : (기본값 0.001 (cpp DTOToNlctData의 value_or))",
"exclusiveMinimum": 0,
"maximum": 1
}
},
"required": [
"OPT_USE"
],
"description": "Displacement (U) convergence"
},
"LOAD": {
"type": "object",
"additionalProperties": false,
"properties": {
"OPT_USE": {
"type": "boolean",
"description": "Displacement (U) : (CONV_CRITERIA.DISP 서브 객체의 required 필드. DISP/LOAD/WORK 중 최소 1개 true 강제는 UI 레이어 규칙)"
},
"VALUE": {
"type": "number",
"description": "Displacement (U) : (기본값 0.001 (cpp DTOToNlctData의 value_or))",
"exclusiveMinimum": 0,
"maximum": 1
}
},
"required": [
"OPT_USE"
],
"description": "Load (P) convergence"
},
"WORK": {
"type": "object",
"additionalProperties": false,
"properties": {
"OPT_USE": {
"type": "boolean",
"description": "Displacement (U) : (CONV_CRITERIA.DISP 서브 객체의 required 필드. DISP/LOAD/WORK 중 최소 1개 true 강제는 UI 레이어 규칙)"
},
"VALUE": {
"type": "number",
"description": "Displacement (U) : (기본값 0.001 (cpp DTOToNlctData의 value_or))",
"exclusiveMinimum": 0,
"maximum": 1
}
},
"required": [
"OPT_USE"
],
"description": "Work (W) convergence"
}
},
"description": "Convergence criteria (nested)"
},
"ADVANCED": {
"type": "object",
"additionalProperties": false,
"properties": {
"OPT_USE_DEFAULT": {
"type": "boolean",
"description": "Use Default Settings (ADVANCED 서브 객체의 required. true 시 하위 모든 필드 미지정 허용 (서버가 기본값 적용))"
},
"STIFF_UPDATE_SCHEME": {
"type": "string",
"enum": [
"CUSTOM",
"FULL_NEWTON_RAPHSON",
"INITIAL_STIFF"
],
"description": "Stiffness Update Scheme (UI에는 5개 스킴(Modified NR, Quasi-Newton 포함)이 있지만 DTO는 3개만 노출. DB 인덱스(2)가 DTO의 INITIAL_STIFF(2)에 매핑)"
},
"ITER_BEFORE_STIFF_UPDATE": {
"type": "integer",
"description": "No. of Iterations before Stiffness Update (CUSTOM이 아닐 때 서버 측에서 스킴별 자동값(FullNR→1, InitStiff→51) 적용 — DTO에는 전달 불필요)"
},
"OPT_TERMINATE_ON_FAILED_CONV": {
"type": "boolean",
"description": "Terminate Analysis on Failed Convergence (기본값 FALSE)"
},
"MAX_ITER_PER_INCREMENT": {
"type": "integer",
"description": "Max. No. of Iterations per Increment (기본값 50)"
},
"MAX_BISECTION_LEVEL": {
"type": "integer",
"description": "Max. Bisection Level (기본값 5)",
"minimum": 0,
"maximum": 20
},
"OPT_SMART_BISECTION": {
"type": "boolean",
"description": "Smart Bisection (기본값 FALSE)"
},
"DIVERGENCE_THRESHOLD": {
"type": "number",
"description": "Divergence Threshold (DB는 int(기본 3), DTO는 double (내부 변환))"
},
"OPT_ENABLE_LINE_SEARCH": {
"type": "boolean",
"description": "Enable Line Search (기본값 TRUE)"
},
"LINE_SEARCH_OPTION": {
"type": "string",
"enum": [
"AUTO",
"MANUAL"
],
"description": "Line Search Option (DB에서는 1/2 (Auto/UserDefined), DTO enum은 0/1 (AUTO/MANUAL) — 내부에서 ±1 변환)"
},
"MAX_LINE_SEARCH_PER_ITER": {
"type": "integer",
"description": "Max. Line Search per Iteration (기본값 4)"
},
"LINE_SEARCH_TOL": {
"type": "number",
"description": "Line Search Tolerance (기본값 0.5)"
}
},
"required": [
"OPT_USE_DEFAULT"
],
"description": "Advanced Nonlinear Setting... (서브 대화상자 진입 → DTO ADVANCED 객체로 직렬화. 미전달 시 기본값 사용)"
}
},
"required": [
"NONLINEAR_TYPE",
"ITER_METHOD",
"LOAD_STEPS",
"CONV_CRITERIA"
],
"allOf": [
{
"description": "LOAD_CASE 조건부 required (LC_SCOPE == SELECT 신규 생성(OnInsert 또는 새 key에 대한 OnSet) 시 필수. SELECT 기존 항목 수정 시 선택(미지정이면 기존 StldK 보존))",
"if": {
"properties": {
"LC_SCOPE": {
"const": "SELECT"
}
}
},
"then": {
"required": [
"LOAD_CASE"
]
}
},
{
"description": "LOAD_STEPS.NUMBER_STEPS 조건부 required (STEP_MODE == AUTO)",
"if": {
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"const": "AUTO"
}
}
}
},
"required": [
"LOAD_STEPS"
]
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"AUTO"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)",
"const": "AUTO"
},
"NUMBER_STEPS": {
"type": "integer",
"description": "Number of Increments (STEP_MODE != AUTO 일 때 미지정 허용)",
"default": 1,
"minimum": 1
},
"OUTPUT": {
"type": "string",
"enum": [
"EVERY",
"LAST"
],
"description": "Intermediate Output Request (UI 콤보 항목의 표시 문자열은 리소스 상에서 확인 필요)",
"default": "EVERY"
}
},
"required": [
"NUMBER_STEPS"
]
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "LOAD_STEPS.OUTPUT 조건부 required (STEP_MODE == AUTO)",
"if": {
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"const": "AUTO"
}
}
}
},
"required": [
"LOAD_STEPS"
]
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"AUTO"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)",
"const": "AUTO"
},
"NUMBER_STEPS": {
"type": "integer",
"description": "Number of Increments (STEP_MODE != AUTO 일 때 미지정 허용)",
"default": 1,
"minimum": 1
},
"OUTPUT": {
"type": "string",
"enum": [
"EVERY",
"LAST"
],
"description": "Intermediate Output Request (UI 콤보 항목의 표시 문자열은 리소스 상에서 확인 필요)",
"default": "EVERY"
}
},
"required": [
"OUTPUT"
]
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "LOAD_STEPS.MANUAL_STEPS 조건부 required (STEP_MODE == MANUAL)",
"if": {
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"const": "MANUAL"
}
}
}
},
"required": [
"LOAD_STEPS"
]
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"MANUAL"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)",
"const": "MANUAL"
},
"MANUAL_STEPS": {
"type": "array",
"items": {
"type": "number"
},
"description": "Load Step... (서브 대화상자에서 수집하는 스텝 목록이 DTO 배열로 직렬화 (aLoadSteps[i].dLoadIncFactor))",
"minItems": 1
}
},
"required": [
"MANUAL_STEPS"
]
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "LOAD_STEPS ??? scoped branch (ITER_METHOD == FORCE)",
"if": {
"properties": {
"ITER_METHOD": {
"const": "FORCE"
}
},
"required": [
"ITER_METHOD"
]
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"AUTO",
"MANUAL"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)"
},
"NUMBER_STEPS": {
"type": "integer",
"description": "Number of Increments (STEP_MODE != AUTO 일 때 미지정 허용)",
"default": 1,
"minimum": 1
},
"OUTPUT": {
"type": "string",
"enum": [
"EVERY",
"LAST"
],
"description": "Intermediate Output Request (UI 콤보 항목의 표시 문자열은 리소스 상에서 확인 필요)",
"default": "EVERY"
},
"MANUAL_STEPS": {
"type": "array",
"items": {
"type": "number"
},
"description": "Load Step... (서브 대화상자에서 수집하는 스텝 목록이 DTO 배열로 직렬화 (aLoadSteps[i].dLoadIncFactor))",
"minItems": 1
}
}
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "LOAD_STEPS.MIN_ARC_RATIO 조건부 required (ITER_METHOD == ARC)",
"if": {
"properties": {
"ITER_METHOD": {
"const": "ARC"
}
}
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"AUTO"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)",
"const": "AUTO"
},
"NUMBER_STEPS": {
"type": "integer",
"description": "Number of Increments (STEP_MODE != AUTO 일 때 미지정 허용)",
"default": 1,
"minimum": 1
},
"OUTPUT": {
"type": "string",
"enum": [
"EVERY",
"LAST"
],
"description": "Intermediate Output Request (UI 콤보 항목의 표시 문자열은 리소스 상에서 확인 필요)",
"default": "EVERY"
},
"MIN_ARC_RATIO": {
"type": "number",
"description": "Min Arc-Length Adjustment Ratio (기본값 0.25)",
"exclusiveMinimum": 0
},
"MAX_ARC_RATIO": {
"type": "number",
"description": "Max Arc-Length Adjustment Ratio (기본값 4.0)",
"exclusiveMinimum": 0
},
"MAX_ARC_INCREMENTS": {
"type": "integer",
"description": "Max Arc-Length Increments (기본값 100)",
"minimum": 1
}
},
"required": [
"MIN_ARC_RATIO"
]
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "LOAD_STEPS.MAX_ARC_RATIO 조건부 required (ITER_METHOD == ARC)",
"if": {
"properties": {
"ITER_METHOD": {
"const": "ARC"
}
}
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"AUTO"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)",
"const": "AUTO"
},
"NUMBER_STEPS": {
"type": "integer",
"description": "Number of Increments (STEP_MODE != AUTO 일 때 미지정 허용)",
"default": 1,
"minimum": 1
},
"OUTPUT": {
"type": "string",
"enum": [
"EVERY",
"LAST"
],
"description": "Intermediate Output Request (UI 콤보 항목의 표시 문자열은 리소스 상에서 확인 필요)",
"default": "EVERY"
},
"MIN_ARC_RATIO": {
"type": "number",
"description": "Min Arc-Length Adjustment Ratio (기본값 0.25)",
"exclusiveMinimum": 0
},
"MAX_ARC_RATIO": {
"type": "number",
"description": "Max Arc-Length Adjustment Ratio (기본값 4.0)",
"exclusiveMinimum": 0
},
"MAX_ARC_INCREMENTS": {
"type": "integer",
"description": "Max Arc-Length Increments (기본값 100)",
"minimum": 1
}
},
"required": [
"MAX_ARC_RATIO"
]
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "LOAD_STEPS.MAX_ARC_INCREMENTS 조건부 required (ITER_METHOD == ARC)",
"if": {
"properties": {
"ITER_METHOD": {
"const": "ARC"
}
}
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"AUTO"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)",
"const": "AUTO"
},
"NUMBER_STEPS": {
"type": "integer",
"description": "Number of Increments (STEP_MODE != AUTO 일 때 미지정 허용)",
"default": 1,
"minimum": 1
},
"OUTPUT": {
"type": "string",
"enum": [
"EVERY",
"LAST"
],
"description": "Intermediate Output Request (UI 콤보 항목의 표시 문자열은 리소스 상에서 확인 필요)",
"default": "EVERY"
},
"MIN_ARC_RATIO": {
"type": "number",
"description": "Min Arc-Length Adjustment Ratio (기본값 0.25)",
"exclusiveMinimum": 0
},
"MAX_ARC_RATIO": {
"type": "number",
"description": "Max Arc-Length Adjustment Ratio (기본값 4.0)",
"exclusiveMinimum": 0
},
"MAX_ARC_INCREMENTS": {
"type": "integer",
"description": "Max Arc-Length Increments (기본값 100)",
"minimum": 1
}
},
"required": [
"MAX_ARC_INCREMENTS"
]
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "LOAD_STEPS.MASTER_NODE 조건부 required (ITER_METHOD == DISP)",
"if": {
"properties": {
"ITER_METHOD": {
"const": "DISP"
}
}
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"AUTO",
"MANUAL"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)"
},
"NUMBER_STEPS": {
"type": "integer",
"description": "Number of Increments (STEP_MODE != AUTO 일 때 미지정 허용)",
"default": 1,
"minimum": 1
},
"OUTPUT": {
"type": "string",
"enum": [
"EVERY",
"LAST"
],
"description": "Intermediate Output Request (UI 콤보 항목의 표시 문자열은 리소스 상에서 확인 필요)",
"default": "EVERY"
},
"MANUAL_STEPS": {
"type": "array",
"items": {
"type": "number"
},
"description": "Load Step... (서브 대화상자에서 수집하는 스텝 목록이 DTO 배열로 직렬화 (aLoadSteps[i].dLoadIncFactor))",
"minItems": 1
},
"MASTER_NODE": {
"type": "integer",
"description": "Master Node (노드 ID. 조건 미충족 시 0 기본값)"
},
"MAX_DISP": {
"type": "number",
"description": "Maximum Disp. (값 0 금지 — CheckNlctData가 dMaxDisplacementDispct != 0.0 강제. DTO 미지정 시 서버가 0.0을 채우고 검증 실패 → 명시적 값 필수)",
"not": {
"const": 0
}
},
"DIRECTION": {
"type": "string",
"enum": [
"DX",
"DY",
"DZ"
],
"description": "Direction",
"default": "DX"
},
"REF_NODE": {
"type": "object",
"additionalProperties": false,
"properties": {
"OPT_USE": {
"type": "boolean",
"description": "Reference Node (REF_NODE 서브 객체의 required 필드. LOAD_STEPS.REF_NODE 자체는 DISP일 때 condition)"
},
"NODE": {
"type": "integer",
"description": "Reference Node (노드 ID. OPT_USE=false 시 기본 0)"
}
},
"required": [
"OPT_USE"
],
"description": "Reference (Relative) Node (nested)"
}
},
"required": [
"MASTER_NODE"
]
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "LOAD_STEPS.MAX_DISP 조건부 required (ITER_METHOD == DISP)",
"if": {
"properties": {
"ITER_METHOD": {
"const": "DISP"
}
}
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"AUTO",
"MANUAL"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)"
},
"NUMBER_STEPS": {
"type": "integer",
"description": "Number of Increments (STEP_MODE != AUTO 일 때 미지정 허용)",
"default": 1,
"minimum": 1
},
"OUTPUT": {
"type": "string",
"enum": [
"EVERY",
"LAST"
],
"description": "Intermediate Output Request (UI 콤보 항목의 표시 문자열은 리소스 상에서 확인 필요)",
"default": "EVERY"
},
"MANUAL_STEPS": {
"type": "array",
"items": {
"type": "number"
},
"description": "Load Step... (서브 대화상자에서 수집하는 스텝 목록이 DTO 배열로 직렬화 (aLoadSteps[i].dLoadIncFactor))",
"minItems": 1
},
"MASTER_NODE": {
"type": "integer",
"description": "Master Node (노드 ID. 조건 미충족 시 0 기본값)"
},
"MAX_DISP": {
"type": "number",
"description": "Maximum Disp. (값 0 금지 — CheckNlctData가 dMaxDisplacementDispct != 0.0 강제. DTO 미지정 시 서버가 0.0을 채우고 검증 실패 → 명시적 값 필수)",
"not": {
"const": 0
}
},
"DIRECTION": {
"type": "string",
"enum": [
"DX",
"DY",
"DZ"
],
"description": "Direction",
"default": "DX"
},
"REF_NODE": {
"type": "object",
"additionalProperties": false,
"properties": {
"OPT_USE": {
"type": "boolean",
"description": "Reference Node (REF_NODE 서브 객체의 required 필드. LOAD_STEPS.REF_NODE 자체는 DISP일 때 condition)"
},
"NODE": {
"type": "integer",
"description": "Reference Node (노드 ID. OPT_USE=false 시 기본 0)"
}
},
"required": [
"OPT_USE"
],
"description": "Reference (Relative) Node (nested)"
}
},
"required": [
"MAX_DISP"
]
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "LOAD_STEPS.DIRECTION 조건부 required (ITER_METHOD == DISP)",
"if": {
"properties": {
"ITER_METHOD": {
"const": "DISP"
}
}
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"AUTO",
"MANUAL"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)"
},
"NUMBER_STEPS": {
"type": "integer",
"description": "Number of Increments (STEP_MODE != AUTO 일 때 미지정 허용)",
"default": 1,
"minimum": 1
},
"OUTPUT": {
"type": "string",
"enum": [
"EVERY",
"LAST"
],
"description": "Intermediate Output Request (UI 콤보 항목의 표시 문자열은 리소스 상에서 확인 필요)",
"default": "EVERY"
},
"MANUAL_STEPS": {
"type": "array",
"items": {
"type": "number"
},
"description": "Load Step... (서브 대화상자에서 수집하는 스텝 목록이 DTO 배열로 직렬화 (aLoadSteps[i].dLoadIncFactor))",
"minItems": 1
},
"MASTER_NODE": {
"type": "integer",
"description": "Master Node (노드 ID. 조건 미충족 시 0 기본값)"
},
"MAX_DISP": {
"type": "number",
"description": "Maximum Disp. (값 0 금지 — CheckNlctData가 dMaxDisplacementDispct != 0.0 강제. DTO 미지정 시 서버가 0.0을 채우고 검증 실패 → 명시적 값 필수)",
"not": {
"const": 0
}
},
"DIRECTION": {
"type": "string",
"enum": [
"DX",
"DY",
"DZ"
],
"description": "Direction",
"default": "DX"
},
"REF_NODE": {
"type": "object",
"additionalProperties": false,
"properties": {
"OPT_USE": {
"type": "boolean",
"description": "Reference Node (REF_NODE 서브 객체의 required 필드. LOAD_STEPS.REF_NODE 자체는 DISP일 때 condition)"
},
"NODE": {
"type": "integer",
"description": "Reference Node (노드 ID. OPT_USE=false 시 기본 0)"
}
},
"required": [
"OPT_USE"
],
"description": "Reference (Relative) Node (nested)"
}
},
"required": [
"DIRECTION"
]
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "LOAD_STEPS.REF_NODE 조건부 required (ITER_METHOD == DISP)",
"if": {
"properties": {
"ITER_METHOD": {
"const": "DISP"
}
}
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"STEP_MODE": {
"type": "string",
"enum": [
"AUTO",
"MANUAL"
],
"description": "Number of Increments / Manual with User-defined Steps (ITER_METHOD == ARC 시 UI에서는 AUTO 강제)"
},
"NUMBER_STEPS": {
"type": "integer",
"description": "Number of Increments (STEP_MODE != AUTO 일 때 미지정 허용)",
"default": 1,
"minimum": 1
},
"OUTPUT": {
"type": "string",
"enum": [
"EVERY",
"LAST"
],
"description": "Intermediate Output Request (UI 콤보 항목의 표시 문자열은 리소스 상에서 확인 필요)",
"default": "EVERY"
},
"MANUAL_STEPS": {
"type": "array",
"items": {
"type": "number"
},
"description": "Load Step... (서브 대화상자에서 수집하는 스텝 목록이 DTO 배열로 직렬화 (aLoadSteps[i].dLoadIncFactor))",
"minItems": 1
},
"MASTER_NODE": {
"type": "integer",
"description": "Master Node (노드 ID. 조건 미충족 시 0 기본값)"
},
"MAX_DISP": {
"type": "number",
"description": "Maximum Disp. (값 0 금지 — CheckNlctData가 dMaxDisplacementDispct != 0.0 강제. DTO 미지정 시 서버가 0.0을 채우고 검증 실패 → 명시적 값 필수)",
"not": {
"const": 0
}
},
"DIRECTION": {
"type": "string",
"enum": [
"DX",
"DY",
"DZ"
],
"description": "Direction",
"default": "DX"
},
"REF_NODE": {
"type": "object",
"additionalProperties": false,
"properties": {
"OPT_USE": {
"type": "boolean",
"description": "Reference Node (REF_NODE 서브 객체의 required 필드. LOAD_STEPS.REF_NODE 자체는 DISP일 때 condition)"
},
"NODE": {
"type": "integer",
"description": "Reference Node (노드 ID. OPT_USE=false 시 기본 0)"
}
},
"required": [
"OPT_USE"
],
"description": "Reference (Relative) Node (nested)"
}
},
"required": [
"REF_NODE"
]
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "LOAD_STEPS.REF_NODE.NODE 조건부 required (OPT_USE == true)",
"if": {
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"REF_NODE": {
"type": "object",
"properties": {
"OPT_USE": {
"const": true
}
}
}
},
"required": [
"REF_NODE"
]
}
},
"required": [
"LOAD_STEPS"
]
},
"then": {
"type": "object",
"properties": {
"LOAD_STEPS": {
"type": "object",
"properties": {
"REF_NODE": {
"type": "object",
"properties": {
"NODE": {
"type": "integer",
"description": "Reference Node (노드 ID. OPT_USE=false 시 기본 0)"
}
},
"required": [
"NODE"
]
}
},
"required": [
"REF_NODE"
]
}
},
"required": [
"LOAD_STEPS"
]
}
},
{
"description": "CONV_CRITERIA.DISP.VALUE 조건부 required (OPT_USE == true)",
"if": {
"properties": {
"CONV_CRITERIA": {
"type": "object",
"properties": {
"DISP": {
"type": "object",
"properties": {
"OPT_USE": {
"const": true
}
}
}
},
"required": [
"DISP"
]
}
},
"required": [
"CONV_CRITERIA"
]
},
"then": {
"type": "object",
"properties": {
"CONV_CRITERIA": {
"type": "object",
"properties": {
"DISP": {
"type": "object",
"properties": {
"VALUE": {
"type": "number",
"description": "Displacement (U) : (기본값 0.001 (cpp DTOToNlctData의 value_or))",
"exclusiveMinimum": 0,
"maximum": 1
}
},
"required": [
"VALUE"
]
}
},
"required": [
"DISP"
]
}
},
"required": [
"CONV_CRITERIA"
]
}
},
{
"description": "CONV_CRITERIA.LOAD.VALUE ??? required (OPT_USE == true)",
"if": {
"properties": {
"CONV_CRITERIA": {
"type": "object",
"properties": {
"LOAD": {
"type": "object",
"properties": {
"OPT_USE": {
"const": true
}
}
}
},
"required": [
"LOAD"
]
}
},
"required": [
"CONV_CRITERIA"
]
},
"then": {
"type": "object",
"properties": {
"CONV_CRITERIA": {
"type": "object",
"properties": {
"LOAD": {
"type": "object",
"properties": {
"VALUE": {
"type": "number",
"description": "Displacement (U) : (기본값 0.001 (cpp DTOToNlctData의 value_or))",
"exclusiveMinimum": 0,
"maximum": 1
}
},
"required": [
"VALUE"
]
}
},
"required": [
"LOAD"
]
}
},
"required": [
"CONV_CRITERIA"
]
}
},
{
"description": "CONV_CRITERIA.WORK.VALUE ??? required (OPT_USE == true)",
"if": {
"properties": {
"CONV_CRITERIA": {
"type": "object",
"properties": {
"WORK": {
"type": "object",
"properties": {
"OPT_USE": {
"const": true
}
}
}
},
"required": [
"WORK"
]
}
},
"required": [
"CONV_CRITERIA"
]
},
"then": {
"type": "object",
"properties": {
"CONV_CRITERIA": {
"type": "object",
"properties": {
"WORK": {
"type": "object",
"properties": {
"VALUE": {
"type": "number",
"description": "Displacement (U) : (기본값 0.001 (cpp DTOToNlctData의 value_or))",
"exclusiveMinimum": 0,
"maximum": 1
}
},
"required": [
"VALUE"
]
}
},
"required": [
"WORK"
]
}
},
"required": [
"CONV_CRITERIA"
]
}
},
{
"description": "ADVANCED.STIFF_UPDATE_SCHEME 조건부 required (OPT_USE_DEFAULT == false)",
"if": {
"properties": {
"ADVANCED": {
"type": "object",
"properties": {
"OPT_USE_DEFAULT": {
"const": false
}
}
}
},
"required": [
"ADVANCED"
]
},
"then": {
"properties": {
"ADVANCED": {
"type": "object",
"required": [
"STIFF_UPDATE_SCHEME"
]
}
},
"required": [
"ADVANCED"
]
}
},
{
"description": "ADVANCED.ITER_BEFORE_STIFF_UPDATE 조건부 required (OPT_USE_DEFAULT == false AND STIFF_UPDATE_SCHEME == CUSTOM)",
"if": {
"properties": {
"ADVANCED": {
"type": "object",
"properties": {
"OPT_USE_DEFAULT": {
"const": false
},
"STIFF_UPDATE_SCHEME": {
"const": "CUSTOM"
}
}
}
},
"required": [
"ADVANCED"
]
},
"then": {
"properties": {
"ADVANCED": {
"type": "object",
"required": [
"ITER_BEFORE_STIFF_UPDATE"
]
}
},
"required": [
"ADVANCED"
]
}
},
{
"description": "ADVANCED.OPT_TERMINATE_ON_FAILED_CONV 조건부 required (OPT_USE_DEFAULT == false)",
"if": {
"properties": {
"ADVANCED": {
"type": "object",
"properties": {
"OPT_USE_DEFAULT": {
"const": false
}
}
}
},
"required": [
"ADVANCED"
]
},
"then": {
"properties": {
"ADVANCED": {
"type": "object",
"required": [
"OPT_TERMINATE_ON_FAILED_CONV"
]
}
},
"required": [
"ADVANCED"
]
}
},
{
"description": "ADVANCED.MAX_ITER_PER_INCREMENT 조건부 required (OPT_USE_DEFAULT == false)",
"if": {
"properties": {
"ADVANCED": {
"type": "object",
"properties": {
"OPT_USE_DEFAULT": {
"const": false
}
}
}
},
"required": [
"ADVANCED"
]
},
"then": {
"properties": {
"ADVANCED": {
"type": "object",
"required": [
"MAX_ITER_PER_INCREMENT"
]
}
},
"required": [
"ADVANCED"
]
}
},
{
"description": "ADVANCED.MAX_BISECTION_LEVEL 조건부 required (OPT_USE_DEFAULT == false)",
"if": {
"properties": {
"ADVANCED": {
"type": "object",
"properties": {
"OPT_USE_DEFAULT": {
"const": false
}
}
}
},
"required": [
"ADVANCED"
]
},
"then": {
"properties": {
"ADVANCED": {
"type": "object",
"required": [
"MAX_BISECTION_LEVEL"
]
}
},
"required": [
"ADVANCED"
]
}
},
{
"description": "ADVANCED.OPT_SMART_BISECTION 조건부 required (OPT_USE_DEFAULT == false)",
"if": {
"properties": {
"ADVANCED": {
"type": "object",
"properties": {
"OPT_USE_DEFAULT": {
"const": false
}
}
}
},
"required": [
"ADVANCED"
]
},
"then": {
"properties": {
"ADVANCED": {
"type": "object",
"required": [
"OPT_SMART_BISECTION"
]
}
},
"required": [
"ADVANCED"
]
}
},
{
"description": "ADVANCED.DIVERGENCE_THRESHOLD 조건부 required (OPT_USE_DEFAULT == false)",
"if": {
"properties": {
"ADVANCED": {
"type": "object",
"properties": {
"OPT_USE_DEFAULT": {
"const": false
}
}
}
},
"required": [
"ADVANCED"
]
},
"then": {
"properties": {
"ADVANCED": {
"type": "object",
"required": [
"DIVERGENCE_THRESHOLD"
]
}
},
"required": [
"ADVANCED"
]
}
},
{
"description": "ADVANCED.OPT_ENABLE_LINE_SEARCH 조건부 required (OPT_USE_DEFAULT == false)",
"if": {
"properties": {
"ADVANCED": {
"type": "object",
"properties": {
"OPT_USE_DEFAULT": {
"const": false
}
}
}
},
"required": [
"ADVANCED"
]
},
"then": {
"properties": {
"ADVANCED": {
"type": "object",
"required": [
"OPT_ENABLE_LINE_SEARCH"
]
}
},
"required": [
"ADVANCED"
]
}
},
{
"description": "ADVANCED.LINE_SEARCH_OPTION 조건부 required (OPT_ENABLE_LINE_SEARCH == true)",
"if": {
"properties": {
"ADVANCED": {
"type": "object",
"properties": {
"OPT_ENABLE_LINE_SEARCH": {
"const": true
}
}
}
},
"required": [
"ADVANCED"
]
},
"then": {
"properties": {
"ADVANCED": {
"type": "object",
"required": [
"LINE_SEARCH_OPTION"
]
}
},
"required": [
"ADVANCED"
]
}
},
{
"description": "ADVANCED.MAX_LINE_SEARCH_PER_ITER 조건부 required (LINE_SEARCH_OPTION == MANUAL)",
"if": {
"properties": {
"ADVANCED": {
"type": "object",
"properties": {
"LINE_SEARCH_OPTION": {
"const": "MANUAL"
}
}
}
},
"required": [
"ADVANCED"
]
},
"then": {
"properties": {
"ADVANCED": {
"type": "object",
"required": [
"MAX_LINE_SEARCH_PER_ITER"
]
}
},
"required": [
"ADVANCED"
]
}
},
{
"description": "ADVANCED.LINE_SEARCH_TOL 조건부 required (LINE_SEARCH_OPTION == MANUAL)",
"if": {
"properties": {
"ADVANCED": {
"type": "object",
"properties": {
"LINE_SEARCH_OPTION": {
"const": "MANUAL"
}
}
}
},
"required": [
"ADVANCED"
]
},
"then": {
"properties": {
"ADVANCED": {
"type": "object",
"required": [
"LINE_SEARCH_TOL"
]
}
},
"required": [
"ADVANCED"
]
}
},
{
"description": "CONV_CRITERIA는 DISP/LOAD/WORK 중 최소 1개 OPT_USE=true 필요",
"if": {
"required": [
"CONV_CRITERIA"
]
},
"then": {
"properties": {
"CONV_CRITERIA": {
"anyOf": [
{
"properties": {
"DISP": {
"properties": {
"OPT_USE": {
"const": true
}
},
"required": [
"OPT_USE"
]
}
},
"required": [
"DISP"
]
},
{
"properties": {
"LOAD": {
"properties": {
"OPT_USE": {
"const": true
}
},
"required": [
"OPT_USE"
]
}
},
"required": [
"LOAD"
]
},
{
"properties": {
"WORK": {
"properties": {
"OPT_USE": {
"const": true
}
},
"required": [
"OPT_USE"
]
}
},
"required": [
"WORK"
]
}
]
}
}
}
}
],
"unevaluatedProperties": false
}
}
}
}
Examples
Iteration Method - Force Control
{
"Assign": {
"1": {
"LC_SCOPE": "ALL",
"NONLINEAR_TYPE": "GEOM",
"ITER_METHOD": "FORCE",
"LOAD_STEPS": {
"STEP_MODE": "AUTO",
"NUMBER_STEPS": 10,
"OUTPUT": "EVERY"
},
"CONV_CRITERIA": {
"DISP": {
"OPT_USE": true,
"VALUE": 0.001
}
}
}
}
}
Iteration Method - Arc Length
{
"Assign": {
"1": {
"LC_SCOPE": "ALL",
"NONLINEAR_TYPE": "GEOM_MATL",
"ITER_METHOD": "ARC",
"LOAD_STEPS": {
"STEP_MODE": "AUTO",
"NUMBER_STEPS": 20,
"OUTPUT": "LAST",
"MIN_ARC_RATIO": 0.25,
"MAX_ARC_RATIO": 4,
"MAX_ARC_INCREMENTS": 100
},
"CONV_CRITERIA": {
"DISP": {
"OPT_USE": true,
"VALUE": 0.001
},
"LOAD": {
"OPT_USE": true,
"VALUE": 0.001
}
}
}
}
}
Iteration Method - Displacement Control
{
"Assign": {
"1": {
"LC_SCOPE": "ALL",
"NONLINEAR_TYPE": "MATL",
"ITER_METHOD": "DISP",
"LOAD_STEPS": {
"STEP_MODE": "AUTO",
"NUMBER_STEPS": 15,
"OUTPUT": "EVERY",
"MASTER_NODE": 101,
"MAX_DISP": 0.05,
"DIRECTION": "DX",
"REF_NODE": {
"OPT_USE": false
}
},
"CONV_CRITERIA": {
"WORK": {
"OPT_USE": true,
"VALUE": 0.001
}
}
}
}
}
Specifications
| No. | Description | Key | Value Type | Default | Required | |||
|---|---|---|---|---|---|---|---|---|
1 |
Nonlinear Analysis Type • Global: ALL • Load Case: SELECT |
"LC_SCOPE" |
string (enum) |
ALL |
Optional |
|||
When LC_SCOPE = "SELECT" | ||||||||
2 |
Load Case Name |
"LOAD_CASE" |
string |
- |
Required |
|||
3 |
Geometry Nonlinear • Geometry: GEOM • Material: MATL • Geometry + Material: GEOM_MATL |
"NONLINEAR_TYPE" |
string (enum) |
- |
Required |
|||
4 |
Iteration Method • Force Control: FORCE • Arc-Length: ARC • Displacement Control: DISP |
"ITER_METHOD" |
string (enum) |
- |
Required |
|||
When ITER_METHOD = "FORCE" | ||||||||
5 |
Load step configuration |
"LOAD_STEPS" |
object |
- |
Required |
|||
(1) | Load Steps • Number of Increments: AUTO • User Defined Step: MANUAL |
"STEP_MODE" |
string (enum) |
- |
Required |
|||
When STEP_MODE = "AUTO" | ||||||||
(2) | Number of Increments |
"NUMBER_STEPS" |
integer |
1 |
Required |
|||
(3) | Intermediate Output Request • Every Increment: EVERY • Last Increment: LAST |
"OUTPUT" |
string (enum) |
EVERY |
Optional |
|||
When STEP_MODE = "MANUAL" | ||||||||
(4) | Load Step |
"MANUAL_STEPS" |
array |
- |
Required |
|||
When ITER_METHOD = "ARC" | ||||||||
6 |
Load step configuration |
"LOAD_STEPS" |
object |
- |
Required |
|||
(1) | Load Steps • Number of Increments: AUTO Only AUTO can be selected. |
"STEP_MODE" |
string (enum) |
- |
Required |
|||
When STEP_MODE = "AUTO" | ||||||||
(2) | Number of Increments |
"NUMBER_STEPS" |
integer |
1 |
Required |
|||
(3) | Intermediate Output Request • Every Increment: EVERY • Last Increment: LAST |
"OUTPUT" |
string (enum) |
EVERY |
Optional |
|||
When ITER_METHOD = "DISP" | ||||||||
7 |
Load step configuration |
"LOAD_STEPS" |
object |
- |
Required |
|||
(1) | Load Steps • Number of Increments: AUTO • User Defined Step: MANUAL |
"STEP_MODE" |
string (enum) |
- |
Required |
|||
When STEP_MODE = "AUTO" | ||||||||
(2) | Number of Increments |
"NUMBER_STEPS" |
integer |
1 |
Required |
|||
(3) | Intermediate Output Request • Every Increment: EVERY • Last Increment: LAST |
"OUTPUT" |
string (enum) |
EVERY |
Optional |
|||
When STEP_MODE = "MANUAL" | ||||||||
(4) | Load Step |
"MANUAL_STEPS" |
array |
- |
Required |
|||
(5) | Min Arc-Length Adjustment Ratio |
"MIN_ARC_RATIO" |
number |
- |
Required |
|||
(6) | Max Arc-Length Adjustment Ratio |
"MAX_ARC_RATIO" |
number |
- |
Optional |
|||
(7) | Max Arc-Length Increments |
"MAX_ARC_INCREMENTS" |
integer |
- |
Optional |
|||
(8) | Master Node |
"MASTER_NODE" |
integer |
- |
Required |
|||
(9) | Maximum Displacement |
"MAX_DISP" |
number |
- |
Optional |
|||
(10) | Direction • DX: DX • DY: DY • DZ: DZ |
"DIRECTION" |
string (enum) |
DX |
Optional |
|||
(11) | Reference Node |
"REF_NODE" |
object |
- |
Optional |
|||
a | Use Reference Node |
"OPT_USE" |
boolean |
- |
Required |
|||
b | Reference Node Number |
"NODE" |
integer |
- |
Optional |
|||
8 |
Convergence criteria |
"CONV_CRITERIA" |
object |
- |
Required |
|||
(1) | Displacement Convergence |
"DISP" |
object |
- |
Optional |
|||
(1) | Use Displacement Convergence |
"OPT_USE" |
boolean |
- |
Required |
|||
a | Displacement Tolerance When OPT_USE=true |
"VALUE" |
number |
- |
Optional |
|||
(2) | Load Convergence |
"LOAD" |
object |
- |
Optional |
|||
b | Use Load Convergence |
"OPT_USE" |
boolean |
- |
Required |
|||
c | Load Tolerance When OPT_USE=true |
"VALUE" |
number |
- |
Optional |
|||
(3) | Work Convergence |
"WORK" |
object |
- |
Optional |
|||
d | Use Work Convergence |
"OPT_USE" |
boolean |
- |
Required |
|||
e | Work Tolerance When OPT_USE=true |
"VALUE" |
number |
- |
Optional |
|||
9 |
Advanced Nonlinear Setting |
"ADVANCED"¹⁾ |
object |
- |
Optional |
|||
Advanced Nonlinear Parameters¹⁾
| No. | Description | Key | Value Type | Default | Required | |||
|---|---|---|---|---|---|---|---|---|
1 |
Advanced Nonlinear Setting |
"ADVANCED" |
object |
- |
Optional |
|||
(1) | Use Default Settings |
"OPT_USE_DEFAULT" |
boolean |
- |
Required |
|||
When OPT_USE_DEFAULT = false | ||||||||
(2) | Stiffness Update Scheme • Custom: CUSTOM • Full Newton-Raphson: FULL_NEWTON_RAPHSON • Initial Stiffness: INITIAL_STIFF |
"STIFF_UPDATE_SCHEME" |
string (enum) |
- |
Required |
|||
When STIFF_UPDATE_SCHEME = "CUSTOM" | ||||||||
(3) | No. of Iterations before Stiffness Update |
"ITER_BEFORE_STIFF_UPDATE" |
integer |
- |
Required |
|||
(4) | Terminate Analysis on Failed Convergence |
"OPT_TERMINATE_ON_FAILED_CONV" |
boolean |
- |
Required |
|||
(5) | Max. No. of Iterations per Increment |
"MAX_ITER_PER_INCREMENT" |
integer |
- |
Required |
|||
(6) | Max. Bisection Level |
"MAX_BISECTION_LEVEL" |
integer |
- |
Required |
|||
(7) | Smart Bisection |
"OPT_SMART_BISECTION" |
boolean |
- |
Required |
|||
(8) | Divergence Threshold |
"DIVERGENCE_THRESHOLD" |
number |
- |
Required |
|||
(9) | Enable Line Search |
"OPT_ENABLE_LINE_SEARCH" |
boolean |
- |
Required |
|||
When OPT_ENABLE_LINE_SEARCH = true | ||||||||
(10) | Line Search Option • Auto Line Search: AUTO • User Defined: MANUAL |
"LINE_SEARCH_OPTION" |
string (enum) |
- |
Required |
|||
When LINE_SEARCH_OPTION = "MANUAL" | ||||||||
(11) | Max. Line Search per Iteration |
"MAX_LINE_SEARCH_PER_ITER" |
integer |
- |
Required |
|||
(12) | Line Search Tolerance |
"LINE_SEARCH_TOL" |
number |
- |
Required |
|||