| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- 자동차 광학
- Zemax OpticStudio
- Mechanical교육
- fdtd교육
- speos
- FDTD
- lumerical교육
- Zemax교육
- zemax
- speos 기초
- 디스플레이평가
- ansys
- Speos교육
- rayfile
- surfacesource
- 루메리컬
- HUD평가
- LiDAR
- 루메리컬교육
- 라이다
- speos램프
- ARVR평가
- ar시뮬레이션
- 2025r1
- opticstudio
- ar설계
- lumerical
- Ansys교육
- 포토미터
- straylight
- Today
- Total
Radiant Solution
[Mechanical] Solver, 그냥 Default로 써도 될까요? 본문
Solver, 그냥 Default로 써도 될까요?
Direct vs. Iterative Solver 개념 완전 정리
들어가며
Ansys Mechanical에서 해석을 돌릴 때, 솔버 설정을 바꿔본 적 있으신가요?
아마 대부분은 그냥 'Program Controlled'로 두고 실행 버튼을 누를 겁니다. 사실 그게 틀린 건 아닙니다. 하지만 솔버가 뭘 하는지 알고 쓰는 것과 모르고 쓰는 것은, 문제가 생겼을 때 대응이 완전히 달라집니다.
이번 글에서는 Ansys Mechanical의 두 가지 핵심 솔버인 Direct Solver와 Iterative Solver의 개념을 쉽게 정리해 드립니다.
솔버가 하는 일
구조 해석의 본질은 연립방정식을 푸는 것입니다. 유한요소법(FEM)으로 모델을 유한한 개수의 작은 조각으로 잘게 쪼개면(이를 '이산화'라고 합니다) 아래와 같은 형태의 방정식이 만들어집니다 :
[K]{u} = {F}
여기서 [K]는 강성 행렬(Stiffness Matrix), {u}는 변위 벡터, {F}는 하중 벡터입니다. 노드(절점)가 수만~수백만 개가 되면 이 연립방정식의 규모도 그만큼 커집니다. 솔버의 역할은 바로 이 거대한 연립방정식을 '어떻게 푸느냐'입니다.
Direct Solver: 확실하지만 무겁다
어떻게 푸나요?
Direct Solver는 수학 시간에 배운 가우스 소거법, 혹은 LU 분해 방식으로 방정식을 직접 풀어냅니다. 순서대로 행렬을 분해하고 역으로 대입해서 정확한 해를 구합니다.
종이에 손으로 연립방정식을 풀 때처럼, 미지수를 하나씩 지워 나가며 확실하게 답을 구하는 방식이라 생각하면 됩니다.
장점
- 정확도가 높습니다. 수치 반올림 오차를 제외하면 이론적으로 정확한 해를 냅니다.
- 발산 걱정이 없습니다. 반복 수렴 과정 자체가 없기 때문에, Iterative Solver처럼 '수렴에 실패해서 멈추는' 상황이 발생하지 않습니다.
- 소~중형 모델에서 빠릅니다. DOF(자유도 — 솔버가 풀어야 하는 미지수의 개수라고 생각하면 됩니다)가 적을수록 압도적으로 유리합니다.
단점
- 메모리를 많이 씁니다. 행렬 분해 과정에서 fill-in(원래 0이었던 자리가 계산 도중 숫자로 채워지며 행렬이 무거워지는 현상)이 발생해 메모리 사용량이 급격히 늘 수 있습니다.
- 대형 모델에서 느려집니다. DOF 수가 늘어날수록 계산량이 가파르게 증가합니다.
- Pivot 오류가 날 수 있습니다. 구속(경계 조건)이 부족해 모델이 강체처럼 자유롭게 움직일 수 있는 상태라면, 행렬 분해 도중 pivot error로 해석이 중단됩니다. 사실 이것이 입문자가 실무에서 가장 자주 만나는 에러 중 하나입니다.
Tip : Ansys에서는 SPARSE Direct Solver를 기본으로 사용합니다. 'Sparse'는 행렬의 0이 아닌 요소만 효율적으로 처리한다는 의미입니다. Pivot 오류가 났다면 솔버를 의심하기 전에, 부품이 완전히 구속되어 있는지(떠 있는 부품은 없는지)부터 확인해보세요. 급할 때는 Analysis Settings > Weak Springs를 On으로 켜서 임시로 넘어갈 수도 있지만, 이는 미세한 스프링으로 강체 운동을 붙잡아 두는 응급처치일 뿐입니다. 구속 누락을 찾아 고치는 것이 정답입니다.
Iterative Solver: 가볍지만 조건이 있다
어떻게 푸나요?
Iterative Solver는 처음에 대충 추정한 해에서 시작해서, 조금씩 보정하면서 실제 해에 수렴시켜 나갑니다. Ansys Mechanical의 구조 해석에서는 PCG(Preconditioned Conjugate Gradient)가 대표적으로 사용됩니다. (JCG 등 다른 반복 솔버도 존재하지만 주로 열 해석 등 다른 물리 조건에서 쓰이므로, 구조 해석 기준으로는 PCG만 기억하셔도 충분합니다.)
마치 시험 답안을 모르면 일단 찍고, 오답 노트 보면서 정답에 가까워지는 방식이라 생각하면 됩니다. (물론 수학적으로는 훨씬 정교합니다.)
장점
- 메모리 효율이 좋습니다. 전체 행렬을 분해하지 않고 반복 연산만 하므로 메모리 부담이 작습니다.
- 대형 모델에 유리합니다. 수백만 DOF 이상의 모델에서 Direct보다 빠를 수 있습니다.
단점
- 수렴하지 않을 수 있습니다. 모델이 불안정하거나 경계 조건이 부적절하면 발산할 수 있습니다.
- '예민한' 방정식에서 힘을 못 씁니다. 값이 조금만 달라져도 답이 크게 출렁이는 예민한 방정식이 있습니다. (전문 용어로는 '조건이 나쁜, ill-conditioned' 상태라고 부릅니다.) 조금씩 보정하며 답을 찾아가는 PCG는 이런 방정식에서 수렴이 느려지거나 실패합니다. 대표적인 경우가 ① 얇은 쉘·빔 위주의 구조, ② 강성 차이가 극단적인 재료 조합(예: 고무 + 강철), ③ 종횡비(aspect ratio)가 나쁜 요소가 많은 메쉬입니다. 내 모델이 여기에 해당한다면 PCG의 수렴이 느린 것이 자연스러운 현상입니다.
- 접촉이 많은 모델에서 불리합니다. 비선형성이 강할수록 수렴이 어려워집니다.
아예 못 쓰는 경우도 있습니다
PCG는 수학적으로 대칭(symmetric) 행렬을 전제로 하는 알고리즘입니다. 따라서 아래와 같이 행렬이 비대칭이 되거나 특수한 정식화가 필요한 설정에서는, Iterative를 선택해도 Ansys가 자동으로 Direct(Sparse) Solver로 전환합니다:
- 마찰 접촉 등에서 비대칭 행렬 옵션을 사용하는 경우 (Unsymmetric Newton-Raphson)
- Lagrange Multiplier 기반 접촉 정식화 (Normal Lagrange 등)
- 비압축성 재료의 Mixed u-P 정식화 (고무류 초탄성 재료 등)
세 가지 모두 용어가 낯설어도 괜찮습니다. 지금은 '이런 설정을 쓰면 자동으로 Direct로 바뀐다'는 사실만 기억하시면 충분합니다. 분명 Iterative로 설정했는데 solve.out에는 Sparse Solver가 찍혀 있다면, 바로 이 자동 전환이 일어난 것입니다. 오류가 아니니 당황하지 않으셔도 됩니다.
Tip : solve.out은 솔버가 해석 과정을 기록한 일지 같은 텍스트 파일입니다. 파일을 직접 찾을 필요 없이, Mechanical에서 Solution 하위의 Solution Information을 클릭하면 Worksheet에 그 내용이 표시됩니다. 여기서 "SPARSE MATRIX DIRECT SOLVER" 또는 "PCG" 같은 문구를 찾으면 실제로 어떤 솔버가 돌았는지 확인할 수 있습니다.
Tip : Iterative Solver가 수렴하지 않는다면, 메쉬 품질이나 경계 조건을 먼저 점검해보세요. 솔버 문제가 아닐 가능성이 높습니다.
한눈에 비교

Ansys Mechanical에서 설정하는 방법
Mechanical에서 솔버를 설정하는 경로:
Analysis Settings > Solver Controls > Solver Type
선택지는 세 가지입니다:
- Program Controlled — Ansys가 모델 규모, 해석 유형, 접촉·재료 설정을 종합해 자동 선택 (기본값)
- Direct — 직접 지정
- Iterative — 직접 지정
Tip : 처음에는 Program Controlled로 두는 것을 권장합니다. 다만 대형 모델에서 메모리 오류가 나거나, 반대로 수렴 오류가 반복된다면 솔버를 수동으로 바꿔보는 것이 좋습니다.
결론: 어떤 솔버를 써야 할까요?
Direct Solver가 유리한 경우:
- 소~중형 모델 (일반적인 워크스테이션 기준, DOF 수십만 이하)
- 접촉이 복잡하거나 비선형성이 강한 경우
- 정확도가 최우선인 경우
Iterative Solver가 유리한 경우:
- 대형 모델 (DOF 수백만 이상 — 단, 기준은 하드웨어 사양에 따라 달라집니다)
- 메모리 여유가 부족한 경우
- 선형·단순 구조 해석
에러가 났을 때는 이렇게 접근해 보세요 :
- 메모리 부족(out-of-memory) 오류 → Iterative Solver를 시도해보세요.
- 수렴 실패(발산) 오류 → Direct Solver로 바꾸고, 동시에 메쉬 품질과 경계 조건을 점검하세요.
- Pivot 오류 → 솔버 문제가 아닙니다. 구속이 빠진 부품이 없는지 확인하세요.
솔버를 바꿨는데 에러가 나거나 결과가 이상하다면, 그건 솔버 자체의 문제보다 모델 설정 문제일 가능성이 큽니다. 솔버는 주어진 방정식을 푸는 도구일 뿐, 잘못 정의된 문제를 고쳐주지는 못합니다. 관련하여 어려움을 겪고 계신다면 문의 주세요.
㈜래디언트솔루션은 광학 이론, 설계, 해석, 측정 평가, 생산라인 검사 자문까지 End-to-End Service가 가능한
광학 전문 ANSYS 채널 파트너로서 광학 설계, 측정, 검사 시스템 개발, 암실 구축까지
당사의 기술력을 기반으로 한 고객 맞춤형 광학 Full Service 제공하고 있습니다.
Ansys Mechanical에 대한 자세한 사양 및 기술 지원 정보는 이메일 radiant@radiantsolution.co.kr,
또는 02-6096-5708으로 연락 주시기 바랍니다.
감사합니다.
Ansys Optics Products Sales
담당자 (Direct) : 02-6096-5708
대표전화 : 02-2065-0726
E-mail: optical@radiantsolution.co.kr
'Ansys Structures' 카테고리의 다른 글
| [Mechanical] 결과를 믿어도 될까? (0) | 2026.05.19 |
|---|---|
| [Mechanical] Ansys Mechanical 시작하기 (0) | 2026.04.10 |
| Ansys Mechanical 2025 R1 Highlights (0) | 2025.03.26 |